Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Eth JSON-RPC API: implement eth_getCode and eth_getStorageAt #9397

Merged
merged 5 commits into from
Sep 29, 2022

Conversation

raulk
Copy link
Member

@raulk raulk commented Sep 29, 2022

eth_getStorageAt comes with a major hack for now because of a serde snafu in the EVM runtime in builtin-actors. We are not updating the bundle for Iron, so we patch it here. The type we used in the EVM runtime for the storage slot serializes to a hex-encoded int instead of to purely an big-endian array of bytes. We'll fix this at origin in builtin-actors.

Another caveat is that retrieving a storage key that doesn't exist returns an error. Instead, it should return a 0x0.

This comes with a temporary hack. The EVM runtime actor uses the U256 parameter type in
GetStorageAtParams, which serializes as a hex-encoded string. It should serialize
as bytes. We didn't get to fix in time for Iron, so for now we just pass through the
hex-encoded value passed through the Eth JSON-RPC API, by remarshalling it.

We don't fix this at origin (builtin-actors) because we are not updating the bundle
for Iron.
@raulk raulk requested a review from ychiaoli18 September 29, 2022 22:27
@raulk raulk requested a review from a team as a code owner September 29, 2022 22:27
Copy link
Contributor

@ychiaoli18 ychiaoli18 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants