我是非常新的以太坊智能合约坚实的编程。目前,当我试图将变量从我的Truffle servlet传递到我使用Node.js 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)
                })
        }以下是智能合约中的可靠代码:
function searchKeyword (string memory searchToken) public {
        searchWord = searchToken;
    }每当我调用该函数并传递searchToken时,就会弹出以下错误。我尝试在我的MetaMask钱包的gasLimit下面设置gas和gasPrice,但仍然收到像Exceeds block gas limit这样的错误。我在没有设置gas和gasPrice的情况下进行了尝试,但仍然遇到类似的问题。

任何天才,请帮助我,这新手谁如此努力调试只是一个小的小功能。提前感谢你们:D
发布于 2021-07-19 09:14:58
我认为这里的问题是,当你“松露部署--重置”时,Ganache区块链期望每个用户的“program_counter”再次从0开始。因此,您还必须在您的Metamask帐户上重新启动program_counter。元掩码设置->高级->重置帐户重新启动元掩码帐户的program_counter。这对我很有效!
https://stackoverflow.com/questions/68388512
复制相似问题