我收到一个错误。当我在我的私有链中部署智能合约后调用 geth 中的函数时。
我的合约代码如下:
pragma solidity ^0.8.0;
contract Storage{
uint256 public value = 5;
function set(uint256 number) public{
value = number;
}
function retrieve() public view returns (uint256){
return value;
}
}
我想知道如何解决这个错误。谢谢。
在 GETH 控制台中,您可以通过将请求对象传递到控制台来运行 JSON-RPC API 方法及其 JavaScript 替代方案。
我现在没有可用的 GETH 实例来验证,但这应该可行:
eth.call(
to: "0xcontractAddress",
data: "0x2e64cec1"
);
我假设文档中提到的其他示例以及
web3方法中使用了
eth.call
方法。
data
字段是特定功能的选择器。字符串 retrieve()
的 keccak-256 哈希值的前 4 个字节。