5

我想获取特定智能合约的信息 - 部署在 RSK 测试网上 - 以从其存储中获取数据值。我怎样才能做到这一点?我正在使用eth_getStorageAtJSON-RPC,但我得到了意想不到的结果。

4

1 回答 1

5

为此,您确实使用了eth_getStorageAtRPC 请求。这是一个例子:

curl \
  -X POST \
  -H "Content-Type:application/json" \
  --data '{"jsonrpc":"2.0","method":"eth_getStorageAt","params":["0x19f64674d8a5b4e652319f5e239efd3bc969a1fe", "0x1", "latest"],"id":1}' \
  https://public-node.testnet.rsk.co/

这将产生以下响应

{
  "jsonrpc": "2.0",
  "id": 1,    "result":"0x0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000"
}

它是如何工作的 - eth_getStorageAtRPC 需要 3 个参数:

  • ADDRESS - 智能合约的地址字符串
  • STORAGE_POSITION- 用于存储智能合约的位置的十六进制字符串
  • BLOCK_PARAMETER - 整数块编号的十六进制字符串,用于特定块的值,或latest最新值的字符串

最后一个参数 ( BLOCK_PARAMETER) 很有趣,例如,您可以使用它来查询历史值,并查看存储中该位置的数据如何随时间变化。

于 2021-05-31T09:56:54.710 回答