@aztec/end-to-end 3.0.0-canary.a9708bd → 3.0.0-devnet.20251212
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 +4 -3
- package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/benchmark.js +2 -2
- package/dest/bench/client_flows/client_flows_benchmark.d.ts +25 -14
- package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.js +111 -90
- 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 +8 -30
- package/dest/bench/utils.d.ts +4 -13
- package/dest/bench/utils.d.ts.map +1 -1
- package/dest/bench/utils.js +10 -34
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +8 -8
- 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 +42 -42
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +12 -9
- 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 +35 -35
- package/dest/e2e_deploy_contract/deploy_test.d.ts +12 -6
- package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
- package/dest/e2e_deploy_contract/deploy_test.js +9 -18
- package/dest/e2e_epochs/epochs_test.d.ts +19 -12
- package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.js +30 -22
- package/dest/e2e_fees/bridging_race.notest.d.ts +1 -1
- package/dest/e2e_fees/bridging_race.notest.js +14 -11
- package/dest/e2e_fees/fees_test.d.ts +10 -8
- package/dest/e2e_fees/fees_test.d.ts.map +1 -1
- package/dest/e2e_fees/fees_test.js +35 -38
- package/dest/e2e_l1_publisher/write_json.d.ts +4 -2
- package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -1
- package/dest/e2e_l1_publisher/write_json.js +9 -8
- package/dest/e2e_multi_validator/utils.d.ts +2 -2
- package/dest/e2e_multi_validator/utils.d.ts.map +1 -1
- package/dest/e2e_multi_validator/utils.js +4 -10
- package/dest/e2e_nested_contract/nested_contract_test.d.ts +7 -4
- package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
- package/dest/e2e_nested_contract/nested_contract_test.js +11 -12
- package/dest/e2e_p2p/inactivity_slash_test.d.ts +31 -0
- package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -0
- package/dest/e2e_p2p/inactivity_slash_test.js +139 -0
- package/dest/e2e_p2p/p2p_network.d.ts +238 -17
- package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
- package/dest/e2e_p2p/p2p_network.js +46 -19
- package/dest/e2e_p2p/shared.d.ts +16 -17
- package/dest/e2e_p2p/shared.d.ts.map +1 -1
- package/dest/e2e_p2p/shared.js +56 -55
- package/dest/e2e_token_contract/token_contract_test.d.ts +6 -5
- package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
- package/dest/e2e_token_contract/token_contract_test.js +14 -17
- package/dest/fixtures/e2e_prover_test.d.ts +12 -8
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
- package/dest/fixtures/e2e_prover_test.js +53 -58
- package/dest/fixtures/fixtures.d.ts +1 -1
- package/dest/fixtures/fixtures.d.ts.map +1 -1
- package/dest/fixtures/fixtures.js +1 -1
- package/dest/fixtures/get_acvm_config.d.ts +2 -2
- package/dest/fixtures/get_acvm_config.d.ts.map +1 -1
- package/dest/fixtures/get_acvm_config.js +1 -1
- package/dest/fixtures/get_bb_config.d.ts +2 -2
- package/dest/fixtures/get_bb_config.d.ts.map +1 -1
- package/dest/fixtures/get_bb_config.js +2 -2
- 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_l1_contracts.d.ts +476 -5
- package/dest/fixtures/setup_l1_contracts.d.ts.map +1 -1
- package/dest/fixtures/setup_l1_contracts.js +3 -3
- package/dest/fixtures/setup_p2p_test.d.ts +12 -11
- package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
- package/dest/fixtures/setup_p2p_test.js +50 -24
- package/dest/fixtures/snapshot_manager.d.ts +13 -10
- package/dest/fixtures/snapshot_manager.d.ts.map +1 -1
- package/dest/fixtures/snapshot_manager.js +66 -51
- package/dest/fixtures/token_utils.d.ts +10 -5
- package/dest/fixtures/token_utils.d.ts.map +1 -1
- package/dest/fixtures/token_utils.js +17 -18
- package/dest/fixtures/utils.d.ts +479 -35
- package/dest/fixtures/utils.d.ts.map +1 -1
- package/dest/fixtures/utils.js +106 -125
- package/dest/fixtures/web3signer.d.ts +5 -0
- package/dest/fixtures/web3signer.d.ts.map +1 -0
- package/dest/fixtures/web3signer.js +53 -0
- 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/alert_checker.d.ts +2 -2
- package/dest/quality_of_service/alert_checker.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.d.ts +20 -23
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +14 -16
- package/dest/shared/gas_portal_test_harness.d.ts +10 -17
- package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
- package/dest/shared/gas_portal_test_harness.js +11 -8
- package/dest/shared/index.d.ts +1 -1
- package/dest/shared/jest_setup.d.ts +1 -1
- package/dest/shared/jest_setup.js +1 -1
- package/dest/shared/submit-transactions.d.ts +6 -4
- package/dest/shared/submit-transactions.d.ts.map +1 -1
- package/dest/shared/submit-transactions.js +8 -7
- package/dest/shared/uniswap_l1_l2.d.ts +12 -8
- package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
- package/dest/shared/uniswap_l1_l2.js +44 -58
- package/dest/simulators/index.d.ts +1 -1
- package/dest/simulators/lending_simulator.d.ts +4 -7
- package/dest/simulators/lending_simulator.d.ts.map +1 -1
- package/dest/simulators/lending_simulator.js +8 -5
- package/dest/simulators/token_simulator.d.ts +4 -2
- package/dest/simulators/token_simulator.d.ts.map +1 -1
- package/dest/simulators/token_simulator.js +2 -2
- package/dest/spartan/setup_test_wallets.d.ts +22 -14
- package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.js +144 -86
- package/dest/spartan/tx_metrics.d.ts +39 -0
- package/dest/spartan/tx_metrics.d.ts.map +1 -0
- package/dest/spartan/tx_metrics.js +95 -0
- package/dest/spartan/utils.d.ts +92 -17
- package/dest/spartan/utils.d.ts.map +1 -1
- package/dest/spartan/utils.js +386 -63
- package/package.json +43 -40
- package/src/bench/client_flows/benchmark.ts +8 -8
- package/src/bench/client_flows/client_flows_benchmark.ts +141 -114
- package/src/bench/client_flows/data_extractor.ts +9 -31
- package/src/bench/utils.ts +9 -37
- package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +46 -63
- package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +38 -51
- package/src/e2e_deploy_contract/deploy_test.ts +18 -36
- package/src/e2e_epochs/epochs_test.ts +41 -35
- package/src/e2e_fees/bridging_race.notest.ts +16 -11
- package/src/e2e_fees/fees_test.ts +42 -47
- package/src/e2e_l1_publisher/write_json.ts +12 -9
- package/src/e2e_multi_validator/utils.ts +5 -11
- package/src/e2e_nested_contract/nested_contract_test.ts +15 -13
- package/src/e2e_p2p/inactivity_slash_test.ts +184 -0
- package/src/e2e_p2p/p2p_network.ts +124 -82
- package/src/e2e_p2p/shared.ts +66 -58
- package/src/e2e_token_contract/token_contract_test.ts +17 -17
- package/src/fixtures/e2e_prover_test.ts +60 -97
- package/src/fixtures/fixtures.ts +1 -2
- package/src/fixtures/get_acvm_config.ts +2 -2
- package/src/fixtures/get_bb_config.ts +3 -2
- package/src/fixtures/l1_to_l2_messaging.ts +4 -2
- package/src/fixtures/setup_l1_contracts.ts +5 -4
- package/src/fixtures/setup_p2p_test.ts +79 -32
- package/src/fixtures/snapshot_manager.ts +87 -82
- package/src/fixtures/token_utils.ts +16 -24
- package/src/fixtures/utils.ts +142 -172
- package/src/fixtures/web3signer.ts +63 -0
- package/src/fixtures/with_telemetry_utils.ts +2 -2
- package/src/guides/up_quick_start.sh +3 -11
- package/src/quality_of_service/alert_checker.ts +1 -1
- package/src/shared/cross_chain_test_harness.ts +23 -31
- package/src/shared/gas_portal_test_harness.ts +14 -21
- package/src/shared/jest_setup.ts +1 -1
- package/src/shared/submit-transactions.ts +12 -8
- package/src/shared/uniswap_l1_l2.ts +77 -86
- package/src/simulators/lending_simulator.ts +9 -6
- package/src/simulators/token_simulator.ts +5 -2
- package/src/spartan/DEVELOP.md +15 -3
- package/src/spartan/setup_test_wallets.ts +171 -127
- package/src/spartan/tx_metrics.ts +130 -0
- package/src/spartan/utils.ts +463 -64
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { ContractFunctionInteraction, DeployMethod, type DeployOptions, type ProfileInteractionOptions } from '@aztec/aztec.js/contracts';
|
|
2
|
+
import type { Logger } from '@aztec/aztec.js/log';
|
|
2
3
|
import { type PrivateExecutionStep } from '@aztec/stdlib/kernel';
|
|
3
4
|
import type { ProvingStats, ProvingTimings, SimulationStats, SimulationTimings } from '@aztec/stdlib/tx';
|
|
4
5
|
import type { GithubActionBenchmarkResult } from '../utils.js';
|
|
@@ -55,6 +56,6 @@ type ClientFlowBenchmark = {
|
|
|
55
56
|
};
|
|
56
57
|
export declare function generateBenchmark(flow: string, logs: Log[], stats: ProvingStats | SimulationStats, privateExecutionSteps: PrivateExecutionStep[], proverType: ProverType, error: string | undefined): ClientFlowBenchmark;
|
|
57
58
|
export declare function convertProfileToGHBenchmark(benchmark: ClientFlowBenchmark): GithubActionBenchmarkResult[];
|
|
58
|
-
export declare function captureProfile(label: string, interaction: ContractFunctionInteraction | DeployMethod, opts: Omit<
|
|
59
|
+
export declare function captureProfile(label: string, interaction: ContractFunctionInteraction | DeployMethod, opts: Omit<ProfileInteractionOptions & DeployOptions, 'profileMode'>, expectedSteps?: number): Promise<import("@aztec/stdlib/tx").TxProfileResult>;
|
|
59
60
|
export {};
|
|
60
|
-
//# sourceMappingURL=
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVuY2htYXJrLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmVuY2gvY2xpZW50X2Zsb3dzL2JlbmNobWFyay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLFlBQVksRUFDWixLQUFLLGFBQWEsRUFDbEIsS0FBSyx5QkFBeUIsRUFDL0IsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRCxPQUFPLEVBQUUsS0FBSyxvQkFBb0IsRUFBa0MsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRyxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBTXpHLE9BQU8sS0FBSyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSS9ELFFBQUEsTUFBTSxRQUFRLG9GQUFxRixDQUFDO0FBQ3BHLEtBQUssUUFBUSxHQUFHLENBQUMsT0FBTyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUUxQyxNQUFNLE1BQU0sR0FBRyxHQUFHO0lBQ2hCLElBQUksRUFBRSxRQUFRLENBQUM7SUFDZixTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixPQUFPLEVBQUUsTUFBTSxDQUFDO0lBQ2hCLElBQUksRUFBRSxHQUFHLENBQUM7Q0FDWCxDQUFDO0FBRUYsUUFBQSxNQUFNLFVBQVUsMEtBYU4sQ0FBQztBQUVYLEtBQUssUUFBUSxHQUFHLENBQUMsT0FBTyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUU1QyxLQUFLLGVBQWUsR0FBRztLQUNwQixDQUFDLElBQUksUUFBUSxHQUFHLE1BQU07Q0FDeEIsQ0FBQztBQUVGLHFCQUFhLFdBQVc7SUFDdEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQWM7SUFDckMsT0FBTyxDQUFDLElBQUksQ0FBYTtJQUV6QixPQUFPLGVBQWlCO0lBRXhCLE1BQU0sQ0FBQyxNQUFNLFNBRVo7SUFFRCxNQUFNLENBQUMsV0FBVyxnQkFFakI7SUFFRCxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxNQUFNLENBZW5DO0lBRUQsT0FBTyxDQUFDLFNBQVM7SUFJVixTQUFTLFNBRWY7SUFFTSxPQUFPLFVBRWI7Q0FDRjtBQUVELE1BQU0sTUFBTSxVQUFVLEdBQUcsTUFBTSxHQUFHLFFBQVEsQ0FBQztBQUUzQyxLQUFLLGFBQWEsR0FBRztJQUVuQixLQUFLLEVBQUUsTUFBTSxDQUFDO0lBRWQsR0FBRyxFQUFFLE1BQU0sQ0FBQztJQUVaLEdBQUcsRUFBRSxNQUFNLENBQUM7SUFFWixHQUFHLEVBQUUsTUFBTSxDQUFDO0lBRVosS0FBSyxFQUFFLE1BQU0sQ0FBQztDQUNmLENBQUM7QUFFRixLQUFLLElBQUksR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsY0FBYyxHQUFHLFdBQVcsQ0FBQyxHQUFHO0lBQ3JFLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYixZQUFZLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdEIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7Q0FDeEMsQ0FBQztBQUVGLEtBQUssbUJBQW1CLEdBQUc7SUFDekIsSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUNiLE9BQU8sRUFBRSxJQUFJLENBQUMsY0FBYyxHQUFHLGlCQUFpQixFQUFFLGFBQWEsQ0FBQyxHQUFHO1FBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQTtLQUFFLENBQUM7SUFDdEYsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUNsQixHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNuQyxVQUFVLEVBQUUsVUFBVSxDQUFDO0lBQ3ZCLFlBQVksRUFBRSxlQUFlLENBQUM7SUFDOUIsY0FBYyxFQUFFLE1BQU0sQ0FBQztJQUN2QixLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDZCxLQUFLLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztDQUMzQixDQUFDO0FBMENGLHdCQUFnQixpQkFBaUIsQ0FDL0IsSUFBSSxFQUFFLE1BQU0sRUFDWixJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQ1gsS0FBSyxFQUFFLFlBQVksR0FBRyxlQUFlLEVBQ3JDLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLEVBQzdDLFVBQVUsRUFBRSxVQUFVLEVBQ3RCLEtBQUssRUFBRSxNQUFNLEdBQUcsU0FBUyxHQUN4QixtQkFBbUIsQ0FzRXJCO0FBRUQsd0JBQWdCLDJCQUEyQixDQUFDLFNBQVMsRUFBRSxtQkFBbUIsR0FBRywyQkFBMkIsRUFBRSxDQW1Eekc7QUFFRCx3QkFBc0IsY0FBYyxDQUNsQyxLQUFLLEVBQUUsTUFBTSxFQUNiLFdBQVcsRUFBRSwyQkFBMkIsR0FBRyxZQUFZLEVBQ3ZELElBQUksRUFBRSxJQUFJLENBQUMseUJBQXlCLEdBQUcsYUFBYSxFQUFFLGFBQWEsQ0FBQyxFQUNwRSxhQUFhLENBQUMsRUFBRSxNQUFNLHVEQW9DdkIifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"benchmark.d.ts","sourceRoot":"","sources":["../../../src/bench/client_flows/benchmark.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"benchmark.d.ts","sourceRoot":"","sources":["../../../src/bench/client_flows/benchmark.ts"],"names":[],"mappings":"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"}
|
|
@@ -234,13 +234,13 @@ export async function captureProfile(label, interaction, opts, expectedSteps) {
|
|
|
234
234
|
const benchmark = generateBenchmark(label, logs, result.stats, result.executionSteps, 'wasm', undefined);
|
|
235
235
|
const ivcFolder = process.env.CAPTURE_IVC_FOLDER;
|
|
236
236
|
if (ivcFolder) {
|
|
237
|
-
logger.info(`Capturing
|
|
237
|
+
logger.info(`Capturing chonk execution profile for ${label}`);
|
|
238
238
|
const resultsDirectory = join(ivcFolder, label);
|
|
239
239
|
logger.info(`Writing private execution steps to ${resultsDirectory}`);
|
|
240
240
|
await mkdir(resultsDirectory, {
|
|
241
241
|
recursive: true
|
|
242
242
|
});
|
|
243
|
-
// Write the
|
|
243
|
+
// Write the chonk files read by the prover.
|
|
244
244
|
const ivcInputsPath = join(resultsDirectory, 'ivc-inputs.msgpack');
|
|
245
245
|
await writeFile(ivcInputsPath, serializePrivateExecutionSteps(result.executionSteps));
|
|
246
246
|
await writeFile(join(resultsDirectory, 'logs.json'), JSON.stringify(logs, null, 2));
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
2
|
+
import { FeeJuicePaymentMethodWithClaim } from '@aztec/aztec.js/fee';
|
|
3
|
+
import { type FeePaymentMethod, PrivateFeePaymentMethod, SponsoredFeePaymentMethod } from '@aztec/aztec.js/fee';
|
|
4
|
+
import { type Logger } from '@aztec/aztec.js/log';
|
|
5
|
+
import type { AztecNode } from '@aztec/aztec.js/node';
|
|
6
|
+
import type { Wallet } from '@aztec/aztec.js/wallet';
|
|
2
7
|
import { CheatCodes } from '@aztec/aztec/testing';
|
|
3
|
-
import { type DeployL1ContractsArgs } from '@aztec/ethereum';
|
|
8
|
+
import { type DeployL1ContractsArgs } from '@aztec/ethereum/deploy-l1-contracts';
|
|
4
9
|
import { ChainMonitor } from '@aztec/ethereum/test';
|
|
5
10
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
6
11
|
import { AMMContract } from '@aztec/noir-contracts.js/AMM';
|
|
@@ -8,35 +13,42 @@ import { FPCContract } from '@aztec/noir-contracts.js/FPC';
|
|
|
8
13
|
import { FeeJuiceContract } from '@aztec/noir-contracts.js/FeeJuice';
|
|
9
14
|
import { SponsoredFPCContract } from '@aztec/noir-contracts.js/SponsoredFPC';
|
|
10
15
|
import { TokenContract as BananaCoin, TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
16
|
+
import type { ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
17
|
+
import { TestWallet } from '@aztec/test-wallet/server';
|
|
11
18
|
import { type SubsystemsContext } from '../../fixtures/snapshot_manager.js';
|
|
12
19
|
import { type SetupOptions } from '../../fixtures/utils.js';
|
|
13
20
|
import { CrossChainTestHarness } from '../../shared/cross_chain_test_harness.js';
|
|
14
21
|
import { type GasBridgingTestHarness } from '../../shared/gas_portal_test_harness.js';
|
|
15
22
|
import { type ClientFlowsConfig } from './config.js';
|
|
16
23
|
export type AccountType = 'ecdsar1' | 'schnorr';
|
|
17
|
-
export type FeePaymentMethodGetter = (wallet: Wallet) => Promise<FeePaymentMethod>;
|
|
24
|
+
export type FeePaymentMethodGetter = (wallet: Wallet, sender: AztecAddress) => Promise<FeePaymentMethod | undefined>;
|
|
18
25
|
export type BenchmarkingFeePaymentMethod = 'bridged_fee_juice' | 'private_fpc' | 'sponsored_fpc' | 'fee_juice';
|
|
19
26
|
export declare class ClientFlowsBenchmark {
|
|
20
27
|
private snapshotManager;
|
|
21
28
|
logger: Logger;
|
|
22
|
-
pxe: PXE;
|
|
23
29
|
aztecNode: AztecNode;
|
|
24
30
|
cheatCodes: CheatCodes;
|
|
25
31
|
context: SubsystemsContext;
|
|
26
32
|
chainMonitor: ChainMonitor;
|
|
27
33
|
feeJuiceBridgeTestHarness: GasBridgingTestHarness;
|
|
28
|
-
adminWallet:
|
|
34
|
+
adminWallet: TestWallet;
|
|
29
35
|
adminAddress: AztecAddress;
|
|
30
36
|
sequencerAddress: AztecAddress;
|
|
31
37
|
coinbase: EthAddress;
|
|
32
38
|
feeJuiceContract: FeeJuiceContract;
|
|
33
39
|
bananaCoin: BananaCoin;
|
|
40
|
+
bananaCoinInstance: ContractInstanceWithAddress;
|
|
34
41
|
bananaFPC: FPCContract;
|
|
42
|
+
bananaFPCInstance: ContractInstanceWithAddress;
|
|
35
43
|
candyBarCoin: TokenContract;
|
|
44
|
+
candyBarCoinInstance: ContractInstanceWithAddress;
|
|
36
45
|
amm: AMMContract;
|
|
46
|
+
ammInstance: ContractInstanceWithAddress;
|
|
37
47
|
liquidityToken: TokenContract;
|
|
48
|
+
liquidityTokenInstance: ContractInstanceWithAddress;
|
|
38
49
|
sponsoredFPC: SponsoredFPCContract;
|
|
39
|
-
|
|
50
|
+
sponsoredFPCInstance: ContractInstanceWithAddress;
|
|
51
|
+
userWallet: TestWallet;
|
|
40
52
|
realProofs: boolean;
|
|
41
53
|
paymentMethods: Record<BenchmarkingFeePaymentMethod, {
|
|
42
54
|
forWallet: FeePaymentMethodGetter;
|
|
@@ -50,7 +62,7 @@ export declare class ClientFlowsBenchmark {
|
|
|
50
62
|
mintAndBridgeFeeJuice(address: AztecAddress): Promise<void>;
|
|
51
63
|
/** Admin mints bananaCoin tokens privately to the target address and redeems them. */
|
|
52
64
|
mintPrivateBananas(amount: bigint, address: AztecAddress): Promise<void>;
|
|
53
|
-
createBenchmarkingAccountManager(
|
|
65
|
+
createBenchmarkingAccountManager(wallet: TestWallet, type: 'ecdsar1' | 'schnorr'): Promise<import("@aztec/aztec.js/wallet").AccountManager>;
|
|
54
66
|
applyBaseSnapshots(): Promise<void>;
|
|
55
67
|
applyInitialAccountsSnapshot(): Promise<void>;
|
|
56
68
|
applySetupFeeJuiceSnapshot(): Promise<void>;
|
|
@@ -58,12 +70,11 @@ export declare class ClientFlowsBenchmark {
|
|
|
58
70
|
applyDeployCandyBarTokenSnapshot(): Promise<void>;
|
|
59
71
|
applyFPCSetupSnapshot(): Promise<void>;
|
|
60
72
|
applyDeploySponsoredFPCSnapshot(): Promise<void>;
|
|
61
|
-
createCrossChainTestHarness(owner:
|
|
62
|
-
|
|
73
|
+
createCrossChainTestHarness(owner: AztecAddress): Promise<CrossChainTestHarness>;
|
|
74
|
+
createAndFundBenchmarkingAccountOnUserWallet(accountType: AccountType): Promise<AztecAddress>;
|
|
63
75
|
applyDeployAmmSnapshot(): Promise<void>;
|
|
64
|
-
getBridgedFeeJuicePaymentMethodForWallet(
|
|
65
|
-
getPrivateFPCPaymentMethodForWallet(wallet: Wallet): Promise<PrivateFeePaymentMethod>;
|
|
66
|
-
getSponsoredFPCPaymentMethodForWallet(_wallet: Wallet): Promise<SponsoredFeePaymentMethod>;
|
|
67
|
-
getFeeJuicePaymentMethodForWallet(wallet: Wallet): Promise<FeeJuicePaymentMethod>;
|
|
76
|
+
getBridgedFeeJuicePaymentMethodForWallet(_wallet: Wallet, sender: AztecAddress): Promise<FeeJuicePaymentMethodWithClaim>;
|
|
77
|
+
getPrivateFPCPaymentMethodForWallet(wallet: Wallet, sender: AztecAddress): Promise<PrivateFeePaymentMethod>;
|
|
78
|
+
getSponsoredFPCPaymentMethodForWallet(_wallet: Wallet, _sender: AztecAddress): Promise<SponsoredFeePaymentMethod>;
|
|
68
79
|
}
|
|
69
|
-
//# sourceMappingURL=
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50X2Zsb3dzX2JlbmNobWFyay5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JlbmNoL2NsaWVudF9mbG93cy9jbGllbnRfZmxvd3NfYmVuY2htYXJrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hILE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHbEQsT0FBTyxFQUFFLEtBQUsscUJBQXFCLEVBQW9CLE1BQU0scUNBQXFDLENBQUM7QUFDbkcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUczRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLElBQUksVUFBVSxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSTVGLE9BQU8sS0FB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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":"
|
|
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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"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
2
|
+
import { FeeJuicePaymentMethodWithClaim } from '@aztec/aztec.js/fee';
|
|
3
|
+
import { PrivateFeePaymentMethod, SponsoredFeePaymentMethod } from '@aztec/aztec.js/fee';
|
|
4
|
+
import { createLogger } from '@aztec/aztec.js/log';
|
|
5
|
+
import { createExtendedL1Client } from '@aztec/ethereum/client';
|
|
6
|
+
import { RollupContract } from '@aztec/ethereum/contracts';
|
|
7
|
+
import { deployL1Contract } from '@aztec/ethereum/deploy-l1-contracts';
|
|
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';
|
|
@@ -16,8 +18,10 @@ import { SponsoredFPCContract } from '@aztec/noir-contracts.js/SponsoredFPC';
|
|
|
16
18
|
import { TokenContract as BananaCoin, TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
17
19
|
import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
18
20
|
import { getCanonicalFeeJuice } from '@aztec/protocol-contracts/fee-juice';
|
|
19
|
-
import {
|
|
21
|
+
import { getPXEConfig } from '@aztec/pxe/server';
|
|
22
|
+
import { GasSettings } from '@aztec/stdlib/gas';
|
|
20
23
|
import { deriveSigningKey } from '@aztec/stdlib/keys';
|
|
24
|
+
import { TestWallet } from '@aztec/test-wallet/server';
|
|
21
25
|
import { MNEMONIC } from '../../fixtures/fixtures.js';
|
|
22
26
|
import { createSnapshotManager, deployAccounts } from '../../fixtures/snapshot_manager.js';
|
|
23
27
|
import { mintTokensToPrivate } from '../../fixtures/token_utils.js';
|
|
@@ -30,14 +34,13 @@ const { E2E_DATA_PATH: dataPath, BENCHMARK_CONFIG } = process.env;
|
|
|
30
34
|
export class ClientFlowsBenchmark {
|
|
31
35
|
snapshotManager;
|
|
32
36
|
logger;
|
|
33
|
-
pxe;
|
|
34
37
|
aztecNode;
|
|
35
38
|
cheatCodes;
|
|
36
39
|
context;
|
|
37
40
|
chainMonitor;
|
|
38
41
|
feeJuiceBridgeTestHarness;
|
|
39
|
-
// The admin that aids in the setup of the test
|
|
40
42
|
adminWallet;
|
|
43
|
+
// The admin that aids in the setup of the test
|
|
41
44
|
adminAddress;
|
|
42
45
|
// Aztec Node config
|
|
43
46
|
sequencerAddress;
|
|
@@ -46,17 +49,23 @@ export class ClientFlowsBenchmark {
|
|
|
46
49
|
feeJuiceContract;
|
|
47
50
|
// Asset in which fees are paid via FPC
|
|
48
51
|
bananaCoin;
|
|
52
|
+
bananaCoinInstance;
|
|
49
53
|
bananaFPC;
|
|
54
|
+
bananaFPCInstance;
|
|
50
55
|
// Random asset we want to trade
|
|
51
56
|
candyBarCoin;
|
|
57
|
+
candyBarCoinInstance;
|
|
52
58
|
// AMM contract
|
|
53
59
|
amm;
|
|
60
|
+
ammInstance;
|
|
54
61
|
// Liquidity token for AMM
|
|
55
62
|
liquidityToken;
|
|
63
|
+
liquidityTokenInstance;
|
|
56
64
|
// Sponsored FPC contract
|
|
57
65
|
sponsoredFPC;
|
|
58
|
-
|
|
59
|
-
|
|
66
|
+
sponsoredFPCInstance;
|
|
67
|
+
// PXE and Wallet used by the benchmarking user. It can be set up with client-side proving enabled
|
|
68
|
+
userWallet;
|
|
60
69
|
realProofs = [
|
|
61
70
|
'true',
|
|
62
71
|
'1'
|
|
@@ -82,7 +91,7 @@ export class ClientFlowsBenchmark {
|
|
|
82
91
|
},
|
|
83
92
|
// eslint-disable-next-line camelcase
|
|
84
93
|
fee_juice: {
|
|
85
|
-
forWallet:
|
|
94
|
+
forWallet: ()=>Promise.resolve(undefined),
|
|
86
95
|
circuits: 0
|
|
87
96
|
}
|
|
88
97
|
};
|
|
@@ -125,53 +134,46 @@ export class ClientFlowsBenchmark {
|
|
|
125
134
|
const balanceBefore = await this.bananaCoin.methods.balance_of_private(address).simulate({
|
|
126
135
|
from: this.adminAddress
|
|
127
136
|
});
|
|
128
|
-
await mintTokensToPrivate(this.bananaCoin, this.adminAddress,
|
|
137
|
+
await mintTokensToPrivate(this.bananaCoin, this.adminAddress, address, amount);
|
|
129
138
|
const balanceAfter = await this.bananaCoin.methods.balance_of_private(address).simulate({
|
|
130
139
|
from: this.adminAddress
|
|
131
140
|
});
|
|
132
141
|
expect(balanceAfter).toEqual(balanceBefore + amount);
|
|
133
142
|
}
|
|
134
|
-
|
|
135
|
-
const
|
|
143
|
+
createBenchmarkingAccountManager(wallet, type) {
|
|
144
|
+
const benchysSecret = Fr.random();
|
|
136
145
|
const salt = Fr.random();
|
|
137
146
|
let benchysPrivateSigningKey;
|
|
138
|
-
let benchysAccountManager;
|
|
139
147
|
if (type === 'schnorr') {
|
|
140
|
-
benchysPrivateSigningKey = deriveSigningKey(
|
|
141
|
-
|
|
148
|
+
benchysPrivateSigningKey = deriveSigningKey(benchysSecret);
|
|
149
|
+
return wallet.createSchnorrAccount(benchysSecret, salt, benchysPrivateSigningKey);
|
|
142
150
|
} else if (type === 'ecdsar1') {
|
|
143
151
|
benchysPrivateSigningKey = randomBytes(32);
|
|
144
|
-
|
|
152
|
+
return wallet.createECDSARAccount(benchysSecret, salt, benchysPrivateSigningKey);
|
|
145
153
|
} else {
|
|
146
154
|
throw new Error(`Unknown account type: ${type}`);
|
|
147
155
|
}
|
|
148
|
-
await benchysAccountManager.register();
|
|
149
|
-
return benchysAccountManager;
|
|
150
156
|
}
|
|
151
157
|
async applyBaseSnapshots() {
|
|
152
158
|
await this.applyInitialAccountsSnapshot();
|
|
153
159
|
await this.applySetupFeeJuiceSnapshot();
|
|
154
160
|
}
|
|
155
161
|
async applyInitialAccountsSnapshot() {
|
|
156
|
-
await this.snapshotManager.snapshot('initial_accounts', deployAccounts(2, this.logger), async ({ deployedAccounts }, {
|
|
157
|
-
this.
|
|
162
|
+
await this.snapshotManager.snapshot('initial_accounts', deployAccounts(2, this.logger), async ({ deployedAccounts: [{ address: adminAddress }, { address: sequencerAddress }] }, { wallet, aztecNode, cheatCodes })=>{
|
|
163
|
+
this.adminWallet = wallet;
|
|
158
164
|
this.aztecNode = aztecNode;
|
|
159
|
-
this.cheatCodes =
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
this.adminAddress = this.adminWallet.getAddress();
|
|
163
|
-
this.sequencerAddress = deployedWallets[1].getAddress();
|
|
165
|
+
this.cheatCodes = cheatCodes;
|
|
166
|
+
this.adminAddress = adminAddress;
|
|
167
|
+
this.sequencerAddress = sequencerAddress;
|
|
164
168
|
const canonicalFeeJuice = await getCanonicalFeeJuice();
|
|
165
|
-
this.feeJuiceContract =
|
|
169
|
+
this.feeJuiceContract = FeeJuiceContract.at(canonicalFeeJuice.address, this.adminWallet);
|
|
166
170
|
this.coinbase = EthAddress.random();
|
|
167
|
-
const userPXEConfig =
|
|
168
|
-
const l1Contracts = await aztecNode.getL1ContractAddresses();
|
|
171
|
+
const userPXEConfig = getPXEConfig();
|
|
169
172
|
const userPXEConfigWithContracts = {
|
|
170
173
|
...userPXEConfig,
|
|
171
|
-
proverEnabled: this.realProofs
|
|
172
|
-
l1Contracts
|
|
174
|
+
proverEnabled: this.realProofs
|
|
173
175
|
};
|
|
174
|
-
this.
|
|
176
|
+
this.userWallet = await TestWallet.create(this.aztecNode, userPXEConfigWithContracts, {
|
|
175
177
|
loggers: {
|
|
176
178
|
prover: this.proxyLogger.createLogger('pxe:bb:wasm:bundle:proxied')
|
|
177
179
|
}
|
|
@@ -181,11 +183,10 @@ export class ClientFlowsBenchmark {
|
|
|
181
183
|
async applySetupFeeJuiceSnapshot() {
|
|
182
184
|
await this.snapshotManager.snapshot('setup_fee_juice', async ()=>{}, async (_data, context)=>{
|
|
183
185
|
this.context = context;
|
|
184
|
-
this.feeJuiceContract =
|
|
186
|
+
this.feeJuiceContract = FeeJuiceContract.at(ProtocolContractAddress.FeeJuice, this.adminWallet);
|
|
185
187
|
this.feeJuiceBridgeTestHarness = await FeeJuicePortalTestingHarnessFactory.create({
|
|
186
188
|
aztecNode: context.aztecNode,
|
|
187
189
|
aztecNodeAdmin: context.aztecNode,
|
|
188
|
-
pxeService: context.pxe,
|
|
189
190
|
l1Client: context.deployL1ContractsValues.l1Client,
|
|
190
191
|
wallet: this.adminWallet,
|
|
191
192
|
logger: this.logger
|
|
@@ -194,56 +195,68 @@ export class ClientFlowsBenchmark {
|
|
|
194
195
|
}
|
|
195
196
|
async applyDeployBananaTokenSnapshot() {
|
|
196
197
|
await this.snapshotManager.snapshot('deploy_banana_token', async ()=>{
|
|
197
|
-
const bananaCoin = await BananaCoin.deploy(this.adminWallet, this.adminAddress, 'BC', 'BC', 18n).send({
|
|
198
|
+
const { contract: bananaCoin, instance: bananaCoinInstance } = await BananaCoin.deploy(this.adminWallet, this.adminAddress, 'BC', 'BC', 18n).send({
|
|
198
199
|
from: this.adminAddress
|
|
199
|
-
}).
|
|
200
|
+
}).wait();
|
|
200
201
|
this.logger.info(`BananaCoin deployed at ${bananaCoin.address}`);
|
|
201
202
|
return {
|
|
202
|
-
bananaCoinAddress: bananaCoin.address
|
|
203
|
+
bananaCoinAddress: bananaCoin.address,
|
|
204
|
+
bananaCoinInstance
|
|
203
205
|
};
|
|
204
|
-
},
|
|
205
|
-
this.bananaCoin =
|
|
206
|
+
}, ({ bananaCoinAddress, bananaCoinInstance })=>{
|
|
207
|
+
this.bananaCoin = BananaCoin.at(bananaCoinAddress, this.adminWallet);
|
|
208
|
+
this.bananaCoinInstance = bananaCoinInstance;
|
|
209
|
+
return Promise.resolve();
|
|
206
210
|
});
|
|
207
211
|
}
|
|
208
212
|
async applyDeployCandyBarTokenSnapshot() {
|
|
209
213
|
await this.snapshotManager.snapshot('deploy_candy_bar_token', async ()=>{
|
|
210
|
-
const candyBarCoin = await TokenContract.deploy(this.adminWallet, this.adminAddress, 'CBC', 'CBC', 18n).send({
|
|
214
|
+
const { contract: candyBarCoin, instance: candyBarCoinInstance } = await TokenContract.deploy(this.adminWallet, this.adminAddress, 'CBC', 'CBC', 18n).send({
|
|
211
215
|
from: this.adminAddress
|
|
212
|
-
}).
|
|
216
|
+
}).wait();
|
|
213
217
|
this.logger.info(`CandyBarCoin deployed at ${candyBarCoin.address}`);
|
|
214
218
|
return {
|
|
215
|
-
candyBarCoinAddress: candyBarCoin.address
|
|
219
|
+
candyBarCoinAddress: candyBarCoin.address,
|
|
220
|
+
candyBarCoinInstance
|
|
216
221
|
};
|
|
217
|
-
},
|
|
218
|
-
this.candyBarCoin =
|
|
222
|
+
}, ({ candyBarCoinAddress, candyBarCoinInstance })=>{
|
|
223
|
+
this.candyBarCoin = TokenContract.at(candyBarCoinAddress, this.adminWallet);
|
|
224
|
+
this.candyBarCoinInstance = candyBarCoinInstance;
|
|
225
|
+
return Promise.resolve();
|
|
219
226
|
});
|
|
220
227
|
}
|
|
221
228
|
async applyFPCSetupSnapshot() {
|
|
222
229
|
await this.snapshotManager.snapshot('fpc_setup', async (context)=>{
|
|
223
230
|
const feeJuiceContract = this.feeJuiceBridgeTestHarness.feeJuice;
|
|
224
|
-
expect((await context.
|
|
231
|
+
expect((await context.wallet.getContractMetadata(feeJuiceContract.address)).isContractPublished).toBe(true);
|
|
225
232
|
const bananaCoin = this.bananaCoin;
|
|
226
|
-
const bananaFPC = await FPCContract.deploy(this.adminWallet, bananaCoin.address, this.adminAddress).send({
|
|
233
|
+
const { contract: bananaFPC, instance: bananaFPCInstance } = await FPCContract.deploy(this.adminWallet, bananaCoin.address, this.adminAddress).send({
|
|
227
234
|
from: this.adminAddress
|
|
228
|
-
}).
|
|
235
|
+
}).wait();
|
|
229
236
|
this.logger.info(`BananaPay deployed at ${bananaFPC.address}`);
|
|
230
237
|
await this.feeJuiceBridgeTestHarness.bridgeFromL1ToL2(bananaFPC.address, this.adminAddress);
|
|
231
238
|
return {
|
|
232
|
-
bananaFPCAddress: bananaFPC.address
|
|
239
|
+
bananaFPCAddress: bananaFPC.address,
|
|
240
|
+
bananaFPCInstance
|
|
233
241
|
};
|
|
234
|
-
},
|
|
235
|
-
this.bananaFPC =
|
|
242
|
+
}, (data)=>{
|
|
243
|
+
this.bananaFPC = FPCContract.at(data.bananaFPCAddress, this.adminWallet);
|
|
244
|
+
this.bananaFPCInstance = data.bananaFPCInstance;
|
|
245
|
+
return Promise.resolve();
|
|
236
246
|
});
|
|
237
247
|
}
|
|
238
248
|
async applyDeploySponsoredFPCSnapshot() {
|
|
239
249
|
await this.snapshotManager.snapshot('deploy_sponsored_fpc', async ()=>{
|
|
240
|
-
const
|
|
241
|
-
this.logger.info(`SponsoredFPC at ${
|
|
250
|
+
const sponsoredFPCInstance = await setupSponsoredFPC(this.adminWallet);
|
|
251
|
+
this.logger.info(`SponsoredFPC at ${sponsoredFPCInstance.address}`);
|
|
242
252
|
return {
|
|
243
|
-
sponsoredFPCAddress:
|
|
253
|
+
sponsoredFPCAddress: sponsoredFPCInstance.address,
|
|
254
|
+
sponsoredFPCInstance
|
|
244
255
|
};
|
|
245
|
-
},
|
|
246
|
-
this.sponsoredFPC =
|
|
256
|
+
}, ({ sponsoredFPCAddress, sponsoredFPCInstance })=>{
|
|
257
|
+
this.sponsoredFPC = SponsoredFPCContract.at(sponsoredFPCAddress, this.adminWallet);
|
|
258
|
+
this.sponsoredFPCInstance = sponsoredFPCInstance;
|
|
259
|
+
return Promise.resolve();
|
|
247
260
|
});
|
|
248
261
|
}
|
|
249
262
|
async createCrossChainTestHarness(owner) {
|
|
@@ -254,62 +267,70 @@ export class ClientFlowsBenchmark {
|
|
|
254
267
|
l1Client.account.address
|
|
255
268
|
]).then(({ address })=>address);
|
|
256
269
|
this.logger.verbose(`Setting up cross chain harness...`);
|
|
257
|
-
const crossChainTestHarness = await CrossChainTestHarness.new(this.aztecNode,
|
|
270
|
+
const crossChainTestHarness = await CrossChainTestHarness.new(this.aztecNode, l1Client, this.adminWallet, owner, this.logger, underlyingERC20Address);
|
|
258
271
|
this.logger.verbose(`L2 token deployed to: ${crossChainTestHarness.l2Token.address}`);
|
|
259
272
|
return crossChainTestHarness;
|
|
260
273
|
}
|
|
261
|
-
async
|
|
262
|
-
const benchysAccountManager = await this.createBenchmarkingAccountManager(this.
|
|
263
|
-
const
|
|
264
|
-
const benchysAddress = benchysAccountManager.
|
|
274
|
+
async createAndFundBenchmarkingAccountOnUserWallet(accountType) {
|
|
275
|
+
const benchysAccountManager = await this.createBenchmarkingAccountManager(this.adminWallet, accountType);
|
|
276
|
+
const benchysAccount = await benchysAccountManager.getAccount();
|
|
277
|
+
const benchysAddress = benchysAccountManager.address;
|
|
265
278
|
const claim = await this.feeJuiceBridgeTestHarness.prepareTokensOnL1(benchysAddress);
|
|
266
|
-
const
|
|
267
|
-
await
|
|
279
|
+
const behchysDeployMethod = await benchysAccountManager.getDeployMethod();
|
|
280
|
+
await behchysDeployMethod.send({
|
|
281
|
+
from: AztecAddress.ZERO,
|
|
268
282
|
fee: {
|
|
269
|
-
paymentMethod
|
|
283
|
+
paymentMethod: new FeeJuicePaymentMethodWithClaim(benchysAddress, claim)
|
|
270
284
|
}
|
|
271
285
|
}).wait();
|
|
272
|
-
// Register benchy on the user's
|
|
273
|
-
await this.
|
|
274
|
-
|
|
275
|
-
|
|
286
|
+
// Register benchy on the user's Wallet, where we're going to be interacting from
|
|
287
|
+
const accountManager = await this.userWallet.createAccount({
|
|
288
|
+
secret: benchysAccount.getSecretKey(),
|
|
289
|
+
salt: new Fr(benchysAccount.salt),
|
|
290
|
+
contract: benchysAccountManager.getAccountContract()
|
|
276
291
|
});
|
|
277
|
-
|
|
278
|
-
const entrypoint = await benchysAccountManager.getAccount();
|
|
279
|
-
return new AccountWalletWithSecretKey(this.userPXE, entrypoint, benchysWallet.getSecretKey(), benchysAccountManager.salt);
|
|
292
|
+
return accountManager.address;
|
|
280
293
|
}
|
|
281
294
|
async applyDeployAmmSnapshot() {
|
|
282
295
|
await this.snapshotManager.snapshot('deploy_amm', async ()=>{
|
|
283
|
-
const liquidityToken = await TokenContract.deploy(this.adminWallet, this.adminAddress, 'LPT', 'LPT', 18n).send({
|
|
296
|
+
const { contract: liquidityToken, instance: liquidityTokenInstance } = await TokenContract.deploy(this.adminWallet, this.adminAddress, 'LPT', 'LPT', 18n).send({
|
|
284
297
|
from: this.adminAddress
|
|
285
|
-
}).
|
|
286
|
-
const amm = await AMMContract.deploy(this.adminWallet, this.bananaCoin.address, this.candyBarCoin.address, liquidityToken.address).send({
|
|
298
|
+
}).wait();
|
|
299
|
+
const { contract: amm, instance: ammInstance } = await AMMContract.deploy(this.adminWallet, this.bananaCoin.address, this.candyBarCoin.address, liquidityToken.address).send({
|
|
287
300
|
from: this.adminAddress
|
|
288
|
-
}).
|
|
301
|
+
}).wait();
|
|
289
302
|
this.logger.info(`AMM deployed at ${amm.address}`);
|
|
290
303
|
await liquidityToken.methods.set_minter(amm.address, true).send({
|
|
291
304
|
from: this.adminAddress
|
|
292
305
|
}).wait();
|
|
293
306
|
return {
|
|
294
307
|
ammAddress: amm.address,
|
|
295
|
-
|
|
308
|
+
ammInstance,
|
|
309
|
+
liquidityTokenAddress: liquidityToken.address,
|
|
310
|
+
liquidityTokenInstance
|
|
296
311
|
};
|
|
297
|
-
},
|
|
298
|
-
this.liquidityToken =
|
|
299
|
-
this.
|
|
312
|
+
}, ({ ammAddress, ammInstance, liquidityTokenAddress, liquidityTokenInstance })=>{
|
|
313
|
+
this.liquidityToken = TokenContract.at(liquidityTokenAddress, this.adminWallet);
|
|
314
|
+
this.liquidityTokenInstance = liquidityTokenInstance;
|
|
315
|
+
this.amm = AMMContract.at(ammAddress, this.adminWallet);
|
|
316
|
+
this.ammInstance = ammInstance;
|
|
317
|
+
return Promise.resolve();
|
|
300
318
|
});
|
|
301
319
|
}
|
|
302
|
-
async getBridgedFeeJuicePaymentMethodForWallet(
|
|
303
|
-
const claim = await this.feeJuiceBridgeTestHarness.prepareTokensOnL1(
|
|
304
|
-
return new FeeJuicePaymentMethodWithClaim(
|
|
320
|
+
async getBridgedFeeJuicePaymentMethodForWallet(_wallet, sender) {
|
|
321
|
+
const claim = await this.feeJuiceBridgeTestHarness.prepareTokensOnL1(sender);
|
|
322
|
+
return new FeeJuicePaymentMethodWithClaim(sender, claim);
|
|
305
323
|
}
|
|
306
|
-
getPrivateFPCPaymentMethodForWallet(wallet) {
|
|
307
|
-
|
|
324
|
+
async getPrivateFPCPaymentMethodForWallet(wallet, sender) {
|
|
325
|
+
// The private fee paying method assembled on the app side requires knowledge of the maximum
|
|
326
|
+
// fee the user is willing to pay
|
|
327
|
+
const maxFeesPerGas = (await this.aztecNode.getCurrentBaseFees()).mul(1.5);
|
|
328
|
+
const gasSettings = GasSettings.default({
|
|
329
|
+
maxFeesPerGas
|
|
330
|
+
});
|
|
331
|
+
return new PrivateFeePaymentMethod(this.bananaFPC.address, sender, wallet, gasSettings);
|
|
308
332
|
}
|
|
309
|
-
getSponsoredFPCPaymentMethodForWallet(_wallet) {
|
|
333
|
+
getSponsoredFPCPaymentMethodForWallet(_wallet, _sender) {
|
|
310
334
|
return Promise.resolve(new SponsoredFeePaymentMethod(this.sponsoredFPC.address));
|
|
311
335
|
}
|
|
312
|
-
getFeeJuicePaymentMethodForWallet(wallet) {
|
|
313
|
-
return Promise.resolve(new FeeJuicePaymentMethod(wallet.getAddress()));
|
|
314
|
-
}
|
|
315
336
|
}
|
|
@@ -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
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { BBWASMBundlePrivateKernelProver } from '@aztec/bb-prover/client/wasm/bundle';
|
|
1
|
+
import { BBBundlePrivateKernelProver } from '@aztec/bb-prover/client/bundle';
|
|
3
2
|
import { createLogger, logger } from '@aztec/foundation/log';
|
|
4
3
|
import { Timer } from '@aztec/foundation/timer';
|
|
5
4
|
import { WASMSimulator } from '@aztec/simulator/client';
|
|
@@ -7,26 +6,6 @@ import { Decoder } from 'msgpackr';
|
|
|
7
6
|
import { readFile, readdir, writeFile } from 'node:fs/promises';
|
|
8
7
|
import { join } from 'node:path';
|
|
9
8
|
import { ProxyLogger, generateBenchmark } from './benchmark.js';
|
|
10
|
-
async function createProver(config = {}, log) {
|
|
11
|
-
const simulator = new WASMSimulator();
|
|
12
|
-
if (!config.bbBinaryPath || !config.bbWorkingDirectory) {
|
|
13
|
-
return {
|
|
14
|
-
prover: new BBWASMBundlePrivateKernelProver(simulator, 16, log),
|
|
15
|
-
type: 'wasm'
|
|
16
|
-
};
|
|
17
|
-
} else {
|
|
18
|
-
const bbConfig = config;
|
|
19
|
-
return {
|
|
20
|
-
prover: await BBNativePrivateKernelProver.new({
|
|
21
|
-
bbSkipCleanup: false,
|
|
22
|
-
numConcurrentIVCVerifiers: 1,
|
|
23
|
-
bbIVCConcurrency: 1,
|
|
24
|
-
...bbConfig
|
|
25
|
-
}, simulator, log),
|
|
26
|
-
type: 'native'
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
9
|
async function main() {
|
|
31
10
|
ProxyLogger.create();
|
|
32
11
|
const proxyLogger = ProxyLogger.getInstance();
|
|
@@ -36,11 +15,10 @@ async function main() {
|
|
|
36
15
|
}
|
|
37
16
|
const flows = await readdir(ivcFolder);
|
|
38
17
|
logger.info(`Flows in ${ivcFolder}: \n${flows.map((flowName)=>`\t- ${flowName}`).join('\n')}`);
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
const userLog = createLogger('client_ivc_flows:data_processor');
|
|
18
|
+
const simulator = new WASMSimulator();
|
|
19
|
+
const log = proxyLogger.createLogger('bb:prover');
|
|
20
|
+
const prover = new BBBundlePrivateKernelProver(simulator, log);
|
|
21
|
+
const userLog = createLogger('chonk_flows:data_processor');
|
|
44
22
|
for (const flow of flows){
|
|
45
23
|
userLog.info(`Processing flow ${flow}`);
|
|
46
24
|
const ivcInputs = await readFile(join(ivcFolder, flow, 'ivc-inputs.msgpack'));
|
|
@@ -73,10 +51,10 @@ async function main() {
|
|
|
73
51
|
let provingTime;
|
|
74
52
|
try {
|
|
75
53
|
const provingTimer = new Timer();
|
|
76
|
-
await prover.
|
|
54
|
+
await prover.createChonkProof(privateExecutionSteps);
|
|
77
55
|
provingTime = provingTimer.ms();
|
|
78
56
|
} catch (e) {
|
|
79
|
-
userLog.error(`Failed to generate
|
|
57
|
+
userLog.error(`Failed to generate chonk proof for ${flow}`, e);
|
|
80
58
|
error = e.message;
|
|
81
59
|
}
|
|
82
60
|
// Extract logs from this run from the proxy and write them to disk unconditionally
|
|
@@ -85,7 +63,7 @@ async function main() {
|
|
|
85
63
|
if (!profile.stats.timings.proving) {
|
|
86
64
|
profile.stats.timings.proving = provingTime;
|
|
87
65
|
}
|
|
88
|
-
const benchmark = generateBenchmark(flow, currentLogs, profile.stats, privateExecutionSteps,
|
|
66
|
+
const benchmark = generateBenchmark(flow, currentLogs, profile.stats, privateExecutionSteps, 'native', error);
|
|
89
67
|
await writeFile(join(ivcFolder, flow, 'benchmark.json'), JSON.stringify(benchmark, null, 2));
|
|
90
68
|
proxyLogger.flushLogs();
|
|
91
69
|
}
|