如何获取部署在 RSK 上的智能合约特定位置的数据价值?
How to get value of the data at a particular location of a smart contract deployed on RSK?
我想获取特定智能合约的信息——部署在 RSK 测试网上——以从其存储中获取数据值。我怎样才能做到这一点?
我正在使用 eth_getStorageAt
JSON-RPC,但我得到了意想不到的结果。
为此,您确实使用了 eth_getStorageAt
RPC 请求。
这是一个例子:
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_getStorageAt
RPC 需要 3 个参数:
ADDRESS
- 智能合约地址串
STORAGE_POSITION
- 智能合约存储中位置的十六进制字符串
BLOCK_PARAMETER
- 特定块值的整数块号的十六进制字符串,或最新值 的字符串latest
最后一个参数 (BLOCK_PARAMETER
) 很有趣,因为您可以使用它来查询历史值,例如查看存储中该位置的数据如何随时间变化。
我想获取特定智能合约的信息——部署在 RSK 测试网上——以从其存储中获取数据值。我怎样才能做到这一点?
我正在使用 eth_getStorageAt
JSON-RPC,但我得到了意想不到的结果。
为此,您确实使用了 eth_getStorageAt
RPC 请求。
这是一个例子:
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_getStorageAt
RPC 需要 3 个参数:
ADDRESS
- 智能合约地址串STORAGE_POSITION
- 智能合约存储中位置的十六进制字符串BLOCK_PARAMETER
- 特定块值的整数块号的十六进制字符串,或最新值 的字符串
latest
最后一个参数 (BLOCK_PARAMETER
) 很有趣,因为您可以使用它来查询历史值,例如查看存储中该位置的数据如何随时间变化。