@aztec/end-to-end 0.0.1-commit.b655e406 → 0.0.1-commit.b8a057fa
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +217 -14
- package/dest/automine/automine_test_context.d.ts +85 -0
- package/dest/automine/automine_test_context.d.ts.map +1 -0
- package/dest/automine/automine_test_context.js +98 -0
- package/dest/automine/contracts/fixtures/storage_proof_fetcher.d.ts +2 -0
- package/dest/automine/contracts/fixtures/storage_proof_fetcher.d.ts.map +1 -0
- package/dest/automine/contracts/fixtures/storage_proof_fetcher.js +184 -0
- package/dest/automine/contracts/fixtures/storage_proof_fixture.d.ts +18 -0
- package/dest/automine/contracts/fixtures/storage_proof_fixture.d.ts.map +1 -0
- package/dest/automine/contracts/fixtures/storage_proof_fixture.js +120 -0
- package/dest/automine/delivery/onchain_delivery_harness.d.ts +17 -0
- package/dest/automine/delivery/onchain_delivery_harness.d.ts.map +1 -0
- package/dest/automine/delivery/onchain_delivery_harness.js +123 -0
- package/dest/automine/token/blacklist_token_contract_test.d.ts +49 -0
- package/dest/automine/token/blacklist_token_contract_test.d.ts.map +1 -0
- package/dest/automine/token/blacklist_token_contract_test.js +166 -0
- package/dest/automine/token/token_contract_test.d.ts +40 -0
- package/dest/automine/token/token_contract_test.d.ts.map +1 -0
- package/dest/automine/token/token_contract_test.js +119 -0
- package/dest/automine/token/token_test_helpers.d.ts +73 -0
- package/dest/automine/token/token_test_helpers.d.ts.map +1 -0
- package/dest/automine/token/token_test_helpers.js +97 -0
- package/dest/bench/client_flows/benchmark.d.ts +17 -2
- package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/benchmark.js +40 -1
- package/dest/bench/client_flows/client_flows_benchmark.d.ts +26 -20
- package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.js +159 -140
- package/dest/bench/client_flows/config.d.ts +2 -2
- package/dest/bench/client_flows/config.d.ts.map +1 -1
- package/dest/bench/client_flows/config.js +18 -0
- package/dest/bench/client_flows/data_extractor.d.ts +1 -1
- package/dest/bench/client_flows/data_extractor.js +8 -27
- package/dest/bench/utils.d.ts +10 -9
- package/dest/bench/utils.d.ts.map +1 -1
- package/dest/bench/utils.js +126 -23
- package/dest/composed/ha/ha_full_setup.d.ts +77 -0
- package/dest/composed/ha/ha_full_setup.d.ts.map +1 -0
- package/dest/composed/ha/ha_full_setup.js +383 -0
- package/dest/composed/web3signer/multi_validator_keystore_utils.d.ts +12 -0
- package/dest/composed/web3signer/multi_validator_keystore_utils.d.ts.map +1 -0
- package/dest/{e2e_multi_validator/utils.js → composed/web3signer/multi_validator_keystore_utils.js} +1 -1
- package/dest/fixtures/authwit_proxy.d.ts +15 -0
- package/dest/fixtures/authwit_proxy.d.ts.map +1 -0
- package/dest/fixtures/authwit_proxy.js +34 -0
- package/dest/fixtures/e2e_prover_test.d.ts +27 -29
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
- package/dest/fixtures/e2e_prover_test.js +156 -156
- package/dest/fixtures/elu_monitor.d.ts +21 -0
- package/dest/fixtures/elu_monitor.d.ts.map +1 -0
- package/dest/fixtures/elu_monitor.js +102 -0
- package/dest/fixtures/fixtures.d.ts +83 -3
- package/dest/fixtures/fixtures.d.ts.map +1 -1
- package/dest/fixtures/fixtures.js +86 -3
- package/dest/fixtures/get_acvm_config.d.ts +1 -1
- package/dest/fixtures/get_acvm_config.js +1 -1
- package/dest/fixtures/get_bb_config.d.ts +1 -1
- package/dest/fixtures/get_bb_config.d.ts.map +1 -1
- package/dest/fixtures/get_bb_config.js +5 -5
- package/dest/fixtures/ha_setup.d.ts +71 -0
- package/dest/fixtures/ha_setup.d.ts.map +1 -0
- package/dest/fixtures/ha_setup.js +119 -0
- package/dest/fixtures/index.d.ts +3 -1
- package/dest/fixtures/index.d.ts.map +1 -1
- package/dest/fixtures/index.js +2 -0
- package/dest/fixtures/l1_to_l2_messaging.d.ts +4 -3
- package/dest/fixtures/l1_to_l2_messaging.d.ts.map +1 -1
- package/dest/fixtures/l1_to_l2_messaging.js +2 -2
- package/dest/fixtures/logging.d.ts +1 -1
- package/dest/fixtures/schnorr_hardcoded_account_contract.d.ts +25 -0
- package/dest/fixtures/schnorr_hardcoded_account_contract.d.ts.map +1 -0
- package/dest/fixtures/schnorr_hardcoded_account_contract.js +37 -0
- package/dest/fixtures/setup.d.ts +269 -0
- package/dest/fixtures/setup.d.ts.map +1 -0
- package/dest/fixtures/setup.js +688 -0
- package/dest/fixtures/setup_p2p_test.d.ts +22 -11
- package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
- package/dest/fixtures/setup_p2p_test.js +60 -41
- package/dest/fixtures/timing.d.ts +42 -0
- package/dest/fixtures/timing.d.ts.map +1 -0
- package/dest/fixtures/timing.js +72 -0
- package/dest/fixtures/token_utils.d.ts +26 -5
- package/dest/fixtures/token_utils.d.ts.map +1 -1
- package/dest/fixtures/token_utils.js +33 -9
- package/dest/fixtures/utils.d.ts +5 -192
- package/dest/fixtures/utils.d.ts.map +1 -1
- package/dest/fixtures/utils.js +4 -648
- package/dest/fixtures/wait_helpers.d.ts +135 -0
- package/dest/fixtures/wait_helpers.d.ts.map +1 -0
- package/dest/fixtures/wait_helpers.js +154 -0
- package/dest/fixtures/web3signer.d.ts +1 -1
- package/dest/fixtures/web3signer.js +1 -1
- package/dest/fixtures/with_telemetry_utils.d.ts +2 -2
- package/dest/fixtures/with_telemetry_utils.d.ts.map +1 -1
- package/dest/fixtures/with_telemetry_utils.js +2 -2
- package/dest/forward-compatibility/wallet_rpc_client.d.ts +7 -0
- package/dest/forward-compatibility/wallet_rpc_client.d.ts.map +1 -0
- package/dest/forward-compatibility/wallet_rpc_client.js +15 -0
- package/dest/forward-compatibility/wallet_service.d.ts +3 -0
- package/dest/forward-compatibility/wallet_service.d.ts.map +1 -0
- package/dest/forward-compatibility/wallet_service.js +109 -0
- package/dest/index.d.ts +1 -1
- package/dest/install_legacy_contracts.d.cts +10 -0
- package/dest/install_legacy_contracts.d.cts.map +1 -0
- package/dest/legacy-jest-resolver.d.cts +3 -0
- package/dest/legacy-jest-resolver.d.cts.map +1 -0
- package/dest/multi-node/block-production/setup.d.ts +97 -0
- package/dest/multi-node/block-production/setup.d.ts.map +1 -0
- package/dest/multi-node/block-production/setup.js +158 -0
- package/dest/multi-node/governance/setup.d.ts +67 -0
- package/dest/multi-node/governance/setup.d.ts.map +1 -0
- package/dest/multi-node/governance/setup.js +126 -0
- package/dest/multi-node/multi_node_test_context.d.ts +212 -0
- package/dest/multi-node/multi_node_test_context.d.ts.map +1 -0
- package/dest/multi-node/multi_node_test_context.js +347 -0
- package/dest/multi-node/slashing/inactivity_setup.d.ts +27 -0
- package/dest/multi-node/slashing/inactivity_setup.d.ts.map +1 -0
- package/dest/multi-node/slashing/inactivity_setup.js +111 -0
- package/dest/multi-node/slashing/setup.d.ts +167 -0
- package/dest/multi-node/slashing/setup.d.ts.map +1 -0
- package/dest/multi-node/slashing/setup.js +275 -0
- package/dest/p2p/p2p_network.d.ts +325 -0
- package/dest/p2p/p2p_network.d.ts.map +1 -0
- package/dest/p2p/p2p_network.js +389 -0
- package/dest/p2p/reqresp/utils.d.ts +19 -0
- package/dest/p2p/reqresp/utils.d.ts.map +1 -0
- package/dest/p2p/reqresp/utils.js +193 -0
- package/dest/p2p/shared.d.ts +72 -0
- package/dest/p2p/shared.d.ts.map +1 -0
- package/dest/p2p/shared.js +212 -0
- package/dest/quality_of_service/grafana_client.d.ts +41 -0
- package/dest/quality_of_service/grafana_client.d.ts.map +1 -0
- package/dest/quality_of_service/{alert_checker.js → grafana_client.js} +1 -1
- package/dest/quality_of_service/prometheus_client.d.ts +38 -0
- package/dest/quality_of_service/prometheus_client.d.ts.map +1 -0
- package/dest/quality_of_service/prometheus_client.js +67 -0
- package/dest/shared/cross_chain_test_harness.d.ts +11 -8
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +45 -40
- package/dest/shared/gas_portal_test_harness.d.ts +9 -6
- package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
- package/dest/shared/gas_portal_test_harness.js +28 -16
- package/dest/shared/index.d.ts +3 -2
- package/dest/shared/index.d.ts.map +1 -1
- package/dest/shared/index.js +1 -0
- package/dest/shared/jest_setup.d.ts +1 -1
- package/dest/shared/jest_setup.js +41 -1
- package/dest/shared/mock_state_view.d.ts +86 -0
- package/dest/shared/mock_state_view.d.ts.map +1 -0
- package/dest/shared/mock_state_view.js +186 -0
- package/dest/shared/submit-transactions.d.ts +4 -4
- package/dest/shared/submit-transactions.d.ts.map +1 -1
- package/dest/shared/submit-transactions.js +19 -14
- package/dest/shared/timing_env.d.js +5 -0
- package/dest/shared/timing_env.js +365 -0
- package/dest/shared/uniswap_l1_l2.d.ts +3 -27
- package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
- package/dest/shared/uniswap_l1_l2.js +86 -54
- package/dest/shared/wait_for_l1_to_l2_message.d.ts +13 -0
- package/dest/shared/wait_for_l1_to_l2_message.d.ts.map +1 -0
- package/dest/shared/wait_for_l1_to_l2_message.js +10 -0
- package/dest/simulators/index.d.ts +1 -1
- package/dest/simulators/lending_simulator.d.ts +11 -4
- package/dest/simulators/lending_simulator.d.ts.map +1 -1
- package/dest/simulators/lending_simulator.js +33 -19
- package/dest/simulators/token_simulator.d.ts +1 -1
- package/dest/simulators/token_simulator.d.ts.map +1 -1
- package/dest/simulators/token_simulator.js +3 -24
- package/dest/single-node/cross-chain/cross_chain_messaging_test.d.ts +75 -0
- package/dest/single-node/cross-chain/cross_chain_messaging_test.d.ts.map +1 -0
- package/dest/single-node/cross-chain/cross_chain_messaging_test.js +209 -0
- package/dest/single-node/cross-chain/message_test_helpers.d.ts +38 -0
- package/dest/single-node/cross-chain/message_test_helpers.d.ts.map +1 -0
- package/dest/single-node/cross-chain/message_test_helpers.js +70 -0
- package/dest/single-node/fees/bridging_race.notest.d.ts +2 -0
- package/dest/single-node/fees/bridging_race.notest.d.ts.map +1 -0
- package/dest/{e2e_fees → single-node/fees}/bridging_race.notest.js +21 -10
- package/dest/single-node/fees/fees_test.d.ts +93 -0
- package/dest/single-node/fees/fees_test.d.ts.map +1 -0
- package/dest/single-node/fees/fees_test.js +274 -0
- package/dest/single-node/l1-reorgs/setup.d.ts +42 -0
- package/dest/single-node/l1-reorgs/setup.d.ts.map +1 -0
- package/dest/single-node/l1-reorgs/setup.js +57 -0
- package/dest/single-node/partial-proofs/setup.d.ts +5 -0
- package/dest/single-node/partial-proofs/setup.d.ts.map +1 -0
- package/dest/single-node/partial-proofs/setup.js +5 -0
- package/dest/single-node/proving/setup.d.ts +5 -0
- package/dest/single-node/proving/setup.d.ts.map +1 -0
- package/dest/single-node/proving/setup.js +5 -0
- package/dest/single-node/recovery/setup.d.ts +5 -0
- package/dest/single-node/recovery/setup.d.ts.map +1 -0
- package/dest/single-node/recovery/setup.js +5 -0
- package/dest/single-node/setup.d.ts +49 -0
- package/dest/single-node/setup.d.ts.map +1 -0
- package/dest/single-node/setup.js +56 -0
- package/dest/single-node/single_node_test_context.d.ts +360 -0
- package/dest/single-node/single_node_test_context.d.ts.map +1 -0
- package/dest/single-node/single_node_test_context.js +833 -0
- package/dest/spartan/setup_test_wallets.d.ts +18 -6
- package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.js +169 -30
- package/dest/spartan/tx_metrics.d.ts +111 -0
- package/dest/spartan/tx_metrics.d.ts.map +1 -0
- package/dest/spartan/tx_metrics.js +507 -0
- package/dest/spartan/utils/bot.d.ts +28 -0
- package/dest/spartan/utils/bot.d.ts.map +1 -0
- package/dest/spartan/utils/bot.js +142 -0
- package/dest/spartan/utils/chaos.d.ts +79 -0
- package/dest/spartan/utils/chaos.d.ts.map +1 -0
- package/dest/spartan/utils/chaos.js +142 -0
- package/dest/spartan/utils/clients.d.ts +39 -0
- package/dest/spartan/utils/clients.d.ts.map +1 -0
- package/dest/spartan/utils/clients.js +90 -0
- package/dest/spartan/utils/config.d.ts +19 -0
- package/dest/spartan/utils/config.d.ts.map +1 -0
- package/dest/spartan/utils/config.js +23 -0
- package/dest/spartan/utils/health.d.ts +63 -0
- package/dest/spartan/utils/health.d.ts.map +1 -0
- package/dest/spartan/utils/health.js +202 -0
- package/dest/spartan/utils/helm.d.ts +15 -0
- package/dest/spartan/utils/helm.d.ts.map +1 -0
- package/dest/spartan/utils/helm.js +47 -0
- package/dest/spartan/utils/index.d.ts +11 -0
- package/dest/spartan/utils/index.d.ts.map +1 -0
- package/dest/spartan/utils/index.js +22 -0
- package/dest/spartan/utils/k8s.d.ts +128 -0
- package/dest/spartan/utils/k8s.d.ts.map +1 -0
- package/dest/spartan/utils/k8s.js +381 -0
- package/dest/spartan/utils/nodes.d.ts +40 -0
- package/dest/spartan/utils/nodes.d.ts.map +1 -0
- package/dest/spartan/utils/nodes.js +461 -0
- package/dest/spartan/utils/pod_logs.d.ts +25 -0
- package/dest/spartan/utils/pod_logs.d.ts.map +1 -0
- package/dest/spartan/utils/pod_logs.js +74 -0
- package/dest/spartan/utils/scripts.d.ts +30 -0
- package/dest/spartan/utils/scripts.d.ts.map +1 -0
- package/dest/spartan/utils/scripts.js +81 -0
- package/dest/spartan/utils.d.ts +2 -218
- package/dest/spartan/utils.d.ts.map +1 -1
- package/dest/spartan/utils.js +1 -749
- package/dest/test-wallet/test_wallet.d.ts +105 -0
- package/dest/test-wallet/test_wallet.d.ts.map +1 -0
- package/dest/test-wallet/test_wallet.js +323 -0
- package/dest/test-wallet/utils.d.ts +76 -0
- package/dest/test-wallet/utils.d.ts.map +1 -0
- package/dest/test-wallet/utils.js +126 -0
- package/dest/test-wallet/wallet_worker_script.d.ts +2 -0
- package/dest/test-wallet/wallet_worker_script.d.ts.map +1 -0
- package/dest/test-wallet/wallet_worker_script.js +56 -0
- package/dest/test-wallet/worker_wallet.d.ts +53 -0
- package/dest/test-wallet/worker_wallet.d.ts.map +1 -0
- package/dest/test-wallet/worker_wallet.js +155 -0
- package/dest/test-wallet/worker_wallet_schema.d.ts +4 -0
- package/dest/test-wallet/worker_wallet_schema.d.ts.map +1 -0
- package/dest/test-wallet/worker_wallet_schema.js +22 -0
- package/package.json +57 -47
- package/src/automine/README.md +60 -0
- package/src/automine/automine_test_context.ts +153 -0
- package/src/automine/contracts/fixtures/storage_proof.json +915 -0
- package/src/automine/contracts/fixtures/storage_proof_fetcher.ts +190 -0
- package/src/automine/contracts/fixtures/storage_proof_fixture.ts +173 -0
- package/src/automine/delivery/onchain_delivery_harness.ts +177 -0
- package/src/automine/token/blacklist_token_contract_test.ts +208 -0
- package/src/automine/token/token_contract_test.ts +146 -0
- package/src/automine/token/token_test_helpers.ts +138 -0
- package/src/bench/client_flows/benchmark.ts +45 -2
- package/src/bench/client_flows/client_flows_benchmark.ts +227 -211
- package/src/bench/client_flows/config.ts +9 -1
- package/src/bench/client_flows/data_extractor.ts +7 -28
- package/src/bench/utils.ts +144 -25
- package/src/composed/ha/ha_full_setup.ts +466 -0
- package/src/{e2e_multi_validator/utils.ts → composed/web3signer/multi_validator_keystore_utils.ts} +1 -1
- package/src/fixtures/authwit_proxy.ts +54 -0
- package/src/fixtures/dumps/epoch_proof_result.json +1 -1
- package/src/fixtures/e2e_prover_test.ts +175 -214
- package/src/fixtures/elu_monitor.ts +126 -0
- package/src/fixtures/fixtures.ts +110 -5
- package/src/fixtures/get_acvm_config.ts +1 -1
- package/src/fixtures/get_bb_config.ts +7 -6
- package/src/fixtures/ha_setup.ts +192 -0
- package/src/fixtures/index.ts +2 -0
- package/src/fixtures/l1_to_l2_messaging.ts +4 -2
- package/src/fixtures/schnorr_hardcoded_account_contract.ts +49 -0
- package/src/fixtures/setup.ts +987 -0
- package/src/fixtures/setup_p2p_test.ts +72 -58
- package/src/fixtures/timing.ts +97 -0
- package/src/fixtures/token_utils.ts +47 -11
- package/src/fixtures/utils.ts +26 -947
- package/src/fixtures/wait_helpers.ts +333 -0
- package/src/fixtures/web3signer.ts +1 -1
- package/src/fixtures/with_telemetry_utils.ts +2 -2
- package/src/forward-compatibility/wallet_rpc_client.ts +14 -0
- package/src/forward-compatibility/wallet_service.ts +106 -0
- package/src/guides/up_quick_start.sh +8 -5
- package/src/infra/README.md +12 -0
- package/src/install_legacy_contracts.cjs +75 -0
- package/src/legacy-jest-resolver.cjs +112 -0
- package/src/multi-node/README.md +95 -0
- package/src/multi-node/block-production/setup.ts +272 -0
- package/src/multi-node/governance/setup.ts +172 -0
- package/src/multi-node/multi_node_test_context.ts +447 -0
- package/src/multi-node/slashing/inactivity_setup.ts +139 -0
- package/src/multi-node/slashing/setup.ts +433 -0
- package/src/p2p/README.md +78 -0
- package/src/p2p/p2p_network.ts +542 -0
- package/src/p2p/reqresp/utils.ts +263 -0
- package/src/p2p/shared.ts +329 -0
- package/src/quality_of_service/{alert_checker.ts → grafana_client.ts} +1 -1
- package/src/quality_of_service/prometheus_client.ts +113 -0
- package/src/shared/cross_chain_test_harness.ts +51 -43
- package/src/shared/gas_portal_test_harness.ts +36 -18
- package/src/shared/index.ts +2 -1
- package/src/shared/jest_setup.ts +51 -1
- package/src/shared/mock_state_view.ts +188 -0
- package/src/shared/submit-transactions.ts +22 -19
- package/src/shared/timing_env.d.mts +39 -0
- package/src/shared/timing_env.mjs +363 -0
- package/src/shared/uniswap_l1_l2.ts +136 -115
- package/src/shared/wait_for_l1_to_l2_message.ts +23 -0
- package/src/simulators/lending_simulator.ts +40 -20
- package/src/simulators/token_simulator.ts +6 -30
- package/src/single-node/README.md +60 -0
- package/src/single-node/cross-chain/cross_chain_messaging_test.ts +302 -0
- package/src/single-node/cross-chain/message_test_helpers.ts +125 -0
- package/src/{e2e_fees → single-node/fees}/bridging_race.notest.ts +23 -15
- package/src/single-node/fees/fees_test.ts +368 -0
- package/src/single-node/l1-reorgs/setup.ts +93 -0
- package/src/single-node/partial-proofs/setup.ts +8 -0
- package/src/single-node/proving/setup.ts +15 -0
- package/src/single-node/recovery/setup.ts +8 -0
- package/src/single-node/setup.ts +63 -0
- package/src/single-node/single_node_test_context.ts +1041 -0
- package/src/spartan/DEVELOP.md +7 -0
- package/src/spartan/setup_test_wallets.ts +243 -32
- package/src/spartan/tx_metrics.ts +460 -0
- package/src/spartan/utils/bot.ts +188 -0
- package/src/spartan/utils/chaos.ts +253 -0
- package/src/spartan/utils/clients.ts +100 -0
- package/src/spartan/utils/config.ts +29 -0
- package/src/spartan/utils/health.ts +255 -0
- package/src/spartan/utils/helm.ts +84 -0
- package/src/spartan/utils/index.ts +71 -0
- package/src/spartan/utils/k8s.ts +535 -0
- package/src/spartan/utils/nodes.ts +543 -0
- package/src/spartan/utils/pod_logs.ts +99 -0
- package/src/spartan/utils/scripts.ts +99 -0
- package/src/spartan/utils.ts +1 -942
- package/src/test-wallet/test_wallet.ts +429 -0
- package/src/test-wallet/utils.ts +205 -0
- package/src/test-wallet/wallet_worker_script.ts +66 -0
- package/src/test-wallet/worker_wallet.ts +214 -0
- package/src/test-wallet/worker_wallet_schema.ts +14 -0
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +0 -54
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +0 -1
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +0 -185
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +0 -41
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +0 -1
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +0 -107
- package/dest/e2e_deploy_contract/deploy_test.d.ts +0 -36
- package/dest/e2e_deploy_contract/deploy_test.d.ts.map +0 -1
- package/dest/e2e_deploy_contract/deploy_test.js +0 -45
- package/dest/e2e_epochs/epochs_test.d.ts +0 -92
- package/dest/e2e_epochs/epochs_test.d.ts.map +0 -1
- package/dest/e2e_epochs/epochs_test.js +0 -336
- package/dest/e2e_fees/bridging_race.notest.d.ts +0 -2
- package/dest/e2e_fees/bridging_race.notest.d.ts.map +0 -1
- package/dest/e2e_fees/fees_test.d.ts +0 -84
- package/dest/e2e_fees/fees_test.d.ts.map +0 -1
- package/dest/e2e_fees/fees_test.js +0 -260
- package/dest/e2e_l1_publisher/write_json.d.ts +0 -10
- package/dest/e2e_l1_publisher/write_json.d.ts.map +0 -1
- package/dest/e2e_l1_publisher/write_json.js +0 -57
- package/dest/e2e_multi_validator/utils.d.ts +0 -12
- package/dest/e2e_multi_validator/utils.d.ts.map +0 -1
- package/dest/e2e_nested_contract/nested_contract_test.d.ts +0 -29
- package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +0 -1
- package/dest/e2e_nested_contract/nested_contract_test.js +0 -63
- package/dest/e2e_p2p/inactivity_slash_test.d.ts +0 -31
- package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +0 -1
- package/dest/e2e_p2p/inactivity_slash_test.js +0 -135
- package/dest/e2e_p2p/p2p_network.d.ts +0 -108
- package/dest/e2e_p2p/p2p_network.d.ts.map +0 -1
- package/dest/e2e_p2p/p2p_network.js +0 -318
- package/dest/e2e_p2p/shared.d.ts +0 -46
- package/dest/e2e_p2p/shared.d.ts.map +0 -1
- package/dest/e2e_p2p/shared.js +0 -183
- package/dest/e2e_token_contract/token_contract_test.d.ts +0 -35
- package/dest/e2e_token_contract/token_contract_test.d.ts.map +0 -1
- package/dest/e2e_token_contract/token_contract_test.js +0 -126
- package/dest/fixtures/setup_l1_contracts.d.ts +0 -6
- package/dest/fixtures/setup_l1_contracts.d.ts.map +0 -1
- package/dest/fixtures/setup_l1_contracts.js +0 -17
- package/dest/fixtures/snapshot_manager.d.ts +0 -95
- package/dest/fixtures/snapshot_manager.d.ts.map +0 -1
- package/dest/fixtures/snapshot_manager.js +0 -505
- package/dest/quality_of_service/alert_checker.d.ts +0 -41
- package/dest/quality_of_service/alert_checker.d.ts.map +0 -1
- package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +0 -256
- package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +0 -178
- package/src/e2e_deploy_contract/deploy_test.ts +0 -78
- package/src/e2e_epochs/epochs_test.ts +0 -437
- package/src/e2e_fees/fees_test.ts +0 -378
- package/src/e2e_l1_publisher/write_json.ts +0 -76
- package/src/e2e_nested_contract/nested_contract_test.ts +0 -95
- package/src/e2e_p2p/inactivity_slash_test.ts +0 -178
- package/src/e2e_p2p/p2p_network.ts +0 -472
- package/src/e2e_p2p/shared.ts +0 -282
- package/src/e2e_token_contract/token_contract_test.ts +0 -167
- package/src/fixtures/setup_l1_contracts.ts +0 -26
- package/src/fixtures/snapshot_manager.ts +0 -665
|
@@ -1,378 +0,0 @@
|
|
|
1
|
-
import type { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
2
|
-
import { type Logger, createLogger } from '@aztec/aztec.js/log';
|
|
3
|
-
import type { AztecNode } from '@aztec/aztec.js/node';
|
|
4
|
-
import { CheatCodes } from '@aztec/aztec/testing';
|
|
5
|
-
import { type DeployL1ContractsArgs, RollupContract, createExtendedL1Client } from '@aztec/ethereum';
|
|
6
|
-
import { ChainMonitor } from '@aztec/ethereum/test';
|
|
7
|
-
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
8
|
-
import { sleep } from '@aztec/foundation/sleep';
|
|
9
|
-
import { TestERC20Abi } from '@aztec/l1-artifacts';
|
|
10
|
-
import { AppSubscriptionContract } from '@aztec/noir-contracts.js/AppSubscription';
|
|
11
|
-
import { FPCContract } from '@aztec/noir-contracts.js/FPC';
|
|
12
|
-
import { FeeJuiceContract } from '@aztec/noir-contracts.js/FeeJuice';
|
|
13
|
-
import { SponsoredFPCContract } from '@aztec/noir-contracts.js/SponsoredFPC';
|
|
14
|
-
import { TokenContract as BananaCoin } from '@aztec/noir-contracts.js/Token';
|
|
15
|
-
import { CounterContract } from '@aztec/noir-test-contracts.js/Counter';
|
|
16
|
-
import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
17
|
-
import { getCanonicalFeeJuice } from '@aztec/protocol-contracts/fee-juice';
|
|
18
|
-
import { GasSettings } from '@aztec/stdlib/gas';
|
|
19
|
-
import { TestWallet } from '@aztec/test-wallet/server';
|
|
20
|
-
|
|
21
|
-
import { getContract } from 'viem';
|
|
22
|
-
|
|
23
|
-
import { MNEMONIC } from '../fixtures/fixtures.js';
|
|
24
|
-
import {
|
|
25
|
-
type ISnapshotManager,
|
|
26
|
-
type SubsystemsContext,
|
|
27
|
-
createSnapshotManager,
|
|
28
|
-
deployAccounts,
|
|
29
|
-
} from '../fixtures/snapshot_manager.js';
|
|
30
|
-
import { mintTokensToPrivate } from '../fixtures/token_utils.js';
|
|
31
|
-
import {
|
|
32
|
-
type BalancesFn,
|
|
33
|
-
type SetupOptions,
|
|
34
|
-
ensureAccountContractsPublished,
|
|
35
|
-
getBalancesFn,
|
|
36
|
-
setupSponsoredFPC,
|
|
37
|
-
} from '../fixtures/utils.js';
|
|
38
|
-
import { FeeJuicePortalTestingHarnessFactory, type GasBridgingTestHarness } from '../shared/gas_portal_test_harness.js';
|
|
39
|
-
|
|
40
|
-
const { E2E_DATA_PATH: dataPath } = process.env;
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Test fixture for testing fees. Provides the following snapshots:
|
|
44
|
-
* InitialAccounts: Initializes 3 Schnorr account contracts.
|
|
45
|
-
* PublicDeployAccounts: Deploys the accounts publicly.
|
|
46
|
-
* DeployFeeJuice: Deploys the Fee Juice contract.
|
|
47
|
-
* FPCSetup: Deploys BananaCoin and FPC contracts, and bridges gas from L1.
|
|
48
|
-
* SponsoredFPCSetup: Deploys Sponsored FPC contract, and bridges gas from L1.
|
|
49
|
-
* FundAlice: Mints private and public bananas to Alice.
|
|
50
|
-
* SetupSubscription: Deploys a counter contract and a subscription contract, and mints Fee Juice to the subscription contract.
|
|
51
|
-
*/
|
|
52
|
-
export class FeesTest {
|
|
53
|
-
private snapshotManager: ISnapshotManager;
|
|
54
|
-
private accounts: AztecAddress[] = [];
|
|
55
|
-
|
|
56
|
-
public logger: Logger;
|
|
57
|
-
public aztecNode!: AztecNode;
|
|
58
|
-
public cheatCodes!: CheatCodes;
|
|
59
|
-
|
|
60
|
-
public wallet!: TestWallet;
|
|
61
|
-
public aliceAddress!: AztecAddress;
|
|
62
|
-
public bobAddress!: AztecAddress;
|
|
63
|
-
public sequencerAddress!: AztecAddress;
|
|
64
|
-
public coinbase!: EthAddress;
|
|
65
|
-
|
|
66
|
-
public fpcAdmin!: AztecAddress;
|
|
67
|
-
|
|
68
|
-
public gasSettings!: GasSettings;
|
|
69
|
-
|
|
70
|
-
public rollupContract!: RollupContract;
|
|
71
|
-
|
|
72
|
-
public feeJuiceContract!: FeeJuiceContract;
|
|
73
|
-
public bananaCoin!: BananaCoin;
|
|
74
|
-
public bananaFPC!: FPCContract;
|
|
75
|
-
public sponsoredFPC!: SponsoredFPCContract;
|
|
76
|
-
public counterContract!: CounterContract;
|
|
77
|
-
public subscriptionContract!: AppSubscriptionContract;
|
|
78
|
-
public feeJuiceBridgeTestHarness!: GasBridgingTestHarness;
|
|
79
|
-
|
|
80
|
-
public context!: SubsystemsContext;
|
|
81
|
-
public chainMonitor!: ChainMonitor;
|
|
82
|
-
|
|
83
|
-
public getCoinbaseBalance!: () => Promise<bigint>;
|
|
84
|
-
public getCoinbaseSequencerRewards!: () => Promise<bigint>;
|
|
85
|
-
public getGasBalanceFn!: BalancesFn;
|
|
86
|
-
public getBananaPublicBalanceFn!: BalancesFn;
|
|
87
|
-
public getBananaPrivateBalanceFn!: BalancesFn;
|
|
88
|
-
public getProverFee!: (blockNumber: number) => Promise<bigint>;
|
|
89
|
-
|
|
90
|
-
public readonly ALICE_INITIAL_BANANAS = BigInt(1e22);
|
|
91
|
-
public readonly SUBSCRIPTION_AMOUNT = BigInt(1e19);
|
|
92
|
-
public readonly APP_SPONSORED_TX_GAS_LIMIT = BigInt(10e9);
|
|
93
|
-
|
|
94
|
-
constructor(
|
|
95
|
-
testName: string,
|
|
96
|
-
private numberOfAccounts = 3,
|
|
97
|
-
setupOptions: Partial<SetupOptions & DeployL1ContractsArgs> = {},
|
|
98
|
-
) {
|
|
99
|
-
if (!numberOfAccounts) {
|
|
100
|
-
throw new Error('There must be at least 1 initial account.');
|
|
101
|
-
}
|
|
102
|
-
setupOptions.coinbase ??= EthAddress.random();
|
|
103
|
-
this.coinbase = setupOptions.coinbase!;
|
|
104
|
-
this.logger = createLogger(`e2e:e2e_fees:${testName}`);
|
|
105
|
-
this.snapshotManager = createSnapshotManager(
|
|
106
|
-
`e2e_fees/${testName}-${numberOfAccounts}`,
|
|
107
|
-
dataPath,
|
|
108
|
-
{ startProverNode: true, ...setupOptions },
|
|
109
|
-
{ ...setupOptions },
|
|
110
|
-
);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
async setup() {
|
|
114
|
-
const context = await this.snapshotManager.setup();
|
|
115
|
-
|
|
116
|
-
this.rollupContract = RollupContract.getFromConfig(context.aztecNodeConfig);
|
|
117
|
-
this.chainMonitor = new ChainMonitor(this.rollupContract, context.dateProvider, this.logger, 200).start();
|
|
118
|
-
|
|
119
|
-
return this;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
async teardown() {
|
|
123
|
-
await this.chainMonitor.stop();
|
|
124
|
-
await this.snapshotManager.teardown();
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
setIsMarkingAsProven(b: boolean) {
|
|
128
|
-
this.context.watcher.setIsMarkingAsProven(b);
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
async catchUpProvenChain() {
|
|
132
|
-
const bn = await this.aztecNode.getBlockNumber();
|
|
133
|
-
while ((await this.aztecNode.getProvenBlockNumber()) < bn) {
|
|
134
|
-
await sleep(1000);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
async getBlockRewards() {
|
|
139
|
-
const blockReward = await this.rollupContract.getBlockReward();
|
|
140
|
-
const rewardConfig = await this.rollupContract.getRewardConfig();
|
|
141
|
-
|
|
142
|
-
const balance = await this.feeJuiceBridgeTestHarness.getL1FeeJuiceBalance(
|
|
143
|
-
EthAddress.fromString(rewardConfig.rewardDistributor),
|
|
144
|
-
);
|
|
145
|
-
|
|
146
|
-
const toDistribute = balance > blockReward ? blockReward : balance;
|
|
147
|
-
const sequencerBlockRewards = (toDistribute * BigInt(rewardConfig.sequencerBps)) / 10000n;
|
|
148
|
-
const proverBlockRewards = toDistribute - sequencerBlockRewards;
|
|
149
|
-
|
|
150
|
-
return { sequencerBlockRewards, proverBlockRewards };
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
async mintAndBridgeFeeJuice(minter: AztecAddress, recipient: AztecAddress) {
|
|
154
|
-
const claim = await this.feeJuiceBridgeTestHarness.prepareTokensOnL1(recipient);
|
|
155
|
-
const { claimSecret: secret, messageLeafIndex: index } = claim;
|
|
156
|
-
await this.feeJuiceContract.methods
|
|
157
|
-
.claim(recipient, claim.claimAmount, secret, index)
|
|
158
|
-
.send({ from: minter })
|
|
159
|
-
.wait();
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
/** Alice mints bananaCoin tokens privately to the target address and redeems them. */
|
|
163
|
-
async mintPrivateBananas(amount: bigint, address: AztecAddress) {
|
|
164
|
-
const balanceBefore = await this.bananaCoin.methods
|
|
165
|
-
.balance_of_private(address)
|
|
166
|
-
.simulate({ from: this.aliceAddress });
|
|
167
|
-
|
|
168
|
-
await mintTokensToPrivate(this.bananaCoin, this.aliceAddress, address, amount);
|
|
169
|
-
|
|
170
|
-
const balanceAfter = await this.bananaCoin.methods
|
|
171
|
-
.balance_of_private(address)
|
|
172
|
-
.simulate({ from: this.aliceAddress });
|
|
173
|
-
expect(balanceAfter).toEqual(balanceBefore + amount);
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
public async applyBaseSnapshots() {
|
|
177
|
-
await this.applyInitialAccountsSnapshot();
|
|
178
|
-
await this.applyPublicDeployAccountsSnapshot();
|
|
179
|
-
await this.applySetupFeeJuiceSnapshot();
|
|
180
|
-
await this.applyDeployBananaTokenSnapshot();
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
async applyInitialAccountsSnapshot() {
|
|
184
|
-
await this.snapshotManager.snapshot(
|
|
185
|
-
'initial_accounts',
|
|
186
|
-
deployAccounts(this.numberOfAccounts, this.logger),
|
|
187
|
-
async ({ deployedAccounts }, { wallet, aztecNode, cheatCodes }) => {
|
|
188
|
-
this.wallet = wallet;
|
|
189
|
-
this.aztecNode = aztecNode;
|
|
190
|
-
this.gasSettings = GasSettings.default({ maxFeesPerGas: (await this.aztecNode.getCurrentBaseFees()).mul(2) });
|
|
191
|
-
this.cheatCodes = cheatCodes;
|
|
192
|
-
this.accounts = deployedAccounts.map(a => a.address);
|
|
193
|
-
this.accounts.forEach((a, i) => this.logger.verbose(`Account ${i} address: ${a}`));
|
|
194
|
-
[this.aliceAddress, this.bobAddress, this.sequencerAddress] = this.accounts.slice(0, 3);
|
|
195
|
-
|
|
196
|
-
// We set Alice as the FPC admin to avoid the need for deployment of another account.
|
|
197
|
-
this.fpcAdmin = this.aliceAddress;
|
|
198
|
-
|
|
199
|
-
const canonicalFeeJuice = await getCanonicalFeeJuice();
|
|
200
|
-
this.feeJuiceContract = await FeeJuiceContract.at(canonicalFeeJuice.address, this.wallet);
|
|
201
|
-
},
|
|
202
|
-
);
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
async applyPublicDeployAccountsSnapshot() {
|
|
206
|
-
await this.snapshotManager.snapshot('public_deploy_accounts', () =>
|
|
207
|
-
ensureAccountContractsPublished(this.wallet, this.accounts),
|
|
208
|
-
);
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
async applySetupFeeJuiceSnapshot() {
|
|
212
|
-
await this.snapshotManager.snapshot(
|
|
213
|
-
'setup_fee_juice',
|
|
214
|
-
async () => {},
|
|
215
|
-
async (_data, context) => {
|
|
216
|
-
this.context = context;
|
|
217
|
-
|
|
218
|
-
this.feeJuiceContract = await FeeJuiceContract.at(ProtocolContractAddress.FeeJuice, this.wallet);
|
|
219
|
-
|
|
220
|
-
this.getGasBalanceFn = getBalancesFn(
|
|
221
|
-
'⛽',
|
|
222
|
-
this.feeJuiceContract.methods.balance_of_public,
|
|
223
|
-
this.aliceAddress,
|
|
224
|
-
this.logger,
|
|
225
|
-
);
|
|
226
|
-
|
|
227
|
-
this.feeJuiceBridgeTestHarness = await FeeJuicePortalTestingHarnessFactory.create({
|
|
228
|
-
aztecNode: context.aztecNode,
|
|
229
|
-
aztecNodeAdmin: context.aztecNode,
|
|
230
|
-
l1Client: context.deployL1ContractsValues.l1Client,
|
|
231
|
-
wallet: this.wallet,
|
|
232
|
-
logger: this.logger,
|
|
233
|
-
});
|
|
234
|
-
},
|
|
235
|
-
);
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
async applyDeployBananaTokenSnapshot() {
|
|
239
|
-
await this.snapshotManager.snapshot(
|
|
240
|
-
'deploy_banana_token',
|
|
241
|
-
async () => {
|
|
242
|
-
const bananaCoin = await BananaCoin.deploy(this.wallet, this.aliceAddress, 'BC', 'BC', 18n)
|
|
243
|
-
.send({ from: this.aliceAddress })
|
|
244
|
-
.deployed();
|
|
245
|
-
this.logger.info(`BananaCoin deployed at ${bananaCoin.address}`);
|
|
246
|
-
return { bananaCoinAddress: bananaCoin.address };
|
|
247
|
-
},
|
|
248
|
-
async ({ bananaCoinAddress }) => {
|
|
249
|
-
this.bananaCoin = await BananaCoin.at(bananaCoinAddress, this.wallet);
|
|
250
|
-
const logger = this.logger;
|
|
251
|
-
this.getBananaPublicBalanceFn = getBalancesFn(
|
|
252
|
-
'🍌.public',
|
|
253
|
-
this.bananaCoin.methods.balance_of_public,
|
|
254
|
-
this.aliceAddress,
|
|
255
|
-
logger,
|
|
256
|
-
);
|
|
257
|
-
this.getBananaPrivateBalanceFn = getBalancesFn(
|
|
258
|
-
'🍌.private',
|
|
259
|
-
this.bananaCoin.methods.balance_of_private,
|
|
260
|
-
this.aliceAddress,
|
|
261
|
-
logger,
|
|
262
|
-
);
|
|
263
|
-
},
|
|
264
|
-
);
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
public async applyFPCSetupSnapshot() {
|
|
268
|
-
await this.snapshotManager.snapshot(
|
|
269
|
-
'fpc_setup',
|
|
270
|
-
async context => {
|
|
271
|
-
const feeJuiceContract = this.feeJuiceBridgeTestHarness.feeJuice;
|
|
272
|
-
expect((await context.wallet.getContractMetadata(feeJuiceContract.address)).isContractPublished).toBe(true);
|
|
273
|
-
|
|
274
|
-
const bananaCoin = this.bananaCoin;
|
|
275
|
-
const bananaFPC = await FPCContract.deploy(this.wallet, bananaCoin.address, this.fpcAdmin)
|
|
276
|
-
.send({ from: this.aliceAddress })
|
|
277
|
-
.deployed();
|
|
278
|
-
|
|
279
|
-
this.logger.info(`BananaPay deployed at ${bananaFPC.address}`);
|
|
280
|
-
|
|
281
|
-
await this.feeJuiceBridgeTestHarness.bridgeFromL1ToL2(bananaFPC.address, this.aliceAddress);
|
|
282
|
-
|
|
283
|
-
return {
|
|
284
|
-
bananaFPCAddress: bananaFPC.address,
|
|
285
|
-
feeJuiceAddress: feeJuiceContract.address,
|
|
286
|
-
l1FeeJuiceAddress: this.feeJuiceBridgeTestHarness.l1FeeJuiceAddress,
|
|
287
|
-
rollupAddress: context.deployL1ContractsValues.l1ContractAddresses.rollupAddress,
|
|
288
|
-
};
|
|
289
|
-
},
|
|
290
|
-
async (data, context) => {
|
|
291
|
-
const bananaFPC = await FPCContract.at(data.bananaFPCAddress, this.wallet);
|
|
292
|
-
this.bananaFPC = bananaFPC;
|
|
293
|
-
|
|
294
|
-
this.getCoinbaseBalance = async () => {
|
|
295
|
-
const l1Client = createExtendedL1Client(context.aztecNodeConfig.l1RpcUrls, MNEMONIC);
|
|
296
|
-
const gasL1 = getContract({
|
|
297
|
-
address: data.l1FeeJuiceAddress.toString(),
|
|
298
|
-
abi: TestERC20Abi,
|
|
299
|
-
client: l1Client,
|
|
300
|
-
});
|
|
301
|
-
return await gasL1.read.balanceOf([this.coinbase.toString()]);
|
|
302
|
-
};
|
|
303
|
-
|
|
304
|
-
this.getCoinbaseSequencerRewards = async () => {
|
|
305
|
-
return await this.rollupContract.getSequencerRewards(this.coinbase);
|
|
306
|
-
};
|
|
307
|
-
|
|
308
|
-
this.getProverFee = async (blockNumber: number) => {
|
|
309
|
-
const block = await this.aztecNode.getBlock(blockNumber);
|
|
310
|
-
|
|
311
|
-
// @todo @lherskind As we deal with #13601
|
|
312
|
-
// Right now the value is from `FeeLib.sol`
|
|
313
|
-
const L1_GAS_PER_EPOCH_VERIFIED = 1000000n;
|
|
314
|
-
|
|
315
|
-
// We round up
|
|
316
|
-
const mulDiv = (a: bigint, b: bigint, c: bigint) => (a * b) / c + ((a * b) % c > 0n ? 1n : 0n);
|
|
317
|
-
|
|
318
|
-
const { baseFee } = await this.rollupContract.getL1FeesAt(block!.header.globalVariables.timestamp);
|
|
319
|
-
const proverCost =
|
|
320
|
-
mulDiv(
|
|
321
|
-
mulDiv(L1_GAS_PER_EPOCH_VERIFIED, baseFee, await this.rollupContract.getEpochDuration()),
|
|
322
|
-
1n,
|
|
323
|
-
await this.rollupContract.getManaTarget(),
|
|
324
|
-
) + (await this.rollupContract.getProvingCostPerMana());
|
|
325
|
-
|
|
326
|
-
const price = await this.rollupContract.getFeeAssetPerEth();
|
|
327
|
-
|
|
328
|
-
const mana = block!.header.totalManaUsed.toBigInt();
|
|
329
|
-
return mulDiv(mana * proverCost, price, 10n ** 9n);
|
|
330
|
-
};
|
|
331
|
-
},
|
|
332
|
-
);
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
public async applySponsoredFPCSetupSnapshot() {
|
|
336
|
-
await this.snapshotManager.snapshot(
|
|
337
|
-
'sponsored_fpc_setup',
|
|
338
|
-
async context => {
|
|
339
|
-
const feeJuiceContract = this.feeJuiceBridgeTestHarness.feeJuice;
|
|
340
|
-
expect((await context.wallet.getContractMetadata(feeJuiceContract.address)).isContractPublished).toBe(true);
|
|
341
|
-
|
|
342
|
-
const sponsoredFPC = await setupSponsoredFPC(this.wallet);
|
|
343
|
-
this.logger.info(`SponsoredFPC at ${sponsoredFPC.address}`);
|
|
344
|
-
|
|
345
|
-
return {
|
|
346
|
-
sponsoredFPCAddress: sponsoredFPC.address,
|
|
347
|
-
};
|
|
348
|
-
},
|
|
349
|
-
async data => {
|
|
350
|
-
this.sponsoredFPC = await SponsoredFPCContract.at(data.sponsoredFPCAddress, this.wallet);
|
|
351
|
-
},
|
|
352
|
-
);
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
public async applyFundAliceWithBananas() {
|
|
356
|
-
await this.snapshotManager.snapshot(
|
|
357
|
-
'fund_alice',
|
|
358
|
-
async () => {
|
|
359
|
-
await this.mintPrivateBananas(this.ALICE_INITIAL_BANANAS, this.aliceAddress);
|
|
360
|
-
await this.bananaCoin.methods
|
|
361
|
-
.mint_to_public(this.aliceAddress, this.ALICE_INITIAL_BANANAS)
|
|
362
|
-
.send({ from: this.aliceAddress })
|
|
363
|
-
.wait();
|
|
364
|
-
},
|
|
365
|
-
() => Promise.resolve(),
|
|
366
|
-
);
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
public async applyFundAliceWithPrivateBananas() {
|
|
370
|
-
await this.snapshotManager.snapshot(
|
|
371
|
-
'fund_alice_with_private_bananas',
|
|
372
|
-
async () => {
|
|
373
|
-
await this.mintPrivateBananas(this.ALICE_INITIAL_BANANAS, this.aliceAddress);
|
|
374
|
-
},
|
|
375
|
-
() => Promise.resolve(),
|
|
376
|
-
);
|
|
377
|
-
}
|
|
378
|
-
}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
2
|
-
import type { L2Block } from '@aztec/aztec.js/block';
|
|
3
|
-
import { Fr } from '@aztec/aztec.js/fields';
|
|
4
|
-
import { BatchedBlob, Blob, getPrefixedEthBlobCommitments } from '@aztec/blob-lib';
|
|
5
|
-
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
6
|
-
|
|
7
|
-
import { writeFile } from 'fs/promises';
|
|
8
|
-
|
|
9
|
-
const AZTEC_GENERATE_TEST_DATA = !!process.env.AZTEC_GENERATE_TEST_DATA;
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Creates a json object that can be used to test the solidity contract.
|
|
13
|
-
* The json object must be put into
|
|
14
|
-
*/
|
|
15
|
-
export async function writeJson(
|
|
16
|
-
fileName: string,
|
|
17
|
-
block: L2Block,
|
|
18
|
-
l1ToL2Content: Fr[],
|
|
19
|
-
blobs: Blob[],
|
|
20
|
-
batchedBlob: BatchedBlob,
|
|
21
|
-
recipientAddress: AztecAddress,
|
|
22
|
-
deployerAddress: `0x${string}`,
|
|
23
|
-
): Promise<void> {
|
|
24
|
-
if (!AZTEC_GENERATE_TEST_DATA) {
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
// Path relative to the package.json in the end-to-end folder
|
|
28
|
-
const path = `../../l1-contracts/test/fixtures/${fileName}.json`;
|
|
29
|
-
|
|
30
|
-
const asHex = (value: Fr | Buffer | EthAddress | AztecAddress, size = 64) => {
|
|
31
|
-
const buffer = Buffer.isBuffer(value) ? value : value.toBuffer();
|
|
32
|
-
return `0x${buffer.toString('hex').padStart(size, '0')}`;
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
const jsonObject = {
|
|
36
|
-
populate: {
|
|
37
|
-
l1ToL2Content: l1ToL2Content.map(value => asHex(value)),
|
|
38
|
-
recipient: asHex(recipientAddress.toField()),
|
|
39
|
-
sender: deployerAddress,
|
|
40
|
-
},
|
|
41
|
-
messages: {
|
|
42
|
-
l2ToL1Messages: block.body.txEffects.flatMap(txEffect => txEffect.l2ToL1Msgs).map(value => asHex(value)),
|
|
43
|
-
},
|
|
44
|
-
block: {
|
|
45
|
-
// The json formatting in forge is a bit brittle, so we convert Fr to a number in the few values below.
|
|
46
|
-
// This should not be a problem for testing as long as the values are not larger than u32.
|
|
47
|
-
archive: asHex(block.archive.root),
|
|
48
|
-
blobCommitments: getPrefixedEthBlobCommitments(blobs),
|
|
49
|
-
batchedBlobInputs: batchedBlob.getEthBlobEvaluationInputs(),
|
|
50
|
-
blockNumber: block.number,
|
|
51
|
-
body: `0x${block.body.toBuffer().toString('hex')}`,
|
|
52
|
-
header: {
|
|
53
|
-
lastArchiveRoot: asHex(block.header.lastArchive.root),
|
|
54
|
-
contentCommitment: {
|
|
55
|
-
blobsHash: asHex(block.header.contentCommitment.blobsHash),
|
|
56
|
-
inHash: asHex(block.header.contentCommitment.inHash),
|
|
57
|
-
outHash: asHex(block.header.contentCommitment.outHash),
|
|
58
|
-
},
|
|
59
|
-
slotNumber: Number(block.header.globalVariables.slotNumber),
|
|
60
|
-
timestamp: Number(block.header.globalVariables.timestamp),
|
|
61
|
-
coinbase: asHex(block.header.globalVariables.coinbase, 40),
|
|
62
|
-
feeRecipient: asHex(block.header.globalVariables.feeRecipient),
|
|
63
|
-
gasFees: {
|
|
64
|
-
feePerDaGas: Number(block.header.globalVariables.gasFees.feePerDaGas),
|
|
65
|
-
feePerL2Gas: Number(block.header.globalVariables.gasFees.feePerL2Gas),
|
|
66
|
-
},
|
|
67
|
-
totalManaUsed: block.header.totalManaUsed.toNumber(),
|
|
68
|
-
},
|
|
69
|
-
headerHash: asHex(block.getCheckpointHeader().hash()),
|
|
70
|
-
numTxs: block.body.txEffects.length,
|
|
71
|
-
},
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
const output = JSON.stringify(jsonObject, null, 2);
|
|
75
|
-
await writeFile(path, output, 'utf8');
|
|
76
|
-
}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
2
|
-
import { type Logger, createLogger } from '@aztec/aztec.js/log';
|
|
3
|
-
import type { AztecNode } from '@aztec/aztec.js/node';
|
|
4
|
-
import type { Wallet } from '@aztec/aztec.js/wallet';
|
|
5
|
-
import { ChildContract } from '@aztec/noir-test-contracts.js/Child';
|
|
6
|
-
import { ParentContract } from '@aztec/noir-test-contracts.js/Parent';
|
|
7
|
-
|
|
8
|
-
import {
|
|
9
|
-
type ISnapshotManager,
|
|
10
|
-
type SubsystemsContext,
|
|
11
|
-
createSnapshotManager,
|
|
12
|
-
deployAccounts,
|
|
13
|
-
publicDeployAccounts,
|
|
14
|
-
} from '../fixtures/snapshot_manager.js';
|
|
15
|
-
|
|
16
|
-
const { E2E_DATA_PATH: dataPath } = process.env;
|
|
17
|
-
|
|
18
|
-
export class NestedContractTest {
|
|
19
|
-
private snapshotManager: ISnapshotManager;
|
|
20
|
-
logger: Logger;
|
|
21
|
-
wallet!: Wallet;
|
|
22
|
-
defaultAccountAddress!: AztecAddress;
|
|
23
|
-
aztecNode!: AztecNode;
|
|
24
|
-
|
|
25
|
-
parentContract!: ParentContract;
|
|
26
|
-
childContract!: ChildContract;
|
|
27
|
-
|
|
28
|
-
constructor(
|
|
29
|
-
testName: string,
|
|
30
|
-
private numberOfAccounts = 1,
|
|
31
|
-
) {
|
|
32
|
-
this.logger = createLogger(`e2e:e2e_nested_contract:${testName}`);
|
|
33
|
-
this.snapshotManager = createSnapshotManager(`e2e_nested_contract/${testName}-${numberOfAccounts}`, dataPath);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Adds two state shifts to snapshot manager.
|
|
38
|
-
* 1. Add 3 accounts.
|
|
39
|
-
* 2. Publicly deploy accounts
|
|
40
|
-
*/
|
|
41
|
-
async applyBaseSnapshots() {
|
|
42
|
-
await this.snapshotManager.snapshot(
|
|
43
|
-
'accounts',
|
|
44
|
-
deployAccounts(this.numberOfAccounts, this.logger),
|
|
45
|
-
({ deployedAccounts }, { wallet, aztecNode }) => {
|
|
46
|
-
this.wallet = wallet;
|
|
47
|
-
[{ address: this.defaultAccountAddress }] = deployedAccounts;
|
|
48
|
-
this.aztecNode = aztecNode;
|
|
49
|
-
return Promise.resolve();
|
|
50
|
-
},
|
|
51
|
-
);
|
|
52
|
-
|
|
53
|
-
await this.snapshotManager.snapshot(
|
|
54
|
-
'public_deploy',
|
|
55
|
-
async () => {},
|
|
56
|
-
async () => {
|
|
57
|
-
this.logger.verbose(`Public deploy accounts...`);
|
|
58
|
-
await publicDeployAccounts(this.wallet, [this.defaultAccountAddress]);
|
|
59
|
-
},
|
|
60
|
-
);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
async setup() {
|
|
64
|
-
await this.snapshotManager.setup();
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
async teardown() {
|
|
68
|
-
await this.snapshotManager.teardown();
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
snapshot = <T>(
|
|
72
|
-
name: string,
|
|
73
|
-
apply: (context: SubsystemsContext) => Promise<T>,
|
|
74
|
-
restore: (snapshotData: T, context: SubsystemsContext) => Promise<void> = () => Promise.resolve(),
|
|
75
|
-
): Promise<void> => this.snapshotManager.snapshot(name, apply, restore);
|
|
76
|
-
|
|
77
|
-
async applyManualSnapshots() {
|
|
78
|
-
await this.snapshotManager.snapshot(
|
|
79
|
-
'manual',
|
|
80
|
-
async () => {
|
|
81
|
-
const parentContract = await ParentContract.deploy(this.wallet)
|
|
82
|
-
.send({ from: this.defaultAccountAddress })
|
|
83
|
-
.deployed();
|
|
84
|
-
const childContract = await ChildContract.deploy(this.wallet)
|
|
85
|
-
.send({ from: this.defaultAccountAddress })
|
|
86
|
-
.deployed();
|
|
87
|
-
return { parentContractAddress: parentContract.address, childContractAddress: childContract.address };
|
|
88
|
-
},
|
|
89
|
-
async ({ parentContractAddress, childContractAddress }) => {
|
|
90
|
-
this.parentContract = await ParentContract.at(parentContractAddress, this.wallet);
|
|
91
|
-
this.childContract = await ChildContract.at(childContractAddress, this.wallet);
|
|
92
|
-
},
|
|
93
|
-
);
|
|
94
|
-
}
|
|
95
|
-
}
|