@aztec/end-to-end 0.0.1-commit.f504929 → 0.0.1-commit.f5d02921e

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 (73) hide show
  1. package/dest/bench/client_flows/client_flows_benchmark.d.ts +1 -1
  2. package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
  3. package/dest/bench/client_flows/client_flows_benchmark.js +20 -28
  4. package/dest/e2e_epochs/epochs_test.d.ts +3 -1
  5. package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
  6. package/dest/e2e_epochs/epochs_test.js +5 -2
  7. package/dest/e2e_fees/fees_test.d.ts +1 -1
  8. package/dest/e2e_fees/fees_test.d.ts.map +1 -1
  9. package/dest/e2e_fees/fees_test.js +8 -1
  10. package/dest/e2e_p2p/inactivity_slash_test.js +1 -1
  11. package/dest/e2e_p2p/p2p_network.d.ts +1 -1
  12. package/dest/e2e_p2p/p2p_network.js +1 -1
  13. package/dest/e2e_p2p/reqresp/utils.d.ts +1 -1
  14. package/dest/e2e_p2p/reqresp/utils.d.ts.map +1 -1
  15. package/dest/e2e_p2p/reqresp/utils.js +15 -2
  16. package/dest/e2e_p2p/shared.d.ts +12 -6
  17. package/dest/e2e_p2p/shared.d.ts.map +1 -1
  18. package/dest/e2e_p2p/shared.js +17 -9
  19. package/dest/fixtures/e2e_prover_test.d.ts +4 -3
  20. package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
  21. package/dest/fixtures/e2e_prover_test.js +5 -10
  22. package/dest/fixtures/get_bb_config.d.ts +1 -1
  23. package/dest/fixtures/get_bb_config.d.ts.map +1 -1
  24. package/dest/fixtures/get_bb_config.js +5 -5
  25. package/dest/fixtures/setup.d.ts +6 -1
  26. package/dest/fixtures/setup.d.ts.map +1 -1
  27. package/dest/fixtures/setup.js +13 -9
  28. package/dest/fixtures/token_utils.d.ts +1 -1
  29. package/dest/fixtures/token_utils.d.ts.map +1 -1
  30. package/dest/fixtures/token_utils.js +2 -5
  31. package/dest/shared/uniswap_l1_l2.d.ts +1 -1
  32. package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
  33. package/dest/shared/uniswap_l1_l2.js +9 -12
  34. package/dest/simulators/lending_simulator.d.ts +1 -1
  35. package/dest/simulators/lending_simulator.d.ts.map +1 -1
  36. package/dest/simulators/lending_simulator.js +2 -2
  37. package/dest/simulators/token_simulator.js +1 -1
  38. package/dest/spartan/setup_test_wallets.d.ts +4 -2
  39. package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
  40. package/dest/spartan/setup_test_wallets.js +78 -16
  41. package/dest/spartan/utils/config.d.ts +4 -1
  42. package/dest/spartan/utils/config.d.ts.map +1 -1
  43. package/dest/spartan/utils/config.js +1 -0
  44. package/dest/spartan/utils/index.d.ts +2 -1
  45. package/dest/spartan/utils/index.d.ts.map +1 -1
  46. package/dest/spartan/utils/index.js +2 -0
  47. package/dest/spartan/utils/pod_logs.d.ts +25 -0
  48. package/dest/spartan/utils/pod_logs.d.ts.map +1 -0
  49. package/dest/spartan/utils/pod_logs.js +74 -0
  50. package/dest/test-wallet/test_wallet.d.ts +10 -17
  51. package/dest/test-wallet/test_wallet.d.ts.map +1 -1
  52. package/dest/test-wallet/test_wallet.js +47 -48
  53. package/dest/test-wallet/worker_wallet_schema.d.ts +2 -2
  54. package/package.json +39 -40
  55. package/src/bench/client_flows/client_flows_benchmark.ts +34 -22
  56. package/src/e2e_epochs/epochs_test.ts +14 -2
  57. package/src/e2e_fees/fees_test.ts +4 -1
  58. package/src/e2e_p2p/inactivity_slash_test.ts +1 -1
  59. package/src/e2e_p2p/p2p_network.ts +1 -1
  60. package/src/e2e_p2p/reqresp/utils.ts +23 -2
  61. package/src/e2e_p2p/shared.ts +20 -10
  62. package/src/fixtures/e2e_prover_test.ts +7 -15
  63. package/src/fixtures/get_bb_config.ts +7 -6
  64. package/src/fixtures/setup.ts +17 -8
  65. package/src/fixtures/token_utils.ts +1 -4
  66. package/src/shared/uniswap_l1_l2.ts +29 -24
  67. package/src/simulators/lending_simulator.ts +4 -2
  68. package/src/simulators/token_simulator.ts +1 -1
  69. package/src/spartan/setup_test_wallets.ts +103 -15
  70. package/src/spartan/utils/config.ts +1 -0
  71. package/src/spartan/utils/index.ts +3 -0
  72. package/src/spartan/utils/pod_logs.ts +99 -0
  73. package/src/test-wallet/test_wallet.ts +60 -65
@@ -7,4 +7,5 @@ export { restartBot, installTransferBot, uninstallTransferBot } from './bot.js';
7
7
  export { awaitCheckpointNumber, waitForProvenToAdvance, getSequencers, updateSequencersConfig, getSequencersConfig, withSequencersAdmin, setValidatorTxDrop, restartValidators, enableValidatorDynamicBootNode, rollAztecPods, } from './nodes.js';
8
8
  export { getPublicViemClient, getL1DeploymentAddresses, getNodeClient } from './clients.js';
