【发布时间】:2021-09-24 01:10:19
【问题描述】:
我对以太坊智能合约 Solidity 编程非常陌生。目前,当我尝试将一个变量从我的 Node.js servlet 传递到我使用 Truffle Suite 部署的智能合约时,特别是使用 Ganache 提供的帐户时,我一直面临这个问题。
以下是我用来连接和调用智能合约方法的JavaScript:
if (this.state.contract) {
this.state.contract.methods.searchKeyword(searchToken.toString())
.send({from: this.state.account, gas: 210000, gasPrice: 50000}, function (err, res) {
if (err) {
console.log("Error", err)
return
}
console.log(res)
})
}
以下是智能合约中的 Solidity 代码:
function searchKeyword (string memory searchToken) public {
searchWord = searchToken;
}
每当我调用函数并传递 searchToken 时,都会弹出以下错误。我已经尝试将 gas 和 gasPrice 设置在 MetaMask 钱包的 gasLimit 之下,但我仍然收到Exceeds block gas limit 之类的错误。我试过不设置gas和gasPrice,但我仍然遇到类似的问题。
请任何天才帮助我这个菜鸟初学者,他努力调试一个小功能。提前谢谢你们:D
【问题讨论】:
-
我遇到了同样的错误。您应该尝试在ethereum.stackexchange.com 上提出这个问题
标签: javascript node.js ethereum solidity smartcontracts