您当前的位置: 首页 >  区块链

Zeke Luo

暂无认证

  • 1浏览

    0关注

    48博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

区块链智能合约--使用web3链接metaMask调用合约转账代币

Zeke Luo 发布时间:2022-03-06 21:31:39 ,浏览量:1

在开发项目的时候可能会有个场景需要前端和metaMask交互调用合约方法,下面就是我写的一个例如web3.js链接MeatMask调用合约转账代币的一个例子 。

需要的Jar包 :

const.js big.js    web3.js






  
  
  
  

    send = async () =>{
      const web3 = new Web3(window.ethereum);
      ethereum.enable()
      //获取地址
      let accounts = await  web3.eth.getAccounts();
      let account = accounts[0];
      console.log("地址:"+account)
      // 返回指定地址账户的余额
      let balance = await web3.eth.getBalance(account);
      console.log("账户余额:"+balance)
      let contractAbi = [这里输入你要交互合约的ABI]
      let contractAddress = '这里输入你自己要交互的0X开头的合约地址'
      let myContract = new web3.eth.Contract(contractAbi, contractAddress, {
        from: account, // default from address
        gasLimit: 70000,
        gasPrice: 1000000000 // default gas price in wei, 10 gwei in this case
      });
      let a = 1000000
      let toAddress = document.getElementById("toAddress").value;
      console.log("转账地址:"+toAddress)
      myContract.methods.transfer(toAddress, 1 * a,).send({from: account}, function(error, transactionHash){
        if(!error) {
          console.log('transactionHash is' + transactionHash);
        } else {
          console.log(error);
        }
      });
    }


  








以上是一个可运行的demo,完成了网页版兼容Imtoken ,MeatMask等主流钱包的链接,和交互调用合约的方法.

如果有遇到不懂得或者有疑问欢迎联系本人进行交流

WC:luo425116243

关注
打赏
1655544571
查看更多评论
立即登录/注册

微信扫码登录

0.0380s