9
9
  export { ChainHealth, type ChainHealthSnapshot } from './health.js';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zcGFydGFuL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxLQUFLLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUdoRSxPQUFPLEVBQUUsS0FBSyxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUdoSCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDYiw4QkFBOEIsRUFDOUIsc0JBQXNCLEVBQ3RCLDJCQUEyQixFQUMzQixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLFdBQVcsRUFDWCxLQUFLLGVBQWUsRUFDcEIsa0JBQWtCLEVBQ2xCLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsbUNBQW1DLEVBQ25DLGlCQUFpQixHQUNsQixNQUFNLFVBQVUsQ0FBQztBQUdsQixPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLHFCQUFxQixFQUNyQixrQkFBa0IsRUFDbEIscUJBQXFCLEVBQ3JCLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixtQkFBbUIsR0FDcEIsTUFBTSxZQUFZLENBQUM7QUFHcEIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHaEYsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsYUFBYSxFQUNiLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsOEJBQThCLEVBQzlCLGFBQWEsR0FDZCxNQUFNLFlBQVksQ0FBQztBQUdwQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsd0JBQXdCLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRzVGLE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQyJ9
10
+ export { type BlockBuiltLogEntry, fetchBlockBuiltLogs } from './pod_logs.js';
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zcGFydGFuL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxLQUFLLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUdoRSxPQUFPLEVBQUUsS0FBSyxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUdoSCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDYiw4QkFBOEIsRUFDOUIsc0JBQXNCLEVBQ3RCLDJCQUEyQixFQUMzQixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLFdBQVcsRUFDWCxLQUFLLGVBQWUsRUFDcEIsa0JBQWtCLEVBQ2xCLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsbUNBQW1DLEVBQ25DLGlCQUFpQixHQUNsQixNQUFNLFVBQVUsQ0FBQztBQUdsQixPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLHFCQUFxQixFQUNyQixrQkFBa0IsRUFDbEIscUJBQXFCLEVBQ3JCLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixtQkFBbUIsR0FDcEIsTUFBTSxZQUFZLENBQUM7QUFHcEIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHaEYsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsYUFBYSxFQUNiLHNCQUFzQixFQUN0QixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsOEJBQThCLEVBQzlCLGFBQWEsR0FDZCxNQUFNLFlBQVksQ0FBQztBQUdwQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsd0JBQXdCLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRzVGLE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUdwRSxPQUFPLEVBQUUsS0FBSyxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/spartan/utils/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGhE,OAAO,EAAE,KAAK,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhH,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,8BAA8B,EAC9B,sBAAsB,EACtB,2BAA2B,EAC3B,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,EACX,KAAK,eAAe,EACpB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,mCAAmC,EACnC,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAGnD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAGhF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,8BAA8B,EAC9B,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG5F,OAAO,EAAE,WAAW,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/spartan/utils/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGhE,OAAO,EAAE,KAAK,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhH,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,8BAA8B,EAC9B,sBAAsB,EACtB,2BAA2B,EAC3B,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,EACX,KAAK,eAAe,EACpB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,mCAAmC,EACnC,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAGnD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAGhF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,aAAa,EACb,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,8BAA8B,EAC9B,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG5F,OAAO,EAAE,WAAW,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGpE,OAAO,EAAE,KAAK,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC"}
@@ -18,3 +18,5 @@ export { awaitCheckpointNumber, waitForProvenToAdvance, getSequencers, updateSeq
18
18
  export { getPublicViemClient, getL1DeploymentAddresses, getNodeClient } from './clients.js';
19
19
  // Health checks
20
20
  export { ChainHealth } from './health.js';
21
+ // Pod log extraction
22
+ export { fetchBlockBuiltLogs } from './pod_logs.js';
@@ -0,0 +1,25 @@
1
+ import type { Logger } from '@aztec/foundation/log';
2
+ /** Parsed l2-block-built stats from a sequencer pod log line. */
3
+ export type BlockBuiltLogEntry = {
4
+ blockNumber: number;
5
+ txCount: number;
6
+ duration: number;
7
+ publicProcessDuration: number;
8
+ manaPerSec: number;
9
+ privateLogCount: number;
10
+ publicLogCount: number;
11
+ contractClassLogCount: number;
12
+ contractClassLogSize: number;
13
+ };
14
+ /**
15
+ * Fetches l2-block-built log entries from sequencer pods for given block numbers.
16
+ * Queries all validator pods (only the proposer will have the log for a given block).
17
+ *
18
+ * @param namespace - Kubernetes namespace
19
+ * @param sinceTime - ISO 8601 timestamp to limit log search (e.g., from before block building was re-enabled)
20
+ * @param blockNumbers - Set of block numbers to filter for
21
+ * @param logger - Logger instance
22
+ * @returns Array of parsed BlockBuiltLogEntry, de-duplicated by blockNumber, sorted ascending
23
+ */
24
+ export declare function fetchBlockBuiltLogs(namespace: string, sinceTime: string, blockNumbers: Set<number>, logger: Logger): Promise<BlockBuiltLogEntry[]>;
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9kX2xvZ3MuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zcGFydGFuL3V0aWxzL3BvZF9sb2dzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBU3BELGlFQUFpRTtBQUNqRSxNQUFNLE1BQU0sa0JBQWtCLEdBQUc7SUFDL0IsV0FBVyxFQUFFLE1BQU0sQ0FBQztJQUNwQixPQUFPLEVBQUUsTUFBTSxDQUFDO0lBQ2hCLFFBQVEsRUFBRSxNQUFNLENBQUM7SUFDakIscUJBQXFCLEVBQUUsTUFBTSxDQUFDO0lBQzlCLFVBQVUsRUFBRSxNQUFNLENBQUM7SUFDbkIsZUFBZSxFQUFFLE1BQU0sQ0FBQztJQUN4QixjQUFjLEVBQUUsTUFBTSxDQUFDO0lBQ3ZCLHFCQUFxQixFQUFFLE1BQU0sQ0FBQztJQUM5QixvQkFBb0IsRUFBRSxNQUFNLENBQUM7Q0FDOUIsQ0FBQztBQWNGOzs7Ozs7Ozs7R0FTRztBQUNILHdCQUFzQixtQkFBbUIsQ0FDdkMsU0FBUyxFQUFFLE1BQU0sRUFDakIsU0FBUyxFQUFFLE1BQU0sRUFDakIsWUFBWSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFDekIsTUFBTSxFQUFFLE1BQU0sR0FDYixPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQWlEL0IifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pod_logs.d.ts","sourceRoot":"","sources":["../../../src/spartan/utils/pod_logs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AASpD,iEAAiE;AACjE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;CAC9B,CAAC;AAcF;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,EACzB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAiD/B"}
@@ -0,0 +1,74 @@
1
+ import { exec } from 'child_process';
2
+ import { promisify } from 'util';
3
+ import { getSequencers } from './nodes.js';
4
+ const execAsync = promisify(exec);
5
+ const FIELDS = [
6
+ 'blockNumber',
7
+ 'txCount',
8
+ 'duration',
9
+ 'publicProcessDuration',
10
+ 'manaPerSec',
11
+ 'privateLogCount',
12
+ 'publicLogCount',
13
+ 'contractClassLogCount',
14
+ 'contractClassLogSize'
15
+ ];
16
+ /**
17
+ * Fetches l2-block-built log entries from sequencer pods for given block numbers.
18
+ * Queries all validator pods (only the proposer will have the log for a given block).
19
+ *
20
+ * @param namespace - Kubernetes namespace
21
+ * @param sinceTime - ISO 8601 timestamp to limit log search (e.g., from before block building was re-enabled)
22
+ * @param blockNumbers - Set of block numbers to filter for
23
+ * @param logger - Logger instance
24
+ * @returns Array of parsed BlockBuiltLogEntry, de-duplicated by blockNumber, sorted ascending
25
+ */ export async function fetchBlockBuiltLogs(namespace, sinceTime, blockNumbers, logger) {
26
+ const pods = await getSequencers(namespace);
27
+ const entriesByBlock = new Map();
28
+ // Subtract 60s from sinceTime to account for clock skew between test runner and k8s pods.
29
+ // Block number filtering ensures we only match the right blocks, so extra lines are harmless.
30
+ const sinceDate = new Date(new Date(sinceTime).getTime() - 60_000);
31
+ const sinceFlag = sinceDate.toISOString();
32
+ for (const pod of pods){
33
+ try {
34
+ const cmd = `kubectl logs ${pod} -n ${namespace} -c aztec --since-time=${sinceFlag}`;
35
+ logger.info(`Fetching logs: ${cmd}`);
36
+ const { stdout } = await execAsync(cmd, {
37
+ maxBuffer: 10 * 1024 * 1024
38
+ });
39
+ const lines = stdout.split('\n');
40
+ const matchingLines = lines.filter((l)=>l.includes('l2-block-built'));
41
+ logger.info(`Pod ${pod}: ${lines.length} log lines, ${matchingLines.length} contain l2-block-built`);
42
+ for (const line of matchingLines){
43
+ try {
44
+ const parsed = JSON.parse(line);
45
+ if (parsed.eventName !== 'l2-block-built' || !blockNumbers.has(parsed.blockNumber)) {
46
+ continue;
47
+ }
48
+ if (entriesByBlock.has(parsed.blockNumber)) {
49
+ continue;
50
+ }
51
+ const entry = {};
52
+ for (const field of FIELDS){
53
+ entry[field] = parsed[field] ?? 0;
54
+ }
55
+ entriesByBlock.set(entry.blockNumber, entry);
56
+ logger.verbose(`Parsed l2-block-built log for block ${entry.blockNumber}`, entry);
57
+ } catch {
58
+ // Not valid JSON, skip
59
+ }
60
+ }
61
+ } catch (err) {
62
+ logger.warn(`Failed to fetch logs from pod ${pod}: ${err}`);
63
+ }
64
+ }
65
+ if (entriesByBlock.size < blockNumbers.size) {
66
+ const missing = [
67
+ ...blockNumbers
68
+ ].filter((bn)=>!entriesByBlock.has(bn));
69
+ logger.warn(`Missing l2-block-built logs for block(s): ${missing.join(', ')}`);
70
+ }
71
+ return [
72
+ ...entriesByBlock.values()
73
+ ].sort((a, b)=>a.blockNumber - b.blockNumber);
74
+ }
@@ -3,7 +3,7 @@ import { type CallIntent, type ContractFunctionInteractionCallIntent, type Inten
3
3
  import type { AztecNode } from '@aztec/aztec.js/node';
4
4
  import { AccountManager, type SendOptions } from '@aztec/aztec.js/wallet';
5
5
  import { Fq, Fr } from '@aztec/foundation/curves/bn254';
6
- import type { AccessScopes, NotesFilter } from '@aztec/pxe/client/lazy';
6
+ import type { NotesFilter } from '@aztec/pxe/client/lazy';
7
7
  import { type PXEConfig } from '@aztec/pxe/config';
8
8
  import { PXE, type PXECreationOptions } from '@aztec/pxe/server';
9
9
  import { AuthWitness } from '@aztec/stdlib/auth-witness';
@@ -11,7 +11,7 @@ import { AztecAddress } from '@aztec/stdlib/aztec-address';
11
11
  import type { NoteDao } from '@aztec/stdlib/note';
12
12
  import type { BlockHeader, TxHash, TxReceipt, TxSimulationResult } from '@aztec/stdlib/tx';
13
13
  import { ExecutionPayload } from '@aztec/stdlib/tx';
14
- import { BaseWallet, type FeeOptions } from '@aztec/wallet-sdk/base-wallet';
14
+ import { BaseWallet, type SimulateViaEntrypointOptions } from '@aztec/wallet-sdk/base-wallet';
15
15
  import { AztecNodeProxy, ProvenTx } from './utils.js';
16
16
  /**
17
17
  * Data for generating an account.
@@ -45,16 +45,13 @@ export declare class TestWallet extends BaseWallet {
45
45
  }>;
46
46
  protected accounts: Map<string, Account>;
47
47
  /**
48
- * Toggle for running "simulated simulations" when calling simulateTx.
49
- *
50
- * When this flag is true, simulateViaEntrypoint constructs a request using a fake account
51
- * (and accepts contract overrides on the input) and the PXE emulates kernel effects without
52
- * generating kernel witnesses. When false, simulateViaEntrypoint defers to the standard
53
- * simulation path via the real account entrypoint.
48
+ * Controls how the test wallet simulates transactions:
49
+ * - `kernelless`: Skips kernel circuits but uses the real account contract. Default.
50
+ * - `kernelless-override`: Skips kernels and replaces the account with a stub that doesn't do authwit validation.
51
+ * - `full`: Uses real kernel circuits and real account contracts. Slow!
54
52
  */
55
- private simulatedSimulations;
56
- enableSimulatedSimulations(): void;
57
- disableSimulatedSimulations(): void;
53
+ private simulationMode;
54
+ setSimulationMode(mode: 'kernelless' | 'kernelless-override' | 'full'): void;
58
55
  setMinFeePadding(value?: number): void;
59
56
  protected getAccountFromAddress(address: AztecAddress): Promise<Account>;
60
57
  getAccounts(): Promise<{
@@ -68,11 +65,7 @@ export declare class TestWallet extends BaseWallet {
68
65
  }>;
69
66
  setPublicAuthWit(from: AztecAddress, messageHashOrIntent: Fr | IntentInnerHash | CallIntent | ContractFunctionInteractionCallIntent, authorized: boolean): Promise<SetPublicAuthwitContractInteraction>;
70
67
  createAuthWit(from: AztecAddress, intent: IntentInnerHash | CallIntent | ContractFunctionInteractionCallIntent): Promise<AuthWitness>;
71
- /**
72
- * Override simulateViaEntrypoint to use fake accounts for kernelless simulation
73
- * when simulatedSimulations is enabled. Otherwise falls through to the real entrypoint path.
74
- */
75
- protected simulateViaEntrypoint(executionPayload: ExecutionPayload, from: AztecAddress, feeOptions: FeeOptions, scopes: AccessScopes, skipTxValidation?: boolean, skipFeeEnforcement?: boolean): Promise<TxSimulationResult>;
68
+ protected simulateViaEntrypoint(executionPayload: ExecutionPayload, opts: SimulateViaEntrypointOptions): Promise<TxSimulationResult>;
76
69
  proveTx(exec: ExecutionPayload, opts: Omit<SendOptions, 'wait'>): Promise<ProvenTx>;
77
70
  getTxReceipt(txHash: TxHash): Promise<TxReceipt>;
78
71
  getNotes(filter: NotesFilter): Promise<NoteDao[]>;
@@ -80,4 +73,4 @@ export declare class TestWallet extends BaseWallet {
80
73
  sync(): Promise<void>;
81
74
  stop(): Promise<void>;
82
75
  }
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF93YWxsZXQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0LXdhbGxldC90ZXN0X3dhbGxldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsS0FBSyxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXFCLE1BQU0seUJBQXlCLENBQUM7QUFDaEcsT0FBTyxFQUNMLEtBQUssVUFBVSxFQUNmLEtBQUsscUNBQXFDLEVBQzFDLEtBQUssZUFBZSxFQUNwQixtQ0FBbUMsRUFJcEMsTUFBTSwrQkFBK0IsQ0FBQztBQUN2QyxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLEtBQUssV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFMUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV4RCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEUsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUFnQixNQUFNLG1CQUFtQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxrQkFBa0IsRUFBYSxNQUFNLG1CQUFtQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHM0QsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRixPQUFPLEVBQUUsZ0JBQWdCLEVBQTBCLE1BQU0sa0JBQWtCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxL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
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF93YWxsZXQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0LXdhbGxldC90ZXN0X3dhbGxldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsS0FBSyxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQVcsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RixPQUFPLEVBQ0wsS0FBSyxVQUFVLEVBQ2YsS0FBSyxxQ0FBcUMsRUFDMUMsS0FBSyxlQUFlLEVBQ3BCLG1DQUFtQyxFQUlwQyxNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsS0FBSyxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUcxRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXhELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxLQUFLLFNBQVMsRUFBZ0IsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssa0JBQWtCLEVBQWEsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRzNELE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sS0FBSyxFQUNWLFdBQVcsRUFHWCxNQUFNLEVBQ04sU0FBUyxFQUNULGtCQUFrQixFQUNuQixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBMEIsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssNEJBQTRC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
@@ -1 +1 @@
1
- {"version":3,"file":"test_wallet.d.ts","sourceRoot":"","sources":["../../src/test-wallet/test_wallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test_wallet.d.ts","sourceRoot":"","sources":["../../src/test-wallet/test_wallet.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  import { EcdsaKAccountContract, EcdsaRAccountContract } from '@aztec/accounts/ecdsa';
2
2
  import { SchnorrAccountContract } from '@aztec/accounts/schnorr';
3
3
  import { StubAccountContractArtifact, createStubAccount } from '@aztec/accounts/stub';
4
- import { SignerlessAccount } from '@aztec/aztec.js/account';
4
+ import { NO_FROM } from '@aztec/aztec.js/account';
5
5
  import { SetPublicAuthwitContractInteraction, computeInnerAuthWitHashFromAction, isContractFunctionInteractionCallIntent, lookupValidity } from '@aztec/aztec.js/authorization';
6
6
  import { AccountManager } from '@aztec/aztec.js/wallet';
7
+ import { DefaultEntrypoint } from '@aztec/entrypoints/default';
7
8
  import { Fr } from '@aztec/foundation/curves/bn254';
8
9
  import { GrumpkinScalar } from '@aztec/foundation/curves/grumpkin';
9
10
  import { getPXEConfig } from '@aztec/pxe/config';
10
11
  import { createPXE } from '@aztec/pxe/server';
11
- import { AztecAddress } from '@aztec/stdlib/aztec-address';
12
12
  import { getContractInstanceFromInstantiationParams } from '@aztec/stdlib/contract';
13
13
  import { deriveSigningKey } from '@aztec/stdlib/keys';
14
14
  import { mergeExecutionPayloads } from '@aztec/stdlib/tx';
@@ -21,7 +21,7 @@ import { AztecNodeProxy, ProvenTx } from './utils.js';
21
21
  */ export class TestWallet extends BaseWallet {
22
22
  nodeRef;
23
23
  constructor(pxe, nodeRef){
24
- super(pxe, nodeRef), this.nodeRef = nodeRef, this.accounts = new Map(), this.simulatedSimulations = false;
24
+ super(pxe, nodeRef), this.nodeRef = nodeRef, this.accounts = new Map(), this.simulationMode = 'kernelless';
25
25
  }
26
26
  static async create(node, overridePXEConfig, options = {
27
27
  loggers: {}
@@ -67,9 +67,6 @@ import { AztecNodeProxy, ProvenTx } from './utils.js';
67
67
  }
68
68
  async getFakeAccountDataFor(address) {
69
69
  const originalAccount = await this.getAccountFromAddress(address);
70
- if (originalAccount instanceof SignerlessAccount) {
71
- throw new Error(`Cannot create fake account data for SignerlessAccount at address: ${address}`);
72
- }
73
70
  const originalAddress = originalAccount.getCompleteAddress();
74
71
  const contractInstance = await this.pxe.getContractInstance(originalAddress.address);
75
72
  if (!contractInstance) {
@@ -87,29 +84,19 @@ import { AztecNodeProxy, ProvenTx } from './utils.js';
87
84
  }
88
85
  accounts;
89
86
  /**
90
- * Toggle for running "simulated simulations" when calling simulateTx.
91
- *
92
- * When this flag is true, simulateViaEntrypoint constructs a request using a fake account
93
- * (and accepts contract overrides on the input) and the PXE emulates kernel effects without
94
- * generating kernel witnesses. When false, simulateViaEntrypoint defers to the standard
95
- * simulation path via the real account entrypoint.
96
- */ simulatedSimulations;
97
- enableSimulatedSimulations() {
98
- this.simulatedSimulations = true;
99
- }
100
- disableSimulatedSimulations() {
101
- this.simulatedSimulations = false;
87
+ * Controls how the test wallet simulates transactions:
88
+ * - `kernelless`: Skips kernel circuits but uses the real account contract. Default.
89
+ * - `kernelless-override`: Skips kernels and replaces the account with a stub that doesn't do authwit validation.
90
+ * - `full`: Uses real kernel circuits and real account contracts. Slow!
91
+ */ simulationMode;
92
+ setSimulationMode(mode) {
93
+ this.simulationMode = mode;
102
94
  }
103
95
  setMinFeePadding(value) {
104
96
  this.minFeePadding = value ?? 0.5;
105
97
  }
106
98
  getAccountFromAddress(address) {
107
- let account;
108
- if (address.equals(AztecAddress.ZERO)) {
109
- account = new SignerlessAccount();
110
- } else {
111
- account = this.accounts.get(address?.toString() ?? '');
112
- }
99
+ const account = this.accounts.get(address?.toString() ?? '');
113
100
  if (!account) {
114
101
  throw new Error(`Account not found in wallet for address: ${address}`);
115
102
  }
@@ -154,39 +141,51 @@ import { AztecNodeProxy, ProvenTx } from './utils.js';
154
141
  }
155
142
  return account.createAuthWit(intentInnerHash, chainInfo);
156
143
  }
157
- /**
158
- * Override simulateViaEntrypoint to use fake accounts for kernelless simulation
159
- * when simulatedSimulations is enabled. Otherwise falls through to the real entrypoint path.
160
- */ async simulateViaEntrypoint(executionPayload, from, feeOptions, scopes, skipTxValidation, skipFeeEnforcement) {
161
- if (!this.simulatedSimulations) {
162
- return super.simulateViaEntrypoint(executionPayload, from, feeOptions, scopes, skipTxValidation, skipFeeEnforcement);
163
- }
144
+ async simulateViaEntrypoint(executionPayload, opts) {
145
+ const { from, feeOptions, scopes, skipTxValidation, skipFeeEnforcement } = opts;
146
+ const skipKernels = this.simulationMode !== 'full';
164
147
  const feeExecutionPayload = await feeOptions.walletFeePaymentMethod?.getExecutionPayload();
165
- const executionOptions = {
166
- txNonce: Fr.random(),
167
- cancellable: this.cancellableTransactions,
168
- feePaymentMethodOptions: feeOptions.accountFeePaymentMethodOptions
169
- };
170
148
  const finalExecutionPayload = feeExecutionPayload ? mergeExecutionPayloads([
171
149
  feeExecutionPayload,
172
150
  executionPayload
173
151
  ]) : executionPayload;
174
- const { account: fromAccount, instance, artifact } = await this.getFakeAccountDataFor(from);
175
152
  const chainInfo = await this.getChainInfo();
176
- const txRequest = await fromAccount.createTxExecutionRequest(finalExecutionPayload, feeOptions.gasSettings, chainInfo, executionOptions);
177
- const contractOverrides = {
178
- [from.toString()]: {
179
- instance,
180
- artifact
153
+ let overrides;
154
+ let txRequest;
155
+ if (from === NO_FROM) {
156
+ const entrypoint = new DefaultEntrypoint();
157
+ txRequest = await entrypoint.createTxExecutionRequest(finalExecutionPayload, feeOptions.gasSettings, chainInfo);
158
+ } else {
159
+ const useOverride = this.simulationMode === 'kernelless-override';
160
+ let fromAccount;
161
+ if (useOverride) {
162
+ const { account, instance, artifact } = await this.getFakeAccountDataFor(from);
163
+ fromAccount = account;
164
+ overrides = {
165
+ contracts: {
166
+ [from.toString()]: {
167
+ instance,
168
+ artifact
169
+ }
170
+ }
171
+ };
172
+ } else {
173
+ fromAccount = await this.getAccountFromAddress(from);
181
174
  }
182
- };
175
+ const executionOptions = {
176
+ txNonce: Fr.random(),
177
+ cancellable: this.cancellableTransactions,
178
+ // If from is an address, feeOptions include the way the account contract should handle the fee payment
179
+ feePaymentMethodOptions: feeOptions.accountFeePaymentMethodOptions
180
+ };
181
+ txRequest = await fromAccount.createTxExecutionRequest(finalExecutionPayload, feeOptions.gasSettings, chainInfo, executionOptions);
182
+ }
183
183
  return this.pxe.simulateTx(txRequest, {
184
184
  simulatePublic: true,
185
- skipFeeEnforcement: true,
186
- skipTxValidation: true,
187
- overrides: {
188
- contracts: contractOverrides
189
- },
185
+ skipKernels,
186
+ skipFeeEnforcement,
187
+ skipTxValidation,
188
+ overrides,
190
189
  scopes
191
190
  });
192
191
  }
@@ -82,7 +82,7 @@ export declare const WorkerWalletSchema: {
82
82
  extraHashedArgs: any[];
83
83
  feePayer?: any;
84
84
  }>, z.ZodObject<{
85
- from: import("@aztec/foundation/schemas").ZodFor<AztecAddress>;
85
+ from: z.ZodUnion<[import("@aztec/foundation/schemas").ZodFor<AztecAddress>, z.ZodLiteral<"NO_FROM">]>;
86
86
  authWitnesses: import("@aztec/foundation/schemas").ZodNullableOptional<z.ZodArray<z.ZodType<import("@aztec/stdlib/auth-witness").AuthWitness, any, string>, "many">>;
87
87
  capsules: import("@aztec/foundation/schemas").ZodNullableOptional<z.ZodArray<z.ZodType<import("@aztec/stdlib/tx").Capsule, any, string>, "many">>;
88
88
  fee: import("@aztec/foundation/schemas").ZodNullableOptional<z.ZodObject<{
@@ -213,7 +213,7 @@ export declare const WorkerWalletSchema: {
213
213
  }>]>>;
214
214
  additionalScopes: import("@aztec/foundation/schemas").ZodNullableOptional<z.ZodArray<import("@aztec/foundation/schemas").ZodFor<AztecAddress>, "many">>;
215
215
  }, "strip", z.ZodTypeAny, {
216
- from: AztecAddress;
216
+ from: "NO_FROM" | AztecAddress;
217
217
  authWitnesses?: import("@aztec/stdlib/auth-witness").AuthWitness[] | undefined;
218
218
  capsules?: import("@aztec/stdlib/tx").Capsule[] | undefined;
219
219
  fee?: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/end-to-end",
3
- "version": "0.0.1-commit.f504929",
3
+ "version": "0.0.1-commit.f5d02921e",
4
4
  "type": "module",
5
5
  "exports": "./dest/index.js",
6
6
  "inherits": [
@@ -26,45 +26,44 @@
26
26
  "formatting": "run -T prettier --check ./src && run -T eslint ./src"
27
27
  },
28
28
  "dependencies": {
29
- "@aztec/accounts": "0.0.1-commit.f504929",
30
- "@aztec/archiver": "0.0.1-commit.f504929",
31
- "@aztec/aztec": "0.0.1-commit.f504929",
32
- "@aztec/aztec-node": "0.0.1-commit.f504929",
33
- "@aztec/aztec.js": "0.0.1-commit.f504929",
34
- "@aztec/bb-prover": "0.0.1-commit.f504929",
35
- "@aztec/bb.js": "0.0.1-commit.f504929",
36
- "@aztec/blob-client": "0.0.1-commit.f504929",
37
- "@aztec/blob-lib": "0.0.1-commit.f504929",
38
- "@aztec/bot": "0.0.1-commit.f504929",
39
- "@aztec/cli": "0.0.1-commit.f504929",
40
- "@aztec/constants": "0.0.1-commit.f504929",
41
- "@aztec/entrypoints": "0.0.1-commit.f504929",
42
- "@aztec/epoch-cache": "0.0.1-commit.f504929",
43
- "@aztec/ethereum": "0.0.1-commit.f504929",
44
- "@aztec/foundation": "0.0.1-commit.f504929",
45
- "@aztec/kv-store": "0.0.1-commit.f504929",
46
- "@aztec/l1-artifacts": "0.0.1-commit.f504929",
47
- "@aztec/merkle-tree": "0.0.1-commit.f504929",
48
- "@aztec/node-keystore": "0.0.1-commit.f504929",
49
- "@aztec/noir-contracts.js": "0.0.1-commit.f504929",
50
- "@aztec/noir-noirc_abi": "0.0.1-commit.f504929",
51
- "@aztec/noir-protocol-circuits-types": "0.0.1-commit.f504929",
52
- "@aztec/noir-test-contracts.js": "0.0.1-commit.f504929",
53
- "@aztec/p2p": "0.0.1-commit.f504929",
54
- "@aztec/protocol-contracts": "0.0.1-commit.f504929",
55
- "@aztec/prover-client": "0.0.1-commit.f504929",
56
- "@aztec/prover-node": "0.0.1-commit.f504929",
57
- "@aztec/pxe": "0.0.1-commit.f504929",
58
- "@aztec/sequencer-client": "0.0.1-commit.f504929",
59
- "@aztec/simulator": "0.0.1-commit.f504929",
60
- "@aztec/slasher": "0.0.1-commit.f504929",
61
- "@aztec/stdlib": "0.0.1-commit.f504929",
62
- "@aztec/telemetry-client": "0.0.1-commit.f504929",
63
- "@aztec/validator-client": "0.0.1-commit.f504929",
64
- "@aztec/validator-ha-signer": "0.0.1-commit.f504929",
65
- "@aztec/wallet-sdk": "0.0.1-commit.f504929",
66
- "@aztec/wallets": "0.0.1-commit.f504929",
67
- "@aztec/world-state": "0.0.1-commit.f504929",
29
+ "@aztec/accounts": "0.0.1-commit.f5d02921e",
30
+ "@aztec/archiver": "0.0.1-commit.f5d02921e",
31
+ "@aztec/aztec": "0.0.1-commit.f5d02921e",
32
+ "@aztec/aztec-node": "0.0.1-commit.f5d02921e",
33
+ "@aztec/aztec.js": "0.0.1-commit.f5d02921e",
34
+ "@aztec/bb-prover": "0.0.1-commit.f5d02921e",
35
+ "@aztec/bb.js": "0.0.1-commit.f5d02921e",
36
+ "@aztec/blob-client": "0.0.1-commit.f5d02921e",
37
+ "@aztec/blob-lib": "0.0.1-commit.f5d02921e",
38
+ "@aztec/bot": "0.0.1-commit.f5d02921e",
39
+ "@aztec/cli": "0.0.1-commit.f5d02921e",
40
+ "@aztec/constants": "0.0.1-commit.f5d02921e",
41
+ "@aztec/entrypoints": "0.0.1-commit.f5d02921e",
42
+ "@aztec/epoch-cache": "0.0.1-commit.f5d02921e",
43
+ "@aztec/ethereum": "0.0.1-commit.f5d02921e",
44
+ "@aztec/foundation": "0.0.1-commit.f5d02921e",
45
+ "@aztec/kv-store": "0.0.1-commit.f5d02921e",
46
+ "@aztec/l1-artifacts": "0.0.1-commit.f5d02921e",
47
+ "@aztec/node-keystore": "0.0.1-commit.f5d02921e",
48
+ "@aztec/noir-contracts.js": "0.0.1-commit.f5d02921e",
49
+ "@aztec/noir-noirc_abi": "0.0.1-commit.f5d02921e",
50
+ "@aztec/noir-protocol-circuits-types": "0.0.1-commit.f5d02921e",
51
+ "@aztec/noir-test-contracts.js": "0.0.1-commit.f5d02921e",
52
+ "@aztec/p2p": "0.0.1-commit.f5d02921e",
53
+ "@aztec/protocol-contracts": "0.0.1-commit.f5d02921e",
54
+ "@aztec/prover-client": "0.0.1-commit.f5d02921e",
55
+ "@aztec/prover-node": "0.0.1-commit.f5d02921e",
56
+ "@aztec/pxe": "0.0.1-commit.f5d02921e",
57
+ "@aztec/sequencer-client": "0.0.1-commit.f5d02921e",
58
+ "@aztec/simulator": "0.0.1-commit.f5d02921e",
59
+ "@aztec/slasher": "0.0.1-commit.f5d02921e",
60
+ "@aztec/stdlib": "0.0.1-commit.f5d02921e",
61
+ "@aztec/telemetry-client": "0.0.1-commit.f5d02921e",
62
+ "@aztec/validator-client": "0.0.1-commit.f5d02921e",
63
+ "@aztec/validator-ha-signer": "0.0.1-commit.f5d02921e",
64
+ "@aztec/wallet-sdk": "0.0.1-commit.f5d02921e",
65
+ "@aztec/wallets": "0.0.1-commit.f5d02921e",
66
+ "@aztec/world-state": "0.0.1-commit.f5d02921e",
68
67
  "@iarna/toml": "^2.2.5",
69
68
  "@jest/globals": "^30.0.0",
70
69
  "@noble/curves": "=1.0.0",
@@ -1,10 +1,11 @@
1
+ import { NO_FROM } from '@aztec/aztec.js/account';
1
2
  import { AztecAddress } from '@aztec/aztec.js/addresses';
2
3
  import { FeeJuicePaymentMethodWithClaim } from '@aztec/aztec.js/fee';
3
4
  import { type FeePaymentMethod, PrivateFeePaymentMethod, SponsoredFeePaymentMethod } from '@aztec/aztec.js/fee';
4
5
  import { type Logger, createLogger } from '@aztec/aztec.js/log';
5
6
  import type { AztecNode } from '@aztec/aztec.js/node';
6
7
  import type { Wallet } from '@aztec/aztec.js/wallet';
7
- import { CheatCodes } from '@aztec/aztec/testing';
8
+ import { CheatCodes, getTokenAllowedSetupFunctions } from '@aztec/aztec/testing';
8
9
  import { createExtendedL1Client } from '@aztec/ethereum/client';
9
10
  import { RollupContract } from '@aztec/ethereum/contracts';
10
11
  import type { DeployAztecL1ContractsArgs } from '@aztec/ethereum/deploy-aztec-l1-contracts';
@@ -130,11 +131,14 @@ export class ClientFlowsBenchmark {
130
131
 
131
132
  async setup() {
132
133
  this.logger.info('Setting up subsystems from fresh');
134
+ // Token allowlist entries are test-only: FPC-based fee payment with custom tokens won't work on mainnet alpha.
135
+ const tokenAllowList = await getTokenAllowedSetupFunctions();
133
136
  this.context = await setup(0, {
134
137
  ...this.setupOptions,
135
138
  fundSponsoredFPC: true,
136
139
  skipAccountDeployment: true,
137
140
  l1ContractsArgs: this.setupOptions,
141
+ txPublicSetupAllowListExtend: [...(this.setupOptions.txPublicSetupAllowListExtend ?? []), ...tokenAllowList],
138
142
  });
139
143
  await this.applyBaseSetup();
140
144
 
@@ -246,11 +250,14 @@ export class ClientFlowsBenchmark {
246
250
 
247
251
  async applyDeployBananaToken() {
248
252
  this.logger.info('Applying banana token deployment');
249
- const {
250
- receipt: { contract: bananaCoin, instance: bananaCoinInstance },
251
- } = await BananaCoin.deploy(this.adminWallet, this.adminAddress, 'BC', 'BC', 18n).send({
253
+ const { contract: bananaCoin, instance: bananaCoinInstance } = await BananaCoin.deploy(
254
+ this.adminWallet,
255
+ this.adminAddress,
256
+ 'BC',
257
+ 'BC',
258
+ 18n,
259
+ ).send({
252
260
  from: this.adminAddress,
253
- wait: { returnReceipt: true },
254
261
  });
255
262
  this.logger.info(`BananaCoin deployed at ${bananaCoin.address}`);
256
263
  this.bananaCoin = bananaCoin;
@@ -259,11 +266,14 @@ export class ClientFlowsBenchmark {
259
266
 
260
267
  async applyDeployCandyBarToken() {
261
268
  this.logger.info('Applying candy bar token deployment');
262
- const {
263
- receipt: { contract: candyBarCoin, instance: candyBarCoinInstance },
264
- } = await TokenContract.deploy(this.adminWallet, this.adminAddress, 'CBC', 'CBC', 18n).send({
269
+ const { contract: candyBarCoin, instance: candyBarCoinInstance } = await TokenContract.deploy(
270
+ this.adminWallet,
271
+ this.adminAddress,
272
+ 'CBC',
273
+ 'CBC',
274
+ 18n,
275
+ ).send({
265
276
  from: this.adminAddress,
266
- wait: { returnReceipt: true },
267
277
  });
268
278
  this.logger.info(`CandyBarCoin deployed at ${candyBarCoin.address}`);
269
279
  this.candyBarCoin = candyBarCoin;
@@ -276,11 +286,12 @@ export class ClientFlowsBenchmark {
276
286
  expect((await this.context.wallet.getContractMetadata(feeJuiceContract.address)).isContractPublished).toBe(true);
277
287
 
278
288
  const bananaCoin = this.bananaCoin;
279
- const {
280
- receipt: { contract: bananaFPC, instance: bananaFPCInstance },
281
- } = await FPCContract.deploy(this.adminWallet, bananaCoin.address, this.adminAddress).send({
289
+ const { contract: bananaFPC, instance: bananaFPCInstance } = await FPCContract.deploy(
290
+ this.adminWallet,
291
+ bananaCoin.address,
292
+ this.adminAddress,
293
+ ).send({
282
294
  from: this.adminAddress,
283
- wait: { returnReceipt: true },
284
295
  });
285
296
 
286
297
  this.logger.info(`BananaPay deployed at ${bananaFPC.address}`);
@@ -330,7 +341,7 @@ export class ClientFlowsBenchmark {
330
341
  const claim = await this.feeJuiceBridgeTestHarness.prepareTokensOnL1(benchysAddress);
331
342
  const behchysDeployMethod = await benchysAccountManager.getDeployMethod();
332
343
  await behchysDeployMethod.send({
333
- from: AztecAddress.ZERO,
344
+ from: NO_FROM,
334
345
  fee: { paymentMethod: new FeeJuicePaymentMethodWithClaim(benchysAddress, claim) },
335
346
  });
336
347
  // Register benchy on the user's Wallet, where we're going to be interacting from
@@ -344,20 +355,21 @@ export class ClientFlowsBenchmark {
344
355
 
345
356
  public async applyDeployAmm() {
346
357
  this.logger.info('Applying AMM deployment');
347
- const {
348
- receipt: { contract: liquidityToken, instance: liquidityTokenInstance },
349
- } = await TokenContract.deploy(this.adminWallet, this.adminAddress, 'LPT', 'LPT', 18n).send({
358
+ const { contract: liquidityToken, instance: liquidityTokenInstance } = await TokenContract.deploy(
359
+ this.adminWallet,
360
+ this.adminAddress,
361
+ 'LPT',
362
+ 'LPT',
363
+ 18n,
364
+ ).send({
350
365
  from: this.adminAddress,
351
- wait: { returnReceipt: true },
352
366
  });
353
- const {
354
- receipt: { contract: amm, instance: ammInstance },
355
- } = await AMMContract.deploy(
367
+ const { contract: amm, instance: ammInstance } = await AMMContract.deploy(
356
368
  this.adminWallet,
357
369
  this.bananaCoin.address,
358
370
  this.candyBarCoin.address,
359
371
  liquidityToken.address,
360
- ).send({ from: this.adminAddress, wait: { returnReceipt: true } });
372
+ ).send({ from: this.adminAddress });
361
373
  this.logger.info(`AMM deployed at ${amm.address}`);
362
374
  await liquidityToken.methods.set_minter(amm.address, true).send({ from: this.adminAddress });
363
375
  this.liquidityToken = liquidityToken;