Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Improve documentation of Contract::call_with_preftech #387

Open
nategraf opened this issue Jan 14, 2025 · 1 comment
Open

Improve documentation of Contract::call_with_preftech #387

nategraf opened this issue Jan 14, 2025 · 1 comment
Labels
documentation Improvements or additions to documentation steel

Comments

@nategraf
Copy link
Contributor

As the number of SLOAD and SSTORE operations in a call grows, the preflight time with Steel can become quite long due to the large number of RPC calls to be individual storage proofs. We also support a Contract::call_with_preftech method that uses eth_createAccessList to greatly reduce the number of RPC calls and improve pre-flight time.

Unfortunately, using eth_createAccessList has some trade-offs the main two are:

  • On certain node software (e.g. Geth, but not Reth), the underlying eth_createAccessList RPC actually checks to see if there are enough funds for the gas cost (in most cases, this can be fixed with a simple .from("0x00000000219ab540356cBB839Cbe05303d7705Fa"), but this is rather arbitrary and ugly).
  • This eth_createAccessList RPC is not available on all node software versions or chains.

Given this, we cannot make it the default, but we should still improve documentation to ensure devs know about this method and when they can apply it.

@nategraf nategraf added documentation Improvements or additions to documentation steel labels Jan 14, 2025
Copy link

linear bot commented Jan 14, 2025

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation steel
Projects
None yet
Development

No branches or pull requests

1 participant