@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.
Files changed (165) hide show
  1. package/dest/bench/client_flows/benchmark.d.ts +4 -3
  2. package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
  3. package/dest/bench/client_flows/benchmark.js +2 -2
  4. package/dest/bench/client_flows/client_flows_benchmark.d.ts +25 -14
  5. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
  6. package/dest/bench/client_flows/client_flows_benchmark.js +111 -90
  7. package/dest/bench/client_flows/config.d.ts +1 -1
  8. package/dest/bench/client_flows/data_extractor.d.ts +1 -1
  9. package/dest/bench/client_flows/data_extractor.js +8 -30
  10. package/dest/bench/utils.d.ts +4 -13
  11. package/dest/bench/utils.d.ts.map +1 -1
  12. package/dest/bench/utils.js +10 -34
  13. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +8 -8
  14. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
  15. package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +42 -42
  16. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +12 -9
  17. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
  18. package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +35 -35
  19. package/dest/e2e_deploy_contract/deploy_test.d.ts +12 -6
  20. package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
  21. package/dest/e2e_deploy_contract/deploy_test.js +9 -18
  22. package/dest/e2e_epochs/epochs_test.d.ts +19 -12
  23. package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
  24. package/dest/e2e_epochs/epochs_test.js +30 -22
  25. package/dest/e2e_fees/bridging_race.notest.d.ts +1 -1
  26. package/dest/e2e_fees/bridging_race.notest.js +14 -11
  27. package/dest/e2e_fees/fees_test.d.ts +10 -8
  28. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  29. package/dest/e2e_fees/fees_test.js +35 -38
  30. package/dest/e2e_l1_publisher/write_json.d.ts +4 -2
  31. package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -1
  32. package/dest/e2e_l1_publisher/write_json.js +9 -8
  33. package/dest/e2e_multi_validator/utils.d.ts +2 -2
  34. package/dest/e2e_multi_validator/utils.d.ts.map +1 -1
  35. package/dest/e2e_multi_validator/utils.js +4 -10
  36. package/dest/e2e_nested_contract/nested_contract_test.d.ts +7 -4
  37. package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
  38. package/dest/e2e_nested_contract/nested_contract_test.js +11 -12
  39. package/dest/e2e_p2p/inactivity_slash_test.d.ts +31 -0
  40. package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -0
  41. package/dest/e2e_p2p/inactivity_slash_test.js +139 -0
  42. package/dest/e2e_p2p/p2p_network.d.ts +238 -17
  43. package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
  44. package/dest/e2e_p2p/p2p_network.js +46 -19
  45. package/dest/e2e_p2p/shared.d.ts +16 -17
  46. package/dest/e2e_p2p/shared.d.ts.map +1 -1
  47. package/dest/e2e_p2p/shared.js +56 -55
  48. package/dest/e2e_token_contract/token_contract_test.d.ts +6 -5
  49. package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
  50. package/dest/e2e_token_contract/token_contract_test.js +14 -17
  51. package/dest/fixtures/e2e_prover_test.d.ts +12 -8
  52. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
  53. package/dest/fixtures/e2e_prover_test.js +53 -58
  54. package/dest/fixtures/fixtures.d.ts +1 -1
  55. package/dest/fixtures/fixtures.d.ts.map +1 -1
  56. package/dest/fixtures/fixtures.js +1 -1
  57. package/dest/fixtures/get_acvm_config.d.ts +2 -2
  58. package/dest/fixtures/get_acvm_config.d.ts.map +1 -1
  59. package/dest/fixtures/get_acvm_config.js +1 -1
  60. package/dest/fixtures/get_bb_config.d.ts +2 -2
  61. package/dest/fixtures/get_bb_config.d.ts.map +1 -1
  62. package/dest/fixtures/get_bb_config.js +2 -2
  63. package/dest/fixtures/index.d.ts +1 -1
  64. package/dest/fixtures/l1_to_l2_messaging.d.ts +4 -3
  65. package/dest/fixtures/l1_to_l2_messaging.d.ts.map +1 -1
  66. package/dest/fixtures/l1_to_l2_messaging.js +2 -2
  67. package/dest/fixtures/logging.d.ts +1 -1
  68. package/dest/fixtures/setup_l1_contracts.d.ts +476 -5
  69. package/dest/fixtures/setup_l1_contracts.d.ts.map +1 -1
  70. package/dest/fixtures/setup_l1_contracts.js +3 -3
  71. package/dest/fixtures/setup_p2p_test.d.ts +12 -11
  72. package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
  73. package/dest/fixtures/setup_p2p_test.js +50 -24
  74. package/dest/fixtures/snapshot_manager.d.ts +13 -10
  75. package/dest/fixtures/snapshot_manager.d.ts.map +1 -1
  76. package/dest/fixtures/snapshot_manager.js +66 -51
  77. package/dest/fixtures/token_utils.d.ts +10 -5
  78. package/dest/fixtures/token_utils.d.ts.map +1 -1
  79. package/dest/fixtures/token_utils.js +17 -18
  80. package/dest/fixtures/utils.d.ts +479 -35
  81. package/dest/fixtures/utils.d.ts.map +1 -1
  82. package/dest/fixtures/utils.js +106 -125
  83. package/dest/fixtures/web3signer.d.ts +5 -0
  84. package/dest/fixtures/web3signer.d.ts.map +1 -0
  85. package/dest/fixtures/web3signer.js +53 -0
  86. package/dest/fixtures/with_telemetry_utils.d.ts +2 -2
  87. package/dest/fixtures/with_telemetry_utils.d.ts.map +1 -1
  88. package/dest/fixtures/with_telemetry_utils.js +2 -2
  89. package/dest/index.d.ts +1 -1
  90. package/dest/quality_of_service/alert_checker.d.ts +2 -2
  91. package/dest/quality_of_service/alert_checker.d.ts.map +1 -1
  92. package/dest/shared/cross_chain_test_harness.d.ts +20 -23
  93. package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
  94. package/dest/shared/cross_chain_test_harness.js +14 -16
  95. package/dest/shared/gas_portal_test_harness.d.ts +10 -17
  96. package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
  97. package/dest/shared/gas_portal_test_harness.js +11 -8
  98. package/dest/shared/index.d.ts +1 -1
  99. package/dest/shared/jest_setup.d.ts +1 -1
  100. package/dest/shared/jest_setup.js +1 -1
  101. package/dest/shared/submit-transactions.d.ts +6 -4
  102. package/dest/shared/submit-transactions.d.ts.map +1 -1
  103. package/dest/shared/submit-transactions.js +8 -7
  104. package/dest/shared/uniswap_l1_l2.d.ts +12 -8
  105. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  106. package/dest/shared/uniswap_l1_l2.js +44 -58
  107. package/dest/simulators/index.d.ts +1 -1
  108. package/dest/simulators/lending_simulator.d.ts +4 -7
  109. package/dest/simulators/lending_simulator.d.ts.map +1 -1
  110. package/dest/simulators/lending_simulator.js +8 -5
  111. package/dest/simulators/token_simulator.d.ts +4 -2
  112. package/dest/simulators/token_simulator.d.ts.map +1 -1
  113. package/dest/simulators/token_simulator.js +2 -2
  114. package/dest/spartan/setup_test_wallets.d.ts +22 -14
  115. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  116. package/dest/spartan/setup_test_wallets.js +144 -86
  117. package/dest/spartan/tx_metrics.d.ts +39 -0
  118. package/dest/spartan/tx_metrics.d.ts.map +1 -0
  119. package/dest/spartan/tx_metrics.js +95 -0
  120. package/dest/spartan/utils.d.ts +92 -17
  121. package/dest/spartan/utils.d.ts.map +1 -1
  122. package/dest/spartan/utils.js +386 -63
  123. package/package.json +43 -40
  124. package/src/bench/client_flows/benchmark.ts +8 -8
  125. package/src/bench/client_flows/client_flows_benchmark.ts +141 -114
  126. package/src/bench/client_flows/data_extractor.ts +9 -31
  127. package/src/bench/utils.ts +9 -37
  128. package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +46 -63
  129. package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +38 -51
  130. package/src/e2e_deploy_contract/deploy_test.ts +18 -36
  131. package/src/e2e_epochs/epochs_test.ts +41 -35
  132. package/src/e2e_fees/bridging_race.notest.ts +16 -11
  133. package/src/e2e_fees/fees_test.ts +42 -47
  134. package/src/e2e_l1_publisher/write_json.ts +12 -9
  135. package/src/e2e_multi_validator/utils.ts +5 -11
  136. package/src/e2e_nested_contract/nested_contract_test.ts +15 -13
  137. package/src/e2e_p2p/inactivity_slash_test.ts +184 -0
  138. package/src/e2e_p2p/p2p_network.ts +124 -82
  139. package/src/e2e_p2p/shared.ts +66 -58
  140. package/src/e2e_token_contract/token_contract_test.ts +17 -17
  141. package/src/fixtures/e2e_prover_test.ts +60 -97
  142. package/src/fixtures/fixtures.ts +1 -2
  143. package/src/fixtures/get_acvm_config.ts +2 -2
  144. package/src/fixtures/get_bb_config.ts +3 -2
  145. package/src/fixtures/l1_to_l2_messaging.ts +4 -2
  146. package/src/fixtures/setup_l1_contracts.ts +5 -4
  147. package/src/fixtures/setup_p2p_test.ts +79 -32
  148. package/src/fixtures/snapshot_manager.ts +87 -82
  149. package/src/fixtures/token_utils.ts +16 -24
  150. package/src/fixtures/utils.ts +142 -172
  151. package/src/fixtures/web3signer.ts +63 -0
  152. package/src/fixtures/with_telemetry_utils.ts +2 -2
  153. package/src/guides/up_quick_start.sh +3 -11
  154. package/src/quality_of_service/alert_checker.ts +1 -1
  155. package/src/shared/cross_chain_test_harness.ts +23 -31
  156. package/src/shared/gas_portal_test_harness.ts +14 -21
  157. package/src/shared/jest_setup.ts +1 -1
  158. package/src/shared/submit-transactions.ts +12 -8
  159. package/src/shared/uniswap_l1_l2.ts +77 -86
  160. package/src/simulators/lending_simulator.ts +9 -6
  161. package/src/simulators/token_simulator.ts +5 -2
  162. package/src/spartan/DEVELOP.md +15 -3
  163. package/src/spartan/setup_test_wallets.ts +171 -127
  164. package/src/spartan/tx_metrics.ts +130 -0
  165. package/src/spartan/utils.ts +463 -64
@@ -1,4 +1,5 @@
1
- import type { ContractFunctionInteraction, DeployMethod, DeployOptions, Logger, ProfileMethodOptions } from '@aztec/aztec.js';
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<ProfileMethodOptions & DeployOptions, 'profileMode'>, expectedSteps?: number): Promise<import("@aztec/aztec.js").TxProfileResult>;
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=benchmark.d.ts.map
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":"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"}
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 client ivc execution profile for ${label}`);
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 client IVC files read by the prover.
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 { type AccountWallet, AccountWalletWithSecretKey, AztecAddress, type AztecNode, FeeJuicePaymentMethod, FeeJuicePaymentMethodWithClaim, type FeePaymentMethod, type Logger, type PXE, PrivateFeePaymentMethod, SponsoredFeePaymentMethod, type Wallet } from '@aztec/aztec.js';
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: AccountWallet;
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
- userPXE: PXE;
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(pxe: PXE, type: 'ecdsar1' | 'schnorr'): Promise<import("@aztec/aztec.js").AccountManager>;
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: AccountWallet): Promise<CrossChainTestHarness>;
62
- createAndFundBenchmarkingWallet(accountType: AccountType): Promise<AccountWalletWithSecretKey>;
73
+ createCrossChainTestHarness(owner: AztecAddress): Promise<CrossChainTestHarness>;
74
+ createAndFundBenchmarkingAccountOnUserWallet(accountType: AccountType): Promise<AztecAddress>;
63
75
  applyDeployAmmSnapshot(): Promise<void>;
64
- getBridgedFeeJuicePaymentMethodForWallet(wallet: Wallet): Promise<FeeJuicePaymentMethodWithClaim>;
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=client_flows_benchmark.d.ts.map
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":"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"}
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 { EcdsaRAccountContractArtifact, getEcdsaRAccount } from '@aztec/accounts/ecdsa';
2
- import { SchnorrAccountContractArtifact, getSchnorrAccount, getSchnorrWallet } from '@aztec/accounts/schnorr';
3
- import { AccountWalletWithSecretKey, FeeJuicePaymentMethod, FeeJuicePaymentMethodWithClaim, PrivateFeePaymentMethod, SponsoredFeePaymentMethod, createLogger } from '@aztec/aztec.js';
4
- import { CheatCodes } from '@aztec/aztec/testing';
5
- import { RollupContract, createExtendedL1Client, deployL1Contract } from '@aztec/ethereum';
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 { createPXEService, getPXEServiceConfig } from '@aztec/pxe/server';
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
- // PXE used by the benchmarking user. It can be set up with client-side proving enabled
59
- userPXE;
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: this.getFeeJuicePaymentMethodForWallet.bind(this),
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, this.adminWallet, address, amount);
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
- async createBenchmarkingAccountManager(pxe, type) {
135
- const benchysSecretKey = Fr.random();
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(benchysSecretKey);
141
- benchysAccountManager = await getSchnorrAccount(pxe, benchysSecretKey, benchysPrivateSigningKey, salt);
148
+ benchysPrivateSigningKey = deriveSigningKey(benchysSecret);
149
+ return wallet.createSchnorrAccount(benchysSecret, salt, benchysPrivateSigningKey);
142
150
  } else if (type === 'ecdsar1') {
143
151
  benchysPrivateSigningKey = randomBytes(32);
144
- benchysAccountManager = await getEcdsaRAccount(pxe, benchysSecretKey, benchysPrivateSigningKey, salt);
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 }, { pxe, aztecNode, aztecNodeConfig })=>{
157
- this.pxe = pxe;
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 = await CheatCodes.create(aztecNodeConfig.l1RpcUrls, pxe);
160
- const deployedWallets = await Promise.all(deployedAccounts.map((a)=>getSchnorrWallet(pxe, a.address, a.signingKey)));
161
- [this.adminWallet] = deployedWallets;
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 = await FeeJuiceContract.at(canonicalFeeJuice.address, this.adminWallet);
169
+ this.feeJuiceContract = FeeJuiceContract.at(canonicalFeeJuice.address, this.adminWallet);
166
170
  this.coinbase = EthAddress.random();
167
- const userPXEConfig = getPXEServiceConfig();
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.userPXE = await createPXEService(this.aztecNode, userPXEConfigWithContracts, {
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 = await FeeJuiceContract.at(ProtocolContractAddress.FeeJuice, this.adminWallet);
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
- }).deployed();
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
- }, async ({ bananaCoinAddress })=>{
205
- this.bananaCoin = await BananaCoin.at(bananaCoinAddress, this.adminWallet);
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
- }).deployed();
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
- }, async ({ candyBarCoinAddress })=>{
218
- this.candyBarCoin = await TokenContract.at(candyBarCoinAddress, this.adminWallet);
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.pxe.getContractMetadata(feeJuiceContract.address)).isContractPublished).toBe(true);
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
- }).deployed();
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
- }, async (data)=>{
235
- this.bananaFPC = await FPCContract.at(data.bananaFPCAddress, this.adminWallet);
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 sponsoredFPC = await setupSponsoredFPC(this.pxe);
241
- this.logger.info(`SponsoredFPC at ${sponsoredFPC.address}`);
250
+ const sponsoredFPCInstance = await setupSponsoredFPC(this.adminWallet);
251
+ this.logger.info(`SponsoredFPC at ${sponsoredFPCInstance.address}`);
242
252
  return {
243
- sponsoredFPCAddress: sponsoredFPC.address
253
+ sponsoredFPCAddress: sponsoredFPCInstance.address,
254
+ sponsoredFPCInstance
244
255
  };
245
- }, async ({ sponsoredFPCAddress })=>{
246
- this.sponsoredFPC = await SponsoredFPCContract.at(sponsoredFPCAddress, this.adminWallet);
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, this.pxe, l1Client, owner, owner.getAddress(), this.logger, underlyingERC20Address);
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 createAndFundBenchmarkingWallet(accountType) {
262
- const benchysAccountManager = await this.createBenchmarkingAccountManager(this.pxe, accountType);
263
- const benchysWallet = await benchysAccountManager.getWallet();
264
- const benchysAddress = benchysAccountManager.getAddress();
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 paymentMethod = new FeeJuicePaymentMethodWithClaim(benchysWallet, claim);
267
- await benchysAccountManager.deploy({
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 PXE, where we're going to be interacting from
273
- await this.userPXE.registerContract({
274
- instance: benchysAccountManager.getInstance(),
275
- artifact: accountType === 'ecdsar1' ? EcdsaRAccountContractArtifact : SchnorrAccountContractArtifact
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
- await this.userPXE.registerAccount(benchysWallet.getSecretKey(), benchysWallet.getCompleteAddress().partialAddress);
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
- }).deployed();
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
- }).deployed();
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
- liquidityTokenAddress: liquidityToken.address
308
+ ammInstance,
309
+ liquidityTokenAddress: liquidityToken.address,
310
+ liquidityTokenInstance
296
311
  };
297
- }, async ({ ammAddress, liquidityTokenAddress })=>{
298
- this.liquidityToken = await TokenContract.at(liquidityTokenAddress, this.adminWallet);
299
- this.amm = await AMMContract.at(ammAddress, this.adminWallet);
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(wallet) {
303
- const claim = await this.feeJuiceBridgeTestHarness.prepareTokensOnL1(wallet.getAddress());
304
- return new FeeJuicePaymentMethodWithClaim(wallet, claim);
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
- return Promise.resolve(new PrivateFeePaymentMethod(this.bananaFPC.address, wallet));
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=config.d.ts.map
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmVuY2gvY2xpZW50X2Zsb3dzL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU3RixNQUFNLE1BQU0sZ0JBQWdCLEdBQUc7SUFDN0IsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLGlCQUFpQixFQUFFLDRCQUE0QixFQUFFLENBQUM7SUFDbEQsVUFBVSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7Q0FDdkIsQ0FBQztBQUVGLEtBQUssV0FBVyxHQUFHLG9CQUFvQixHQUFHLGFBQWEsR0FBRyxXQUFXLEdBQUcsVUFBVSxHQUFHLEtBQUssQ0FBQztBQUUzRixNQUFNLE1BQU0saUJBQWlCLEdBQUc7S0FDN0IsR0FBRyxJQUFJLFdBQVcsR0FBRyxnQkFBZ0I7Q0FDdkMsQ0FBQztBQUVGLGVBQU8sTUFBTSxnQkFBZ0IsRUFBRSxpQkFzQjlCLENBQUM7QUFFRixlQUFPLE1BQU0saUJBQWlCLEVBQUUsaUJBc0IvQixDQUFDIn0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data_extractor.d.ts.map
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV9leHRyYWN0b3IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZW5jaC9jbGllbnRfZmxvd3MvZGF0YV9leHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -1,5 +1,4 @@
1
- import { BBNativePrivateKernelProver } from '@aztec/bb-prover/client/native';
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 { prover, type: proverType } = await createProver({
40
- bbBinaryPath: process.env.BB_BINARY_PATH,
41
- bbWorkingDirectory: process.env.BB_WORKING_DIRECTORY
42
- }, proxyLogger.createLogger('bb:prover'));
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.createClientIvcProof(privateExecutionSteps);
54
+ await prover.createChonkProof(privateExecutionSteps);
77
55
  provingTime = provingTimer.ms();
78
56
  } catch (e) {
79
- userLog.error(`Failed to generate client ivc proof for ${flow}`, e);
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, proverType, error);
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
  }