-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
feat: Base Token Fundamentals #2204
Conversation
0938df8
to
876a6e1
Compare
Hi, we've been working on this implementation ourselves in this PR. It's close to being finished, but considering you are already developing it, we are leaving it as is and closing the pull request. Feel free make use of any of it's parts if you find it useful. |
core/lib/dal/migrations/20240611121747_add_base_token_price_table.up.sql
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mostly looks good. Left a few nits.
core/node/node_framework/src/implementations/layers/base_token_ratio_provider.rs
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks mergeable, with the expectation of the follow-up work.
🤖 I have created a release *beep* *boop* --- ## [15.1.0](prover-v15.0.0...prover-v15.1.0) (2024-07-10) ### Features * **api:** Retry `read_value` ([#2352](#2352)) ([256a43c](256a43c)) * Base Token Fundamentals ([#2204](#2204)) ([39709f5](39709f5)) * BWIP ([#2258](#2258)) ([75bdfcc](75bdfcc)) * change `zkSync` occurences to `ZKsync` ([#2227](#2227)) ([0b4104d](0b4104d)) * **config:** Make getaway_url optional ([#2412](#2412)) ([200bc82](200bc82)) * consensus support for pruning (BFT-473) ([#2334](#2334)) ([abc4256](abc4256)) * **contract-verifier:** Add file based config for contract verifier ([#2415](#2415)) ([f4410e3](f4410e3)) * **en:** file based configs for en ([#2110](#2110)) ([7940fa3](7940fa3)) * Make all core workspace crate names start with zksync_ ([#2294](#2294)) ([8861f29](8861f29)) * Minimal External API Fetcher ([#2383](#2383)) ([9f255c0](9f255c0)) * **prover:** Add file based config for compressor ([#2353](#2353)) ([1d6f87d](1d6f87d)) * **prover:** Add file based config for prover fri ([#2184](#2184)) ([f851615](f851615)) * **prover:** Add file based config for witness vector generator ([#2337](#2337)) ([f86eb13](f86eb13)) * **prover:** Add file based config support for vk-setup-data-generator-server-fri ([#2371](#2371)) ([b0e72c9](b0e72c9)) * **prover:** Add prometheus port to witness generator config ([#2385](#2385)) ([d0e1add](d0e1add)) * **prover:** Add prover_cli stats command ([#2362](#2362)) ([fe65319](fe65319)) * Remove cached commitments, add BWIP to docs ([#2400](#2400)) ([e652e4d](e652e4d)) * Remove initialize_components function ([#2284](#2284)) ([0a38891](0a38891)) * snark proof is already verified inside wrap_proof function ([#1903](#1903)) ([2c8cf35](2c8cf35)) * Switch to using crates.io deps ([#2409](#2409)) ([27fabaf](27fabaf)) * **tee:** TEE Prover Gateway ([#2333](#2333)) ([f8df34d](f8df34d)) * upgraded encoding of transactions in consensus Payload. ([#2245](#2245)) ([cb6a6c8](cb6a6c8)) * Validium with DA ([#2010](#2010)) ([fe03d0e](fe03d0e)) * **zk_toolbox:** Add prover run ([#2272](#2272)) ([598ef7b](598ef7b)) ### Bug Fixes * Fix rustls setup for jsonrpsee clients ([#2417](#2417)) ([a040f09](a040f09)) * **proof_compressor:** Fix backward compatibility ([#2356](#2356)) ([76508c4](76508c4)) * prover Cargo.lock ([#2280](#2280)) ([05c6f35](05c6f35)) * **prover_cli:** Fix Minor Bugs in Prover CLI ([#2264](#2264)) ([440f2a7](440f2a7)) * **prover_cli:** Remove outdated fix for circuit id in node wg ([#2248](#2248)) ([db8e71b](db8e71b)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
🤖 I have created a release *beep* *boop* --- ## [24.9.0](core-v24.8.0...core-v24.9.0) (2024-07-10) ### Features * add block timestamp to `eth_getLogs` ([#2374](#2374)) ([50422b8](50422b8)) * add revert tests to zk_toolbox ([#2317](#2317)) ([c9ad002](c9ad002)) * add zksync_tee_prover and container to nix ([#2403](#2403)) ([e0975db](e0975db)) * Adding unstable RPC endpoint to return the execution_info ([#2332](#2332)) ([3d047ea](3d047ea)) * **api:** Retry `read_value` ([#2352](#2352)) ([256a43c](256a43c)) * Base Token Fundamentals ([#2204](#2204)) ([39709f5](39709f5)) * **base-token:** Base token price ratio cache update frequency configurable ([#2388](#2388)) ([fb4d700](fb4d700)) * BWIP ([#2258](#2258)) ([75bdfcc](75bdfcc)) * **config:** Make getaway_url optional ([#2412](#2412)) ([200bc82](200bc82)) * consensus support for pruning (BFT-473) ([#2334](#2334)) ([abc4256](abc4256)) * **contract-verifier:** Add file based config for contract verifier ([#2415](#2415)) ([f4410e3](f4410e3)) * **en:** file based configs for en ([#2110](#2110)) ([7940fa3](7940fa3)) * **en:** Unify snapshot recovery and recovery from L1 ([#2256](#2256)) ([e03a929](e03a929)) * **eth-sender:** Add transient ethereum gateway errors metric ([#2323](#2323)) ([287958d](287958d)) * **eth-sender:** handle transactions for different operators separately to increase throughtput ([#2341](#2341)) ([0619ecc](0619ecc)) * **eth-sender:** separate gas calculations for blobs transactions ([#2247](#2247)) ([627aab9](627aab9)) * **gas_adjuster:** Use eth_feeHistory for both base fee and blobs ([#2322](#2322)) ([9985c26](9985c26)) * L1 batch QC database (BFT-476) ([#2340](#2340)) ([5886b8d](5886b8d)) * **metadata-calculator:** option to use VM runner for protective reads ([#2318](#2318)) ([c147b0c](c147b0c)) * Minimal External API Fetcher ([#2383](#2383)) ([9f255c0](9f255c0)) * **node_framework:** Document implementations ([#2319](#2319)) ([7b3877f](7b3877f)) * **node_framework:** Implement FromContext and IntoContext derive macro ([#2330](#2330)) ([34f2a45](34f2a45)) * **node_framework:** Support shutdown hooks + more ([#2293](#2293)) ([2b2c790](2b2c790)) * **node_framework:** Unify Task types + misc improvements ([#2325](#2325)) ([298a97e](298a97e)) * **node-framework:** New wiring interface ([#2384](#2384)) ([f2f4056](f2f4056)) * **prover:** Add prometheus port to witness generator config ([#2385](#2385)) ([d0e1add](d0e1add)) * **prover:** Add prover_cli stats command ([#2362](#2362)) ([fe65319](fe65319)) * **snapshots_applier:** Add a method to check whether snapshot recovery is done ([#2338](#2338)) ([610a7cf](610a7cf)) * Switch to using crates.io deps ([#2409](#2409)) ([27fabaf](27fabaf)) * **tee:** add Prometheus metrics to the TEE Prover ([#2386](#2386)) ([6153e99](6153e99)) * **tee:** TEE Prover Gateway ([#2333](#2333)) ([f8df34d](f8df34d)) * Unify and port node storage initialization ([#2363](#2363)) ([8ea9791](8ea9791)) * Validium with DA ([#2010](#2010)) ([fe03d0e](fe03d0e)) * **vm-runner:** make vm runner report time taken ([#2369](#2369)) ([275a333](275a333)) * **zk toolbox:** External node support ([#2287](#2287)) ([6384cad](6384cad)) * **zk_toolbox:** Add prover init command ([#2298](#2298)) ([159af3c](159af3c)) ### Bug Fixes * **api:** fix log timestamp format ([#2407](#2407)) ([e9d63db](e9d63db)) * BWIP race condition ([#2405](#2405)) ([8099ab0](8099ab0)) * **config:** Implement proper tests ([#2381](#2381)) ([2ec494b](2ec494b)) * **db:** Fix / extend transaction isolation levels ([#2350](#2350)) ([404ceb9](404ceb9)) * **en:** Fix panics when queuing sync actions during shutdown ([d5935c7](d5935c7)) * **erc20-test:** only approving baseToken allowance when needed ([#2379](#2379)) ([087a3c4](087a3c4)) * **eth-sender:** confirm eth-txs in order of their creation ([#2310](#2310)) ([31a1a04](31a1a04)) * **eth-sender:** fix query returning inflight txs ([#2404](#2404)) ([6a89ca0](6a89ca0)) * **eth-sender:** missing fix in second query calculating txs unsent txs ([#2406](#2406)) ([948b532](948b532)) * **eth-sender:** revert commit changing which type of txs we resend first ([#2327](#2327)) ([ef75292](ef75292)) * Fix rustls setup for jsonrpsee clients ([#2417](#2417)) ([a040f09](a040f09)) * **merkle-tree:** Change `LazyAsyncTreeReader::wait()` signature ([#2314](#2314)) ([408393c](408393c)) * **merkle-tree:** Fix chunk recovery reporting during tree recovery ([#2348](#2348)) ([70b3a8a](70b3a8a)) * **merkle-tree:** Fix connection timeouts during tree pruning ([#2372](#2372)) ([d5935c7](d5935c7)) * **object-store:** Consider some token source errors transient ([#2331](#2331)) ([85386d3](85386d3)) * **tee:** Introduce a 1 second delay in the batch poll ([#2398](#2398)) ([312defe](312defe)) * **vm-runner:** change `processing_started_at` column type to `timestamp` ([#2397](#2397)) ([4221155](4221155)) ### Reverts * "refactor: Rename consensus tasks and split storage (BFT-476)" ([#2364](#2364)) ([e67ec5d](e67ec5d)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Co-authored-by: Lech <88630083+Artemka374@users.noreply.github.com>
## What ❔ This PR puts in place the major pieces needed in the Base Token flow as described in the [design doc](https://www.notion.so/matterlabs/Custom-Base-Token-Tech-Design-74e158112f24463c82d96415bed76d04). This PR adds a preliminary flow of: - Periodically fetch the new price from an external API - Update the conversion ration in the DB - Have the Fee Model use the latest stored conversion ratio In the scope of this PR: - Introducing BaseTokenAdjuster to the Node Framework - Adding the DB migration and the associated DAL - Adding the proper configs for this layer to work - Conditionally updating the gas price with a BaseToken<->ETH conversion ratio such that it's used in charging the gas in the base token and estimating gas for txs. - Unit + Integration tests Out of scope of this PR: - Protocol contract changes needed for a base token chain to work (these are already merged) - Using an external API to fetch prices - Updating the L1 with the conversion ratio - Observability, API redundancy, ## Why ❔ Multiple ZK Chains are ready to go on mainnet with a custom token used as the gas token. ## Checklist <!-- Check your PR fulfills the following items. --> <!-- For draft PRs check the boxes as you complete them. --> - [x] PR title corresponds to the body of PR (we generate changelog entries from PRs). - [x] Tests for the changes have been added / updated. - [x] Documentation comments have been added / updated. - [x] Code has been formatted via `zk fmt` and `zk lint`. - [x] Spellcheck has been run via `zk spellcheck`. --------- Co-authored-by: Ivan Schasny <ivan.schasny@gmail.com>
🤖 I have created a release *beep* *boop* --- ## [15.1.0](matter-labs/zksync-era@prover-v15.0.0...prover-v15.1.0) (2024-07-10) ### Features * **api:** Retry `read_value` ([matter-labs#2352](matter-labs#2352)) ([256a43c](matter-labs@256a43c)) * Base Token Fundamentals ([matter-labs#2204](matter-labs#2204)) ([39709f5](matter-labs@39709f5)) * BWIP ([matter-labs#2258](matter-labs#2258)) ([75bdfcc](matter-labs@75bdfcc)) * change `zkSync` occurences to `ZKsync` ([matter-labs#2227](matter-labs#2227)) ([0b4104d](matter-labs@0b4104d)) * **config:** Make getaway_url optional ([matter-labs#2412](matter-labs#2412)) ([200bc82](matter-labs@200bc82)) * consensus support for pruning (BFT-473) ([matter-labs#2334](matter-labs#2334)) ([abc4256](matter-labs@abc4256)) * **contract-verifier:** Add file based config for contract verifier ([matter-labs#2415](matter-labs#2415)) ([f4410e3](matter-labs@f4410e3)) * **en:** file based configs for en ([matter-labs#2110](matter-labs#2110)) ([7940fa3](matter-labs@7940fa3)) * Make all core workspace crate names start with zksync_ ([matter-labs#2294](matter-labs#2294)) ([8861f29](matter-labs@8861f29)) * Minimal External API Fetcher ([matter-labs#2383](matter-labs#2383)) ([9f255c0](matter-labs@9f255c0)) * **prover:** Add file based config for compressor ([matter-labs#2353](matter-labs#2353)) ([1d6f87d](matter-labs@1d6f87d)) * **prover:** Add file based config for prover fri ([matter-labs#2184](matter-labs#2184)) ([f851615](matter-labs@f851615)) * **prover:** Add file based config for witness vector generator ([matter-labs#2337](matter-labs#2337)) ([f86eb13](matter-labs@f86eb13)) * **prover:** Add file based config support for vk-setup-data-generator-server-fri ([matter-labs#2371](matter-labs#2371)) ([b0e72c9](matter-labs@b0e72c9)) * **prover:** Add prometheus port to witness generator config ([matter-labs#2385](matter-labs#2385)) ([d0e1add](matter-labs@d0e1add)) * **prover:** Add prover_cli stats command ([matter-labs#2362](matter-labs#2362)) ([fe65319](matter-labs@fe65319)) * Remove cached commitments, add BWIP to docs ([matter-labs#2400](matter-labs#2400)) ([e652e4d](matter-labs@e652e4d)) * Remove initialize_components function ([matter-labs#2284](matter-labs#2284)) ([0a38891](matter-labs@0a38891)) * snark proof is already verified inside wrap_proof function ([matter-labs#1903](matter-labs#1903)) ([2c8cf35](matter-labs@2c8cf35)) * Switch to using crates.io deps ([matter-labs#2409](matter-labs#2409)) ([27fabaf](matter-labs@27fabaf)) * **tee:** TEE Prover Gateway ([matter-labs#2333](matter-labs#2333)) ([f8df34d](matter-labs@f8df34d)) * upgraded encoding of transactions in consensus Payload. ([matter-labs#2245](matter-labs#2245)) ([cb6a6c8](matter-labs@cb6a6c8)) * Validium with DA ([matter-labs#2010](matter-labs#2010)) ([fe03d0e](matter-labs@fe03d0e)) * **zk_toolbox:** Add prover run ([matter-labs#2272](matter-labs#2272)) ([598ef7b](matter-labs@598ef7b)) ### Bug Fixes * Fix rustls setup for jsonrpsee clients ([matter-labs#2417](matter-labs#2417)) ([a040f09](matter-labs@a040f09)) * **proof_compressor:** Fix backward compatibility ([matter-labs#2356](matter-labs#2356)) ([76508c4](matter-labs@76508c4)) * prover Cargo.lock ([matter-labs#2280](matter-labs#2280)) ([05c6f35](matter-labs@05c6f35)) * **prover_cli:** Fix Minor Bugs in Prover CLI ([matter-labs#2264](matter-labs#2264)) ([440f2a7](matter-labs@440f2a7)) * **prover_cli:** Remove outdated fix for circuit id in node wg ([matter-labs#2248](matter-labs#2248)) ([db8e71b](matter-labs@db8e71b)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
🤖 I have created a release *beep* *boop* --- ## [24.9.0](matter-labs/zksync-era@core-v24.8.0...core-v24.9.0) (2024-07-10) ### Features * add block timestamp to `eth_getLogs` ([matter-labs#2374](matter-labs#2374)) ([50422b8](matter-labs@50422b8)) * add revert tests to zk_toolbox ([matter-labs#2317](matter-labs#2317)) ([c9ad002](matter-labs@c9ad002)) * add zksync_tee_prover and container to nix ([matter-labs#2403](matter-labs#2403)) ([e0975db](matter-labs@e0975db)) * Adding unstable RPC endpoint to return the execution_info ([matter-labs#2332](matter-labs#2332)) ([3d047ea](matter-labs@3d047ea)) * **api:** Retry `read_value` ([matter-labs#2352](matter-labs#2352)) ([256a43c](matter-labs@256a43c)) * Base Token Fundamentals ([matter-labs#2204](matter-labs#2204)) ([39709f5](matter-labs@39709f5)) * **base-token:** Base token price ratio cache update frequency configurable ([matter-labs#2388](matter-labs#2388)) ([fb4d700](matter-labs@fb4d700)) * BWIP ([matter-labs#2258](matter-labs#2258)) ([75bdfcc](matter-labs@75bdfcc)) * **config:** Make getaway_url optional ([matter-labs#2412](matter-labs#2412)) ([200bc82](matter-labs@200bc82)) * consensus support for pruning (BFT-473) ([matter-labs#2334](matter-labs#2334)) ([abc4256](matter-labs@abc4256)) * **contract-verifier:** Add file based config for contract verifier ([matter-labs#2415](matter-labs#2415)) ([f4410e3](matter-labs@f4410e3)) * **en:** file based configs for en ([matter-labs#2110](matter-labs#2110)) ([7940fa3](matter-labs@7940fa3)) * **en:** Unify snapshot recovery and recovery from L1 ([matter-labs#2256](matter-labs#2256)) ([e03a929](matter-labs@e03a929)) * **eth-sender:** Add transient ethereum gateway errors metric ([matter-labs#2323](matter-labs#2323)) ([287958d](matter-labs@287958d)) * **eth-sender:** handle transactions for different operators separately to increase throughtput ([matter-labs#2341](matter-labs#2341)) ([0619ecc](matter-labs@0619ecc)) * **eth-sender:** separate gas calculations for blobs transactions ([matter-labs#2247](matter-labs#2247)) ([627aab9](matter-labs@627aab9)) * **gas_adjuster:** Use eth_feeHistory for both base fee and blobs ([matter-labs#2322](matter-labs#2322)) ([9985c26](matter-labs@9985c26)) * L1 batch QC database (BFT-476) ([matter-labs#2340](matter-labs#2340)) ([5886b8d](matter-labs@5886b8d)) * **metadata-calculator:** option to use VM runner for protective reads ([matter-labs#2318](matter-labs#2318)) ([c147b0c](matter-labs@c147b0c)) * Minimal External API Fetcher ([matter-labs#2383](matter-labs#2383)) ([9f255c0](matter-labs@9f255c0)) * **node_framework:** Document implementations ([matter-labs#2319](matter-labs#2319)) ([7b3877f](matter-labs@7b3877f)) * **node_framework:** Implement FromContext and IntoContext derive macro ([matter-labs#2330](matter-labs#2330)) ([34f2a45](matter-labs@34f2a45)) * **node_framework:** Support shutdown hooks + more ([matter-labs#2293](matter-labs#2293)) ([2b2c790](matter-labs@2b2c790)) * **node_framework:** Unify Task types + misc improvements ([matter-labs#2325](matter-labs#2325)) ([298a97e](matter-labs@298a97e)) * **node-framework:** New wiring interface ([matter-labs#2384](matter-labs#2384)) ([f2f4056](matter-labs@f2f4056)) * **prover:** Add prometheus port to witness generator config ([matter-labs#2385](matter-labs#2385)) ([d0e1add](matter-labs@d0e1add)) * **prover:** Add prover_cli stats command ([matter-labs#2362](matter-labs#2362)) ([fe65319](matter-labs@fe65319)) * **snapshots_applier:** Add a method to check whether snapshot recovery is done ([matter-labs#2338](matter-labs#2338)) ([610a7cf](matter-labs@610a7cf)) * Switch to using crates.io deps ([matter-labs#2409](matter-labs#2409)) ([27fabaf](matter-labs@27fabaf)) * **tee:** add Prometheus metrics to the TEE Prover ([matter-labs#2386](matter-labs#2386)) ([6153e99](matter-labs@6153e99)) * **tee:** TEE Prover Gateway ([matter-labs#2333](matter-labs#2333)) ([f8df34d](matter-labs@f8df34d)) * Unify and port node storage initialization ([matter-labs#2363](matter-labs#2363)) ([8ea9791](matter-labs@8ea9791)) * Validium with DA ([matter-labs#2010](matter-labs#2010)) ([fe03d0e](matter-labs@fe03d0e)) * **vm-runner:** make vm runner report time taken ([matter-labs#2369](matter-labs#2369)) ([275a333](matter-labs@275a333)) * **zk toolbox:** External node support ([matter-labs#2287](matter-labs#2287)) ([6384cad](matter-labs@6384cad)) * **zk_toolbox:** Add prover init command ([matter-labs#2298](matter-labs#2298)) ([159af3c](matter-labs@159af3c)) ### Bug Fixes * **api:** fix log timestamp format ([matter-labs#2407](matter-labs#2407)) ([e9d63db](matter-labs@e9d63db)) * BWIP race condition ([matter-labs#2405](matter-labs#2405)) ([8099ab0](matter-labs@8099ab0)) * **config:** Implement proper tests ([matter-labs#2381](matter-labs#2381)) ([2ec494b](matter-labs@2ec494b)) * **db:** Fix / extend transaction isolation levels ([matter-labs#2350](matter-labs#2350)) ([404ceb9](matter-labs@404ceb9)) * **en:** Fix panics when queuing sync actions during shutdown ([d5935c7](matter-labs@d5935c7)) * **erc20-test:** only approving baseToken allowance when needed ([matter-labs#2379](matter-labs#2379)) ([087a3c4](matter-labs@087a3c4)) * **eth-sender:** confirm eth-txs in order of their creation ([matter-labs#2310](matter-labs#2310)) ([31a1a04](matter-labs@31a1a04)) * **eth-sender:** fix query returning inflight txs ([matter-labs#2404](matter-labs#2404)) ([6a89ca0](matter-labs@6a89ca0)) * **eth-sender:** missing fix in second query calculating txs unsent txs ([matter-labs#2406](matter-labs#2406)) ([948b532](matter-labs@948b532)) * **eth-sender:** revert commit changing which type of txs we resend first ([matter-labs#2327](matter-labs#2327)) ([ef75292](matter-labs@ef75292)) * Fix rustls setup for jsonrpsee clients ([matter-labs#2417](matter-labs#2417)) ([a040f09](matter-labs@a040f09)) * **merkle-tree:** Change `LazyAsyncTreeReader::wait()` signature ([matter-labs#2314](matter-labs#2314)) ([408393c](matter-labs@408393c)) * **merkle-tree:** Fix chunk recovery reporting during tree recovery ([matter-labs#2348](matter-labs#2348)) ([70b3a8a](matter-labs@70b3a8a)) * **merkle-tree:** Fix connection timeouts during tree pruning ([matter-labs#2372](matter-labs#2372)) ([d5935c7](matter-labs@d5935c7)) * **object-store:** Consider some token source errors transient ([matter-labs#2331](matter-labs#2331)) ([85386d3](matter-labs@85386d3)) * **tee:** Introduce a 1 second delay in the batch poll ([matter-labs#2398](matter-labs#2398)) ([312defe](matter-labs@312defe)) * **vm-runner:** change `processing_started_at` column type to `timestamp` ([matter-labs#2397](matter-labs#2397)) ([4221155](matter-labs@4221155)) ### Reverts * "refactor: Rename consensus tasks and split storage (BFT-476)" ([matter-labs#2364](matter-labs#2364)) ([e67ec5d](matter-labs@e67ec5d)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Co-authored-by: Lech <88630083+Artemka374@users.noreply.github.com>
🤖 I have created a release *beep* *boop* --- ## [0.1.1](zk_toolbox-v0.1.0...zk_toolbox-v0.1.1) (2024-08-02) ### Features * Add recovery tests to zk_supervisor ([#2444](#2444)) ([0c0d10a](0c0d10a)) * add revert tests (external node) to zk_toolbox ([#2408](#2408)) ([3fbbee1](3fbbee1)) * add revert tests to zk_toolbox ([#2317](#2317)) ([c9ad002](c9ad002)) * add zk toolbox ([#2005](#2005)) ([60a633b](60a633b)) * Adding SLChainID ([#2547](#2547)) ([656e830](656e830)) * Base Token Fundamentals ([#2204](#2204)) ([39709f5](39709f5)) * change `zkSync` occurences to `ZKsync` ([#2227](#2227)) ([0b4104d](0b4104d)) * **configs:** Do not panic if config is only partially filled ([#2545](#2545)) ([db13fe3](db13fe3)) * **eth-watch:** Integrate decentralized upgrades ([#2401](#2401)) ([5a48e10](5a48e10)) * L1 batch signing (BFT-474) ([#2414](#2414)) ([ab699db](ab699db)) * Minimal External API Fetcher ([#2383](#2383)) ([9f255c0](9f255c0)) * Poll the main node for the next batch to sign (BFT-496) ([#2544](#2544)) ([22cf820](22cf820)) * Revisit base config values ([#2532](#2532)) ([3fac8ac](3fac8ac)) * Support sending logs via OTLP ([#2556](#2556)) ([1d206c0](1d206c0)) * Switch to using crates.io deps ([#2409](#2409)) ([27fabaf](27fabaf)) * **toolbox:** add format and clippy to zk_toolbox ci ([#2100](#2100)) ([49a5c3a](49a5c3a)) * **toolbox:** add verify to zk-toolbox ([#2013](#2013)) ([23a545c](23a545c)) * **toolbox:** add zk supervisor database commands ([#2051](#2051)) ([f99739b](f99739b)) * **toolbox:** add zk_toolbox ci ([#1985](#1985)) ([4ab4922](4ab4922)) * **toolbox:** refactor config to its own crate ([#2063](#2063)) ([5cfcc24](5cfcc24)) * Update to consensus 0.1.0-rc.4 (BFT-486) ([#2475](#2475)) ([ff6b10c](ff6b10c)) * **vlog:** New vlog interface + opentelemtry improvements ([#2472](#2472)) ([c0815cd](c0815cd)) * **zk toolbox:** External node support ([#2287](#2287)) ([6384cad](6384cad)) * **zk_toolbox:** Add check for zksync repo path ([#2447](#2447)) ([f1cbb74](f1cbb74)) * **zk_toolbox:** Add contract verifier support for zk toolbox ([#2420](#2420)) ([d10a24b](d10a24b)) * **zk_toolbox:** Add grafana support ([#2557](#2557)) ([f5aaefe](f5aaefe)) * **zk_toolbox:** Add prover generate-sk command ([#2222](#2222)) ([40e0a95](40e0a95)) * **zk_toolbox:** Add prover init command ([#2298](#2298)) ([159af3c](159af3c)) * **zk_toolbox:** Add prover run ([#2272](#2272)) ([598ef7b](598ef7b)) * **zk_toolbox:** add test upgrade subcommand to zk_toolbox ([#2515](#2515)) ([1a12f5f](1a12f5f)) * **zk_toolbox:** Add update command ([#2440](#2440)) ([e2fa86f](e2fa86f)) * **zk_toolbox:** Allow toolbox find Zkstack.yaml in parent dirs ([#2430](#2430)) ([0957119](0957119)) * **zk_toolbox:** Clean command ([#2387](#2387)) ([52a4680](52a4680)) * **zk_toolbox:** Dev command ([#2347](#2347)) ([f508ac1](f508ac1)) * **zk_toolbox:** Implement default upgrader deployment ([#2526](#2526)) ([6d86959](6d86959)) * **zk_toolbox:** resume functionality ([#2376](#2376)) ([e5e0473](e5e0473)) * **zk_toolbox:** Small adjustment for zk toolbox ([#2424](#2424)) ([ce43c42](ce43c42)) * **zk_toolbox:** Update prover support ([#2533](#2533)) ([63c92b6](63c92b6)) * **zk_toolbox:** Update reamde for toolbox ([#2531](#2531)) ([d5ba7d8](d5ba7d8)) * **zk_toolbox:** use configs from the main repo ([#2470](#2470)) ([4222d13](4222d13)) * **zk_toolbox:** Use docker compose instead of docker-compose ([#2195](#2195)) ([2f528ec](2f528ec)) * **zk_toolbox:** use low level command for running verbose command" ([#2358](#2358)) ([29671c8](29671c8)) * **zk-toolbox:** add balance check ([#2016](#2016)) ([a8b8e4b](a8b8e4b)) * **zk-toolbox:** Deploy custom token ([#2329](#2329)) ([3a8fed4](3a8fed4)) ### Bug Fixes * **api:** correct default fee data in eth call ([#2072](#2072)) ([e71f6f9](e71f6f9)) * disable localhost wallets on external network interaction ([#2212](#2212)) ([a00317d](a00317d)) * **house-keeper:** Fix queue size queries ([#2106](#2106)) ([183502a](183502a)) * **toolbox:** Temporary disable fast mode for deploying l1 contracts … ([#2011](#2011)) ([2a1d37b](2a1d37b)) * update rust toolchain version ([#2047](#2047)) ([9fe5212](9fe5212)) * **zk_toolbox:** Add chain id for local wallet ([#2041](#2041)) ([8e147c1](8e147c1)) * **zk_toolbox:** Fix error with balances ([#2034](#2034)) ([5d23a3e](5d23a3e)) * **zk_toolbox:** Fix installation guide ([#2035](#2035)) ([e9038be](e9038be)) * **zk_toolbox:** Fix protocol version ([#2118](#2118)) ([67f6080](67f6080)) * **zk_toolbox:** improve readme to include containers command and cd ([#2073](#2073)) ([5e5628f](5e5628f)) * **zk_toolbox:** Move l1 rpc to init stage ([#2074](#2074)) ([c127ff1](c127ff1)) * **zk_toolbox:** readme added dependencies section and cleaned up ([#2044](#2044)) ([78244c7](78244c7)) * **zk_toolbox:** Set proper pubdata sending mode ([#2507](#2507)) ([21fbd77](21fbd77)) * **zk_toolbox:** Show balance ([#2254](#2254)) ([f1d9f03](f1d9f03)) * **zk_toolbox:** Some small nit ([#2023](#2023)) ([4e96e32](4e96e32)) * **zk_toolbox:** Use both folders for loading contracts ([#2030](#2030)) ([97c6d5c](97c6d5c)) * **zk_toolbox:** Use existing ecosystem ([#2534](#2534)) ([99fd2bd](99fd2bd)) * **zk_toolbox:** Use slug crate instead of self written function ([#2309](#2309)) ([a61f273](a61f273)) * **zk_toolbox:** Use the same l2 address for shared and erc20 bridge ([#2260](#2260)) ([26f2010](26f2010)) * **zk_tool:** Change some texts ([#2027](#2027)) ([a6232c5](a6232c5)) * zk-toolbox integration tests ci ([#2226](#2226)) ([3f521ac](3f521ac)) ### Reverts * "feat: Poll the main node for the next batch to sign (BFT-496)" ([#2574](#2574)) ([72d3be8](72d3be8)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
What ❔
This PR puts in place the major pieces needed in the Base Token flow as described in the design doc.
This PR adds a preliminary flow of:
In the scope of this PR:
Out of scope of this PR:
Why ❔
Multiple ZK Chains are ready to go on mainnet with a custom token used as the gas token.
Checklist
zk fmt
andzk lint
.zk spellcheck
.