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

fix: Update transaction type for gas estimation if one is not provided for EIP712 transactions, this fixes paymasters for era-test-node. #195

Merged

Conversation

MexicanAce
Copy link
Collaborator

@MexicanAce MexicanAce commented Oct 19, 2023

What 💻

  • Update transaction type for gas estimation when one is not provided
  • Fix the Debug era_test_node w/ system-contracts VSCode launch task

Why ✋

  • These values are required by the Bootloader, else the transaction type will default to Legacy and then fail checks as Legacy transaction types should not have a Paymaster Address
  • Useful for local debugging down to the Bootloader and System Contract level

Evidence 📷

New e2e tests before:
image

e2e tests after:
image

Notes 📝

  • Fixes https://github.com/matter-labs/era-test-node/issues/166
  • I spent waaaaayyyy too much time trying to figure out unit tests for this change... I'll come back around to try again in a few weeks, but for now an e2e was gonna be necessary anyways, so figure it should suffice for now. The problem is creating a CallRequest that can be turned into a valid TransactionRequest

…d for EIP712 transactions, this fixes paymasters for era-test-node.
@MexicanAce MexicanAce linked an issue Oct 19, 2023 that may be closed by this pull request
@MexicanAce MexicanAce marked this pull request as ready for review October 25, 2023 16:23
@MexicanAce MexicanAce requested a review from a team as a code owner October 25, 2023 16:23
dutterbutter
dutterbutter previously approved these changes Oct 25, 2023
Copy link
Collaborator

@dutterbutter dutterbutter left a comment

Choose a reason for hiding this comment

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

LGTM couple comments.

