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区块链技术交换群,独特推动区块链技术遍及和倒退~