@aztec/aztec 0.0.1-commit.c7c42ec → 0.0.1-commit.c949de6bc

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 (111) hide show
  1. package/dest/bin/index.js +7 -1
  2. package/dest/cli/admin_api_key_store.d.ts +45 -0
  3. package/dest/cli/admin_api_key_store.d.ts.map +1 -0
  4. package/dest/cli/admin_api_key_store.js +98 -0
  5. package/dest/cli/aztec_start_action.d.ts +1 -1
  6. package/dest/cli/aztec_start_action.d.ts.map +1 -1
  7. package/dest/cli/aztec_start_action.js +50 -9
  8. package/dest/cli/aztec_start_options.d.ts +1 -1
  9. package/dest/cli/aztec_start_options.d.ts.map +1 -1
  10. package/dest/cli/aztec_start_options.js +27 -8
  11. package/dest/cli/cli.d.ts +1 -1
  12. package/dest/cli/cli.d.ts.map +1 -1
  13. package/dest/cli/cli.js +7 -52
  14. package/dest/cli/cmds/compile.d.ts +4 -0
  15. package/dest/cli/cmds/compile.d.ts.map +1 -0
  16. package/dest/cli/cmds/compile.js +160 -0
  17. package/dest/cli/cmds/migrate_ha_db.d.ts +3 -0
  18. package/dest/cli/cmds/migrate_ha_db.d.ts.map +1 -0
  19. package/dest/cli/cmds/migrate_ha_db.js +27 -0
  20. package/dest/cli/cmds/profile.d.ts +4 -0
  21. package/dest/cli/cmds/profile.d.ts.map +1 -0
  22. package/dest/cli/cmds/profile.js +8 -0
  23. package/dest/cli/cmds/profile_flamegraph.d.ts +4 -0
  24. package/dest/cli/cmds/profile_flamegraph.d.ts.map +1 -0
  25. package/dest/cli/cmds/profile_flamegraph.js +51 -0
  26. package/dest/cli/cmds/profile_gates.d.ts +4 -0
  27. package/dest/cli/cmds/profile_gates.d.ts.map +1 -0
  28. package/dest/cli/cmds/profile_gates.js +57 -0
  29. package/dest/cli/cmds/profile_utils.d.ts +18 -0
  30. package/dest/cli/cmds/profile_utils.d.ts.map +1 -0
  31. package/dest/cli/cmds/profile_utils.js +50 -0
  32. package/dest/cli/cmds/start_archiver.d.ts +1 -1
  33. package/dest/cli/cmds/start_archiver.d.ts.map +1 -1
  34. package/dest/cli/cmds/start_archiver.js +5 -7
  35. package/dest/cli/cmds/start_bot.d.ts +3 -3
  36. package/dest/cli/cmds/start_bot.d.ts.map +1 -1
  37. package/dest/cli/cmds/start_bot.js +9 -5
  38. package/dest/cli/cmds/start_node.d.ts +1 -1
  39. package/dest/cli/cmds/start_node.d.ts.map +1 -1
  40. package/dest/cli/cmds/start_node.js +62 -10
  41. package/dest/cli/cmds/start_p2p_bootstrap.d.ts +2 -2
  42. package/dest/cli/cmds/start_p2p_bootstrap.d.ts.map +1 -1
  43. package/dest/cli/cmds/start_p2p_bootstrap.js +1 -2
  44. package/dest/cli/cmds/start_prover_agent.d.ts +1 -1
  45. package/dest/cli/cmds/start_prover_agent.d.ts.map +1 -1
  46. package/dest/cli/cmds/start_prover_agent.js +3 -3
  47. package/dest/cli/cmds/start_prover_broker.d.ts +1 -1
  48. package/dest/cli/cmds/start_prover_broker.d.ts.map +1 -1
  49. package/dest/cli/cmds/start_prover_broker.js +2 -2
  50. package/dest/cli/cmds/utils/artifacts.d.ts +21 -0
  51. package/dest/cli/cmds/utils/artifacts.d.ts.map +1 -0
  52. package/dest/cli/cmds/utils/artifacts.js +24 -0
  53. package/dest/cli/cmds/utils/spawn.d.ts +3 -0
  54. package/dest/cli/cmds/utils/spawn.d.ts.map +1 -0
  55. package/dest/cli/cmds/utils/spawn.js +16 -0
  56. package/dest/cli/util.d.ts +5 -14
  57. package/dest/cli/util.d.ts.map +1 -1
  58. package/dest/cli/util.js +14 -9
  59. package/dest/examples/token.js +5 -5
  60. package/dest/local-network/banana_fpc.d.ts +1 -1
  61. package/dest/local-network/banana_fpc.d.ts.map +1 -1
  62. package/dest/local-network/banana_fpc.js +2 -2
  63. package/dest/local-network/local-network.d.ts +4 -3
  64. package/dest/local-network/local-network.d.ts.map +1 -1
  65. package/dest/local-network/local-network.js +51 -20
  66. package/dest/testing/anvil_test_watcher.d.ts +9 -1
  67. package/dest/testing/anvil_test_watcher.d.ts.map +1 -1
  68. package/dest/testing/anvil_test_watcher.js +52 -15
  69. package/dest/testing/cheat_codes.d.ts +3 -1
  70. package/dest/testing/cheat_codes.d.ts.map +1 -1
  71. package/dest/testing/epoch_test_settler.d.ts +19 -0
  72. package/dest/testing/epoch_test_settler.d.ts.map +1 -0
  73. package/dest/testing/epoch_test_settler.js +62 -0
  74. package/dest/testing/index.d.ts +2 -1
  75. package/dest/testing/index.d.ts.map +1 -1
  76. package/dest/testing/index.js +1 -0
  77. package/package.json +37 -35
  78. package/scripts/aztec.sh +66 -0
  79. package/scripts/init.sh +45 -0
  80. package/scripts/new.sh +60 -0
  81. package/scripts/setup_workspace.sh +124 -0
  82. package/src/bin/index.ts +7 -1
  83. package/src/cli/admin_api_key_store.ts +128 -0
  84. package/src/cli/aztec_start_action.ts +53 -4
  85. package/src/cli/aztec_start_options.ts +28 -6
  86. package/src/cli/cli.ts +11 -56
  87. package/src/cli/cmds/compile.ts +184 -0
  88. package/src/cli/cmds/migrate_ha_db.ts +43 -0
  89. package/src/cli/cmds/profile.ts +25 -0
  90. package/src/cli/cmds/profile_flamegraph.ts +63 -0
  91. package/src/cli/cmds/profile_gates.ts +67 -0
  92. package/src/cli/cmds/profile_utils.ts +58 -0
  93. package/src/cli/cmds/start_archiver.ts +2 -13
  94. package/src/cli/cmds/start_bot.ts +8 -5
  95. package/src/cli/cmds/start_node.ts +51 -9
  96. package/src/cli/cmds/start_p2p_bootstrap.ts +2 -2
  97. package/src/cli/cmds/start_prover_agent.ts +3 -11
  98. package/src/cli/cmds/start_prover_broker.ts +5 -1
  99. package/src/cli/cmds/utils/artifacts.ts +44 -0
  100. package/src/cli/cmds/utils/spawn.ts +16 -0
  101. package/src/cli/util.ts +17 -22
  102. package/src/examples/token.ts +5 -7
  103. package/src/local-network/banana_fpc.ts +10 -6
  104. package/src/local-network/local-network.ts +72 -27
  105. package/src/testing/anvil_test_watcher.ts +59 -15
  106. package/src/testing/epoch_test_settler.ts +71 -0
  107. package/src/testing/index.ts +1 -0
  108. package/dest/cli/cmds/start_prover_node.d.ts +0 -7
  109. package/dest/cli/cmds/start_prover_node.d.ts.map +0 -1
  110. package/dest/cli/cmds/start_prover_node.js +0 -108
  111. package/src/cli/cmds/start_prover_node.ts +0 -124
