You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

@aptos-labs/wallet-adapter-core是否支持钱包网络切换?如何切换Petra网络?

Aptos钱包网络切换方案及SDK能力说明

一、@aptos-labs/wallet-adapter-core的网络切换支持

@aptos-labs/wallet-adapter-core本身提供了网络切换的标准接口,但具体能不能用还要看对接的钱包(比如Petra)有没有实现这个功能——目前Petra是支持自动切换网络的。

二、Petra钱包从主网切到Devnet的代码实现

基于你提供的代码,修改后可以这样实现自动切换:

const arr = [new PetraWallet()];
const wallet = new WalletCore(arr);

wallet.connect("Petra").then(async () => {
  const connectedWallet = wallet.connectedWallet;
  if (!connectedWallet) return;

  try {
    // 传入Devnet的网络配置,触发自动切换
    await connectedWallet.switchNetwork({
      chainId: "4", // Aptos主网chainId是"1",Devnet是"4"
      url: "https://fullnode.devnet.aptoslabs.com",
      name: "Aptos Devnet"
    });
    console.log("成功切换到Devnet");
  } catch (error) {
    console.error("切换失败:", error);
    // 钱包不支持自动切换时,提示用户手动操作
    if (error.message.includes("not supported")) {
      console.log("当前钱包版本不支持自动切换,请手动在Petra钱包里切换到Devnet");
    }
  }
});

三、关于类似Metamask的wallet_switchEthereumChain功能

@aptos-labs/wallet-adapter-core定义的switchNetwork方法,作用就和Metamask的wallet_switchEthereumChain类似——都是通过SDK触发钱包切换到指定网络。但要注意:

  • 不是所有Aptos钱包都实现了这个方法,得看钱包本身支持情况
  • 如果钱包没实现,调用会报错,这时候只能引导用户手动在钱包界面切换

四、切换失败的常见原因排查

  • 钱包版本太低,不支持switchNetwork方法,建议升级Petra到最新版
  • 传入的chainId或节点URL有误,核对参数是否正确
  • 钱包处于锁定状态,需要用户先解锁钱包

内容的提问来源于stack exchange,提问作者莫海江

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 03:05:19