eth_getStorageAt
Returns the value from a storage position at a given address, or in other words, returns the state of the contract's storage, which may not be exposed via the contract's methods.
The eth_getStorageAt
command is used to obtain a value related to a storage position at the specified address, returning the exact state of the contract’s storage, which can’t be exposed by regular contract methods.
Parameters
DATA
, 20 Bytes - address of the storage.QUANTITY
- integer of the position in the storage.QUANTITY|TAG
- integer block number, or the string "latest", "earliest" or "pending", see the default block parameter.
Returns
DATA
- the value at this storage position.
Example Request and Result for eth_getStorageAt
eth_getStorageAt
Calculating the correct position depends on the storage to retrieve. Consider the following contract deployed at 0x295a70b2de5e3953354a6a8344e616ed314d7251
by address 0x391694e7e0b0cce554cb130d723a9d27458f9298
.
Retrieving the value of pos0
is straight forward:
Request
Result
Retrieving an element of the map is harder. The position of an element in the map is calculated with:
This means to retrieve the storage on pos1[“0x391694e7e0b0cce554cb130d723a9d27458f9298”]
we need to calculate the position with:
The geth console which comes with the web3 library can be used to make the calculation:
Now to fetch the storage:
Request
Result
Last updated