@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,59 +1,63 @@
|
|
|
1
|
+
import { NO_FROM } from '@aztec/aztec.js/account';
|
|
1
2
|
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
2
3
|
import { FeeJuicePaymentMethodWithClaim } from '@aztec/aztec.js/fee';
|
|
3
4
|
import { type FeePaymentMethod, PrivateFeePaymentMethod, SponsoredFeePaymentMethod } from '@aztec/aztec.js/fee';
|
|
4
5
|
import { type Logger, createLogger } from '@aztec/aztec.js/log';
|
|
5
6
|
import type { AztecNode } from '@aztec/aztec.js/node';
|
|
6
7
|
import type { Wallet } from '@aztec/aztec.js/wallet';
|
|
7
|
-
import { CheatCodes } from '@aztec/aztec/testing';
|
|
8
|
-
import {
|
|
8
|
+
import { CheatCodes, getTokenAllowedSetupFunctions } from '@aztec/aztec/testing';
|
|
9
|
+
import { createExtendedL1Client } from '@aztec/ethereum/client';
|
|
10
|
+
import { RollupContract } from '@aztec/ethereum/contracts';
|
|
11
|
+
import type { DeployAztecL1ContractsArgs } from '@aztec/ethereum/deploy-aztec-l1-contracts';
|
|
12
|
+
import { deployL1Contract } from '@aztec/ethereum/deploy-l1-contract';
|
|
9
13
|
import { ChainMonitor } from '@aztec/ethereum/test';
|
|
10
|
-
import { randomBytes } from '@aztec/foundation/crypto';
|
|
14
|
+
import { randomBytes } from '@aztec/foundation/crypto/random';
|
|
15
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
11
16
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
12
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
13
17
|
import { TestERC20Abi } from '@aztec/l1-artifacts/TestERC20Abi';
|
|
14
18
|
import { TestERC20Bytecode } from '@aztec/l1-artifacts/TestERC20Bytecode';
|
|
15
19
|
import { AMMContract } from '@aztec/noir-contracts.js/AMM';
|
|
16
20
|
import { FPCContract } from '@aztec/noir-contracts.js/FPC';
|
|
17
21
|
import { FeeJuiceContract } from '@aztec/noir-contracts.js/FeeJuice';
|
|
18
22
|
import { SponsoredFPCContract } from '@aztec/noir-contracts.js/SponsoredFPC';
|
|
19
|
-
import {
|
|
23
|
+
import { TestTokenContract as BananaCoin, TestTokenContract } from '@aztec/noir-test-contracts.js/TestToken';
|
|
20
24
|
import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
21
25
|
import { getCanonicalFeeJuice } from '@aztec/protocol-contracts/fee-juice';
|
|
22
26
|
import { type PXEConfig, getPXEConfig } from '@aztec/pxe/server';
|
|
23
|
-
import {
|
|
27
|
+
import type { ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
28
|
+
import { Gas, GasSettings } from '@aztec/stdlib/gas';
|
|
24
29
|
import { deriveSigningKey } from '@aztec/stdlib/keys';
|
|
25
|
-
import {
|
|
30
|
+
import { AppTaggingSecretKind } from '@aztec/stdlib/logs';
|
|
26
31
|
|
|
27
|
-
import { MNEMONIC } from '../../fixtures/fixtures.js';
|
|
28
32
|
import {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
} from '../../fixtures/
|
|
33
|
+
AUTOMINE_E2E_OPTS,
|
|
34
|
+
L1_DIRECT_WRITE_ACCOUNT_INDEX,
|
|
35
|
+
MNEMONIC,
|
|
36
|
+
getPaddedMaxFeesPerGas,
|
|
37
|
+
} from '../../fixtures/fixtures.js';
|
|
38
|
+
import { type EndToEndContext, type SetupOptions, setup, teardown } from '../../fixtures/setup.js';
|
|
34
39
|
import { mintTokensToPrivate } from '../../fixtures/token_utils.js';
|
|
35
|
-
import {
|
|
40
|
+
import { setupSponsoredFPC } from '../../fixtures/utils.js';
|
|
36
41
|
import { CrossChainTestHarness } from '../../shared/cross_chain_test_harness.js';
|
|
37
42
|
import {
|
|
38
43
|
FeeJuicePortalTestingHarnessFactory,
|
|
39
44
|
type GasBridgingTestHarness,
|
|
40
45
|
} from '../../shared/gas_portal_test_harness.js';
|
|
46
|
+
import { TestWallet } from '../../test-wallet/test_wallet.js';
|
|
41
47
|
import { ProxyLogger } from './benchmark.js';
|
|
42
48
|
import { type ClientFlowsConfig, FULL_FLOWS_CONFIG, KEY_FLOWS_CONFIG } from './config.js';
|
|
43
49
|
|
|
44
|
-
const {
|
|
50
|
+
const { BENCHMARK_CONFIG } = process.env;
|
|
45
51
|
|
|
46
52
|
export type AccountType = 'ecdsar1' | 'schnorr';
|
|
47
53
|
export type FeePaymentMethodGetter = (wallet: Wallet, sender: AztecAddress) => Promise<FeePaymentMethod | undefined>;
|
|
48
54
|
export type BenchmarkingFeePaymentMethod = 'bridged_fee_juice' | 'private_fpc' | 'sponsored_fpc' | 'fee_juice';
|
|
49
55
|
|
|
50
56
|
export class ClientFlowsBenchmark {
|
|
51
|
-
private snapshotManager: ISnapshotManager;
|
|
52
|
-
|
|
53
57
|
public logger: Logger;
|
|
54
58
|
public aztecNode!: AztecNode;
|
|
55
59
|
public cheatCodes!: CheatCodes;
|
|
56
|
-
public context!:
|
|
60
|
+
public context!: EndToEndContext;
|
|
57
61
|
public chainMonitor!: ChainMonitor;
|
|
58
62
|
public feeJuiceBridgeTestHarness!: GasBridgingTestHarness;
|
|
59
63
|
public adminWallet!: TestWallet;
|
|
@@ -69,79 +73,95 @@ export class ClientFlowsBenchmark {
|
|
|
69
73
|
public feeJuiceContract!: FeeJuiceContract;
|
|
70
74
|
// Asset in which fees are paid via FPC
|
|
71
75
|
public bananaCoin!: BananaCoin;
|
|
76
|
+
public bananaCoinInstance!: ContractInstanceWithAddress;
|
|
72
77
|
public bananaFPC!: FPCContract;
|
|
78
|
+
public bananaFPCInstance!: ContractInstanceWithAddress;
|
|
73
79
|
// Random asset we want to trade
|
|
74
|
-
public candyBarCoin!:
|
|
80
|
+
public candyBarCoin!: TestTokenContract;
|
|
81
|
+
public candyBarCoinInstance!: ContractInstanceWithAddress;
|
|
75
82
|
// AMM contract
|
|
76
83
|
public amm!: AMMContract;
|
|
84
|
+
public ammInstance!: ContractInstanceWithAddress;
|
|
77
85
|
// Liquidity token for AMM
|
|
78
|
-
public liquidityToken!:
|
|
86
|
+
public liquidityToken!: TestTokenContract;
|
|
87
|
+
public liquidityTokenInstance!: ContractInstanceWithAddress;
|
|
79
88
|
// Sponsored FPC contract
|
|
80
89
|
public sponsoredFPC!: SponsoredFPCContract;
|
|
90
|
+
public sponsoredFPCInstance!: ContractInstanceWithAddress;
|
|
81
91
|
|
|
82
92
|
// PXE and Wallet used by the benchmarking user. It can be set up with client-side proving enabled
|
|
83
93
|
public userWallet!: TestWallet;
|
|
84
94
|
|
|
85
95
|
public realProofs = ['true', '1'].includes(process.env.REAL_PROOFS ?? '');
|
|
86
96
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
//
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
//
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
97
|
+
// `apps` is the number of private function calls contributed by this payment method.
|
|
98
|
+
// Each app produces one execution step at proving time; the orchestrator additionally produces
|
|
99
|
+
// one kernel step per batch of N apps (see `expectedExecutionSteps` in `benchmark.ts`).
|
|
100
|
+
public paymentMethods: Record<BenchmarkingFeePaymentMethod, { forWallet: FeePaymentMethodGetter; apps: number }> = {
|
|
101
|
+
// eslint-disable-next-line camelcase
|
|
102
|
+
bridged_fee_juice: {
|
|
103
|
+
forWallet: this.getBridgedFeeJuicePaymentMethodForWallet.bind(this),
|
|
104
|
+
apps: 1, // FeeJuice claim
|
|
105
|
+
},
|
|
106
|
+
// eslint-disable-next-line camelcase
|
|
107
|
+
private_fpc: {
|
|
108
|
+
forWallet: this.getPrivateFPCPaymentMethodForWallet.bind(this),
|
|
109
|
+
apps:
|
|
110
|
+
1 + // FPC entrypoint
|
|
111
|
+
1 + // BananaCoin transfer_to_public
|
|
112
|
+
1 + // Account verify_private_authwit
|
|
113
|
+
1, // BananaCoin prepare_private_balance_increase
|
|
114
|
+
},
|
|
115
|
+
// eslint-disable-next-line camelcase
|
|
116
|
+
sponsored_fpc: {
|
|
117
|
+
forWallet: this.getSponsoredFPCPaymentMethodForWallet.bind(this),
|
|
118
|
+
apps: 1, // Sponsored FPC sponsor_unconditionally
|
|
119
|
+
},
|
|
120
|
+
// eslint-disable-next-line camelcase
|
|
121
|
+
fee_juice: {
|
|
122
|
+
forWallet: () => Promise.resolve(undefined),
|
|
123
|
+
apps: 0,
|
|
124
|
+
},
|
|
125
|
+
};
|
|
114
126
|
|
|
115
127
|
public config: ClientFlowsConfig;
|
|
116
128
|
|
|
117
129
|
private proxyLogger: ProxyLogger;
|
|
130
|
+
private setupOptions: Partial<SetupOptions & DeployAztecL1ContractsArgs>;
|
|
118
131
|
|
|
119
|
-
constructor(testName?: string, setupOptions: Partial<SetupOptions &
|
|
132
|
+
constructor(testName?: string, setupOptions: Partial<SetupOptions & DeployAztecL1ContractsArgs> = {}) {
|
|
120
133
|
this.logger = createLogger(`bench:client_flows${testName ? `:${testName}` : ''}`);
|
|
121
|
-
this.
|
|
122
|
-
`bench_client_flows${testName ? `/${testName}` : ''}`,
|
|
123
|
-
dataPath,
|
|
124
|
-
{ startProverNode: true, ...setupOptions },
|
|
125
|
-
{ ...setupOptions },
|
|
126
|
-
);
|
|
134
|
+
this.setupOptions = { ...AUTOMINE_E2E_OPTS, startProverNode: true, ...setupOptions };
|
|
127
135
|
this.config = BENCHMARK_CONFIG === 'key_flows' ? KEY_FLOWS_CONFIG : FULL_FLOWS_CONFIG;
|
|
128
136
|
ProxyLogger.create();
|
|
129
137
|
this.proxyLogger = ProxyLogger.getInstance();
|
|
130
138
|
}
|
|
131
139
|
|
|
132
140
|
async setup() {
|
|
133
|
-
|
|
134
|
-
|
|
141
|
+
this.logger.info('Setting up subsystems from fresh');
|
|
142
|
+
// Token allowlist entries are test-only: FPC-based fee payment with custom tokens won't work on mainnet alpha.
|
|
143
|
+
// BananaCoin is the codegen'd TestToken here, so the allowlist must key on its class, not canonical Token's.
|
|
144
|
+
const tokenAllowList = await getTokenAllowedSetupFunctions(BananaCoin.artifact);
|
|
145
|
+
this.context = await setup(2, {
|
|
146
|
+
...this.setupOptions,
|
|
147
|
+
fundSponsoredFPC: true,
|
|
148
|
+
l1ContractsArgs: this.setupOptions,
|
|
149
|
+
txPublicSetupAllowListExtend: [...(this.setupOptions.txPublicSetupAllowListExtend ?? []), ...tokenAllowList],
|
|
150
|
+
});
|
|
151
|
+
await this.applyBaseSetup();
|
|
152
|
+
|
|
153
|
+
await this.context.aztecNodeService.setConfig({ feeRecipient: this.sequencerAddress, coinbase: this.coinbase });
|
|
135
154
|
|
|
136
|
-
const rollupContract = RollupContract.getFromConfig(context.
|
|
137
|
-
this.chainMonitor = new ChainMonitor(rollupContract, context.dateProvider, this.logger, 200).start();
|
|
155
|
+
const rollupContract = RollupContract.getFromConfig(this.context.config);
|
|
156
|
+
this.chainMonitor = new ChainMonitor(rollupContract, this.context.dateProvider, this.logger, 200).start();
|
|
138
157
|
|
|
139
158
|
return this;
|
|
140
159
|
}
|
|
141
160
|
|
|
142
161
|
async teardown() {
|
|
143
162
|
await this.chainMonitor.stop();
|
|
144
|
-
await this.
|
|
163
|
+
await this.userWallet?.stop();
|
|
164
|
+
await teardown(this.context);
|
|
145
165
|
}
|
|
146
166
|
|
|
147
167
|
async mintAndBridgeFeeJuice(address: AztecAddress) {
|
|
@@ -149,21 +169,20 @@ export class ClientFlowsBenchmark {
|
|
|
149
169
|
const { claimSecret: secret, messageLeafIndex: index } = claim;
|
|
150
170
|
await this.feeJuiceContract.methods
|
|
151
171
|
.claim(address, claim.claimAmount, secret, index)
|
|
152
|
-
.send({ from: this.adminAddress })
|
|
153
|
-
.wait();
|
|
172
|
+
.send({ from: this.adminAddress });
|
|
154
173
|
}
|
|
155
174
|
|
|
156
175
|
/** Admin mints bananaCoin tokens privately to the target address and redeems them. */
|
|
157
176
|
async mintPrivateBananas(amount: bigint, address: AztecAddress) {
|
|
158
|
-
const balanceBefore = await this.bananaCoin.methods
|
|
177
|
+
const { result: balanceBefore } = await this.bananaCoin.methods
|
|
159
178
|
.balance_of_private(address)
|
|
160
|
-
.simulate({ from:
|
|
179
|
+
.simulate({ from: address });
|
|
161
180
|
|
|
162
181
|
await mintTokensToPrivate(this.bananaCoin, this.adminAddress, address, amount);
|
|
163
182
|
|
|
164
|
-
const balanceAfter = await this.bananaCoin.methods
|
|
183
|
+
const { result: balanceAfter } = await this.bananaCoin.methods
|
|
165
184
|
.balance_of_private(address)
|
|
166
|
-
.simulate({ from:
|
|
185
|
+
.simulate({ from: address });
|
|
167
186
|
expect(balanceAfter).toEqual(balanceBefore + amount);
|
|
168
187
|
}
|
|
169
188
|
|
|
@@ -183,137 +202,137 @@ export class ClientFlowsBenchmark {
|
|
|
183
202
|
}
|
|
184
203
|
}
|
|
185
204
|
|
|
186
|
-
public async
|
|
187
|
-
await this.
|
|
188
|
-
await this.
|
|
205
|
+
public async applyBaseSetup() {
|
|
206
|
+
await this.applyInitialAccounts();
|
|
207
|
+
await this.applySetupFeeJuice();
|
|
189
208
|
}
|
|
190
209
|
|
|
191
|
-
async
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
this.userWallet = await TestWallet.create(this.aztecNode, userPXEConfigWithContracts, {
|
|
217
|
-
loggers: {
|
|
218
|
-
prover: this.proxyLogger.createLogger('pxe:bb:wasm:bundle:proxied'),
|
|
219
|
-
},
|
|
220
|
-
});
|
|
210
|
+
async applyInitialAccounts() {
|
|
211
|
+
this.logger.info('Applying initial accounts setup');
|
|
212
|
+
const [adminAddress, sequencerAddress] = this.context.accounts;
|
|
213
|
+
|
|
214
|
+
this.adminWallet = this.context.wallet;
|
|
215
|
+
this.aztecNode = this.context.aztecNodeService;
|
|
216
|
+
this.cheatCodes = this.context.cheatCodes;
|
|
217
|
+
|
|
218
|
+
this.adminAddress = adminAddress;
|
|
219
|
+
this.sequencerAddress = sequencerAddress;
|
|
220
|
+
|
|
221
|
+
const canonicalFeeJuice = await getCanonicalFeeJuice();
|
|
222
|
+
this.feeJuiceContract = FeeJuiceContract.at(canonicalFeeJuice.address, this.adminWallet);
|
|
223
|
+
this.coinbase = EthAddress.random();
|
|
224
|
+
|
|
225
|
+
const userPXEConfig = getPXEConfig();
|
|
226
|
+
const userPXEConfigWithContracts = {
|
|
227
|
+
...userPXEConfig,
|
|
228
|
+
proverEnabled: this.realProofs,
|
|
229
|
+
} as PXEConfig;
|
|
230
|
+
|
|
231
|
+
this.userWallet = await TestWallet.create(this.aztecNode, userPXEConfigWithContracts, {
|
|
232
|
+
loggers: {
|
|
233
|
+
prover: this.proxyLogger.createLogger('pxe:bb:wasm:bundle:proxied'),
|
|
221
234
|
},
|
|
222
|
-
|
|
235
|
+
// The benchmark measures steady-state app cost, not first-send discovery cost. Reproduce the pre-handshake-default
|
|
236
|
+
// behavior of unconstrained delivery: derive the tagging secret from the (sender, recipient) key pair via ECDH
|
|
237
|
+
// instead of taking the current default (a non-interactive handshake, which injects two extra private app
|
|
238
|
+
// executions and a nullifier per cold chain). Constrained delivery is unaffected: the Noir circuit rejects
|
|
239
|
+
// address-derived for constrained, so the hook falls through to a handshake there.
|
|
240
|
+
hooks: {
|
|
241
|
+
resolveTaggingSecretStrategy: ({ deliveryMode }) =>
|
|
242
|
+
Promise.resolve(
|
|
243
|
+
deliveryMode === AppTaggingSecretKind.UNCONSTRAINED
|
|
244
|
+
? { type: 'address-derived' }
|
|
245
|
+
: { type: 'non-interactive-handshake' },
|
|
246
|
+
),
|
|
247
|
+
},
|
|
248
|
+
});
|
|
223
249
|
}
|
|
224
250
|
|
|
225
|
-
async
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
251
|
+
async applySetupFeeJuice() {
|
|
252
|
+
this.logger.info('Applying fee juice setup');
|
|
253
|
+
this.feeJuiceContract = FeeJuiceContract.at(ProtocolContractAddress.FeeJuice, this.adminWallet);
|
|
254
|
+
|
|
255
|
+
this.feeJuiceBridgeTestHarness = await FeeJuicePortalTestingHarnessFactory.create({
|
|
256
|
+
aztecNode: this.context.aztecNodeService,
|
|
257
|
+
aztecNodeAdmin: this.context.aztecNodeService,
|
|
258
|
+
// Bridge from a dedicated L1 account so its direct writes don't race the sequencer publisher's
|
|
259
|
+
// txs on the deployer account (see L1_DIRECT_WRITE_ACCOUNT_INDEX).
|
|
260
|
+
l1Client: createExtendedL1Client(
|
|
261
|
+
this.context.config.l1RpcUrls,
|
|
262
|
+
MNEMONIC,
|
|
263
|
+
undefined,
|
|
264
|
+
undefined,
|
|
265
|
+
L1_DIRECT_WRITE_ACCOUNT_INDEX,
|
|
266
|
+
),
|
|
267
|
+
wallet: this.adminWallet,
|
|
268
|
+
logger: this.logger,
|
|
269
|
+
});
|
|
243
270
|
}
|
|
244
271
|
|
|
245
|
-
async
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
272
|
+
async applyDeployBananaToken() {
|
|
273
|
+
this.logger.info('Applying banana token deployment');
|
|
274
|
+
const { contract: bananaCoin, instance: bananaCoinInstance } = await BananaCoin.deploy(
|
|
275
|
+
this.adminWallet,
|
|
276
|
+
this.adminAddress,
|
|
277
|
+
'BC',
|
|
278
|
+
'BC',
|
|
279
|
+
18n,
|
|
280
|
+
).send({
|
|
281
|
+
from: this.adminAddress,
|
|
282
|
+
});
|
|
283
|
+
this.logger.info(`BananaCoin deployed at ${bananaCoin.address}`);
|
|
284
|
+
this.bananaCoin = bananaCoin;
|
|
285
|
+
this.bananaCoinInstance = bananaCoinInstance;
|
|
259
286
|
}
|
|
260
287
|
|
|
261
|
-
async
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
288
|
+
async applyDeployCandyBarToken() {
|
|
289
|
+
this.logger.info('Applying candy bar token deployment');
|
|
290
|
+
const { contract: candyBarCoin, instance: candyBarCoinInstance } = await TestTokenContract.deploy(
|
|
291
|
+
this.adminWallet,
|
|
292
|
+
this.adminAddress,
|
|
293
|
+
'CBC',
|
|
294
|
+
'CBC',
|
|
295
|
+
18n,
|
|
296
|
+
).send({
|
|
297
|
+
from: this.adminAddress,
|
|
298
|
+
});
|
|
299
|
+
this.logger.info(`CandyBarCoin deployed at ${candyBarCoin.address}`);
|
|
300
|
+
this.candyBarCoin = candyBarCoin;
|
|
301
|
+
this.candyBarCoinInstance = candyBarCoinInstance;
|
|
275
302
|
}
|
|
276
303
|
|
|
277
|
-
public async
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
const feeJuiceContract = this.feeJuiceBridgeTestHarness.feeJuice;
|
|
282
|
-
expect((await context.wallet.getContractMetadata(feeJuiceContract.address)).isContractPublished).toBe(true);
|
|
304
|
+
public async applyFPCSetup() {
|
|
305
|
+
this.logger.info('Applying FPC setup');
|
|
306
|
+
const feeJuiceContract = this.feeJuiceBridgeTestHarness.feeJuice;
|
|
307
|
+
expect((await this.context.wallet.getContractMetadata(feeJuiceContract.address)).isContractPublished).toBe(true);
|
|
283
308
|
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
309
|
+
const bananaCoin = this.bananaCoin;
|
|
310
|
+
const { contract: bananaFPC, instance: bananaFPCInstance } = await FPCContract.deploy(
|
|
311
|
+
this.adminWallet,
|
|
312
|
+
bananaCoin.address,
|
|
313
|
+
this.adminAddress,
|
|
314
|
+
).send({
|
|
315
|
+
from: this.adminAddress,
|
|
316
|
+
});
|
|
288
317
|
|
|
289
|
-
|
|
318
|
+
this.logger.info(`BananaPay deployed at ${bananaFPC.address}`);
|
|
290
319
|
|
|
291
|
-
|
|
320
|
+
await this.feeJuiceBridgeTestHarness.bridgeFromL1ToL2(bananaFPC.address, this.adminAddress);
|
|
292
321
|
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
async data => {
|
|
296
|
-
this.bananaFPC = await FPCContract.at(data.bananaFPCAddress, this.adminWallet);
|
|
297
|
-
},
|
|
298
|
-
);
|
|
322
|
+
this.bananaFPC = bananaFPC;
|
|
323
|
+
this.bananaFPCInstance = bananaFPCInstance;
|
|
299
324
|
}
|
|
300
325
|
|
|
301
|
-
async
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
return { sponsoredFPCAddress: sponsoredFPC.address };
|
|
308
|
-
},
|
|
309
|
-
async ({ sponsoredFPCAddress }) => {
|
|
310
|
-
this.sponsoredFPC = await SponsoredFPCContract.at(sponsoredFPCAddress, this.adminWallet);
|
|
311
|
-
},
|
|
312
|
-
);
|
|
326
|
+
async applyDeploySponsoredFPC() {
|
|
327
|
+
this.logger.info('Applying sponsored FPC deployment');
|
|
328
|
+
const sponsoredFPCInstance = await setupSponsoredFPC(this.adminWallet);
|
|
329
|
+
this.logger.info(`SponsoredFPC at ${sponsoredFPCInstance.address}`);
|
|
330
|
+
this.sponsoredFPC = SponsoredFPCContract.at(sponsoredFPCInstance.address, this.adminWallet);
|
|
331
|
+
this.sponsoredFPCInstance = sponsoredFPCInstance;
|
|
313
332
|
}
|
|
314
333
|
|
|
315
334
|
public async createCrossChainTestHarness(owner: AztecAddress) {
|
|
316
|
-
const l1Client = createExtendedL1Client(this.context.
|
|
335
|
+
const l1Client = createExtendedL1Client(this.context.config.l1RpcUrls, MNEMONIC);
|
|
317
336
|
|
|
318
337
|
const underlyingERC20Address = await deployL1Contract(l1Client, TestERC20Abi, TestERC20Bytecode, [
|
|
319
338
|
'Underlying',
|
|
@@ -338,49 +357,45 @@ export class ClientFlowsBenchmark {
|
|
|
338
357
|
|
|
339
358
|
public async createAndFundBenchmarkingAccountOnUserWallet(accountType: AccountType) {
|
|
340
359
|
const benchysAccountManager = await this.createBenchmarkingAccountManager(this.adminWallet, accountType);
|
|
341
|
-
const benchysAccount = await benchysAccountManager.getAccount();
|
|
342
360
|
const benchysAddress = benchysAccountManager.address;
|
|
343
361
|
const claim = await this.feeJuiceBridgeTestHarness.prepareTokensOnL1(benchysAddress);
|
|
344
362
|
const behchysDeployMethod = await benchysAccountManager.getDeployMethod();
|
|
345
|
-
await behchysDeployMethod
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
})
|
|
350
|
-
.wait();
|
|
363
|
+
await behchysDeployMethod.send({
|
|
364
|
+
from: NO_FROM,
|
|
365
|
+
fee: { paymentMethod: new FeeJuicePaymentMethodWithClaim(benchysAddress, claim) },
|
|
366
|
+
});
|
|
351
367
|
// Register benchy on the user's Wallet, where we're going to be interacting from
|
|
352
368
|
const accountManager = await this.userWallet.createAccount({
|
|
353
|
-
secret:
|
|
354
|
-
salt: new Fr(
|
|
369
|
+
secret: benchysAccountManager.getSecretKey(),
|
|
370
|
+
salt: new Fr(benchysAccountManager.getInstance().salt),
|
|
355
371
|
contract: benchysAccountManager.getAccountContract(),
|
|
356
372
|
});
|
|
357
373
|
return accountManager.address;
|
|
358
374
|
}
|
|
359
375
|
|
|
360
|
-
public async
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
);
|
|
376
|
+
public async applyDeployAmm() {
|
|
377
|
+
this.logger.info('Applying AMM deployment');
|
|
378
|
+
const { contract: liquidityToken, instance: liquidityTokenInstance } = await TestTokenContract.deploy(
|
|
379
|
+
this.adminWallet,
|
|
380
|
+
this.adminAddress,
|
|
381
|
+
'LPT',
|
|
382
|
+
'LPT',
|
|
383
|
+
18n,
|
|
384
|
+
).send({
|
|
385
|
+
from: this.adminAddress,
|
|
386
|
+
});
|
|
387
|
+
const { contract: amm, instance: ammInstance } = await AMMContract.deploy(
|
|
388
|
+
this.adminWallet,
|
|
389
|
+
this.bananaCoin.address,
|
|
390
|
+
this.candyBarCoin.address,
|
|
391
|
+
liquidityToken.address,
|
|
392
|
+
).send({ from: this.adminAddress });
|
|
393
|
+
this.logger.info(`AMM deployed at ${amm.address}`);
|
|
394
|
+
await liquidityToken.methods.set_minter(amm.address, true).send({ from: this.adminAddress });
|
|
395
|
+
this.liquidityToken = liquidityToken;
|
|
396
|
+
this.liquidityTokenInstance = liquidityTokenInstance;
|
|
397
|
+
this.amm = amm;
|
|
398
|
+
this.ammInstance = ammInstance;
|
|
384
399
|
}
|
|
385
400
|
|
|
386
401
|
public async getBridgedFeeJuicePaymentMethodForWallet(_wallet: Wallet, sender: AztecAddress) {
|
|
@@ -391,8 +406,9 @@ export class ClientFlowsBenchmark {
|
|
|
391
406
|
public async getPrivateFPCPaymentMethodForWallet(wallet: Wallet, sender: AztecAddress) {
|
|
392
407
|
// The private fee paying method assembled on the app side requires knowledge of the maximum
|
|
393
408
|
// fee the user is willing to pay
|
|
394
|
-
const maxFeesPerGas =
|
|
395
|
-
const
|
|
409
|
+
const maxFeesPerGas = await getPaddedMaxFeesPerGas(this.aztecNode);
|
|
410
|
+
const gasLimits = Gas.from((await this.aztecNode.getNodeInfo()).txsLimits.gas);
|
|
411
|
+
const gasSettings = GasSettings.fallback({ gasLimits, maxFeesPerGas });
|
|
396
412
|
return new PrivateFeePaymentMethod(this.bananaFPC.address, sender, wallet, gasSettings);
|
|
397
413
|
}
|
|
398
414
|
|
|
@@ -6,7 +6,7 @@ export type ClientFlowConfig = {
|
|
|
6
6
|
recursions?: number[];
|
|
7
7
|
};
|
|
8
8
|
|
|
9
|
-
type ClientFlows = 'accountDeployments' | 'deployments' | 'transfers' | 'bridging' | 'amm';
|
|
9
|
+
type ClientFlows = 'accountDeployments' | 'deployments' | 'transfers' | 'bridging' | 'amm' | 'storageProof';
|
|
10
10
|
|
|
11
11
|
export type ClientFlowsConfig = {
|
|
12
12
|
[key in ClientFlows]: ClientFlowConfig;
|
|
@@ -34,6 +34,10 @@ export const KEY_FLOWS_CONFIG: ClientFlowsConfig = {
|
|
|
34
34
|
feePaymentMethods: ['sponsored_fpc', 'private_fpc'],
|
|
35
35
|
recursions: [0, 1],
|
|
36
36
|
},
|
|
37
|
+
storageProof: {
|
|
38
|
+
accounts: ['ecdsar1'],
|
|
39
|
+
feePaymentMethods: ['sponsored_fpc'],
|
|
40
|
+
},
|
|
37
41
|
};
|
|
38
42
|
|
|
39
43
|
export const FULL_FLOWS_CONFIG: ClientFlowsConfig = {
|
|
@@ -58,4 +62,8 @@ export const FULL_FLOWS_CONFIG: ClientFlowsConfig = {
|
|
|
58
62
|
feePaymentMethods: ['sponsored_fpc', 'private_fpc'],
|
|
59
63
|
recursions: [0, 1, 2],
|
|
60
64
|
},
|
|
65
|
+
storageProof: {
|
|
66
|
+
accounts: ['ecdsar1', 'schnorr'],
|
|
67
|
+
feePaymentMethods: ['sponsored_fpc', 'private_fpc'],
|
|
68
|
+
},
|
|
61
69
|
};
|