如何解决简单的 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 举报,一经查实,本站将立刻删除。