Как получить ценность данных в конкретном месте смарт-контракта, развернутого на RSK?

Я хотел бы получить информацию о конкретном смарт-контракте, который развернут в тестовой сети RSK, чтобы получить значения данных из его хранилища. Как я могу это сделать? я использую eth_getStorageAt JSON-RPC, но получаю неожиданные результаты.

1 ответ

Решение

Для этого вы действительно используете запрос 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 - шестнадцатеричная строка для позиции в хранилище смарт-контракта
  • - шестнадцатеричная строка номера целого блока для значений в определенных блоках или строка latest за последнее значение

Последний параметр ( BLOCK_PARAMETER) интересен, так как вы можете использовать его для запроса исторических значений и, например, посмотреть, как данные в этом месте в хранилище меняются с течением времени.

Другие вопросы по тегам