在ether.js类库中通过js调用metamask钱包连接当前dapp,并且获取当前连接的钱包地址,钱包持有的ETH余额、当前连接的公链链ID,链名称的代码实现如下。通过如下代码可以唤起metamask钱包,对发起的交易hash进行签名,执行链上的交易。
/*判断是否按照metamask钱包-begin-*/ if (typeof window.ethereum === "undefined") { alert("please install metamask first!"); return; } /*判断是否按照metamask钱包-end-*/ /*连接钱包获取钱包地址和余额-begin-*/ let accounts = await window.ethereum.request({method:'eth_requestAccounts'}); if (accounts.length > 0 ) { document.getElementById("wallet-address").innerText = accounts[0]; document.getElementById("wallet-address").style.textAlign = 'left'; // 添加左对齐样式 // 创建一个以太坊 provider 对象 const provider = new ethers.providers.Web3Provider(window.ethereum); // 获取余额(单位为 wei) const balance = await provider.getBalance(accounts[0]); // 将余额转换成以太(单位为 ether) const etherBalance = ethers.utils.formatEther(balance); // 输出余额(单位为 ether) //console.log(`Address ${accounts[0]} has a balance of ${etherBalance} ether.`);
调用metamask钱包完成交易hash的签名后,触发执行链上合约,完成dapp的功能模块。
在连接钱包中不能存在await方法,比如获取合约名称 await contract.name(); 该操作会导致唤起metamask钱包失效,一直处于等待状态。
pdf+视频Arbitrum链发币教程及多模式组合合约源代码下载:
Arbitrum链发币(合约部署、开源、锁仓、LP、参数配置、开发、故障处理、工具使用)教程下载:
多模式(燃烧、回流指定营销地址、分红本币及任意币种,邀请推广八代收益,LP加池分红、交易分红、复利分红、NFT分红、自动筑池、动态手续费、定时开盘、回购)组合合约源代码下载:
pdf+视频Arbitrum链发币教程及多模式组合合约源代码下载地址:
此内容仅供注册用户可见,请登录!
添加VX或者telegram获取全程线上免费指导
评论前必须登录!
注册