0

I am currently using some website to read some useful data. Using the browser's Inspect>Network I can see this data comes from JSON RPC requests to (https://bsc-dataseed1.defibit.io/) the public available BSC explorer API endpoint.

This requests have the following format:

Request params:

{"jsonrpc":"2.0","id":43,"method":"eth_call","params":[{"data":"...LONGBYTESTRING!!!","to":"0x1ee38d535d541c55c9dae27b12edf090c608e6fb"},"latest"]}

Response:

{"jsonrpc":"2.0","id":43,"result":"...OTHERVERYLONGBYTESTRING!!!"}

I know that the to field corresponds to the address of a smart contract 0x1ee38d535d541c55c9dae27b12edf090c608e6fb.

Looks like this requests "queries" the contract for some data (but it costs 0 gas?).

From (the very little) I understand, the encoded data can be decoded with the schema, which I think I could get from the smart contract address. (perhaps this is it? https://api.bscscan.com/api?module=contract&action=getabi&address=0x1ee38d535d541c55c9dae27b12edf090c608e6fb)

My goal is to understand the data being sent in the request and the data given in the response so I can reproduce the data from the website without having to scrape this data from the website.

Thanks.

lobis
  • 145
  • 1
  • 10
  • Would u take a look at my queston related to `json_rpc` plz: https://stackoverflow.com/questions/67605266/how-to-read-smart-contracts-from-tronscan-org-using-laravel-and-json-rpc –  May 22 '21 at 10:10

1 Answers1

1

The zero cost is because of the eth_call method. It's a read-only method which doesn't record any state changes to the blockchain (and is mostly used for getter functions, marked as view or pure in Solidity).

The data field consists of:

  • 0x
  • 4 bytes (8 hex characters) function signature
  • And the rest is arguments passed to the function.

You can find an example that converts the function name to the signature in this other answer.

Petr Hejda
  • 40,554
  • 8
  • 72
  • 100
  • Would u take a look at my queston related to `json_rpc` plz: https://stackoverflow.com/questions/67605266/how-to-read-smart-contracts-from-tronscan-org-using-laravel-and-json-rpc –  May 22 '21 at 10:11