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

eth_createAccessList Support #4081

Closed
AusIV opened this issue May 25, 2021 · 8 comments · Fixed by #4332 · 4 remaining pull requests
Closed

eth_createAccessList Support #4081

AusIV opened this issue May 25, 2021 · 8 comments · Fixed by #4332 · 4 remaining pull requests
Assignees
Labels
Feature Request P2 Medium severity bugs

Comments

@AusIV
Copy link

AusIV commented May 25, 2021

With the Berlin hard fork, access lists were added to offset some of the gas costs introduced with EIP-2929.

Geth supports eth_createAccessList to generate the input to transactions.

I have a contract that is currently broken by EIP-2929 (which I realize is not a web3.js problem), and while eth_createAccessList would resolve our problem, there's not an easy way to use it in the context of web3.js.

It would be great to have web3.js explicitly support eth_createAccessList, but if somebody has a guide on how to use eth_createAccessList with web3.js without explicit support that would be most welcome.

@GregTheGreek
Copy link
Contributor

Hey @AusIV thanks for the suggestion, we were running into some weird issues with Berlin, but think we've got most of it sorted out. We can definitely look into adding this as an rpc method!

@GregTheGreek
Copy link
Contributor

Realising there is very little documentation surround this call.. looking into it, but not sure if it will be included in the next release

@GregTheGreek
Copy link
Contributor

Tracking Open RPC addition ethereum/execution-specs#196

@AusIV
Copy link
Author

AusIV commented May 28, 2021

It's probably worth calling out that in my mind this would ideally be something along the lines of:

request = contract.methods.myMethod(some, parameters)
request.createAccessList({from: myAddress}).then((access_list) => {
  request.send({from: myAddress, access_list: access_list});
}) 

Not just a simple exposure of:

web3.eth.createAccessList()

(I'm also not sure if it's possible to send an access list through request.send() in the current implementation.)

@github-actions
Copy link

This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 7 days if no further activity occurs. Thank you for your contributions. If you believe this was a mistake, please comment.

@github-actions github-actions bot added the Stale Has not received enough activity label Jul 28, 2021
@AusIV
Copy link
Author

AusIV commented Jul 29, 2021

I'd hate to see this go stale. Any prospects on this?

@github-actions github-actions bot removed the Stale Has not received enough activity label Jul 30, 2021
@philknows philknows added P2 Medium severity bugs Feature Request labels Aug 3, 2021
@spacesailor24
Copy link
Contributor

Hey there @AusIV, just wanted to let you know that I'm currently looking into this to gauge the feasibility of implementing what you've requested

spacesailor24 added a commit that referenced this issue Oct 5, 2021
* Init web3.eth.createAccessList

* Init e2e test for createAccessList

* Add createAccessList method to method wrappers for contracts

* Update failing tests to use dynamic address

* Add check to not run tests if ENV not Geth

* Add createAccessList to docs

* Update CHANGELOG.md

* Update docs/web3-eth-contract.rst

* Update docs/web3-eth-contract.rst

* Update docs/web3-eth-contract.rst

* Update docs/web3-eth-contract.rst

* Update docs/web3-eth-contract.rst

* Update docs/web3-eth.rst

* Remove duplicate line in CHANGELOG

* Move CHANGELOG addition to 1.6.1
@Lucienest
Copy link

Any update on this? it's been a while.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment