@aztec/end-to-end 0.0.1-commit.b655e406 → 0.0.1-commit.c2595eba
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/dest/bench/client_flows/benchmark.d.ts +3 -2
- package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/benchmark.js +21 -1
- package/dest/bench/client_flows/client_flows_benchmark.d.ts +21 -15
- package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.js +129 -119
- package/dest/bench/client_flows/config.d.ts +1 -1
- package/dest/bench/client_flows/data_extractor.d.ts +1 -1
- package/dest/bench/client_flows/data_extractor.js +7 -27
- package/dest/bench/utils.d.ts +8 -7
- package/dest/bench/utils.d.ts.map +1 -1
- package/dest/bench/utils.js +27 -18
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +6 -7
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +96 -112
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +19 -13
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +91 -70
- package/dest/e2e_deploy_contract/deploy_test.d.ts +5 -4
- package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
- package/dest/e2e_deploy_contract/deploy_test.js +18 -13
- package/dest/e2e_epochs/epochs_test.d.ts +17 -9
- package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.js +48 -23
- package/dest/e2e_fees/bridging_race.notest.d.ts +1 -1
- package/dest/e2e_fees/bridging_race.notest.js +5 -7
- package/dest/e2e_fees/fees_test.d.ts +20 -16
- package/dest/e2e_fees/fees_test.d.ts.map +1 -1
- package/dest/e2e_fees/fees_test.js +127 -139
- package/dest/e2e_l1_publisher/write_json.d.ts +4 -3
- package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -1
- package/dest/e2e_l1_publisher/write_json.js +18 -19
- package/dest/e2e_multi_validator/utils.d.ts +1 -1
- package/dest/e2e_multi_validator/utils.js +1 -1
- package/dest/e2e_nested_contract/nested_contract_test.d.ts +6 -9
- package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
- package/dest/e2e_nested_contract/nested_contract_test.js +31 -38
- package/dest/e2e_p2p/inactivity_slash_test.d.ts +3 -3
- package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -1
- package/dest/e2e_p2p/inactivity_slash_test.js +7 -6
- package/dest/e2e_p2p/p2p_network.d.ts +225 -18
- package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
- package/dest/e2e_p2p/p2p_network.js +121 -110
- package/dest/e2e_p2p/shared.d.ts +11 -11
- package/dest/e2e_p2p/shared.d.ts.map +1 -1
- package/dest/e2e_p2p/shared.js +15 -21
- package/dest/e2e_token_contract/token_contract_test.d.ts +16 -9
- package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
- package/dest/e2e_token_contract/token_contract_test.js +89 -91
- package/dest/fixtures/e2e_prover_test.d.ts +12 -18
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
- package/dest/fixtures/e2e_prover_test.js +101 -109
- package/dest/fixtures/fixtures.d.ts +2 -3
- package/dest/fixtures/fixtures.d.ts.map +1 -1
- package/dest/fixtures/fixtures.js +2 -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/index.d.ts +1 -1
- 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/setup.d.ts +218 -0
- package/dest/fixtures/setup.d.ts.map +1 -0
- package/dest/fixtures/setup.js +695 -0
- package/dest/fixtures/setup_p2p_test.d.ts +6 -7
- package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
- package/dest/fixtures/setup_p2p_test.js +41 -28
- package/dest/fixtures/token_utils.d.ts +5 -2
- package/dest/fixtures/token_utils.d.ts.map +1 -1
- package/dest/fixtures/token_utils.js +13 -7
- 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/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/index.d.ts +1 -1
- 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 +7 -6
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +14 -14
- package/dest/shared/gas_portal_test_harness.d.ts +2 -2
- package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
- package/dest/shared/gas_portal_test_harness.js +2 -2
- package/dest/shared/index.d.ts +2 -2
- package/dest/shared/index.d.ts.map +1 -1
- package/dest/shared/jest_setup.d.ts +1 -1
- package/dest/shared/submit-transactions.d.ts +3 -3
- package/dest/shared/submit-transactions.d.ts.map +1 -1
- package/dest/shared/submit-transactions.js +9 -11
- 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 +55 -35
- package/dest/simulators/index.d.ts +1 -1
- package/dest/simulators/lending_simulator.d.ts +2 -2
- package/dest/simulators/lending_simulator.d.ts.map +1 -1
- package/dest/simulators/lending_simulator.js +6 -4
- package/dest/simulators/token_simulator.d.ts +1 -1
- package/dest/simulators/token_simulator.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.d.ts +8 -5
- package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.js +85 -23
- package/dest/spartan/tx_metrics.d.ts +88 -0
- package/dest/spartan/tx_metrics.d.ts.map +1 -0
- package/dest/spartan/tx_metrics.js +422 -0
- package/dest/spartan/utils/bot.d.ts +27 -0
- package/dest/spartan/utils/bot.d.ts.map +1 -0
- package/dest/spartan/utils/bot.js +141 -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 +36 -0
- package/dest/spartan/utils/config.d.ts.map +1 -0
- package/dest/spartan/utils/config.js +20 -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 +9 -0
- package/dest/spartan/utils/index.d.ts.map +1 -0
- package/dest/spartan/utils/index.js +18 -0
- package/dest/spartan/utils/k8s.d.ts +126 -0
- package/dest/spartan/utils/k8s.d.ts.map +1 -0
- package/dest/spartan/utils/k8s.js +375 -0
- package/dest/spartan/utils/nodes.d.ts +41 -0
- package/dest/spartan/utils/nodes.d.ts.map +1 -0
- package/dest/spartan/utils/nodes.js +455 -0
- package/dest/spartan/utils/scripts.d.ts +16 -0
- package/dest/spartan/utils/scripts.d.ts.map +1 -0
- package/dest/spartan/utils/scripts.js +66 -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/package.json +43 -40
- package/src/bench/client_flows/benchmark.ts +24 -2
- package/src/bench/client_flows/client_flows_benchmark.ts +152 -170
- package/src/bench/client_flows/data_extractor.ts +6 -28
- package/src/bench/utils.ts +30 -20
- package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +104 -142
- package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +140 -124
- package/src/e2e_deploy_contract/deploy_test.ts +22 -15
- package/src/e2e_epochs/epochs_test.ts +96 -56
- package/src/e2e_fees/bridging_race.notest.ts +5 -11
- package/src/e2e_fees/fees_test.ts +180 -219
- package/src/e2e_l1_publisher/write_json.ts +20 -19
- package/src/e2e_multi_validator/utils.ts +1 -1
- package/src/e2e_nested_contract/nested_contract_test.ts +33 -55
- package/src/e2e_p2p/inactivity_slash_test.ts +10 -9
- package/src/e2e_p2p/p2p_network.ts +181 -180
- package/src/e2e_p2p/shared.ts +35 -29
- package/src/e2e_token_contract/token_contract_test.ts +103 -118
- package/src/fixtures/e2e_prover_test.ts +112 -150
- package/src/fixtures/fixtures.ts +2 -5
- package/src/fixtures/get_acvm_config.ts +1 -1
- package/src/fixtures/l1_to_l2_messaging.ts +4 -2
- package/src/fixtures/setup.ts +1017 -0
- package/src/fixtures/setup_p2p_test.ts +38 -29
- package/src/fixtures/token_utils.ts +8 -7
- package/src/fixtures/utils.ts +27 -947
- package/src/fixtures/web3signer.ts +1 -1
- package/src/fixtures/with_telemetry_utils.ts +2 -2
- package/src/guides/up_quick_start.sh +1 -1
- 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 +19 -36
- package/src/shared/gas_portal_test_harness.ts +3 -3
- package/src/shared/index.ts +1 -1
- package/src/shared/submit-transactions.ts +9 -15
- package/src/shared/uniswap_l1_l2.ts +65 -86
- package/src/simulators/lending_simulator.ts +7 -5
- package/src/spartan/DEVELOP.md +7 -0
- package/src/spartan/setup_test_wallets.ts +119 -28
- package/src/spartan/tx_metrics.ts +376 -0
- package/src/spartan/utils/bot.ts +185 -0
- package/src/spartan/utils/chaos.ts +253 -0
- package/src/spartan/utils/clients.ts +100 -0
- package/src/spartan/utils/config.ts +26 -0
- package/src/spartan/utils/health.ts +255 -0
- package/src/spartan/utils/helm.ts +84 -0
- package/src/spartan/utils/index.ts +64 -0
- package/src/spartan/utils/k8s.ts +527 -0
- package/src/spartan/utils/nodes.ts +535 -0
- package/src/spartan/utils/scripts.ts +63 -0
- package/src/spartan/utils.ts +1 -942
- 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/fixtures/setup_l1_contracts.ts +0 -26
- package/src/fixtures/snapshot_manager.ts +0 -665
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ContractFunctionInteraction, DeployMethod, type DeployOptions, type ProfileInteractionOptions } from '@aztec/aztec.js/contracts';
|
|
2
2
|
import type { Logger } from '@aztec/aztec.js/log';
|
|
3
3
|
import { type PrivateExecutionStep } from '@aztec/stdlib/kernel';
|
|
4
|
-
import type { ProvingStats, ProvingTimings, SimulationStats, SimulationTimings } from '@aztec/stdlib/tx';
|
|
4
|
+
import type { ProvingStats, ProvingTimings, RoundTripStats, SimulationStats, SimulationTimings } from '@aztec/stdlib/tx';
|
|
5
5
|
import type { GithubActionBenchmarkResult } from '../utils.js';
|
|
6
6
|
declare const logLevel: readonly ["silent", "fatal", "error", "warn", "info", "verbose", "debug", "trace"];
|
|
7
7
|
type LogLevel = (typeof logLevel)[number];
|
|
@@ -48,6 +48,7 @@ type ClientFlowBenchmark = {
|
|
|
48
48
|
};
|
|
49
49
|
maxMemory: number;
|
|
50
50
|
rpc: Record<string, CallRecording>;
|
|
51
|
+
roundTrips: RoundTripStats;
|
|
51
52
|
proverType: ProverType;
|
|
52
53
|
minimumTrace: StructuredTrace;
|
|
53
54
|
totalGateCount: number;
|
|
@@ -58,4 +59,4 @@ export declare function generateBenchmark(flow: string, logs: Log[], stats: Prov
|
|
|
58
59
|
export declare function convertProfileToGHBenchmark(benchmark: ClientFlowBenchmark): GithubActionBenchmarkResult[];
|
|
59
60
|
export declare function captureProfile(label: string, interaction: ContractFunctionInteraction | DeployMethod, opts: Omit<ProfileInteractionOptions & DeployOptions, 'profileMode'>, expectedSteps?: number): Promise<import("@aztec/stdlib/tx").TxProfileResult>;
|
|
60
61
|
export {};
|
|
61
|
-
//# sourceMappingURL=
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVuY2htYXJrLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmVuY2gvY2xpZW50X2Zsb3dzL2JlbmNobWFyay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLFlBQVksRUFDWixLQUFLLGFBQWEsRUFDbEIsS0FBSyx5QkFBeUIsRUFDL0IsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRCxPQUFPLEVBQUUsS0FBSyxvQkFBb0IsRUFBa0MsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRyxPQUFPLEtBQUssRUFDVixZQUFZLEVBQ1osY0FBYyxFQUNkLGNBQWMsRUFDZCxlQUFlLEVBQ2YsaUJBQWlCLEVBQ2xCLE1BQU0sa0JBQWtCLENBQUM7QUFNMUIsT0FBTyxLQUFLLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJL0QsUUFBQSxNQUFNLFFBQVEsb0ZBQXFGLENBQUM7QUFDcEcsS0FBSyxRQUFRLEdBQUcsQ0FBQyxPQUFPLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBRTFDLE1BQU0sTUFBTSxHQUFHLEdBQUc7SUFDaEIsSUFBSSxFQUFFLFFBQVEsQ0FBQztJQUNmLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNmLE9BQU8sRUFBRSxNQUFNLENBQUM7SUFDaEIsSUFBSSxFQUFFLEdBQUcsQ0FBQztDQUNYLENBQUM7QUFFRixRQUFBLE1BQU0sVUFBVSwwS0FhTixDQUFDO0FBRVgsS0FBSyxRQUFRLEdBQUcsQ0FBQyxPQUFPLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBRTVDLEtBQUssZUFBZSxHQUFHO0tBQ3BCLENBQUMsSUFBSSxRQUFRLEdBQUcsTUFBTTtDQUN4QixDQUFDO0FBRUYscUJBQWEsV0FBVztJQUN0QixPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBYztJQUNyQyxPQUFPLENBQUMsSUFBSSxDQUFhO0lBRXpCLE9BQU8sZUFBaUI7SUFFeEIsTUFBTSxDQUFDLE1BQU0sU0FFWjtJQUVELE1BQU0sQ0FBQyxXQUFXLGdCQUVqQjtJQUVELFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FlbkM7SUFFRCxPQUFPLENBQUMsU0FBUztJQUlWLFNBQVMsU0FFZjtJQUVNLE9BQU8sVUFFYjtDQUNGO0FBRUQsTUFBTSxNQUFNLFVBQVUsR0FBRyxNQUFNLEdBQUcsUUFBUSxDQUFDO0FBRTNDLEtBQUssYUFBYSxHQUFHO0lBRW5CLEtBQUssRUFBRSxNQUFNLENBQUM7SUFFZCxHQUFHLEVBQUUsTUFBTSxDQUFDO0lBRVosR0FBRyxFQUFFLE1BQU0sQ0FBQztJQUVaLEdBQUcsRUFBRSxNQUFNLENBQUM7SUFFWixLQUFLLEVBQUUsTUFBTSxDQUFDO0NBQ2YsQ0FBQztBQUVGLEtBQUssSUFBSSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxjQUFjLEdBQUcsV0FBVyxDQUFDLEdBQUc7SUFDckUsSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUNiLFlBQVksQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN0QixPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQztDQUN4QyxDQUFDO0FBRUYsS0FBSyxtQkFBbUIsR0FBRztJQUN6QixJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQ2IsT0FBTyxFQUFFLElBQUksQ0FBQyxjQUFjLEdBQUcsaUJBQWlCLEVBQUUsYUFBYSxDQUFDLEdBQUc7UUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFBO0tBQUUsQ0FBQztJQUN0RixTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ25DLFVBQVUsRUFBRSxjQUFjLENBQUM7SUFDM0IsVUFBVSxFQUFFLFVBQVUsQ0FBQztJQUN2QixZQUFZLEVBQUUsZUFBZSxDQUFDO0lBQzlCLGNBQWMsRUFBRSxNQUFNLENBQUM7SUFDdkIsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ2QsS0FBSyxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7Q0FDM0IsQ0FBQztBQTBDRix3QkFBZ0IsaUJBQWlCLENBQy9CLElBQUksRUFBRSxNQUFNLEVBQ1osSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUNYLEtBQUssRUFBRSxZQUFZLEdBQUcsZUFBZSxFQUNyQyxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBRSxFQUM3QyxVQUFVLEVBQUUsVUFBVSxFQUN0QixLQUFLLEVBQUUsTUFBTSxHQUFHLFNBQVMsR0FDeEIsbUJBQW1CLENBMkVyQjtBQUVELHdCQUFnQiwyQkFBMkIsQ0FBQyxTQUFTLEVBQUUsbUJBQW1CLEdBQUcsMkJBQTJCLEVBQUUsQ0E2RHpHO0FBRUQsd0JBQXNCLGNBQWMsQ0FDbEMsS0FBSyxFQUFFLE1BQU0sRUFDYixXQUFXLEVBQUUsMkJBQTJCLEdBQUcsWUFBWSxFQUN2RCxJQUFJLEVBQUUsSUFBSSxDQUFDLHlCQUF5QixHQUFHLGFBQWEsRUFBRSxhQUFhLENBQUMsRUFDcEUsYUFBYSxDQUFDLEVBQUUsTUFBTSx1REFvQ3ZCIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"benchmark.d.ts","sourceRoot":"","sources":["../../../src/bench/client_flows/benchmark.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,yBAAyB,EAC/B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,KAAK,oBAAoB,EAAkC,MAAM,sBAAsB,CAAC;AACjG,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"benchmark.d.ts","sourceRoot":"","sources":["../../../src/bench/client_flows/benchmark.ts"],"names":[],"mappings":"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"}
|
|
@@ -140,6 +140,15 @@ export function generateBenchmark(flow, logs, stats, privateExecutionSteps, prov
|
|
|
140
140
|
}, []);
|
|
141
141
|
const timings = stats.timings;
|
|
142
142
|
const totalGateCount = steps[steps.length - 1].accGateCount;
|
|
143
|
+
const nodeRPCCalls = stats.nodeRPCCalls ?? {
|
|
144
|
+
perMethod: {},
|
|
145
|
+
roundTrips: {
|
|
146
|
+
roundTrips: 0,
|
|
147
|
+
totalBlockingTime: 0,
|
|
148
|
+
roundTripDurations: [],
|
|
149
|
+
roundTripMethods: []
|
|
150
|
+
}
|
|
151
|
+
};
|
|
143
152
|
return {
|
|
144
153
|
name: flow,
|
|
145
154
|
timings: {
|
|
@@ -149,7 +158,7 @@ export function generateBenchmark(flow, logs, stats, privateExecutionSteps, prov
|
|
|
149
158
|
unaccounted: timings.unaccounted,
|
|
150
159
|
witgen: timings.perFunction.reduce((acc, fn)=>acc + fn.time, 0)
|
|
151
160
|
},
|
|
152
|
-
rpc: Object.entries(
|
|
161
|
+
rpc: Object.entries(nodeRPCCalls.perMethod).reduce((acc, [RPCName, RPCCalls])=>{
|
|
153
162
|
const total = RPCCalls.times.reduce((sum, time)=>sum + time, 0);
|
|
154
163
|
const calls = RPCCalls.times.length;
|
|
155
164
|
acc[RPCName] = {
|
|
@@ -161,6 +170,7 @@ export function generateBenchmark(flow, logs, stats, privateExecutionSteps, prov
|
|
|
161
170
|
};
|
|
162
171
|
return acc;
|
|
163
172
|
}, {}),
|
|
173
|
+
roundTrips: nodeRPCCalls.roundTrips,
|
|
164
174
|
maxMemory,
|
|
165
175
|
proverType,
|
|
166
176
|
minimumTrace: minimumTrace,
|
|
@@ -201,6 +211,16 @@ export function convertProfileToGHBenchmark(benchmark) {
|
|
|
201
211
|
name: `${benchmark.name}/rpc`,
|
|
202
212
|
value: totalRPCCalls,
|
|
203
213
|
unit: 'calls'
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
name: `${benchmark.name}/round_trips`,
|
|
217
|
+
value: benchmark.roundTrips.roundTrips,
|
|
218
|
+
unit: 'round_trips'
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
name: `${benchmark.name}/round_trips_blocking_time`,
|
|
222
|
+
value: benchmark.roundTrips.totalBlockingTime,
|
|
223
|
+
unit: 'ms'
|
|
204
224
|
}
|
|
205
225
|
];
|
|
206
226
|
if (benchmark.timings.proving) {
|
|
@@ -5,7 +5,7 @@ import { type Logger } from '@aztec/aztec.js/log';
|
|
|
5
5
|
import type { AztecNode } from '@aztec/aztec.js/node';
|
|
6
6
|
import type { Wallet } from '@aztec/aztec.js/wallet';
|
|
7
7
|
import { CheatCodes } from '@aztec/aztec/testing';
|
|
8
|
-
import {
|
|
8
|
+
import type { DeployAztecL1ContractsArgs } from '@aztec/ethereum/deploy-aztec-l1-contracts';
|
|
9
9
|
import { ChainMonitor } from '@aztec/ethereum/test';
|
|
10
10
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
11
11
|
import { AMMContract } from '@aztec/noir-contracts.js/AMM';
|
|
@@ -13,9 +13,9 @@ import { FPCContract } from '@aztec/noir-contracts.js/FPC';
|
|
|
13
13
|
import { FeeJuiceContract } from '@aztec/noir-contracts.js/FeeJuice';
|
|
14
14
|
import { SponsoredFPCContract } from '@aztec/noir-contracts.js/SponsoredFPC';
|
|
15
15
|
import { TokenContract as BananaCoin, TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
16
|
+
import type { ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
16
17
|
import { TestWallet } from '@aztec/test-wallet/server';
|
|
17
|
-
import { type
|
|
18
|
-
import { type SetupOptions } from '../../fixtures/utils.js';
|
|
18
|
+
import { type EndToEndContext, type SetupOptions } from '../../fixtures/setup.js';
|
|
19
19
|
import { CrossChainTestHarness } from '../../shared/cross_chain_test_harness.js';
|
|
20
20
|
import { type GasBridgingTestHarness } from '../../shared/gas_portal_test_harness.js';
|
|
21
21
|
import { type ClientFlowsConfig } from './config.js';
|
|
@@ -23,11 +23,10 @@ export type AccountType = 'ecdsar1' | 'schnorr';
|
|
|
23
23
|
export type FeePaymentMethodGetter = (wallet: Wallet, sender: AztecAddress) => Promise<FeePaymentMethod | undefined>;
|
|
24
24
|
export type BenchmarkingFeePaymentMethod = 'bridged_fee_juice' | 'private_fpc' | 'sponsored_fpc' | 'fee_juice';
|
|
25
25
|
export declare class ClientFlowsBenchmark {
|
|
26
|
-
private snapshotManager;
|
|
27
26
|
logger: Logger;
|
|
28
27
|
aztecNode: AztecNode;
|
|
29
28
|
cheatCodes: CheatCodes;
|
|
30
|
-
context:
|
|
29
|
+
context: EndToEndContext;
|
|
31
30
|
chainMonitor: ChainMonitor;
|
|
32
31
|
feeJuiceBridgeTestHarness: GasBridgingTestHarness;
|
|
33
32
|
adminWallet: TestWallet;
|
|
@@ -36,11 +35,17 @@ export declare class ClientFlowsBenchmark {
|
|
|
36
35
|
coinbase: EthAddress;
|
|
37
36
|
feeJuiceContract: FeeJuiceContract;
|
|
38
37
|
bananaCoin: BananaCoin;
|
|
38
|
+
bananaCoinInstance: ContractInstanceWithAddress;
|
|
39
39
|
bananaFPC: FPCContract;
|
|
40
|
+
bananaFPCInstance: ContractInstanceWithAddress;
|
|
40
41
|
candyBarCoin: TokenContract;
|
|
42
|
+
candyBarCoinInstance: ContractInstanceWithAddress;
|
|
41
43
|
amm: AMMContract;
|
|
44
|
+
ammInstance: ContractInstanceWithAddress;
|
|
42
45
|
liquidityToken: TokenContract;
|
|
46
|
+
liquidityTokenInstance: ContractInstanceWithAddress;
|
|
43
47
|
sponsoredFPC: SponsoredFPCContract;
|
|
48
|
+
sponsoredFPCInstance: ContractInstanceWithAddress;
|
|
44
49
|
userWallet: TestWallet;
|
|
45
50
|
realProofs: boolean;
|
|
46
51
|
paymentMethods: Record<BenchmarkingFeePaymentMethod, {
|
|
@@ -49,25 +54,26 @@ export declare class ClientFlowsBenchmark {
|
|
|
49
54
|
}>;
|
|
50
55
|
config: ClientFlowsConfig;
|
|
51
56
|
private proxyLogger;
|
|
52
|
-
|
|
57
|
+
private setupOptions;
|
|
58
|
+
constructor(testName?: string, setupOptions?: Partial<SetupOptions & DeployAztecL1ContractsArgs>);
|
|
53
59
|
setup(): Promise<this>;
|
|
54
60
|
teardown(): Promise<void>;
|
|
55
61
|
mintAndBridgeFeeJuice(address: AztecAddress): Promise<void>;
|
|
56
62
|
/** Admin mints bananaCoin tokens privately to the target address and redeems them. */
|
|
57
63
|
mintPrivateBananas(amount: bigint, address: AztecAddress): Promise<void>;
|
|
58
64
|
createBenchmarkingAccountManager(wallet: TestWallet, type: 'ecdsar1' | 'schnorr'): Promise<import("@aztec/aztec.js/wallet").AccountManager>;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
65
|
+
applyBaseSetup(): Promise<void>;
|
|
66
|
+
applyInitialAccounts(): Promise<void>;
|
|
67
|
+
applySetupFeeJuice(): Promise<void>;
|
|
68
|
+
applyDeployBananaToken(): Promise<void>;
|
|
69
|
+
applyDeployCandyBarToken(): Promise<void>;
|
|
70
|
+
applyFPCSetup(): Promise<void>;
|
|
71
|
+
applyDeploySponsoredFPC(): Promise<void>;
|
|
66
72
|
createCrossChainTestHarness(owner: AztecAddress): Promise<CrossChainTestHarness>;
|
|
67
73
|
createAndFundBenchmarkingAccountOnUserWallet(accountType: AccountType): Promise<AztecAddress>;
|
|
68
|
-
|
|
74
|
+
applyDeployAmm(): Promise<void>;
|
|
69
75
|
getBridgedFeeJuicePaymentMethodForWallet(_wallet: Wallet, sender: AztecAddress): Promise<FeeJuicePaymentMethodWithClaim>;
|
|
70
76
|
getPrivateFPCPaymentMethodForWallet(wallet: Wallet, sender: AztecAddress): Promise<PrivateFeePaymentMethod>;
|
|
71
77
|
getSponsoredFPCPaymentMethodForWallet(_wallet: Wallet, _sender: AztecAddress): Promise<SponsoredFeePaymentMethod>;
|
|
72
78
|
}
|
|
73
|
-
//# sourceMappingURL=
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50X2Zsb3dzX2JlbmNobWFyay5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JlbmNoL2NsaWVudF9mbG93cy9jbGllbnRfZmxvd3NfYmVuY2htYXJrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hILE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHbEQsT0FBTyxLQUFLLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUU1RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGFBQWEsSUFBSSxVQUFVLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFJNUYsT0FBTyxLQUFL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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client_flows_benchmark.d.ts","sourceRoot":"","sources":["../../../src/bench/client_flows/client_flows_benchmark.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,KAAK,gBAAgB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChH,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"client_flows_benchmark.d.ts","sourceRoot":"","sources":["../../../src/bench/client_flows/client_flows_benchmark.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,13 @@ import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
|
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 {
|
|
5
|
+
import { createExtendedL1Client } from '@aztec/ethereum/client';
|
|
6
|
+
import { RollupContract } from '@aztec/ethereum/contracts';
|
|
7
|
+
import { deployL1Contract } from '@aztec/ethereum/deploy-l1-contract';
|
|
6
8
|
import { ChainMonitor } from '@aztec/ethereum/test';
|
|
7
|
-
import { randomBytes } from '@aztec/foundation/crypto';
|
|
9
|
+
import { randomBytes } from '@aztec/foundation/crypto/random';
|
|
10
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
8
11
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
9
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
10
12
|
import { TestERC20Abi } from '@aztec/l1-artifacts/TestERC20Abi';
|
|
11
13
|
import { TestERC20Bytecode } from '@aztec/l1-artifacts/TestERC20Bytecode';
|
|
12
14
|
import { AMMContract } from '@aztec/noir-contracts.js/AMM';
|
|
@@ -21,16 +23,15 @@ import { GasSettings } from '@aztec/stdlib/gas';
|
|
|
21
23
|
import { deriveSigningKey } from '@aztec/stdlib/keys';
|
|
22
24
|
import { TestWallet } from '@aztec/test-wallet/server';
|
|
23
25
|
import { MNEMONIC } from '../../fixtures/fixtures.js';
|
|
24
|
-
import {
|
|
26
|
+
import { deployAccounts, setup, teardown } from '../../fixtures/setup.js';
|
|
25
27
|
import { mintTokensToPrivate } from '../../fixtures/token_utils.js';
|
|
26
28
|
import { setupSponsoredFPC } from '../../fixtures/utils.js';
|
|
27
29
|
import { CrossChainTestHarness } from '../../shared/cross_chain_test_harness.js';
|
|
28
30
|
import { FeeJuicePortalTestingHarnessFactory } from '../../shared/gas_portal_test_harness.js';
|
|
29
31
|
import { ProxyLogger } from './benchmark.js';
|
|
30
32
|
import { FULL_FLOWS_CONFIG, KEY_FLOWS_CONFIG } from './config.js';
|
|
31
|
-
const {
|
|
33
|
+
const { BENCHMARK_CONFIG } = process.env;
|
|
32
34
|
export class ClientFlowsBenchmark {
|
|
33
|
-
snapshotManager;
|
|
34
35
|
logger;
|
|
35
36
|
aztecNode;
|
|
36
37
|
cheatCodes;
|
|
@@ -47,15 +48,21 @@ export class ClientFlowsBenchmark {
|
|
|
47
48
|
feeJuiceContract;
|
|
48
49
|
// Asset in which fees are paid via FPC
|
|
49
50
|
bananaCoin;
|
|
51
|
+
bananaCoinInstance;
|
|
50
52
|
bananaFPC;
|
|
53
|
+
bananaFPCInstance;
|
|
51
54
|
// Random asset we want to trade
|
|
52
55
|
candyBarCoin;
|
|
56
|
+
candyBarCoinInstance;
|
|
53
57
|
// AMM contract
|
|
54
58
|
amm;
|
|
59
|
+
ammInstance;
|
|
55
60
|
// Liquidity token for AMM
|
|
56
61
|
liquidityToken;
|
|
62
|
+
liquidityTokenInstance;
|
|
57
63
|
// Sponsored FPC contract
|
|
58
64
|
sponsoredFPC;
|
|
65
|
+
sponsoredFPCInstance;
|
|
59
66
|
// PXE and Wallet used by the benchmarking user. It can be set up with client-side proving enabled
|
|
60
67
|
userWallet;
|
|
61
68
|
realProofs = [
|
|
@@ -89,38 +96,44 @@ export class ClientFlowsBenchmark {
|
|
|
89
96
|
};
|
|
90
97
|
config;
|
|
91
98
|
proxyLogger;
|
|
99
|
+
setupOptions;
|
|
92
100
|
constructor(testName, setupOptions = {}){
|
|
93
101
|
this.logger = createLogger(`bench:client_flows${testName ? `:${testName}` : ''}`);
|
|
94
|
-
this.
|
|
102
|
+
this.setupOptions = {
|
|
95
103
|
startProverNode: true,
|
|
96
104
|
...setupOptions
|
|
97
|
-
}
|
|
98
|
-
...setupOptions
|
|
99
|
-
});
|
|
105
|
+
};
|
|
100
106
|
this.config = BENCHMARK_CONFIG === 'key_flows' ? KEY_FLOWS_CONFIG : FULL_FLOWS_CONFIG;
|
|
101
107
|
ProxyLogger.create();
|
|
102
108
|
this.proxyLogger = ProxyLogger.getInstance();
|
|
103
109
|
}
|
|
104
110
|
async setup() {
|
|
105
|
-
|
|
106
|
-
await
|
|
111
|
+
this.logger.info('Setting up subsystems from fresh');
|
|
112
|
+
this.context = await setup(0, {
|
|
113
|
+
...this.setupOptions,
|
|
114
|
+
fundSponsoredFPC: true,
|
|
115
|
+
skipAccountDeployment: true,
|
|
116
|
+
l1ContractsArgs: this.setupOptions
|
|
117
|
+
});
|
|
118
|
+
await this.applyBaseSetup();
|
|
119
|
+
await this.context.aztecNodeService.setConfig({
|
|
107
120
|
feeRecipient: this.sequencerAddress,
|
|
108
121
|
coinbase: this.coinbase
|
|
109
122
|
});
|
|
110
|
-
const rollupContract = RollupContract.getFromConfig(context.
|
|
111
|
-
this.chainMonitor = new ChainMonitor(rollupContract, context.dateProvider, this.logger, 200).start();
|
|
123
|
+
const rollupContract = RollupContract.getFromConfig(this.context.config);
|
|
124
|
+
this.chainMonitor = new ChainMonitor(rollupContract, this.context.dateProvider, this.logger, 200).start();
|
|
112
125
|
return this;
|
|
113
126
|
}
|
|
114
127
|
async teardown() {
|
|
115
128
|
await this.chainMonitor.stop();
|
|
116
|
-
await this.
|
|
129
|
+
await teardown(this.context);
|
|
117
130
|
}
|
|
118
131
|
async mintAndBridgeFeeJuice(address) {
|
|
119
132
|
const claim = await this.feeJuiceBridgeTestHarness.prepareTokensOnL1(address);
|
|
120
133
|
const { claimSecret: secret, messageLeafIndex: index } = claim;
|
|
121
134
|
await this.feeJuiceContract.methods.claim(address, claim.claimAmount, secret, index).send({
|
|
122
135
|
from: this.adminAddress
|
|
123
|
-
})
|
|
136
|
+
});
|
|
124
137
|
}
|
|
125
138
|
/** Admin mints bananaCoin tokens privately to the target address and redeems them. */ async mintPrivateBananas(amount, address) {
|
|
126
139
|
const balanceBefore = await this.bananaCoin.methods.balance_of_private(address).simulate({
|
|
@@ -146,101 +159,96 @@ export class ClientFlowsBenchmark {
|
|
|
146
159
|
throw new Error(`Unknown account type: ${type}`);
|
|
147
160
|
}
|
|
148
161
|
}
|
|
149
|
-
async
|
|
150
|
-
await this.
|
|
151
|
-
await this.
|
|
162
|
+
async applyBaseSetup() {
|
|
163
|
+
await this.applyInitialAccounts();
|
|
164
|
+
await this.applySetupFeeJuice();
|
|
152
165
|
}
|
|
153
|
-
async
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
this.
|
|
157
|
-
this.
|
|
158
|
-
this.adminAddress = adminAddress;
|
|
159
|
-
this.sequencerAddress = sequencerAddress;
|
|
160
|
-
const canonicalFeeJuice = await getCanonicalFeeJuice();
|
|
161
|
-
this.feeJuiceContract = await FeeJuiceContract.at(canonicalFeeJuice.address, this.adminWallet);
|
|
162
|
-
this.coinbase = EthAddress.random();
|
|
163
|
-
const userPXEConfig = getPXEConfig();
|
|
164
|
-
const userPXEConfigWithContracts = {
|
|
165
|
-
...userPXEConfig,
|
|
166
|
-
proverEnabled: this.realProofs
|
|
167
|
-
};
|
|
168
|
-
this.userWallet = await TestWallet.create(this.aztecNode, userPXEConfigWithContracts, {
|
|
169
|
-
loggers: {
|
|
170
|
-
prover: this.proxyLogger.createLogger('pxe:bb:wasm:bundle:proxied')
|
|
171
|
-
}
|
|
172
|
-
});
|
|
166
|
+
async applyInitialAccounts() {
|
|
167
|
+
this.logger.info('Applying initial accounts setup');
|
|
168
|
+
const { deployedAccounts } = await deployAccounts(2, this.logger)({
|
|
169
|
+
wallet: this.context.wallet,
|
|
170
|
+
initialFundedAccounts: this.context.initialFundedAccounts
|
|
173
171
|
});
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
172
|
+
const [{ address: adminAddress }, { address: sequencerAddress }] = deployedAccounts;
|
|
173
|
+
this.adminWallet = this.context.wallet;
|
|
174
|
+
this.aztecNode = this.context.aztecNodeService;
|
|
175
|
+
this.cheatCodes = this.context.cheatCodes;
|
|
176
|
+
this.adminAddress = adminAddress;
|
|
177
|
+
this.sequencerAddress = sequencerAddress;
|
|
178
|
+
const canonicalFeeJuice = await getCanonicalFeeJuice();
|
|
179
|
+
this.feeJuiceContract = FeeJuiceContract.at(canonicalFeeJuice.address, this.adminWallet);
|
|
180
|
+
this.coinbase = EthAddress.random();
|
|
181
|
+
const userPXEConfig = getPXEConfig();
|
|
182
|
+
const userPXEConfigWithContracts = {
|
|
183
|
+
...userPXEConfig,
|
|
184
|
+
proverEnabled: this.realProofs
|
|
185
|
+
};
|
|
186
|
+
this.userWallet = await TestWallet.create(this.aztecNode, userPXEConfigWithContracts, {
|
|
187
|
+
loggers: {
|
|
188
|
+
prover: this.proxyLogger.createLogger('pxe:bb:wasm:bundle:proxied')
|
|
189
|
+
}
|
|
186
190
|
});
|
|
187
191
|
}
|
|
188
|
-
async
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
this.
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
}, async ({ bananaCoinAddress })=>{
|
|
198
|
-
this.bananaCoin = await BananaCoin.at(bananaCoinAddress, this.adminWallet);
|
|
192
|
+
async applySetupFeeJuice() {
|
|
193
|
+
this.logger.info('Applying fee juice setup');
|
|
194
|
+
this.feeJuiceContract = FeeJuiceContract.at(ProtocolContractAddress.FeeJuice, this.adminWallet);
|
|
195
|
+
this.feeJuiceBridgeTestHarness = await FeeJuicePortalTestingHarnessFactory.create({
|
|
196
|
+
aztecNode: this.context.aztecNodeService,
|
|
197
|
+
aztecNodeAdmin: this.context.aztecNodeService,
|
|
198
|
+
l1Client: this.context.deployL1ContractsValues.l1Client,
|
|
199
|
+
wallet: this.adminWallet,
|
|
200
|
+
logger: this.logger
|
|
199
201
|
});
|
|
200
202
|
}
|
|
201
|
-
async
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
candyBarCoinAddress: candyBarCoin.address
|
|
209
|
-
};
|
|
210
|
-
}, async ({ candyBarCoinAddress })=>{
|
|
211
|
-
this.candyBarCoin = await TokenContract.at(candyBarCoinAddress, this.adminWallet);
|
|
203
|
+
async applyDeployBananaToken() {
|
|
204
|
+
this.logger.info('Applying banana token deployment');
|
|
205
|
+
const { contract: bananaCoin, instance: bananaCoinInstance } = await BananaCoin.deploy(this.adminWallet, this.adminAddress, 'BC', 'BC', 18n).send({
|
|
206
|
+
from: this.adminAddress,
|
|
207
|
+
wait: {
|
|
208
|
+
returnReceipt: true
|
|
209
|
+
}
|
|
212
210
|
});
|
|
211
|
+
this.logger.info(`BananaCoin deployed at ${bananaCoin.address}`);
|
|
212
|
+
this.bananaCoin = bananaCoin;
|
|
213
|
+
this.bananaCoinInstance = bananaCoinInstance;
|
|
213
214
|
}
|
|
214
|
-
async
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
}).deployed();
|
|
222
|
-
this.logger.info(`BananaPay deployed at ${bananaFPC.address}`);
|
|
223
|
-
await this.feeJuiceBridgeTestHarness.bridgeFromL1ToL2(bananaFPC.address, this.adminAddress);
|
|
224
|
-
return {
|
|
225
|
-
bananaFPCAddress: bananaFPC.address
|
|
226
|
-
};
|
|
227
|
-
}, async (data)=>{
|
|
228
|
-
this.bananaFPC = await FPCContract.at(data.bananaFPCAddress, this.adminWallet);
|
|
215
|
+
async applyDeployCandyBarToken() {
|
|
216
|
+
this.logger.info('Applying candy bar token deployment');
|
|
217
|
+
const { contract: candyBarCoin, instance: candyBarCoinInstance } = await TokenContract.deploy(this.adminWallet, this.adminAddress, 'CBC', 'CBC', 18n).send({
|
|
218
|
+
from: this.adminAddress,
|
|
219
|
+
wait: {
|
|
220
|
+
returnReceipt: true
|
|
221
|
+
}
|
|
229
222
|
});
|
|
223
|
+
this.logger.info(`CandyBarCoin deployed at ${candyBarCoin.address}`);
|
|
224
|
+
this.candyBarCoin = candyBarCoin;
|
|
225
|
+
this.candyBarCoinInstance = candyBarCoinInstance;
|
|
230
226
|
}
|
|
231
|
-
async
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
227
|
+
async applyFPCSetup() {
|
|
228
|
+
this.logger.info('Applying FPC setup');
|
|
229
|
+
const feeJuiceContract = this.feeJuiceBridgeTestHarness.feeJuice;
|
|
230
|
+
expect((await this.context.wallet.getContractMetadata(feeJuiceContract.address)).isContractPublished).toBe(true);
|
|
231
|
+
const bananaCoin = this.bananaCoin;
|
|
232
|
+
const { contract: bananaFPC, instance: bananaFPCInstance } = await FPCContract.deploy(this.adminWallet, bananaCoin.address, this.adminAddress).send({
|
|
233
|
+
from: this.adminAddress,
|
|
234
|
+
wait: {
|
|
235
|
+
returnReceipt: true
|
|
236
|
+
}
|
|
240
237
|
});
|
|
238
|
+
this.logger.info(`BananaPay deployed at ${bananaFPC.address}`);
|
|
239
|
+
await this.feeJuiceBridgeTestHarness.bridgeFromL1ToL2(bananaFPC.address, this.adminAddress);
|
|
240
|
+
this.bananaFPC = bananaFPC;
|
|
241
|
+
this.bananaFPCInstance = bananaFPCInstance;
|
|
242
|
+
}
|
|
243
|
+
async applyDeploySponsoredFPC() {
|
|
244
|
+
this.logger.info('Applying sponsored FPC deployment');
|
|
245
|
+
const sponsoredFPCInstance = await setupSponsoredFPC(this.adminWallet);
|
|
246
|
+
this.logger.info(`SponsoredFPC at ${sponsoredFPCInstance.address}`);
|
|
247
|
+
this.sponsoredFPC = SponsoredFPCContract.at(sponsoredFPCInstance.address, this.adminWallet);
|
|
248
|
+
this.sponsoredFPCInstance = sponsoredFPCInstance;
|
|
241
249
|
}
|
|
242
250
|
async createCrossChainTestHarness(owner) {
|
|
243
|
-
const l1Client = createExtendedL1Client(this.context.
|
|
251
|
+
const l1Client = createExtendedL1Client(this.context.config.l1RpcUrls, MNEMONIC);
|
|
244
252
|
const underlyingERC20Address = await deployL1Contract(l1Client, TestERC20Abi, TestERC20Bytecode, [
|
|
245
253
|
'Underlying',
|
|
246
254
|
'UND',
|
|
@@ -262,7 +270,7 @@ export class ClientFlowsBenchmark {
|
|
|
262
270
|
fee: {
|
|
263
271
|
paymentMethod: new FeeJuicePaymentMethodWithClaim(benchysAddress, claim)
|
|
264
272
|
}
|
|
265
|
-
})
|
|
273
|
+
});
|
|
266
274
|
// Register benchy on the user's Wallet, where we're going to be interacting from
|
|
267
275
|
const accountManager = await this.userWallet.createAccount({
|
|
268
276
|
secret: benchysAccount.getSecretKey(),
|
|
@@ -271,26 +279,28 @@ export class ClientFlowsBenchmark {
|
|
|
271
279
|
});
|
|
272
280
|
return accountManager.address;
|
|
273
281
|
}
|
|
274
|
-
async
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
this.liquidityToken = await TokenContract.at(liquidityTokenAddress, this.adminWallet);
|
|
292
|
-
this.amm = await AMMContract.at(ammAddress, this.adminWallet);
|
|
282
|
+
async applyDeployAmm() {
|
|
283
|
+
this.logger.info('Applying AMM deployment');
|
|
284
|
+
const { contract: liquidityToken, instance: liquidityTokenInstance } = await TokenContract.deploy(this.adminWallet, this.adminAddress, 'LPT', 'LPT', 18n).send({
|
|
285
|
+
from: this.adminAddress,
|
|
286
|
+
wait: {
|
|
287
|
+
returnReceipt: true
|
|
288
|
+
}
|
|
289
|
+
});
|
|
290
|
+
const { contract: amm, instance: ammInstance } = await AMMContract.deploy(this.adminWallet, this.bananaCoin.address, this.candyBarCoin.address, liquidityToken.address).send({
|
|
291
|
+
from: this.adminAddress,
|
|
292
|
+
wait: {
|
|
293
|
+
returnReceipt: true
|
|
294
|
+
}
|
|
295
|
+
});
|
|
296
|
+
this.logger.info(`AMM deployed at ${amm.address}`);
|
|
297
|
+
await liquidityToken.methods.set_minter(amm.address, true).send({
|
|
298
|
+
from: this.adminAddress
|
|
293
299
|
});
|
|
300
|
+
this.liquidityToken = liquidityToken;
|
|
301
|
+
this.liquidityTokenInstance = liquidityTokenInstance;
|
|
302
|
+
this.amm = amm;
|
|
303
|
+
this.ammInstance = ammInstance;
|
|
294
304
|
}
|
|
295
305
|
async getBridgedFeeJuicePaymentMethodForWallet(_wallet, sender) {
|
|
296
306
|
const claim = await this.feeJuiceBridgeTestHarness.prepareTokensOnL1(sender);
|
|
@@ -299,7 +309,7 @@ export class ClientFlowsBenchmark {
|
|
|
299
309
|
async getPrivateFPCPaymentMethodForWallet(wallet, sender) {
|
|
300
310
|
// The private fee paying method assembled on the app side requires knowledge of the maximum
|
|
301
311
|
// fee the user is willing to pay
|
|
302
|
-
const maxFeesPerGas = (await this.aztecNode.
|
|
312
|
+
const maxFeesPerGas = (await this.aztecNode.getCurrentMinFees()).mul(1.5);
|
|
303
313
|
const gasSettings = GasSettings.default({
|
|
304
314
|
maxFeesPerGas
|
|
305
315
|
});
|
|
@@ -11,4 +11,4 @@ export type ClientFlowsConfig = {
|
|
|
11
11
|
export declare const KEY_FLOWS_CONFIG: ClientFlowsConfig;
|
|
12
12
|
export declare const FULL_FLOWS_CONFIG: ClientFlowsConfig;
|
|
13
13
|
export {};
|
|
14
|
-
//# sourceMappingURL=
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmVuY2gvY2xpZW50X2Zsb3dzL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU3RixNQUFNLE1BQU0sZ0JBQWdCLEdBQUc7SUFDN0IsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLGlCQUFpQixFQUFFLDRCQUE0QixFQUFFLENBQUM7SUFDbEQsVUFBVSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7Q0FDdkIsQ0FBQztBQUVGLEtBQUssV0FBVyxHQUFHLG9CQUFvQixHQUFHLGFBQWEsR0FBRyxXQUFXLEdBQUcsVUFBVSxHQUFHLEtBQUssQ0FBQztBQUUzRixNQUFNLE1BQU0saUJBQWlCLEdBQUc7S0FDN0IsR0FBRyxJQUFJLFdBQVcsR0FBRyxnQkFBZ0I7Q0FDdkMsQ0FBQztBQUVGLGVBQU8sTUFBTSxnQkFBZ0IsRUFBRSxpQkFzQjlCLENBQUM7QUFFRixlQUFPLE1BQU0saUJBQWlCLEVBQUUsaUJBc0IvQixDQUFDIn0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV9leHRyYWN0b3IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZW5jaC9jbGllbnRfZmxvd3MvZGF0YV9leHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|