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

chore: refactor node namespaces #197

Merged
merged 10 commits into from
Oct 30, 2023

Conversation

nbaztec
Copy link
Contributor

@nbaztec nbaztec commented Oct 20, 2023

What 💻

  • Isolates the supported namespaces in crate::namespaces
  • Implements the supported namespaces in crate::node
  • Common functionality is implemented in module crate::node::in_memory_ext

Why ✋

  • Easier to add new namespaces
  • Allows sharing of common functionality across namespaces
  • Less code since the namespaces are directly implemented on InMemoryNode like the eth_

Evidence 📷

Tests pass

Notes 📝

// If `mine_block` is both part of ext methods and the evm namespace impl, then

// Instead of 
node.mine_block(1)

// Use
EvmNamespaceT::mine_block(&node, 1);

// for calling the evm method

@nbaztec nbaztec requested a review from a team as a code owner October 20, 2023 12:38
src/namespaces/configuration_api.rs Outdated Show resolved Hide resolved
src/main.rs Show resolved Hide resolved
src/main.rs Show resolved Hide resolved
src/node/in_memory_ext.rs Show resolved Hide resolved
src/node/in_memory_ext.rs Show resolved Hide resolved
Copy link
Collaborator

@MexicanAce MexicanAce left a comment

Choose a reason for hiding this comment

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

LGTM

@MexicanAce MexicanAce merged commit fae30ab into matter-labs:main Oct 30, 2023
10 checks passed
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 <[email protected]>

* 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 [email protected] (#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 <[email protected]>

* 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 <[email protected]>

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

Signed-off-by: Danil <[email protected]>

* 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 <[email protected]>
Co-authored-by: Dustin Brickwood <[email protected]>
Co-authored-by: Nicolas Villanueva <[email protected]>
Co-authored-by: Nisheeth Barthwal <[email protected]>
Co-authored-by: George W <[email protected]>
Co-authored-by: Roman Petriv <[email protected]>
Co-authored-by: Vasyl Ivanchuk <[email protected]>
Co-authored-by: Agustin Aon <[email protected]>
Co-authored-by: Danil <[email protected]>
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 <[email protected]>
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.

Refactor hardhat_, evm_, and zks_ namespace implementations
2 participants