@@ -9,7 +9,9 @@ import type { AztecNode } from '@aztec/stdlib/interfaces/client';
9
9
  * codes, please consider whether it makes sense to just introduce new utils in your tests instead.
10
10
  */
11
11
  export declare class CheatCodes {
12
+ /** Cheat codes for L1.*/
12
13
  eth: EthCheatCodes;
14
+ /** Cheat codes for the Aztec Rollup contract on L1. */
13
15
  rollup: RollupCheatCodes;
14
16
  constructor(
15
17
  /** Cheat codes for L1.*/
@@ -38,4 +40,4 @@ export declare class CheatCodes {
38
40
  */
39
41
  warpL2TimeAtLeastBy(sequencerClient: SequencerClient, node: AztecNode, duration: bigint | number): Promise<void>;
40
42
  }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlYXRfY29kZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0aW5nL2NoZWF0X2NvZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd2RSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVqRTs7Ozs7R0FLRztBQUNILHFCQUFhLFVBQVU7SUFHWixHQUFHLEVBQUUsYUFBYTtJQUVsQixNQUFNLEVBQUUsZ0JBQWdCO0lBSmpDO0lBQ0UseUJBQXlCO0lBQ2xCLEdBQUcsRUFBRSxhQUFhO0lBQ3pCLHVEQUF1RDtJQUNoRCxNQUFNLEVBQUUsZ0JBQWdCLEVBQzdCO0lBRUosT0FBYSxNQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBT3ZHO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDRyxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sR0FBRyxNQUFNLGlCQXVCNUc7SUFFRDs7Ozs7Ozs7T0FRRztJQUNHLG1CQUFtQixDQUFDLGVBQWUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxHQUFHLE1BQU0saUJBSXJHO0NBQ0YifQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlYXRfY29kZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0aW5nL2NoZWF0X2NvZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUd2RSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVqRTs7Ozs7R0FLRztBQUNILHFCQUFhLFVBQVU7SUFFbkIseUJBQXlCO0lBQ2xCLEdBQUcsRUFBRSxhQUFhO0lBQ3pCLHVEQUF1RDtJQUNoRCxNQUFNLEVBQUUsZ0JBQWdCO0lBSmpDO0lBQ0UseUJBQXlCO0lBQ2xCLEdBQUcsRUFBRSxhQUFhO0lBQ3pCLHVEQUF1RDtJQUNoRCxNQUFNLEVBQUUsZ0JBQWdCLEVBQzdCO0lBRUosT0FBYSxNQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBT3ZHO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDRyxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sR0FBRyxNQUFNLGlCQXVCNUc7SUFFRDs7Ozs7Ozs7T0FRRztJQUNHLG1CQUFtQixDQUFDLGVBQWUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxHQUFHLE1BQU0saUJBSXJHO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"cheat_codes.d.ts","sourceRoot":"","sources":["../../src/testing/cheat_codes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE;;;;;GAKG;AACH,qBAAa,UAAU;IAGZ,GAAG,EAAE,aAAa;IAElB,MAAM,EAAE,gBAAgB;IAJjC;IACE,yBAAyB;IAClB,GAAG,EAAE,aAAa;IACzB,uDAAuD;IAChD,MAAM,EAAE,gBAAgB,EAC7B;IAEJ,OAAa,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAOvG;IAED;;;;;;;;OAQG;IACG,mBAAmB,CAAC,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,iBAuB5G;IAED;;;;;;;;OAQG;IACG,mBAAmB,CAAC,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,iBAIrG;CACF"}
1
+ {"version":3,"file":"cheat_codes.d.ts","sourceRoot":"","sources":["../../src/testing/cheat_codes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE;;;;;GAKG;AACH,qBAAa,UAAU;IAEnB,yBAAyB;IAClB,GAAG,EAAE,aAAa;IACzB,uDAAuD;IAChD,MAAM,EAAE,gBAAgB;IAJjC;IACE,yBAAyB;IAClB,GAAG,EAAE,aAAa;IACzB,uDAAuD;IAChD,MAAM,EAAE,gBAAgB,EAC7B;IAEJ,OAAa,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAOvG;IAED;;;;;;;;OAQG;IACG,mBAAmB,CAAC,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,iBAuB5G;IAED;;;;;;;;OAQG;IACG,mBAAmB,CAAC,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,iBAIrG;CACF"}
@@ -0,0 +1,19 @@
1
+ import { type EthCheatCodes } from '@aztec/ethereum/test';
2
+ import { type EpochNumber } from '@aztec/foundation/branded-types';
3
+ import type { Logger } from '@aztec/foundation/log';
4
+ import type { EthAddress, L2BlockSource } from '@aztec/stdlib/block';
5
+ export declare class EpochTestSettler {
6
+ private l2BlockSource;
7
+ private log;
8
+ private options;
9
+ private rollupCheatCodes;
10
+ private epochMonitor?;
11
+ constructor(cheatcodes: EthCheatCodes, rollupAddress: EthAddress, l2BlockSource: L2BlockSource, log: Logger, options: {
12
+ pollingIntervalMs: number;
13
+ provingDelayMs?: number;
14
+ });
15
+ start(): Promise<void>;
16
+ stop(): Promise<void>;
17
+ handleEpochReadyToProve(epoch: EpochNumber): Promise<boolean>;
18
+ }
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXBvY2hfdGVzdF9zZXR0bGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdGluZy9lcG9jaF90ZXN0X3NldHRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssYUFBYSxFQUFvQixNQUFNLHNCQUFzQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBYyxNQUFNLGlDQUFpQyxDQUFDO0FBQy9FLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXBELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUdyRSxxQkFBYSxnQkFBZ0I7SUFPekIsT0FBTyxDQUFDLGFBQWE7SUFDckIsT0FBTyxDQUFDLEdBQUc7SUFDWCxPQUFPLENBQUMsT0FBTztJQVJqQixPQUFPLENBQUMsZ0JBQWdCLENBQW1CO0lBQzNDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBZTtJQUVwQyxZQUNFLFVBQVUsRUFBRSxhQUFhLEVBQ3pCLGFBQWEsRUFBRSxVQUFVLEVBQ2pCLGFBQWEsRUFBRSxhQUFhLEVBQzVCLEdBQUcsRUFBRSxNQUFNLEVBQ1gsT0FBTyxFQUFFO1FBQUUsaUJBQWlCLEVBQUUsTUFBTSxDQUFDO1FBQUMsY0FBYyxDQUFDLEVBQUUsTUFBTSxDQUFBO0tBQUUsRUFHeEU7SUFFSyxLQUFLLGtCQUlWO0lBRUssSUFBSSxrQkFFVDtJQUVLLHVCQUF1QixDQUFDLEtBQUssRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQXFDbEU7Q0FDRiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"epoch_test_settler.d.ts","sourceRoot":"","sources":["../../src/testing/epoch_test_settler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAoB,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,KAAK,WAAW,EAAc,MAAM,iCAAiC,CAAC;AAC/E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGrE,qBAAa,gBAAgB;IAOzB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,OAAO;IARjB,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,YAAY,CAAC,CAAe;IAEpC,YACE,UAAU,EAAE,aAAa,EACzB,aAAa,EAAE,UAAU,EACjB,aAAa,EAAE,aAAa,EAC5B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,EAGxE;IAEK,KAAK,kBAIV;IAEK,IAAI,kBAET;IAEK,uBAAuB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAqClE;CACF"}
@@ -0,0 +1,62 @@
1
+ import { RollupCheatCodes } from '@aztec/ethereum/test';
2
+ import { SlotNumber } from '@aztec/foundation/branded-types';
3
+ import { EpochMonitor } from '@aztec/prover-node';
4
+ import { computeL2ToL1MembershipWitnessFromMessagesInEpoch } from '@aztec/stdlib/messaging';
5
+ export class EpochTestSettler {
6
+ l2BlockSource;
7
+ log;
8
+ options;
9
+ rollupCheatCodes;
10
+ epochMonitor;
11
+ constructor(cheatcodes, rollupAddress, l2BlockSource, log, options){
12
+ this.l2BlockSource = l2BlockSource;
13
+ this.log = log;
14
+ this.options = options;
15
+ this.rollupCheatCodes = new RollupCheatCodes(cheatcodes, {
16
+ rollupAddress
17
+ });
18
+ }
19
+ async start() {
20
+ const { epochDuration } = await this.rollupCheatCodes.getConfig();
21
+ this.epochMonitor = new EpochMonitor(this.l2BlockSource, {
22
+ epochDuration: Number(epochDuration)
23
+ }, this.options);
24
+ this.epochMonitor.start(this);
25
+ }
26
+ async stop() {
27
+ await this.epochMonitor?.stop();
28
+ }
29
+ async handleEpochReadyToProve(epoch) {
30
+ const checkpointedBlocks = await this.l2BlockSource.getCheckpointedBlocksForEpoch(epoch);
31
+ const blocks = checkpointedBlocks.map((b)=>b.block);
32
+ this.log.info(`Settling epoch ${epoch} with blocks ${blocks[0]?.header.getBlockNumber()} to ${blocks.at(-1)?.header.getBlockNumber()}`, {
33
+ blocks: blocks.map((b)=>b.toBlockInfo())
34
+ });
35
+ const messagesInEpoch = [];
36
+ let previousSlotNumber = SlotNumber.ZERO;
37
+ let checkpointIndex = -1;
38
+ for (const block of blocks){
39
+ const slotNumber = block.header.globalVariables.slotNumber;
40
+ if (slotNumber !== previousSlotNumber) {
41
+ checkpointIndex++;
42
+ messagesInEpoch[checkpointIndex] = [];
43
+ previousSlotNumber = slotNumber;
44
+ }
45
+ messagesInEpoch[checkpointIndex].push(block.body.txEffects.map((txEffect)=>txEffect.l2ToL1Msgs));
46
+ }
47
+ const [firstMessage] = messagesInEpoch.flat(3);
48
+ if (firstMessage) {
49
+ const { root: outHash } = computeL2ToL1MembershipWitnessFromMessagesInEpoch(messagesInEpoch, firstMessage);
50
+ await this.rollupCheatCodes.insertOutbox(epoch, outHash.toBigInt());
51
+ } else {
52
+ this.log.info(`No L2 to L1 messages in epoch ${epoch}`);
53
+ }
54
+ const lastCheckpoint = checkpointedBlocks.at(-1)?.checkpointNumber;
55
+ if (lastCheckpoint !== undefined) {
56
+ await this.rollupCheatCodes.markAsProven(lastCheckpoint);
57
+ } else {
58
+ this.log.warn(`No checkpoint found for epoch ${epoch}`);
59
+ }
60
+ return true;
61
+ }
62
+ }
@@ -1,4 +1,5 @@
1
1
  export { AnvilTestWatcher } from './anvil_test_watcher.js';
2
2
  export { EthCheatCodes, RollupCheatCodes } from '@aztec/ethereum/test';
3
3
  export { CheatCodes } from './cheat_codes.js';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0aW5nL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUMifQ==
4
+ export { EpochTestSettler } from './epoch_test_settler.js';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0aW5nL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export { AnvilTestWatcher } from './anvil_test_watcher.js';
2
2
  export { EthCheatCodes, RollupCheatCodes } from '@aztec/ethereum/test';
3
3
  export { CheatCodes } from './cheat_codes.js';
4
+ export { EpochTestSettler } from './epoch_test_settler.js';
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@aztec/aztec",
3
- "version": "0.0.1-commit.c7c42ec",
3
+ "version": "0.0.1-commit.c949de6bc",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
7
7
  "./testing": "./dest/testing/index.js"
8
8
  },
9
- "bin": "./dest/bin/index.js",
9
+ "bin": "./scripts/aztec.sh",
10
10
  "typedocOptions": {
11
11
  "entryPoints": [
12
12
  "./src/index.ts"
@@ -28,38 +28,39 @@
28
28
  "../package.common.json"
29
29
  ],
30
30
  "dependencies": {
31
- "@aztec/accounts": "0.0.1-commit.c7c42ec",
32
- "@aztec/archiver": "0.0.1-commit.c7c42ec",
33
- "@aztec/aztec-faucet": "0.0.1-commit.c7c42ec",
34
- "@aztec/aztec-node": "0.0.1-commit.c7c42ec",
35
- "@aztec/aztec.js": "0.0.1-commit.c7c42ec",
36
- "@aztec/bb-prover": "0.0.1-commit.c7c42ec",
37
- "@aztec/bb.js": "0.0.1-commit.c7c42ec",
38
- "@aztec/blob-client": "0.0.1-commit.c7c42ec",
39
- "@aztec/bot": "0.0.1-commit.c7c42ec",
40
- "@aztec/builder": "0.0.1-commit.c7c42ec",
41
- "@aztec/cli": "0.0.1-commit.c7c42ec",
42
- "@aztec/constants": "0.0.1-commit.c7c42ec",
43
- "@aztec/entrypoints": "0.0.1-commit.c7c42ec",
44
- "@aztec/ethereum": "0.0.1-commit.c7c42ec",
45
- "@aztec/foundation": "0.0.1-commit.c7c42ec",
46
- "@aztec/kv-store": "0.0.1-commit.c7c42ec",
47
- "@aztec/l1-artifacts": "0.0.1-commit.c7c42ec",
48
- "@aztec/node-lib": "0.0.1-commit.c7c42ec",
49
- "@aztec/noir-contracts.js": "0.0.1-commit.c7c42ec",
50
- "@aztec/noir-protocol-circuits-types": "0.0.1-commit.c7c42ec",
51
- "@aztec/p2p": "0.0.1-commit.c7c42ec",
52
- "@aztec/p2p-bootstrap": "0.0.1-commit.c7c42ec",
53
- "@aztec/protocol-contracts": "0.0.1-commit.c7c42ec",
54
- "@aztec/prover-client": "0.0.1-commit.c7c42ec",
55
- "@aztec/prover-node": "0.0.1-commit.c7c42ec",
56
- "@aztec/pxe": "0.0.1-commit.c7c42ec",
57
- "@aztec/sequencer-client": "0.0.1-commit.c7c42ec",
58
- "@aztec/stdlib": "0.0.1-commit.c7c42ec",
59
- "@aztec/telemetry-client": "0.0.1-commit.c7c42ec",
60
- "@aztec/test-wallet": "0.0.1-commit.c7c42ec",
61
- "@aztec/txe": "0.0.1-commit.c7c42ec",
62
- "@aztec/world-state": "0.0.1-commit.c7c42ec",
31
+ "@aztec/accounts": "0.0.1-commit.c949de6bc",
32
+ "@aztec/archiver": "0.0.1-commit.c949de6bc",
33
+ "@aztec/aztec-faucet": "0.0.1-commit.c949de6bc",
34
+ "@aztec/aztec-node": "0.0.1-commit.c949de6bc",
35
+ "@aztec/aztec.js": "0.0.1-commit.c949de6bc",
36
+ "@aztec/bb-prover": "0.0.1-commit.c949de6bc",
37
+ "@aztec/bb.js": "0.0.1-commit.c949de6bc",
38
+ "@aztec/blob-client": "0.0.1-commit.c949de6bc",
39
+ "@aztec/bot": "0.0.1-commit.c949de6bc",
40
+ "@aztec/builder": "0.0.1-commit.c949de6bc",
41
+ "@aztec/cli": "0.0.1-commit.c949de6bc",
42
+ "@aztec/constants": "0.0.1-commit.c949de6bc",
43
+ "@aztec/entrypoints": "0.0.1-commit.c949de6bc",
44
+ "@aztec/ethereum": "0.0.1-commit.c949de6bc",
45
+ "@aztec/foundation": "0.0.1-commit.c949de6bc",
46
+ "@aztec/kv-store": "0.0.1-commit.c949de6bc",
47
+ "@aztec/l1-artifacts": "0.0.1-commit.c949de6bc",
48
+ "@aztec/node-lib": "0.0.1-commit.c949de6bc",
49
+ "@aztec/noir-contracts.js": "0.0.1-commit.c949de6bc",
50
+ "@aztec/noir-protocol-circuits-types": "0.0.1-commit.c949de6bc",
51
+ "@aztec/p2p": "0.0.1-commit.c949de6bc",
52
+ "@aztec/p2p-bootstrap": "0.0.1-commit.c949de6bc",
53
+ "@aztec/protocol-contracts": "0.0.1-commit.c949de6bc",
54
+ "@aztec/prover-client": "0.0.1-commit.c949de6bc",
55
+ "@aztec/prover-node": "0.0.1-commit.c949de6bc",
56
+ "@aztec/pxe": "0.0.1-commit.c949de6bc",
57
+ "@aztec/sequencer-client": "0.0.1-commit.c949de6bc",
58
+ "@aztec/stdlib": "0.0.1-commit.c949de6bc",
59
+ "@aztec/telemetry-client": "0.0.1-commit.c949de6bc",
60
+ "@aztec/txe": "0.0.1-commit.c949de6bc",
61
+ "@aztec/validator-ha-signer": "0.0.1-commit.c949de6bc",
62
+ "@aztec/wallets": "0.0.1-commit.c949de6bc",
63
+ "@aztec/world-state": "0.0.1-commit.c949de6bc",
63
64
  "@types/chalk": "^2.2.0",
64
65
  "abitype": "^0.8.11",
65
66
  "chalk": "^5.3.0",
@@ -70,6 +71,7 @@
70
71
  },
71
72
  "files": [
72
73
  "dest",
74
+ "scripts",
73
75
  "src",
74
76
  "!*.test.*"
75
77
  ],
@@ -78,7 +80,7 @@
78
80
  "@jest/globals": "^30.0.0",
79
81
  "@types/jest": "^30.0.0",
80
82
  "@types/koa": "^2.15.0",
81
- "@typescript/native-preview": "7.0.0-dev.20251126.1",
83
+ "@typescript/native-preview": "7.0.0-dev.20260113.1",
82
84
  "jest": "^30.0.0",
83
85
  "ts-node": "^10.9.1",
84
86
  "typescript": "^5.3.3"
@@ -0,0 +1,66 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ # Re-execute using correct version if we have an .aztecrc file.
5
+ if [ "${AZTEC_VERSIONED:-0}" -eq 0 ] && [ -f .aztecrc ] && command -v aztec-up &>/dev/null; then
6
+ env_setup=$(aztec-up env)
7
+ eval "$env_setup"
8
+ AZTEC_VERSIONED=1 exec aztec "$@"
9
+ fi
10
+
11
+ cmd=${1:-}
12
+ [ -n "$cmd" ] && shift
13
+
14
+ script_dir="$(dirname "$(realpath "$0")")"
15
+
16
+ function aztec {
17
+ export AZTEC_SHELL_WRAPPER=1
18
+ exec node --no-warnings $script_dir/../dest/bin/index.js "$@"
19
+ }
20
+
21
+ case $cmd in
22
+ test)
23
+ export LOG_LEVEL="${LOG_LEVEL:-"error;trace:contract_log"}"
24
+ aztec start --txe --port 8081 &
25
+ server_pid=$!
26
+ trap 'kill $server_pid &>/dev/null || true' EXIT
27
+ while ! nc -z 127.0.0.1 8081 &>/dev/null; do sleep 0.2; done
28
+ export NARGO_FOREIGN_CALL_TIMEOUT=300000
29
+ nargo test --silence-warnings --oracle-resolver http://127.0.0.1:8081 --test-threads 16 "$@"
30
+ ;;
31
+ start)
32
+ if [ "${1:-}" == "--local-network" ]; then
33
+ # TODO: Can these just be set in TS?
34
+ export ARCHIVER_POLLING_INTERVAL_MS=500
35
+ export P2P_BLOCK_CHECK_INTERVAL_MS=500
36
+ export SEQ_TX_POLLING_INTERVAL_MS=500
37
+ export WS_BLOCK_CHECK_INTERVAL_MS=500
38
+ export ARCHIVER_VIEM_POLLING_INTERVAL_MS=500
39
+ export TEST_ACCOUNTS=${TEST_ACCOUNTS:-true}
40
+ export LOG_LEVEL=${LOG_LEVEL:-info;silent:sequencer;verbose:debug_log}
41
+ export DEPLOY_AZTEC_CONTRACTS_SALT=${DEPLOY_AZTEC_CONTRACTS_SALT:-$RANDOM}
42
+
43
+ ANVIL_PORT=${ANVIL_PORT:-8545}
44
+
45
+ export L1_CHAIN_ID=${L1_CHAIN_ID:-31337}
46
+ export ETHEREUM_HOSTS=${ETHEREUM_HOSTS:-"http://127.0.0.1:${ANVIL_PORT}"}
47
+
48
+ anvil --version
49
+ anvil --silent --port "$ANVIL_PORT" &
50
+ anvil_pid=$!
51
+ trap 'kill $anvil_pid &>/dev/null' EXIT
52
+ fi
53
+
54
+ aztec start "$@"
55
+ ;;
56
+ new|init)
57
+ $script_dir/${cmd}.sh "$@"
58
+ ;;
59
+ flamegraph)
60
+ echo "Warning: 'aztec flamegraph' is deprecated. Use 'aztec profile flamegraph' instead." >&2
61
+ aztec profile flamegraph "$@"
62
+ ;;
63
+ *)
64
+ aztec $cmd "$@"
65
+ ;;
66
+ esac
@@ -0,0 +1,45 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ script_path=$(realpath $(dirname "$0"))
5
+
6
+ name_arg=""
7
+
8
+ # Check for help first
9
+ for arg in "$@"; do
10
+ if [ "$arg" == "--help" ] || [ "$arg" == "-h" ]; then
11
+ cat << 'EOF'
12
+ Aztec Init - Create a new Aztec Noir project in the current directory
13
+
14
+ Usage: aztec init [OPTIONS]
15
+
16
+ Options:
17
+ --name <NAME> Name of the package [default: current directory name]
18
+ -h, --help Print help
19
+
20
+ This command creates a new Aztec Noir project in the current directory with
21
+ a workspace containing a contract crate and a test crate, and automatically
22
+ adds the Aztec.nr dependency to both.
23
+ EOF
24
+ exit 0
25
+ fi
26
+ done
27
+
28
+ # Parse arguments
29
+ while [[ $# -gt 0 ]]; do
30
+ case $1 in
31
+ --name)
32
+ name_arg="$2"
33
+ shift 2
34
+ ;;
35
+ *)
36
+ shift
37
+ ;;
38
+ esac
39
+ done
40
+
41
+ # Derive package name: use --name if provided, otherwise use current directory name
42
+ package_name="${name_arg:-$(basename $(pwd))}"
43
+
44
+ echo "Initializing Aztec contract project..."
45
+ $script_path/setup_workspace.sh "$package_name"
package/scripts/new.sh ADDED
@@ -0,0 +1,60 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ script_path=$(realpath $(dirname "$0"))
5
+
6
+ name_arg=""
7
+ project_path=""
8
+
9
+ while [[ $# -gt 0 ]]; do
10
+ case $1 in
11
+ --help|-h)
12
+ cat << 'EOF'
13
+ Aztec New - Create a new Aztec Noir project in a new directory
14
+
15
+ Usage: aztec new [OPTIONS] <PATH>
16
+
17
+ Arguments:
18
+ <PATH> The path to save the new project
19
+
20
+ Options:
21
+ --name <NAME> Name of the package [default: package directory name]
22
+ -h, --help Print help
23
+
24
+ This command creates a new Aztec Noir project with a workspace containing
25
+ a contract crate and a test crate, and automatically adds the Aztec.nr
26
+ dependency to both.
27
+ EOF
28
+ exit 0
29
+ ;;
30
+ --name)
31
+ name_arg="$2"
32
+ shift 2
33
+ ;;
34
+ *)
35
+ project_path=$1
36
+ shift
37
+ break
38
+ ;;
39
+ esac
40
+ done
41
+
42
+ if [ -z "$project_path" ]; then
43
+ echo "Error: PATH argument is required"
44
+ echo "Usage: aztec new [OPTIONS] <PATH>"
45
+ echo "Run 'aztec new --help' for more information"
46
+ exit 1
47
+ fi
48
+
49
+ if [ -d "$project_path" ] && [ "$(ls -A $project_path 2>/dev/null)" ]; then
50
+ echo "Error: $project_path already exists and is not empty"
51
+ exit 1
52
+ fi
53
+
54
+ # Derive package name: use --name if provided, otherwise use directory basename
55
+ package_name="${name_arg:-$(basename $project_path)}"
56
+
57
+ echo "Creating new Aztec contract project at $project_path..."
58
+ mkdir -p "$project_path"
59
+ cd "$project_path"
60
+ $script_path/setup_workspace.sh "$package_name"
@@ -0,0 +1,124 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ # Creates an Aztec contract workspace with a contract crate and a test crate.
5
+ # Usage: setup_workspace.sh <package_name>
6
+ # Must be called from the workspace root directory.
7
+
8
+ package_name=$1
9
+
10
+ if [ -z "$package_name" ]; then
11
+ echo "Error: package name is required"
12
+ exit 1
13
+ fi
14
+
15
+ if [ -f "Nargo.toml" ]; then
16
+ echo "Error: Nargo.toml already exists in the current directory"
17
+ exit 1
18
+ fi
19
+
20
+ # Get the actual aztec version for the git tag.
21
+ AZTEC_VERSION=$(jq -r '.version' $(dirname $0)/../package.json)
22
+
23
+ # Create workspace root Nargo.toml
24
+ cat > Nargo.toml << 'EOF'
25
+ [workspace]
26
+ members = ["contract", "test"]
27
+ EOF
28
+
29
+ # Create contract crate
30
+ mkdir -p contract/src
31
+ cat > contract/Nargo.toml << CEOF
32
+ [package]
33
+ name = "${package_name}"
34
+ type = "contract"
35
+
36
+ [dependencies]
37
+ aztec = { git="https://github.com/AztecProtocol/aztec-nr", tag="v${AZTEC_VERSION}", directory="aztec" }
38
+ CEOF
39
+
40
+ cat > contract/src/main.nr << 'EOF'
41
+ use aztec::macros::aztec;
42
+
43
+ #[aztec]
44
+ pub contract Main {
45
+ use aztec::macros::functions::{external, initializer};
46
+
47
+ #[initializer]
48
+ #[external("private")]
49
+ fn constructor() {}
50
+ }
51
+ EOF
52
+
53
+ # Create test crate
54
+ mkdir -p test/src
55
+ cat > test/Nargo.toml << TEOF
56
+ [package]
57
+ name = "${package_name}_test"
58
+ type = "lib"
59
+
60
+ [dependencies]
61
+ aztec = { git="https://github.com/AztecProtocol/aztec-nr", tag="v${AZTEC_VERSION}", directory="aztec" }
62
+ ${package_name} = { path = "../contract" }
63
+ TEOF
64
+
65
+ cat > test/src/lib.nr << 'NOIR'
66
+ use aztec::test::helpers::test_environment::TestEnvironment;
67
+ use __PACKAGE_NAME__::Main;
68
+
69
+ #[test]
70
+ unconstrained fn test_constructor() {
71
+ let mut env = TestEnvironment::new();
72
+ let deployer = env.create_light_account();
73
+
74
+ // Deploy the contract with the default constructor:
75
+ let contract_address = env.deploy("@__PACKAGE_NAME__/Main").with_private_initializer(
76
+ deployer,
77
+ Main::interface().constructor(),
78
+ );
79
+
80
+ // Deploy without an initializer:
81
+ let contract_address = env.deploy("@__PACKAGE_NAME__/Main").without_initializer();
82
+ }
83
+ NOIR
84
+
85
+ sed -i "s/__PACKAGE_NAME__/${package_name}/g" test/src/lib.nr
86
+
87
+ # Create README
88
+ cat > README.md << REOF
89
+ # ${package_name}
90
+
91
+ An Aztec Noir contract project.
92
+
93
+ ## Compile
94
+
95
+ \`\`\`bash
96
+ aztec compile
97
+ \`\`\`
98
+
99
+ This compiles the contract in \`contract/\` and outputs artifacts to \`target/\`.
100
+
101
+ ## Test
102
+
103
+ \`\`\`bash
104
+ aztec test
105
+ \`\`\`
106
+
107
+ This runs the tests in \`test/\`.
108
+
109
+ ## Generate TypeScript bindings
110
+
111
+ \`\`\`bash
112
+ aztec codegen target -o src/artifacts
113
+ \`\`\`
114
+
115
+ This generates TypeScript contract artifacts from the compiled output in \`target/\` into \`src/artifacts/\`.
116
+ REOF
117
+
118
+ # Create .gitignore
119
+ cat > .gitignore << 'GEOF'
120
+ target/
121
+ codegenCache.json
122
+ GEOF
123
+
124
+ echo "Created Aztec contract workspace with crates '${package_name}' and '${package_name}_test'"
package/src/bin/index.ts CHANGED
@@ -14,6 +14,9 @@ import { createConsoleLogger, createLogger } from '@aztec/foundation/log';
14
14
 
15
15
  import { Command } from 'commander';
16
16
 
17
+ import { injectCompileCommand } from '../cli/cmds/compile.js';
18
+ import { injectMigrateCommand } from '../cli/cmds/migrate_ha_db.js';
19
+ import { injectProfileCommand } from '../cli/cmds/profile.js';
17
20
  import { injectAztecCommands } from '../cli/index.js';
18
21
  import { getCliVersion } from '../cli/release_version.js';
19
22
 
@@ -46,7 +49,7 @@ async function main() {
46
49
 
47
50
  const cliVersion = getCliVersion();
48
51
  let program = new Command('aztec');
49
- program.description('Aztec command line interface').version(cliVersion);
52
+ program.description('Aztec command line interface').version(cliVersion).enablePositionalOptions();
50
53
  program = injectAztecCommands(program, userLog, debugLogger);
51
54
  program = injectBuilderCommands(program);
52
55
  program = injectContractCommands(program, userLog, debugLogger);
@@ -55,6 +58,9 @@ async function main() {
55
58
  program = injectAztecNodeCommands(program, userLog, debugLogger);
56
59
  program = injectMiscCommands(program, userLog);
57
60
  program = injectValidatorKeysCommands(program, userLog);
61
+ program = injectCompileCommand(program, userLog);
62
+ program = injectProfileCommand(program, userLog);
63
+ program = injectMigrateCommand(program, userLog);
58
64
 
59
65
  await program.parseAsync(process.argv);
60
66
  }