当前位置: 首页 > 知识库问答 >
问题:

将Metamask网络切换到链1(以太坊主网)

郁隐水
2023-03-14

上周,Metamask引入了一个名为“wallet\u AddesthumChain”的新功能,允许用户在收到提示时自动向其钱包添加新的Etheruem RPC。此功能还允许用户更改所连接的网络,例如,如果我已经将Binance智能链连接到metamask,则调用wallet\u AddesthumChain将活动网络更改为BSC。但是,在以太坊链中尝试此操作时,会出现一个错误,即您无法添加mainnet RPC。我使用了以下代码将以太坊Mainnet更改为Binance智能链,它运行良好:SwitchToFinance:async function(){

        let ethereum = window.ethereum;
        const data = [{
            chainId: '0x38',
            chainName: 'Binance Smart Chain',
            nativeCurrency:
                {
                    name: 'BNB',
                    symbol: 'BNB',
                    decimals: 18
                },
            rpcUrls: ['https://bsc-dataseed.binance.org/'],
            blockExplorerUrls: ['https://bscscan.com/'],
        }]
        /* eslint-disable */
        const tx = await ethereum.request({method: 'wallet_addEthereumChain', params:data}).catch()
        if (tx) {
            console.log(tx)
        }
    },

然而,当我尝试精确的东西时,metamask抛出一个异常,说我不能添加主网RPC: SwitchToEthereum: async函数(){

        let ethereum = window.ethereum;
        const data = [{
      chainId: '0x1',
      chainName: 'Ethereum',
      nativeCurrency: {
        name: 'Ethereum',
        symbol: 'ETH',
        decimals: 18,
      },
      rpcUrls: ['https://mainnet.infura.io/v3/undefined'],
      blockExplorerUrls: ['https://etherscan.io'],
    }]
        /* eslint-disable */
        const tx = await ethereum.request({method: 'wallet_addEthereumChain', params:data}).catch()
        if (tx) {
            console.log(tx)
        }
    },

但是,添加新RPC连接和更改活动RPC连接的请求是相同的。那么,有没有办法将活动以太坊提供程序从自定义链更改为Mainnet(链ID-1)

共有3个答案

慕宏儒
2023-03-14

只需在0x前面加上chainId即可。

例子:

 await ethereum.request({
    method: 'wallet_switchEthereumChain',
    params: [{ chainId: '0x1' }],
 })
葛雨华
2023-03-14
chainId: '0x38' // error because await not decimal 

Number('0x38').toString(10) //56 - chain ID of BSC

右:

chainId: `0x${Number(56).toString(16)}`

或:

chainId: `0x86`
有骏奇
2023-03-14

作为这个问题的评论点,出于安全原因wallet_addEthereumChain不支持主网。但是有一个新的EIP来解决这个问题,按照EIP-3326查找发布信息,这个讨论看草稿。

 类似资料:
  • 1) 我使用以下命令设置一个专用以太坊网络 2) 创建了一个帐户 3)然后,使用miner.start()命令启动矿工。 过了一段时间,以太被自动添加到我的帐户中,但我的私人网络中没有任何挂起的事务。那么我的矿工们从哪里得到乙醚呢? 尽管我没有在我的网络中实例化任何事务,但一旦启动miner,我就可以看到日志中记录了一些事务。 日志如下: 我的创世区块代码如下: 由于我的网络是隔离的,并且只有一个

  • 简介 这篇文档详细提供了一种将以太坊上面的应用迁移到HPB主网的方法,用户从而可以获得更高的性能,更好的安全性和更低的手续费。 这篇文档面向社区开发者,测试者,运营维护人员等等。 在这个例子中,我们将把HPB代币从以太坊迁移到HPB主网上,事实上任何合约都可以参考这个例子。 迁移过程包含以下的步骤: 在区块链浏览器中查询ERC20代币。 复制ERC 20代币的源码到Remix。 使用Remix重新

  • 以太坊测试链 针对Ethereum以太坊有许多专用测试网络或者叫测试链,他们由各种客户端支持。 1.Rinkeby:只支持geth客户端。 2.Kovan:只支持Parity客户端。 3.Ropsten:支持geth和Parity客户端。 对于开发,建议你使用Rinkeby或KoVan测试链。这是因为他们使用的工作量证明POA共识机制,确保交易和块能够一致并及时的创建。Ropsten测试链,虽然最

  • 以太坊(Ethereum)是一个支持智能合约的区块链平台,它与比特币最大的不同是,以太坊通过一个虚拟机(EVM)可以运行智能合约。 以太坊是Vitalik Buterin(维塔利克·布特林,人称V神)在2013年提出的概念,Vitalik最早参与了比特币社区的开发,并希望比特币把功能受限的脚本扩展成图灵完全的编程环境,但没有得到比特币开发社区的认同,于是他决定另起炉灶,打造一个新的区块链平台,目标

  • 为了跳过信任第三方的需要,并跳过在我的电脑上完全下载区块链,我想在本地服务器上设置一个同步以太网测试网区块链的完整节点,然后将我的电脑连接到这个服务器,使用一个geth实例。 这在某种程度上可能吗?我怎么能那样做?

  • 我试图在windows上开发一个简单的去中心化应用程序,使用以太坊的教程-“DAPPS初学者”。它需要三款软件:Alethzers、Mist和Mix。我在不同的层面上有很多问题,因为很明显,他们停止了与Alethzerand Mix的合作。还有其他选择吗?有没有一个解决方案来开发一个好的Dapp,在那里我可以看到区块链最重要的部分?比如采矿和安全系统?