如何在web3上调用函数



我试图在web3上调用一个函数,但它没有在web3上执行。它只是不会弹出Metamask钱包来请求交易批准,所以它不会执行。

可靠性功能:

function Deposit(uint _amount) payable public{
require(msg.value == _amount);
funds[msg.sender] += _amount;
}

web3上的功能

deposit = async(depositAmount)=>{
const web3 = window.web3
const ethers = web3.utils.toWei(this.depositAmount.value, 'ether')
await web3.contract.methods.Deposit(depositAmount).send({from: this.account, value: ethers})
}

函数如何被称为

<form className="deposit" onSubmitCapture={(event) => {
event.preventDefault()
const amount = this.amount
this.deposit(amount)
}}>
<input type="text" className="inputs" placeholder="Amount to deposit" 
ref={(input)=>this.amount = input}/>
<input type="submit" className="btn" value="DEPOSIT"/>
</form>

我正在加载web3并正确加载区块链数据,并且在按钮组件中调用了存款函数。只是想知道它是否与这段代码有关,或者问题可能在其他地方。智能合约用松露和巧克力酱正确迁移。

您需要正确初始化web3。根据文档,您应该初始化为const web3 = new Web3(web3.currentProvider).

您可以使用gasLimitparam .

await web3.contract.methods.Deposit(depositAmount).send({from: this.account, value:
ethers, gasLimit: "21000"})

相关内容

  • 没有找到相关文章

最新更新