@aztec/end-to-end 0.0.1-commit.3469e52 → 0.0.1-commit.350e0a4d
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/{e2e_blacklist_token_contract → automine/token}/blacklist_token_contract_test.js +50 -54
- 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/{e2e_token_contract → automine/token}/token_contract_test.js +44 -49
- 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 +15 -1
- package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/benchmark.js +19 -0
- package/dest/bench/client_flows/client_flows_benchmark.d.ts +6 -6
- package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.js +66 -42
- 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.js +1 -0
- package/dest/bench/utils.d.ts +7 -6
- package/dest/bench/utils.d.ts.map +1 -1
- package/dest/bench/utils.js +108 -12
- 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/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 +18 -14
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
- package/dest/fixtures/e2e_prover_test.js +85 -74
- 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 +82 -1
- package/dest/fixtures/fixtures.d.ts.map +1 -1
- package/dest/fixtures/fixtures.js +84 -0
- 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/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 +113 -60
- package/dest/fixtures/setup.d.ts.map +1 -1
- package/dest/fixtures/setup.js +330 -326
- 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 +46 -35
- 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 +22 -4
- package/dest/fixtures/token_utils.d.ts.map +1 -1
- package/dest/fixtures/token_utils.js +28 -7
- package/dest/fixtures/utils.d.ts +2 -2
- package/dest/fixtures/utils.d.ts.map +1 -1
- package/dest/fixtures/utils.js +1 -1
- 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/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/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/{e2e_p2p → p2p}/p2p_network.d.ts +22 -12
- package/dest/p2p/p2p_network.d.ts.map +1 -0
- package/dest/{e2e_p2p → p2p}/p2p_network.js +99 -35
- 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/shared/cross_chain_test_harness.d.ts +8 -7
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +44 -39
- package/dest/shared/gas_portal_test_harness.d.ts +8 -5
- package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
- package/dest/shared/gas_portal_test_harness.js +27 -15
- package/dest/shared/index.d.ts +2 -1
- package/dest/shared/index.d.ts.map +1 -1
- package/dest/shared/index.js +1 -0
- 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 +1 -1
- package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
- package/dest/shared/uniswap_l1_l2.js +67 -55
- 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/lending_simulator.d.ts +10 -3
- package/dest/simulators/lending_simulator.d.ts.map +1 -1
- package/dest/simulators/lending_simulator.js +29 -17
- 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/{e2e_fees → single-node/fees}/bridging_race.notest.d.ts +1 -1
- package/dest/single-node/fees/bridging_race.notest.d.ts.map +1 -0
- package/dest/{e2e_fees → single-node/fees}/bridging_race.notest.js +18 -5
- 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/{e2e_fees → single-node/fees}/fees_test.js +96 -70
- 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 +12 -3
- package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.js +147 -43
- package/dest/spartan/tx_metrics.d.ts +64 -5
- package/dest/spartan/tx_metrics.d.ts.map +1 -1
- package/dest/spartan/tx_metrics.js +280 -21
- 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 -260
- package/dest/spartan/utils.d.ts.map +1 -1
- package/dest/spartan/utils.js +1 -942
- 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 +53 -46
- 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/{e2e_blacklist_token_contract → automine/token}/blacklist_token_contract_test.ts +56 -69
- package/src/{e2e_token_contract → automine/token}/token_contract_test.ts +51 -59
- package/src/automine/token/token_test_helpers.ts +138 -0
- package/src/bench/client_flows/benchmark.ts +21 -0
- package/src/bench/client_flows/client_flows_benchmark.ts +109 -88
- package/src/bench/client_flows/config.ts +9 -1
- package/src/bench/client_flows/data_extractor.ts +1 -0
- package/src/bench/utils.ts +123 -12
- package/src/composed/ha/ha_full_setup.ts +466 -0
- 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 +97 -103
- package/src/fixtures/elu_monitor.ts +126 -0
- package/src/fixtures/fixtures.ts +108 -0
- 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/schnorr_hardcoded_account_contract.ts +49 -0
- package/src/fixtures/setup.ts +421 -444
- package/src/fixtures/setup_p2p_test.ts +54 -54
- package/src/fixtures/timing.ts +97 -0
- package/src/fixtures/token_utils.ts +46 -10
- package/src/fixtures/utils.ts +2 -3
- package/src/fixtures/wait_helpers.ts +333 -0
- 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 +7 -4
- 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/{e2e_p2p → p2p}/p2p_network.ts +132 -57
- package/src/p2p/reqresp/utils.ts +263 -0
- package/src/p2p/shared.ts +329 -0
- package/src/shared/cross_chain_test_harness.ts +52 -41
- package/src/shared/gas_portal_test_harness.ts +34 -16
- package/src/shared/index.ts +1 -0
- 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 +109 -74
- package/src/shared/wait_for_l1_to_l2_message.ts +23 -0
- package/src/simulators/lending_simulator.ts +35 -17
- 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 +20 -9
- package/src/{e2e_fees → single-node/fees}/fees_test.ts +120 -95
- 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/setup_test_wallets.ts +196 -28
- package/src/spartan/tx_metrics.ts +255 -26
- 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 -1246
- 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 -53
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +0 -1
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +0 -47
- 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 -128
- package/dest/e2e_deploy_contract/deploy_test.d.ts +0 -37
- package/dest/e2e_deploy_contract/deploy_test.d.ts.map +0 -1
- package/dest/e2e_deploy_contract/deploy_test.js +0 -50
- package/dest/e2e_epochs/epochs_test.d.ts +0 -94
- package/dest/e2e_epochs/epochs_test.d.ts.map +0 -1
- package/dest/e2e_epochs/epochs_test.js +0 -339
- package/dest/e2e_fees/bridging_race.notest.d.ts.map +0 -1
- package/dest/e2e_fees/fees_test.d.ts +0 -88
- package/dest/e2e_fees/fees_test.d.ts.map +0 -1
- 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 -62
- 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 -26
- package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +0 -1
- package/dest/e2e_nested_contract/nested_contract_test.js +0 -56
- 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 -136
- package/dest/e2e_p2p/p2p_network.d.ts.map +0 -1
- 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 -184
- package/dest/e2e_token_contract/token_contract_test.d.ts +0 -42
- package/dest/e2e_token_contract/token_contract_test.d.ts.map +0 -1
- package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +0 -194
- package/src/e2e_deploy_contract/deploy_test.ts +0 -85
- package/src/e2e_epochs/epochs_test.ts +0 -451
- package/src/e2e_l1_publisher/write_json.ts +0 -82
- package/src/e2e_nested_contract/nested_contract_test.ts +0 -75
- package/src/e2e_p2p/inactivity_slash_test.ts +0 -179
- package/src/e2e_p2p/shared.ts +0 -290
- /package/dest/{e2e_multi_validator/utils.js → composed/web3signer/multi_validator_keystore_utils.js} +0 -0
- /package/src/{e2e_multi_validator/utils.ts → composed/web3signer/multi_validator_keystore_utils.ts} +0 -0
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NO_FROM } from '@aztec/aztec.js/account';
|
|
2
2
|
import { FeeJuicePaymentMethodWithClaim } from '@aztec/aztec.js/fee';
|
|
3
3
|
import { PrivateFeePaymentMethod, SponsoredFeePaymentMethod } from '@aztec/aztec.js/fee';
|
|
4
4
|
import { createLogger } from '@aztec/aztec.js/log';
|
|
5
|
+
import { getTokenAllowedSetupFunctions } from '@aztec/aztec/testing';
|
|
5
6
|
import { createExtendedL1Client } from '@aztec/ethereum/client';
|
|
6
7
|
import { RollupContract } from '@aztec/ethereum/contracts';
|
|
7
8
|
import { deployL1Contract } from '@aztec/ethereum/deploy-l1-contract';
|
|
@@ -15,19 +16,20 @@ import { AMMContract } from '@aztec/noir-contracts.js/AMM';
|
|
|
15
16
|
import { FPCContract } from '@aztec/noir-contracts.js/FPC';
|
|
16
17
|
import { FeeJuiceContract } from '@aztec/noir-contracts.js/FeeJuice';
|
|
17
18
|
import { SponsoredFPCContract } from '@aztec/noir-contracts.js/SponsoredFPC';
|
|
18
|
-
import {
|
|
19
|
+
import { TestTokenContract as BananaCoin, TestTokenContract } from '@aztec/noir-test-contracts.js/TestToken';
|
|
19
20
|
import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
20
21
|
import { getCanonicalFeeJuice } from '@aztec/protocol-contracts/fee-juice';
|
|
21
22
|
import { getPXEConfig } from '@aztec/pxe/server';
|
|
22
|
-
import { GasSettings } from '@aztec/stdlib/gas';
|
|
23
|
+
import { Gas, GasSettings } from '@aztec/stdlib/gas';
|
|
23
24
|
import { deriveSigningKey } from '@aztec/stdlib/keys';
|
|
24
|
-
import {
|
|
25
|
-
import { MNEMONIC } from '../../fixtures/fixtures.js';
|
|
26
|
-
import {
|
|
25
|
+
import { AppTaggingSecretKind } from '@aztec/stdlib/logs';
|
|
26
|
+
import { AUTOMINE_E2E_OPTS, L1_DIRECT_WRITE_ACCOUNT_INDEX, MNEMONIC, getPaddedMaxFeesPerGas } from '../../fixtures/fixtures.js';
|
|
27
|
+
import { setup, teardown } from '../../fixtures/setup.js';
|
|
27
28
|
import { mintTokensToPrivate } from '../../fixtures/token_utils.js';
|
|
28
29
|
import { setupSponsoredFPC } from '../../fixtures/utils.js';
|
|
29
30
|
import { CrossChainTestHarness } from '../../shared/cross_chain_test_harness.js';
|
|
30
31
|
import { FeeJuicePortalTestingHarnessFactory } from '../../shared/gas_portal_test_harness.js';
|
|
32
|
+
import { TestWallet } from '../../test-wallet/test_wallet.js';
|
|
31
33
|
import { ProxyLogger } from './benchmark.js';
|
|
32
34
|
import { FULL_FLOWS_CONFIG, KEY_FLOWS_CONFIG } from './config.js';
|
|
33
35
|
const { BENCHMARK_CONFIG } = process.env;
|
|
@@ -69,29 +71,32 @@ export class ClientFlowsBenchmark {
|
|
|
69
71
|
'true',
|
|
70
72
|
'1'
|
|
71
73
|
].includes(process.env.REAL_PROOFS ?? '');
|
|
74
|
+
// `apps` is the number of private function calls contributed by this payment method.
|
|
75
|
+
// Each app produces one execution step at proving time; the orchestrator additionally produces
|
|
76
|
+
// one kernel step per batch of N apps (see `expectedExecutionSteps` in `benchmark.ts`).
|
|
72
77
|
paymentMethods = {
|
|
73
78
|
// eslint-disable-next-line camelcase
|
|
74
79
|
bridged_fee_juice: {
|
|
75
80
|
forWallet: this.getBridgedFeeJuicePaymentMethodForWallet.bind(this),
|
|
76
|
-
|
|
81
|
+
apps: 1
|
|
77
82
|
},
|
|
78
83
|
// eslint-disable-next-line camelcase
|
|
79
84
|
private_fpc: {
|
|
80
85
|
forWallet: this.getPrivateFPCPaymentMethodForWallet.bind(this),
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
86
|
+
apps: 1 + // FPC entrypoint
|
|
87
|
+
1 + // BananaCoin transfer_to_public
|
|
88
|
+
1 + // Account verify_private_authwit
|
|
89
|
+
1
|
|
85
90
|
},
|
|
86
91
|
// eslint-disable-next-line camelcase
|
|
87
92
|
sponsored_fpc: {
|
|
88
93
|
forWallet: this.getSponsoredFPCPaymentMethodForWallet.bind(this),
|
|
89
|
-
|
|
94
|
+
apps: 1
|
|
90
95
|
},
|
|
91
96
|
// eslint-disable-next-line camelcase
|
|
92
97
|
fee_juice: {
|
|
93
98
|
forWallet: ()=>Promise.resolve(undefined),
|
|
94
|
-
|
|
99
|
+
apps: 0
|
|
95
100
|
}
|
|
96
101
|
};
|
|
97
102
|
config;
|
|
@@ -100,6 +105,7 @@ export class ClientFlowsBenchmark {
|
|
|
100
105
|
constructor(testName, setupOptions = {}){
|
|
101
106
|
this.logger = createLogger(`bench:client_flows${testName ? `:${testName}` : ''}`);
|
|
102
107
|
this.setupOptions = {
|
|
108
|
+
...AUTOMINE_E2E_OPTS,
|
|
103
109
|
startProverNode: true,
|
|
104
110
|
...setupOptions
|
|
105
111
|
};
|
|
@@ -109,11 +115,17 @@ export class ClientFlowsBenchmark {
|
|
|
109
115
|
}
|
|
110
116
|
async setup() {
|
|
111
117
|
this.logger.info('Setting up subsystems from fresh');
|
|
112
|
-
|
|
118
|
+
// Token allowlist entries are test-only: FPC-based fee payment with custom tokens won't work on mainnet alpha.
|
|
119
|
+
// BananaCoin is the codegen'd TestToken here, so the allowlist must key on its class, not canonical Token's.
|
|
120
|
+
const tokenAllowList = await getTokenAllowedSetupFunctions(BananaCoin.artifact);
|
|
121
|
+
this.context = await setup(2, {
|
|
113
122
|
...this.setupOptions,
|
|
114
123
|
fundSponsoredFPC: true,
|
|
115
|
-
|
|
116
|
-
|
|
124
|
+
l1ContractsArgs: this.setupOptions,
|
|
125
|
+
txPublicSetupAllowListExtend: [
|
|
126
|
+
...this.setupOptions.txPublicSetupAllowListExtend ?? [],
|
|
127
|
+
...tokenAllowList
|
|
128
|
+
]
|
|
117
129
|
});
|
|
118
130
|
await this.applyBaseSetup();
|
|
119
131
|
await this.context.aztecNodeService.setConfig({
|
|
@@ -126,6 +138,7 @@ export class ClientFlowsBenchmark {
|
|
|
126
138
|
}
|
|
127
139
|
async teardown() {
|
|
128
140
|
await this.chainMonitor.stop();
|
|
141
|
+
await this.userWallet?.stop();
|
|
129
142
|
await teardown(this.context);
|
|
130
143
|
}
|
|
131
144
|
async mintAndBridgeFeeJuice(address) {
|
|
@@ -133,15 +146,15 @@ export class ClientFlowsBenchmark {
|
|
|
133
146
|
const { claimSecret: secret, messageLeafIndex: index } = claim;
|
|
134
147
|
await this.feeJuiceContract.methods.claim(address, claim.claimAmount, secret, index).send({
|
|
135
148
|
from: this.adminAddress
|
|
136
|
-
})
|
|
149
|
+
});
|
|
137
150
|
}
|
|
138
151
|
/** Admin mints bananaCoin tokens privately to the target address and redeems them. */ async mintPrivateBananas(amount, address) {
|
|
139
|
-
const balanceBefore = await this.bananaCoin.methods.balance_of_private(address).simulate({
|
|
140
|
-
from:
|
|
152
|
+
const { result: balanceBefore } = await this.bananaCoin.methods.balance_of_private(address).simulate({
|
|
153
|
+
from: address
|
|
141
154
|
});
|
|
142
155
|
await mintTokensToPrivate(this.bananaCoin, this.adminAddress, address, amount);
|
|
143
|
-
const balanceAfter = await this.bananaCoin.methods.balance_of_private(address).simulate({
|
|
144
|
-
from:
|
|
156
|
+
const { result: balanceAfter } = await this.bananaCoin.methods.balance_of_private(address).simulate({
|
|
157
|
+
from: address
|
|
145
158
|
});
|
|
146
159
|
expect(balanceAfter).toEqual(balanceBefore + amount);
|
|
147
160
|
}
|
|
@@ -165,11 +178,7 @@ export class ClientFlowsBenchmark {
|
|
|
165
178
|
}
|
|
166
179
|
async applyInitialAccounts() {
|
|
167
180
|
this.logger.info('Applying initial accounts setup');
|
|
168
|
-
const
|
|
169
|
-
wallet: this.context.wallet,
|
|
170
|
-
initialFundedAccounts: this.context.initialFundedAccounts
|
|
171
|
-
});
|
|
172
|
-
const [{ address: adminAddress }, { address: sequencerAddress }] = deployedAccounts;
|
|
181
|
+
const [adminAddress, sequencerAddress] = this.context.accounts;
|
|
173
182
|
this.adminWallet = this.context.wallet;
|
|
174
183
|
this.aztecNode = this.context.aztecNodeService;
|
|
175
184
|
this.cheatCodes = this.context.cheatCodes;
|
|
@@ -186,6 +195,18 @@ export class ClientFlowsBenchmark {
|
|
|
186
195
|
this.userWallet = await TestWallet.create(this.aztecNode, userPXEConfigWithContracts, {
|
|
187
196
|
loggers: {
|
|
188
197
|
prover: this.proxyLogger.createLogger('pxe:bb:wasm:bundle:proxied')
|
|
198
|
+
},
|
|
199
|
+
// The benchmark measures steady-state app cost, not first-send discovery cost. Reproduce the pre-handshake-default
|
|
200
|
+
// behavior of unconstrained delivery: derive the tagging secret from the (sender, recipient) key pair via ECDH
|
|
201
|
+
// instead of taking the current default (a non-interactive handshake, which injects two extra private app
|
|
202
|
+
// executions and a nullifier per cold chain). Constrained delivery is unaffected: the Noir circuit rejects
|
|
203
|
+
// address-derived for constrained, so the hook falls through to a handshake there.
|
|
204
|
+
hooks: {
|
|
205
|
+
resolveTaggingSecretStrategy: ({ deliveryMode })=>Promise.resolve(deliveryMode === AppTaggingSecretKind.UNCONSTRAINED ? {
|
|
206
|
+
type: 'address-derived'
|
|
207
|
+
} : {
|
|
208
|
+
type: 'non-interactive-handshake'
|
|
209
|
+
})
|
|
189
210
|
}
|
|
190
211
|
});
|
|
191
212
|
}
|
|
@@ -195,7 +216,9 @@ export class ClientFlowsBenchmark {
|
|
|
195
216
|
this.feeJuiceBridgeTestHarness = await FeeJuicePortalTestingHarnessFactory.create({
|
|
196
217
|
aztecNode: this.context.aztecNodeService,
|
|
197
218
|
aztecNodeAdmin: this.context.aztecNodeService,
|
|
198
|
-
|
|
219
|
+
// Bridge from a dedicated L1 account so its direct writes don't race the sequencer publisher's
|
|
220
|
+
// txs on the deployer account (see L1_DIRECT_WRITE_ACCOUNT_INDEX).
|
|
221
|
+
l1Client: createExtendedL1Client(this.context.config.l1RpcUrls, MNEMONIC, undefined, undefined, L1_DIRECT_WRITE_ACCOUNT_INDEX),
|
|
199
222
|
wallet: this.adminWallet,
|
|
200
223
|
logger: this.logger
|
|
201
224
|
});
|
|
@@ -204,16 +227,16 @@ export class ClientFlowsBenchmark {
|
|
|
204
227
|
this.logger.info('Applying banana token deployment');
|
|
205
228
|
const { contract: bananaCoin, instance: bananaCoinInstance } = await BananaCoin.deploy(this.adminWallet, this.adminAddress, 'BC', 'BC', 18n).send({
|
|
206
229
|
from: this.adminAddress
|
|
207
|
-
})
|
|
230
|
+
});
|
|
208
231
|
this.logger.info(`BananaCoin deployed at ${bananaCoin.address}`);
|
|
209
232
|
this.bananaCoin = bananaCoin;
|
|
210
233
|
this.bananaCoinInstance = bananaCoinInstance;
|
|
211
234
|
}
|
|
212
235
|
async applyDeployCandyBarToken() {
|
|
213
236
|
this.logger.info('Applying candy bar token deployment');
|
|
214
|
-
const { contract: candyBarCoin, instance: candyBarCoinInstance } = await
|
|
237
|
+
const { contract: candyBarCoin, instance: candyBarCoinInstance } = await TestTokenContract.deploy(this.adminWallet, this.adminAddress, 'CBC', 'CBC', 18n).send({
|
|
215
238
|
from: this.adminAddress
|
|
216
|
-
})
|
|
239
|
+
});
|
|
217
240
|
this.logger.info(`CandyBarCoin deployed at ${candyBarCoin.address}`);
|
|
218
241
|
this.candyBarCoin = candyBarCoin;
|
|
219
242
|
this.candyBarCoinInstance = candyBarCoinInstance;
|
|
@@ -225,7 +248,7 @@ export class ClientFlowsBenchmark {
|
|
|
225
248
|
const bananaCoin = this.bananaCoin;
|
|
226
249
|
const { contract: bananaFPC, instance: bananaFPCInstance } = await FPCContract.deploy(this.adminWallet, bananaCoin.address, this.adminAddress).send({
|
|
227
250
|
from: this.adminAddress
|
|
228
|
-
})
|
|
251
|
+
});
|
|
229
252
|
this.logger.info(`BananaPay deployed at ${bananaFPC.address}`);
|
|
230
253
|
await this.feeJuiceBridgeTestHarness.bridgeFromL1ToL2(bananaFPC.address, this.adminAddress);
|
|
231
254
|
this.bananaFPC = bananaFPC;
|
|
@@ -252,36 +275,35 @@ export class ClientFlowsBenchmark {
|
|
|
252
275
|
}
|
|
253
276
|
async createAndFundBenchmarkingAccountOnUserWallet(accountType) {
|
|
254
277
|
const benchysAccountManager = await this.createBenchmarkingAccountManager(this.adminWallet, accountType);
|
|
255
|
-
const benchysAccount = await benchysAccountManager.getAccount();
|
|
256
278
|
const benchysAddress = benchysAccountManager.address;
|
|
257
279
|
const claim = await this.feeJuiceBridgeTestHarness.prepareTokensOnL1(benchysAddress);
|
|
258
280
|
const behchysDeployMethod = await benchysAccountManager.getDeployMethod();
|
|
259
281
|
await behchysDeployMethod.send({
|
|
260
|
-
from:
|
|
282
|
+
from: NO_FROM,
|
|
261
283
|
fee: {
|
|
262
284
|
paymentMethod: new FeeJuicePaymentMethodWithClaim(benchysAddress, claim)
|
|
263
285
|
}
|
|
264
|
-
})
|
|
286
|
+
});
|
|
265
287
|
// Register benchy on the user's Wallet, where we're going to be interacting from
|
|
266
288
|
const accountManager = await this.userWallet.createAccount({
|
|
267
|
-
secret:
|
|
268
|
-
salt: new Fr(
|
|
289
|
+
secret: benchysAccountManager.getSecretKey(),
|
|
290
|
+
salt: new Fr(benchysAccountManager.getInstance().salt),
|
|
269
291
|
contract: benchysAccountManager.getAccountContract()
|
|
270
292
|
});
|
|
271
293
|
return accountManager.address;
|
|
272
294
|
}
|
|
273
295
|
async applyDeployAmm() {
|
|
274
296
|
this.logger.info('Applying AMM deployment');
|
|
275
|
-
const { contract: liquidityToken, instance: liquidityTokenInstance } = await
|
|
297
|
+
const { contract: liquidityToken, instance: liquidityTokenInstance } = await TestTokenContract.deploy(this.adminWallet, this.adminAddress, 'LPT', 'LPT', 18n).send({
|
|
276
298
|
from: this.adminAddress
|
|
277
|
-
})
|
|
299
|
+
});
|
|
278
300
|
const { contract: amm, instance: ammInstance } = await AMMContract.deploy(this.adminWallet, this.bananaCoin.address, this.candyBarCoin.address, liquidityToken.address).send({
|
|
279
301
|
from: this.adminAddress
|
|
280
|
-
})
|
|
302
|
+
});
|
|
281
303
|
this.logger.info(`AMM deployed at ${amm.address}`);
|
|
282
304
|
await liquidityToken.methods.set_minter(amm.address, true).send({
|
|
283
305
|
from: this.adminAddress
|
|
284
|
-
})
|
|
306
|
+
});
|
|
285
307
|
this.liquidityToken = liquidityToken;
|
|
286
308
|
this.liquidityTokenInstance = liquidityTokenInstance;
|
|
287
309
|
this.amm = amm;
|
|
@@ -294,8 +316,10 @@ export class ClientFlowsBenchmark {
|
|
|
294
316
|
async getPrivateFPCPaymentMethodForWallet(wallet, sender) {
|
|
295
317
|
// The private fee paying method assembled on the app side requires knowledge of the maximum
|
|
296
318
|
// fee the user is willing to pay
|
|
297
|
-
const maxFeesPerGas =
|
|
298
|
-
const
|
|
319
|
+
const maxFeesPerGas = await getPaddedMaxFeesPerGas(this.aztecNode);
|
|
320
|
+
const gasLimits = Gas.from((await this.aztecNode.getNodeInfo()).txsLimits.gas);
|
|
321
|
+
const gasSettings = GasSettings.fallback({
|
|
322
|
+
gasLimits,
|
|
299
323
|
maxFeesPerGas
|
|
300
324
|
});
|
|
301
325
|
return new PrivateFeePaymentMethod(this.bananaFPC.address, sender, wallet, gasSettings);
|
|
@@ -4,11 +4,11 @@ export type ClientFlowConfig = {
|
|
|
4
4
|
feePaymentMethods: BenchmarkingFeePaymentMethod[];
|
|
5
5
|
recursions?: number[];
|
|
6
6
|
};
|
|
7
|
-
type ClientFlows = 'accountDeployments' | 'deployments' | 'transfers' | 'bridging' | 'amm';
|
|
7
|
+
type ClientFlows = 'accountDeployments' | 'deployments' | 'transfers' | 'bridging' | 'amm' | 'storageProof';
|
|
8
8
|
export type ClientFlowsConfig = {
|
|
9
9
|
[key in ClientFlows]: ClientFlowConfig;
|
|
10
10
|
};
|
|
11
11
|
export declare const KEY_FLOWS_CONFIG: ClientFlowsConfig;
|
|
12
12
|
export declare const FULL_FLOWS_CONFIG: ClientFlowsConfig;
|
|
13
13
|
export {};
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmVuY2gvY2xpZW50X2Zsb3dzL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU3RixNQUFNLE1BQU0sZ0JBQWdCLEdBQUc7SUFDN0IsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLGlCQUFpQixFQUFFLDRCQUE0QixFQUFFLENBQUM7SUFDbEQsVUFBVSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7Q0FDdkIsQ0FBQztBQUVGLEtBQUssV0FBVyxHQUFHLG9CQUFvQixHQUFHLGFBQWEsR0FBRyxXQUFXLEdBQUcsVUFBVSxHQUFHLEtBQUssR0FBRyxjQUFjLENBQUM7QUFFNUcsTUFBTSxNQUFNLGlCQUFpQixHQUFHO0tBQzdCLEdBQUcsSUFBSSxXQUFXLEdBQUcsZ0JBQWdCO0NBQ3ZDLENBQUM7QUFFRixlQUFPLE1BQU0sZ0JBQWdCLEVBQUUsaUJBMEI5QixDQUFDO0FBRUYsZUFBTyxNQUFNLGlCQUFpQixFQUFFLGlCQTBCL0IsQ0FBQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/bench/client_flows/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAE7F,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,iBAAiB,EAAE,4BAA4B,EAAE,CAAC;IAClD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,KAAK,WAAW,GAAG,oBAAoB,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/bench/client_flows/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAE7F,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,iBAAiB,EAAE,4BAA4B,EAAE,CAAC;IAClD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,KAAK,WAAW,GAAG,oBAAoB,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,GAAG,KAAK,GAAG,cAAc,CAAC;AAE5G,MAAM,MAAM,iBAAiB,GAAG;KAC7B,GAAG,IAAI,WAAW,GAAG,gBAAgB;CACvC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,iBA0B9B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,iBA0B/B,CAAC"}
|
|
@@ -45,6 +45,14 @@ export const KEY_FLOWS_CONFIG = {
|
|
|
45
45
|
0,
|
|
46
46
|
1
|
|
47
47
|
]
|
|
48
|
+
},
|
|
49
|
+
storageProof: {
|
|
50
|
+
accounts: [
|
|
51
|
+
'ecdsar1'
|
|
52
|
+
],
|
|
53
|
+
feePaymentMethods: [
|
|
54
|
+
'sponsored_fpc'
|
|
55
|
+
]
|
|
48
56
|
}
|
|
49
57
|
};
|
|
50
58
|
export const FULL_FLOWS_CONFIG = {
|
|
@@ -102,5 +110,15 @@ export const FULL_FLOWS_CONFIG = {
|
|
|
102
110
|
1,
|
|
103
111
|
2
|
|
104
112
|
]
|
|
113
|
+
},
|
|
114
|
+
storageProof: {
|
|
115
|
+
accounts: [
|
|
116
|
+
'ecdsar1',
|
|
117
|
+
'schnorr'
|
|
118
|
+
],
|
|
119
|
+
feePaymentMethods: [
|
|
120
|
+
'sponsored_fpc',
|
|
121
|
+
'private_fpc'
|
|
122
|
+
]
|
|
105
123
|
}
|
|
106
124
|
};
|
package/dest/bench/utils.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type WaitOpts } from '@aztec/aztec.js/contracts';
|
|
2
2
|
import { BenchmarkingContract } from '@aztec/noir-test-contracts.js/Benchmarking';
|
|
3
|
+
import type { TxHash } from '@aztec/stdlib/tx';
|
|
3
4
|
import type { MetricDefinition } from '@aztec/telemetry-client';
|
|
4
5
|
import type { BenchmarkTelemetryClient } from '@aztec/telemetry-client/bench';
|
|
5
6
|
import { type EndToEndContext, type SetupOptions } from '../fixtures/utils.js';
|
|
6
7
|
/**
|
|
7
|
-
* Setup for benchmarks. Initializes a remote node with a
|
|
8
|
+
* Setup for benchmarks. Initializes a remote node with a funded hardcoded account and deploys a benchmark contract.
|
|
8
9
|
*/
|
|
9
10
|
export declare function benchmarkSetup(opts: Partial<SetupOptions> & {
|
|
10
11
|
/** What metrics to export */ metrics: (MetricDefinition | MetricFilter)[];
|
|
@@ -12,7 +13,7 @@ export declare function benchmarkSetup(opts: Partial<SetupOptions> & {
|
|
|
12
13
|
benchOutput?: string;
|
|
13
14
|
}): Promise<{
|
|
14
15
|
telemetry: BenchmarkTelemetryClient;
|
|
15
|
-
context: EndToEndContext
|
|
16
|
+
context: EndToEndContext<unknown>;
|
|
16
17
|
contract: BenchmarkingContract;
|
|
17
18
|
sequencer: import("@aztec/sequencer-client").SequencerClient;
|
|
18
19
|
}>;
|
|
@@ -38,7 +39,7 @@ export type GithubActionBenchmarkResult = {
|
|
|
38
39
|
* @param heavyPublicCompute - Whether the transactions include heavy public compute (like a big sha256).
|
|
39
40
|
* @returns Array of sent txs.
|
|
40
41
|
*/
|
|
41
|
-
export declare function sendTxs(txCount: number, context: EndToEndContext, contract: BenchmarkingContract, heavyPublicCompute?: boolean): Promise<
|
|
42
|
-
export declare function waitTxs(txs:
|
|
42
|
+
export declare function sendTxs(txCount: number, context: EndToEndContext, contract: BenchmarkingContract, heavyPublicCompute?: boolean): Promise<TxHash[]>;
|
|
43
|
+
export declare function waitTxs(txs: TxHash[], context: EndToEndContext, txWaitOpts?: WaitOpts): Promise<void>;
|
|
43
44
|
export {};
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iZW5jaC91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQXNCLEtBQUssUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJOUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFbEYsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBNEMsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQU14SCxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQUUsS0FBSyxZQUFZLEVBQVMsTUFBTSxzQkFBc0IsQ0FBQztBQU90Rjs7R0FFRztBQUNILHdCQUFzQixjQUFjLENBQ2xDLElBQUksRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUc7SUFDNUIsNkJBQTZCLENBQUMsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLEVBQUUsQ0FBQztJQUMzRSxrRkFBa0Y7SUFDbEYsV0FBVyxDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ3RCOzs7OztHQWlDRjtBQVVELEtBQUssWUFBWSxHQUFHO0lBQ2xCLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQztJQUN6QixTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxLQUFLLE1BQU0sQ0FBQztJQUNyQyxJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQ2IsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ2YsQ0FBQztBQUdGLE1BQU0sTUFBTSwyQkFBMkIsR0FBRztJQUN4QyxJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQ2IsS0FBSyxFQUFFLE1BQU0sQ0FBQztJQUNkLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNmLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixLQUFLLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDaEIsQ0FBQztBQW9FRjs7Ozs7Ozs7R0FRRztBQUNILHdCQUFzQixPQUFPLENBQzNCLE9BQU8sRUFBRSxNQUFNLEVBQ2YsT0FBTyxFQUFFLGVBQWUsRUFDeEIsUUFBUSxFQUFFLG9CQUFvQixFQUM5QixrQkFBa0IsR0FBRSxPQUFlLEdBQ2xDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQVduQjtBQUVELHdCQUFzQixPQUFPLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxDQUFDLEVBQUUsUUFBUSxpQkFJM0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/bench/utils.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/bench/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAI9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAElF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAA4C,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAMxH,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAS,MAAM,sBAAsB,CAAC;AAOtF;;GAEG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG;IAC5B,6BAA6B,CAAC,OAAO,EAAE,CAAC,gBAAgB,GAAG,YAAY,CAAC,EAAE,CAAC;IAC3E,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;;;;;GAiCF;AAUD,KAAK,YAAY,GAAG;IAClB,MAAM,EAAE,gBAAgB,CAAC;IACzB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAGF,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAoEF;;;;;;;;GAQG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,oBAAoB,EAC9B,kBAAkB,GAAE,OAAe,GAClC,OAAO,CAAC,MAAM,EAAE,CAAC,CAWnB;AAED,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,QAAQ,iBAI3F"}
|
package/dest/bench/utils.js
CHANGED
|
@@ -1,25 +1,41 @@
|
|
|
1
1
|
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
2
|
-
import { BatchCall } from '@aztec/aztec.js/contracts';
|
|
2
|
+
import { BatchCall, NO_WAIT } from '@aztec/aztec.js/contracts';
|
|
3
|
+
import { waitForTx } from '@aztec/aztec.js/node';
|
|
4
|
+
import { SlotNumber } from '@aztec/foundation/branded-types';
|
|
3
5
|
import { mean, stdDev, times } from '@aztec/foundation/collection';
|
|
4
6
|
import { BenchmarkingContract } from '@aztec/noir-test-contracts.js/Benchmarking';
|
|
7
|
+
import { SequencerState } from '@aztec/sequencer-client';
|
|
5
8
|
import { mkdirSync, writeFileSync } from 'fs';
|
|
6
9
|
import path from 'path';
|
|
10
|
+
import { PIPELINING_SETUP_OPTS } from '../fixtures/fixtures.js';
|
|
7
11
|
import { setup } from '../fixtures/utils.js';
|
|
12
|
+
const MAX_BENCH_WAIT_BLOCKS = 6;
|
|
13
|
+
const BENCH_FINAL_WAIT_TIMEOUT_SECONDS = 10;
|
|
14
|
+
const SEQUENCER_IDLE_TIMEOUT_MS = 60_000;
|
|
15
|
+
const DEFAULT_L1_PUBLISHING_TIME_SECONDS = 12;
|
|
8
16
|
/**
|
|
9
|
-
* Setup for benchmarks. Initializes a remote node with a
|
|
17
|
+
* Setup for benchmarks. Initializes a remote node with a funded hardcoded account and deploys a benchmark contract.
|
|
10
18
|
*/ export async function benchmarkSetup(opts) {
|
|
11
19
|
const context = await setup(1, {
|
|
20
|
+
...PIPELINING_SETUP_OPTS,
|
|
12
21
|
...opts,
|
|
13
22
|
telemetryConfig: {
|
|
14
23
|
benchmark: true
|
|
15
24
|
}
|
|
16
25
|
});
|
|
17
|
-
const defaultAccountAddress = context.accounts
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
26
|
+
const [defaultAccountAddress] = context.accounts;
|
|
27
|
+
const sequencer = getSequencerClient(context);
|
|
28
|
+
await waitForSequencerIdle(sequencer.getSequencer());
|
|
29
|
+
const deployment = BenchmarkingContract.deploy(context.wallet);
|
|
30
|
+
const { txHash } = await deployment.send({
|
|
31
|
+
from: defaultAccountAddress,
|
|
32
|
+
wait: NO_WAIT
|
|
33
|
+
});
|
|
34
|
+
await waitTxs([
|
|
35
|
+
txHash
|
|
36
|
+
], context);
|
|
37
|
+
const contract = await deployment.register();
|
|
21
38
|
context.logger.info(`Deployed benchmarking contract at ${contract.address}`);
|
|
22
|
-
const sequencer = context.aztecNode.getSequencer();
|
|
23
39
|
const telemetry = context.telemetryClient;
|
|
24
40
|
context.logger.warn(`Cleared benchmark data points from setup`);
|
|
25
41
|
telemetry.clear();
|
|
@@ -46,6 +62,13 @@ import { setup } from '../fixtures/utils.js';
|
|
|
46
62
|
sequencer
|
|
47
63
|
};
|
|
48
64
|
}
|
|
65
|
+
function getSequencerClient(context) {
|
|
66
|
+
const sequencer = context.aztecNode.getSequencer();
|
|
67
|
+
if (!sequencer) {
|
|
68
|
+
throw new Error('Benchmark setup requires a local sequencer');
|
|
69
|
+
}
|
|
70
|
+
return sequencer;
|
|
71
|
+
}
|
|
49
72
|
function isMetricDefinition(f) {
|
|
50
73
|
return 'description' in f;
|
|
51
74
|
}
|
|
@@ -124,14 +147,87 @@ function getMetricValues(points) {
|
|
|
124
147
|
context.logger.info(`Creating ${txCount} txs`);
|
|
125
148
|
const [from] = context.accounts;
|
|
126
149
|
context.logger.info(`Sending ${txCount} txs`);
|
|
127
|
-
return calls.map((call)=>
|
|
128
|
-
|
|
129
|
-
|
|
150
|
+
return Promise.all(calls.map(async (call)=>{
|
|
151
|
+
const { txHash } = await call.send({
|
|
152
|
+
from,
|
|
153
|
+
wait: NO_WAIT
|
|
154
|
+
});
|
|
155
|
+
return txHash;
|
|
156
|
+
}));
|
|
130
157
|
}
|
|
131
158
|
export async function waitTxs(txs, context, txWaitOpts) {
|
|
132
159
|
context.logger.info(`Awaiting ${txs.length} txs to be mined`);
|
|
133
|
-
await
|
|
134
|
-
context.logger.info(
|
|
160
|
+
await waitTxsWithBlockMining(txs, context, txWaitOpts);
|
|
161
|
+
context.logger.info(`${txs.length} txs have been mined`);
|
|
162
|
+
}
|
|
163
|
+
async function waitTxsWithBlockMining(txs, context, txWaitOpts) {
|
|
164
|
+
const sequencer = getSequencerClient(context).getSequencer();
|
|
165
|
+
for(let attempt = 0; attempt <= MAX_BENCH_WAIT_BLOCKS; attempt++){
|
|
166
|
+
if (await haveAllTxsMined(txs, context, txWaitOpts)) {
|
|
167
|
+
await waitForSequencerIdle(sequencer);
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
await waitForSequencerIdle(sequencer);
|
|
171
|
+
context.logger.info('Mining next benchmark block while waiting for txs', {
|
|
172
|
+
attempt,
|
|
173
|
+
txs: txs.length
|
|
174
|
+
});
|
|
175
|
+
await mineNextBenchmarkBlock(context, sequencer);
|
|
176
|
+
}
|
|
177
|
+
await Promise.all(txs.map((txHash)=>waitForTx(context.aztecNode, txHash, {
|
|
178
|
+
...txWaitOpts,
|
|
179
|
+
timeout: txWaitOpts?.timeout ?? BENCH_FINAL_WAIT_TIMEOUT_SECONDS
|
|
180
|
+
})));
|
|
181
|
+
}
|
|
182
|
+
async function haveAllTxsMined(txs, context, txWaitOpts) {
|
|
183
|
+
const receipts = await Promise.all(txs.map((txHash)=>context.aztecNode.getTxReceipt(txHash)));
|
|
184
|
+
for (const receipt of receipts){
|
|
185
|
+
if (receipt.isDropped()) {
|
|
186
|
+
throw new Error(`Transaction ${receipt.txHash.toString()} was dropped. Reason: ${receipt.error ?? 'unknown'}`);
|
|
187
|
+
}
|
|
188
|
+
if (!receipt.isMined()) {
|
|
189
|
+
return false;
|
|
190
|
+
}
|
|
191
|
+
if (!receipt.hasExecutionSucceeded() && !txWaitOpts?.dontThrowOnRevert) {
|
|
192
|
+
throw new Error(`Transaction ${receipt.txHash.toString()} reverted: ${receipt.executionResult}. Reason: ${receipt.error ?? 'unknown'}`);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
return true;
|
|
196
|
+
}
|
|
197
|
+
async function mineNextBenchmarkBlock(context, sequencer) {
|
|
198
|
+
const l1PublishingTime = BigInt(context.config.l1PublishingTime ?? DEFAULT_L1_PUBLISHING_TIME_SECONDS);
|
|
199
|
+
const currentTimestamp = BigInt(await context.cheatCodes.eth.lastBlockTimestamp());
|
|
200
|
+
let targetSlot = SlotNumber(await context.cheatCodes.rollup.getSlot() + 1);
|
|
201
|
+
let targetTimestamp = await context.cheatCodes.rollup.getTimestampForSlot(targetSlot);
|
|
202
|
+
while(targetTimestamp - l1PublishingTime - 1n <= currentTimestamp){
|
|
203
|
+
targetSlot = SlotNumber(targetSlot + 1);
|
|
204
|
+
targetTimestamp = await context.cheatCodes.rollup.getTimestampForSlot(targetSlot);
|
|
205
|
+
}
|
|
206
|
+
const triggerTimestamp = targetTimestamp - l1PublishingTime - 1n;
|
|
207
|
+
await context.cheatCodes.eth.warp(triggerTimestamp, {
|
|
208
|
+
resetBlockInterval: true
|
|
209
|
+
});
|
|
210
|
+
await context.aztecNode.mineBlock();
|
|
211
|
+
await waitForSequencerIdle(sequencer);
|
|
212
|
+
}
|
|
213
|
+
function waitForSequencerIdle(sequencer, timeout = SEQUENCER_IDLE_TIMEOUT_MS) {
|
|
214
|
+
if (sequencer.status().state === SequencerState.IDLE) {
|
|
215
|
+
return Promise.resolve();
|
|
216
|
+
}
|
|
217
|
+
return new Promise((resolve, reject)=>{
|
|
218
|
+
const timer = setTimeout(()=>{
|
|
219
|
+
sequencer.off('state-changed', handler);
|
|
220
|
+
reject(new Error('Timeout waiting for sequencer IDLE state'));
|
|
221
|
+
}, timeout);
|
|
222
|
+
const handler = (args)=>{
|
|
223
|
+
if (args.newState === SequencerState.IDLE) {
|
|
224
|
+
clearTimeout(timer);
|
|
225
|
+
sequencer.off('state-changed', handler);
|
|
226
|
+
resolve();
|
|
227
|
+
}
|
|
228
|
+
};
|
|
229
|
+
sequencer.on('state-changed', handler);
|
|
230
|
+
});
|
|
135
231
|
}
|
|
136
232
|
function randomBytesAsBigInts(length) {
|
|
137
233
|
return [
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared setup for the docker-compose HA full suite.
|
|
3
|
+
*
|
|
4
|
+
* Stands up the complete HA cluster used by `e2e_ha_full.parallel.test.ts` and
|
|
5
|
+
* `e2e_ha_distribute_work.test.ts`: a bootstrap RPC/P2P node plus NODE_COUNT in-proc
|
|
6
|
+
* `AztecNodeService` HA peers that share one PostgreSQL slashing-protection DB and a Web3Signer keystore.
|
|
7
|
+
* Requires the docker-compose HA suite (run_test.sh ha): live Postgres (DATABASE_URL) and Web3Signer
|
|
8
|
+
* sidecar.
|
|
9
|
+
*
|
|
10
|
+
* The suite is split across two files because the "distribute work" test kills nodes as it runs, leaving
|
|
11
|
+
* the cluster unusable; giving it its own file (its own cluster) removes the previous "must run last"
|
|
12
|
+
* ordering contract without changing what any test asserts.
|
|
13
|
+
*/
|
|
14
|
+
import { type AztecNodeConfig, AztecNodeService } from '@aztec/aztec-node';
|
|
15
|
+
import { AztecAddress, EthAddress } from '@aztec/aztec.js/addresses';
|
|
16
|
+
import type { Logger } from '@aztec/aztec.js/log';
|
|
17
|
+
import { type AztecNode } from '@aztec/aztec.js/node';
|
|
18
|
+
import { GovernanceProposerContract } from '@aztec/ethereum/contracts';
|
|
19
|
+
import type { DeployAztecL1ContractsReturnType } from '@aztec/ethereum/deploy-aztec-l1-contracts';
|
|
20
|
+
import type { TestDateProvider } from '@aztec/foundation/timer';
|
|
21
|
+
import { TestContract } from '@aztec/noir-test-contracts.js/Test';
|
|
22
|
+
import { TxHash, type TxReceipt } from '@aztec/stdlib/tx';
|
|
23
|
+
import type { GenesisData } from '@aztec/stdlib/world-state';
|
|
24
|
+
import { Pool } from 'pg';
|
|
25
|
+
import { type HADatabaseConfig } from '../../fixtures/ha_setup.js';
|
|
26
|
+
import type { TestWallet } from '../../test-wallet/test_wallet.js';
|
|
27
|
+
export declare const NODE_COUNT = 5;
|
|
28
|
+
export declare const VALIDATOR_COUNT = 4;
|
|
29
|
+
export declare const COMMITTEE_SIZE = 4;
|
|
30
|
+
export declare function registerTestContract(wallet: TestWallet): Promise<TestContract>;
|
|
31
|
+
export declare function submitTriggerTx(wallet: TestWallet, testContract: TestContract, from: AztecAddress): Promise<TxHash>;
|
|
32
|
+
export declare function waitForTriggerTx(node: AztecNode, txHash: TxHash): Promise<TxReceipt>;
|
|
33
|
+
/**
|
|
34
|
+
* Owns the full HA cluster lifecycle and the shared helpers the two HA test files drive it with. Each
|
|
35
|
+
* test file constructs one instance and calls {@link setup} in `beforeAll` / {@link teardown} in
|
|
36
|
+
* `afterAll`; state fields are populated by {@link setup} and read directly by the tests.
|
|
37
|
+
*/
|
|
38
|
+
export declare class HaFullTestContext {
|
|
39
|
+
logger: Logger;
|
|
40
|
+
wallet: TestWallet;
|
|
41
|
+
ownerAddress: AztecAddress;
|
|
42
|
+
testContract: TestContract;
|
|
43
|
+
aztecNode: AztecNode;
|
|
44
|
+
config: AztecNodeConfig;
|
|
45
|
+
accounts: AztecAddress[];
|
|
46
|
+
dateProvider: TestDateProvider;
|
|
47
|
+
genesis: GenesisData | undefined;
|
|
48
|
+
haNodePools: Pool[];
|
|
49
|
+
haNodeServices: AztecNodeService[];
|
|
50
|
+
haKeystoreDirs: string[];
|
|
51
|
+
mainPool: Pool;
|
|
52
|
+
databaseConfig: HADatabaseConfig;
|
|
53
|
+
attesterPrivateKeys: `0x${string}`[];
|
|
54
|
+
attesterAddresses: string[];
|
|
55
|
+
publisherPrivateKeys: `0x${string}`[];
|
|
56
|
+
publisherAddresses: string[];
|
|
57
|
+
web3SignerUrl: string;
|
|
58
|
+
deployL1ContractsValues: DeployAztecL1ContractsReturnType;
|
|
59
|
+
governanceProposer: GovernanceProposerContract;
|
|
60
|
+
/** Per-node initial keystore JSON (all 4 attesters, node's own publisher) for restore after reload test */
|
|
61
|
+
initialKeystoreJsons: string[];
|
|
62
|
+
private teardownBootstrap;
|
|
63
|
+
private haSequencersStarted;
|
|
64
|
+
private readonly stoppedHANodeIndexes;
|
|
65
|
+
getSignatureContext: () => {
|
|
66
|
+
chainId: number;
|
|
67
|
+
rollupAddress: EthAddress;
|
|
68
|
+
};
|
|
69
|
+
startHASequencers: () => Promise<void>;
|
|
70
|
+
sendTriggerTx: () => Promise<TxReceipt>;
|
|
71
|
+
stopHANode: (nodeIndex: number) => Promise<void>;
|
|
72
|
+
setup(): Promise<void>;
|
|
73
|
+
teardown(): Promise<void>;
|
|
74
|
+
/** Clean up database state between tests. */
|
|
75
|
+
resetDutiesTable(): Promise<void>;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFfZnVsbF9zZXR1cC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvc2VkL2hhL2hhX2Z1bGxfc2V0dXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFFLGdCQUFnQixFQUEwQixNQUFNLG1CQUFtQixDQUFDO0FBQ25HLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHckUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUFhLE1BQU0sc0JBQXNCLENBQUM7QUFDakUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkUsT0FBTyxLQUFLLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUlsRyxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVsRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssU0FBUyxFQUFZLE1BQU0sa0JBQWtCLENBQUM7QUFDcEUsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFNN0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQztBQUcxQixPQUFPLEVBQ0wsS0FBSyxnQkFBZ0IsRUFNdEIsTUFBTSw0QkFBNEIsQ0FBQztBQVFwQyxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUduRSxlQUFPLE1BQU0sVUFBVSxJQUFJLENBQUM7QUFDNUIsZUFBTyxNQUFNLGVBQWUsSUFBSSxDQUFDO0FBQ2pDLGVBQU8sTUFBTSxjQUFjLElBQUksQ0FBQztBQVVoQyx3QkFBc0Isb0JBQW9CLENBQUMsTUFBTSxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBVXBGO0FBRUQsd0JBQXNCLGVBQWUsQ0FDbkMsTUFBTSxFQUFFLFVBQVUsRUFDbEIsWUFBWSxFQUFFLFlBQVksRUFDMUIsSUFBSSxFQUFFLFlBQVksR0FDakIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUdqQjtBQUVELHdCQUFzQixnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQU0xRjtBQUVEOzs7O0dBSUc7QUFDSCxxQkFBYSxpQkFBaUI7SUFDNUIsTUFBTSxFQUFHLE1BQU0sQ0FBQztJQUNoQixNQUFNLEVBQUcsVUFBVSxDQUFDO0lBQ3BCLFlBQVksRUFBRyxZQUFZLENBQUM7SUFDNUIsWUFBWSxFQUFHLFlBQVksQ0FBQztJQUM1QixTQUFTLEVBQUcsU0FBUyxDQUFDO0lBQ3RCLE1BQU0sRUFBRyxlQUFlLENBQUM7SUFDekIsUUFBUSxFQUFHLFlBQVksRUFBRSxDQUFDO0lBQzFCLFlBQVksRUFBRyxnQkFBZ0IsQ0FBQztJQUNoQyxPQUFPLEVBQUUsV0FBVyxHQUFHLFNBQVMsQ0FBQztJQUVqQyxXQUFXLEVBQUcsSUFBSSxFQUFFLENBQUM7SUFDckIsY0FBYyxFQUFHLGdCQUFnQixFQUFFLENBQUM7SUFDcEMsY0FBYyxFQUFHLE1BQU0sRUFBRSxDQUFDO0lBQzFCLFFBQVEsRUFBRyxJQUFJLENBQUM7SUFDaEIsY0FBYyxFQUFHLGdCQUFnQixDQUFDO0lBQ2xDLG1CQUFtQixFQUFHLEtBQUssTUFBTSxFQUFFLEVBQUUsQ0FBQztJQUN0QyxpQkFBaUIsRUFBRyxNQUFNLEVBQUUsQ0FBQztJQUM3QixvQkFBb0IsRUFBRyxLQUFLLE1BQU0sRUFBRSxFQUFFLENBQUM7SUFDdkMsa0JBQWtCLEVBQUcsTUFBTSxFQUFFLENBQUM7SUFDOUIsYUFBYSxFQUFHLE1BQU0sQ0FBQztJQUN2Qix1QkFBdUIsRUFBRyxnQ0FBZ0MsQ0FBQztJQUMzRCxrQkFBa0IsRUFBRywwQkFBMEIsQ0FBQztJQUNoRCwyR0FBMkc7SUFDM0csb0JBQW9CLEVBQUcsTUFBTSxFQUFFLENBQUM7SUFFaEMsT0FBTyxDQUFDLGlCQUFpQixDQUF1QztJQUNoRSxPQUFPLENBQUMsbUJBQW1CLENBQVM7SUFDcEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBcUI7SUFFMUQsbUJBQW1COzs7TUFHaEI7SUFFSCxpQkFBaUIsc0JBYWY7SUFFRixhQUFhLDJCQUlYO0lBRUYsVUFBVSx1Q0FRUjtJQUVJLEtBQUssSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBc08zQjtJQUVLLFFBQVEsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBdUQ5QjtJQUVELDZDQUE2QztJQUN2QyxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBT3RDO0NBQ0YifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ha_full_setup.d.ts","sourceRoot":"","sources":["../../../src/composed/ha/ha_full_setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,KAAK,eAAe,EAAE,gBAAgB,EAA0B,MAAM,mBAAmB,CAAC;AACnG,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAGrE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAC;AAIlG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,OAAO,EAAE,MAAM,EAAE,KAAK,SAAS,EAAY,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAM7D,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAG1B,OAAO,EACL,KAAK,gBAAgB,EAMtB,MAAM,4BAA4B,CAAC;AAQpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAGnE,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,cAAc,IAAI,CAAC;AAUhC,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAUpF;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAM1F;AAED;;;;GAIG;AACH,qBAAa,iBAAiB;IAC5B,MAAM,EAAG,MAAM,CAAC;IAChB,MAAM,EAAG,UAAU,CAAC;IACpB,YAAY,EAAG,YAAY,CAAC;IAC5B,YAAY,EAAG,YAAY,CAAC;IAC5B,SAAS,EAAG,SAAS,CAAC;IACtB,MAAM,EAAG,eAAe,CAAC;IACzB,QAAQ,EAAG,YAAY,EAAE,CAAC;IAC1B,YAAY,EAAG,gBAAgB,CAAC;IAChC,OAAO,EAAE,WAAW,GAAG,SAAS,CAAC;IAEjC,WAAW,EAAG,IAAI,EAAE,CAAC;IACrB,cAAc,EAAG,gBAAgB,EAAE,CAAC;IACpC,cAAc,EAAG,MAAM,EAAE,CAAC;IAC1B,QAAQ,EAAG,IAAI,CAAC;IAChB,cAAc,EAAG,gBAAgB,CAAC;IAClC,mBAAmB,EAAG,KAAK,MAAM,EAAE,EAAE,CAAC;IACtC,iBAAiB,EAAG,MAAM,EAAE,CAAC;IAC7B,oBAAoB,EAAG,KAAK,MAAM,EAAE,EAAE,CAAC;IACvC,kBAAkB,EAAG,MAAM,EAAE,CAAC;IAC9B,aAAa,EAAG,MAAM,CAAC;IACvB,uBAAuB,EAAG,gCAAgC,CAAC;IAC3D,kBAAkB,EAAG,0BAA0B,CAAC;IAChD,2GAA2G;IAC3G,oBAAoB,EAAG,MAAM,EAAE,CAAC;IAEhC,OAAO,CAAC,iBAAiB,CAAuC;IAChE,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAqB;IAE1D,mBAAmB;;;MAGhB;IAEH,iBAAiB,sBAaf;IAEF,aAAa,2BAIX;IAEF,UAAU,uCAQR;IAEI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAsO3B;IAEK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAuD9B;IAED,6CAA6C;IACvC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAOtC;CACF"}
|