微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

简单的 Web3 安装

如何解决简单的 Web3 安装

我一直在尝试使用 web3 将元掩码注入我的网站。我在我的网站中调用了 web3,如下所示,并使用本地服务器启动了该网站(VS Code 扩展,它给了我端口:5500)


    window.addEventListener('load',async () => {
      if (window.ethereum) {
        window.web3 = new Web3(ethereum);
        try {
          await ethereum.enable();
          initPayButton()
        } catch (err) {
          $('#status').html('User denied account access',err)
        }
      } else if (window.web3) {
        window.web3 = new Web3(web3.currentProvider)
        initPayButton()
      } else {
        $('#status').html('No Metamask (or other Web3 Provider) installed')
      }
    })

后来我按如下方式调用我的合同,但我遇到了麻烦。

pay() 是在我的 HTML 中单击按钮时发生的函数。它需要从我的智能合约中调用 payout() 函数,所以最初我定义了它,你可以在下面的第一行看到。


    window.contract = new window.web3.eth.Contract(
           [  abi    ],'0xC4AfE8504a711bE2D5E25b45eb72fC3f0924aB21');
        
        
        
        function pay() {

            var paymentAddress = document.getElementById("address").value;
            var val = document.getElementById("weight").value;
            var type= document.getElementById("category").value;

               
            contract.methods.payout.sendTransaction( paymentAddress,val,type )
            //updateStatus('Updated.');
        }

我收到以下错误

MetaMask no longer injects web3

Uncaught TypeError: window.web3.eth is undefined

我尝试了很多方法,但无法更进一步,请帮助我。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。