Cargo.toml Outdated Show resolved Hide resolved
e2e-tests/test/erc721gated.test.ts Outdated Show resolved Hide resolved
@MexicanAce MexicanAce merged commit 0b4a200 into main Oct 25, 2023
9 checks passed
@MexicanAce MexicanAce deleted the 166-nft-gated-paymasters-do-not-work-with-era_test_node branch October 25, 2023 18:36
AntonD3 added a commit that referenced this pull request Dec 6, 2023
* chore: adds proper null response to zks_batchDetails method (#152)

* fix: add back call stacks, console logs, and correct call stack count (#155)

* fix: add back call stacks, console logs, and correct call stack count

* Add comments. Fix typo.

* fix lint

* feat: add eth_getStorageAt (#134)

* add get_storage_at

* add eth_getStorageAt

* limit max archived blocks to 128

* remove ethers-contract dep

* feat: add evm_snapshot/revert (#158)

* fix: update compiled smart contracts to latest (#157)

* Update compile smart contracts checked into source
* Hide Notes section of PR template by default
* Update e2e tests to also be run on MacOS
* Add commented link to YouTube video at the top of release notes
* Limit rust/clippy linting to only the era_test_node package/crate
* Re-enable e2e test for zks_estimateFee
* Add more trace level logs for gas estimation

* feat: add eth_getTransactionByBlockHashAndIndex and eth_getTransactionByBlockNumberAndIndex (#159)

* feat: add eth_protocolVersion (#161)

* feat: impl debug_traceCall (#151)

* feat: impl debug_traceCall

* feat: adds test contract dir

* add refresh_test_contracts in Makefile

* fix: rename contacts_for_l2_call -> contracts_for_l2_call

* move not_implemented() to crate::utils, replace usage of macro

---------

Co-authored-by: Nicolas Villanueva <nicolasvillanueva@msn.com>

* feat: Add well-known log selectors to console output (#162)

* add aarch64-unknown-linux-gnu target (#164)

* feat: add rustbook (#163)

* fix: install mdbook for ci (#169)

* feat: impl debug_traceTransaction (#165)

* feat: impl `debug_traceBlockByHash` and `debug_traceBlockByNumber` (#168)

* fix: update zksync-era deps to v16.0.0 (#173)

* chore: remove hub usage in favour of gh for draft releases (#175)

* feat: add hardhat_setCode (#171)

* feat: impl `zks_getTransactionDetails` (#176)

* feat: forbid ".only" from e2e-tests (#179)

* feat: impl zks_getBlockDetails (#182)

* feat: support builtInWithoutSecurity option (#186)

* feat: add zks_getBridgeContracts (#184)

* feat: add zks_getBytecodeByHash (#180)

* feat: refactor logging to use tracing crate and make it dynamic (#187)

* feat: impl zks_getRawBlockTransactions (#185)

* fix: unit-tests fixed on main (#193)

* fix: fix forking for zksync-era@16.0.2 (#194)

* fix: Release drafts now attach files correctly (#196)

* feat: impl `zks_getAllAccountBalances` and `zks_getConfirmedTokens` (#198)

* fix: Update transaction type for gas estimation if one is not provided for EIP712 transactions, this fixes paymasters for era-test-node. (#195)

* chore: updates zksync dep, and replaces vm with multivm crate (#199)

* chore: update era test node to latest

* chore: cargo fmt

* chore: switch toolchain actions and use nightly

* chore: updates zks gas estimate

* chore: remove +stable for nexttest action

* chore: use larger runner

* debug: collect runner stats

* chore: invalidate cache to collect stats

* chore: remove default runner for 16core

* chore: fix workflows to use nightly (#203)

* chore: fix workflows to use nightly

* chore: fix workflows to use nightly

* chore: refactor node namespaces (#197)

* fix: validate gas_limit and max_fee_per_gas before transaction execution (#207)

* fix: validate gas_limit and max_fee_per_gas before transaction execution

* fix: add validation for max_fee_per_gas being to low

* fix: move validate_tx to node/in_memoty.ts

* fix: lint

* fix: move tx validation logic to run_l2_tx

* test: add tests for tx validation

* fix: remove unneeded match from eth.rs

* fix: lint

* fix: remove +nightly from vscode debug config

* fix: remove extra new line log

* feat: add parent hash linking for blocks (#209)

* feat: add parent_hash linking for blocks

* test: add tests

* fix: lint

* fix: use correct genesis block hash as initial current_miniblock_hash

* chore: Update zksync-era dependency to latest (#210)

* chore: Update zksync-era dependency to latest

* add Version17 to list of supported version

* chore: add rust toolchain for version mgt, make inner_tx pub (#213)

* chore: add rust toolchain for version mgt, update to make inner tx pub again

* chore: change version to reflect ci

* fix: rename run_l2_tx_inner, fix panics for lib users (#214)

* rename run_l2_tx_inner, fix panics for lib users

* add test

* undo dep changes

* cleanup comments

* inline params

* cleanup ExternalStorage

* fix test messages

* feat: get block returns null for non existing blocks (#218)

* chore: fix docs issue (#215)

* chore: fix rust-toolchain extension (#216)

* run smoke test on PRs (#219)

* feat: update `multivm::vm_virtual_blocks` dependency to `multivim::vm_latest` (#220)

* bugfix: Set removed property in Logs to false (#224)

* feat: Implement web3_clientVersion (#223)

* feat: Implement web3_clientVersion

* lint fix

---------

Co-authored-by: Dustin Brickwood <dustinbrickwood204@gmail.com>

* feat: Update event formatter and observability formatter (#226)

* chore: bump cargo toml for upcoming `0.1.0-alpha.12` release (#227)

* chore: bump cargo toml for upcoming release

* chore: bump cargo toml for upcoming release

* feat(vm): Adapt code for the latest zksync era changes (#230)

Signed-off-by: Danil <deniallugo@gmail.com>

* feat: Allow to pass custom tracers to run_raw_tx (#231)

Signed-off-by: Danil <deniallugo@gmail.com>

* Merge main

* latest vm

* Small refactoring

* System contracts 18.4.0

* EcAdd, EcMul, rebuild system contracts

* Small change in system-contracts/VERSION.md

* Update zksync-era dependency

* Fix test

* Prepare to merge into main

---------

Signed-off-by: Danil <deniallugo@gmail.com>
Co-authored-by: Dustin Brickwood <dustinbrickwood204@gmail.com>
Co-authored-by: Nicolas Villanueva <nicolasvillanueva@msn.com>
Co-authored-by: Nisheeth Barthwal <nbaztec@gmail.com>
Co-authored-by: George W <140627974+grw-ms@users.noreply.github.com>
Co-authored-by: Roman Petriv <petriv.roma@gmail.com>
Co-authored-by: Vasyl Ivanchuk <vasyl.ivanchuk@gmail.com>
Co-authored-by: Agustin Aon <21188659+aon@users.noreply.github.com>
Co-authored-by: Danil <deniallugo@gmail.com>
IAvecilla pushed a commit to lambdaclass/era-test-node that referenced this pull request Feb 29, 2024
* Validate curve point evaluation output (matter-labs#186)

Not infinity

* Optimize and clarify REDC (matter-labs#187)

* Remove unnecassary variables storing in `currentB` and `currentC` (matter-labs#189)

* Remove redundant check in `projectiveAdd` (matter-labs#195)

* Improve ec constants docs (matter-labs#196)

* Remove unnecessary `r` conversion from Montgomery form (matter-labs#188)

* Fix doc comment mismatch (matter-labs#197)

* Redundant opposite point addition case (matter-labs#198)

* reuse computation (matter-labs#199)

* Add tests for special hash values (matter-labs#202)

---------

Co-authored-by: Ivan Litteri <67517699+ilitteri@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

NFT Gated Paymasters do not work with era_test_node
2 participants