MetaMask是Chrome上应用的插件类型的以太坊钱包,只须要在谷歌浏览器增加对应的扩大程序即可,十分轻量级,应用起来也十分不便。

library.provider 从 Web3Provider中获取
BigNumber, utils 从 ethers.js 中获取

1.增加ERC-20代币

    library.provider      .request({        method: 'wallet_watchAsset',        params: {          type: 'ERC20',          options: {            address: token.address,            symbol: token.symbol,            decimals: token.decimals,            image: getTokenLogoURL(token.address, chainId, uriLocations),          },        },      })      .then((success) => {        setSuccess(success)      })      .catch(() => setSuccess(false))

2.切换网络

//阐明 interfaceinterfaceAddEthereumChainParameter {   chainId: string; // A 0x-prefixed hexadecimal string   chainName: string;   nativeCurrency: {   name: string;   symbol: string; // 2-6 characters long   decimals: 18;   };   rpcUrls: string[];   blockExplorerUrls?: string[];   iconUrls?: string[]; // Currently ignored.}[ChainId.MATIC]: {   chainId: '0x89',   chainName: 'Matic',   nativeCurrency: {   name: 'Matic',   symbol: 'MATIC',   decimals: 18,   },   rpcUrls: ['https://polygon-rpc.com'], // ['https://matic-mainnet.chainstacklabs.com/'],   blockExplorerUrls: ['https://polygonscan.com'], }, const formattedChainId = utils.hexStripZeros(BigNumber.from(chainId).toHexString())library?.provider.request({ method:   chainId === MAINNET || KOVAN || ROPSTEN || RINKEBY || GÖRLI   ? 'wallet_switchEthereumChain'   : 'wallet_addEthereumChain', params: [   chainId === MAINNET || KOVAN || ROPSTEN || RINKEBY || GÖRLI   ? { chainId: formattedChainId }   : AddEthereumChainParameter,   ], })

欢送区块链行业气味相投的小伙伴增加小极微信,退出blockgeek区块链技术交换群,独特推动区块链技术遍及和倒退~