@aztec-labs/cli 6.0.0-nightly.20260829

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 (227) hide show
  1. package/README.md +23 -0
  2. package/dest/cmds/aztec_node/block_number.d.ts +3 -0
  3. package/dest/cmds/aztec_node/block_number.d.ts.map +1 -0
  4. package/dest/cmds/aztec_node/block_number.js +10 -0
  5. package/dest/cmds/aztec_node/get_block.d.ts +3 -0
  6. package/dest/cmds/aztec_node/get_block.d.ts.map +1 -0
  7. package/dest/cmds/aztec_node/get_block.js +10 -0
  8. package/dest/cmds/aztec_node/get_current_min_fee.d.ts +3 -0
  9. package/dest/cmds/aztec_node/get_current_min_fee.d.ts.map +1 -0
  10. package/dest/cmds/aztec_node/get_current_min_fee.js +7 -0
  11. package/dest/cmds/aztec_node/get_l1_to_l2_message_witness.d.ts +5 -0
  12. package/dest/cmds/aztec_node/get_l1_to_l2_message_witness.d.ts.map +1 -0
  13. package/dest/cmds/aztec_node/get_l1_to_l2_message_witness.js +12 -0
  14. package/dest/cmds/aztec_node/get_logs.d.ts +33 -0
  15. package/dest/cmds/aztec_node/get_logs.d.ts.map +1 -0
  16. package/dest/cmds/aztec_node/get_logs.js +61 -0
  17. package/dest/cmds/aztec_node/get_node_info.d.ts +3 -0
  18. package/dest/cmds/aztec_node/get_node_info.d.ts.map +1 -0
  19. package/dest/cmds/aztec_node/get_node_info.js +58 -0
  20. package/dest/cmds/aztec_node/index.d.ts +4 -0
  21. package/dest/cmds/aztec_node/index.d.ts.map +1 -0
  22. package/dest/cmds/aztec_node/index.js +38 -0
  23. package/dest/cmds/infrastructure/index.d.ts +4 -0
  24. package/dest/cmds/infrastructure/index.d.ts.map +1 -0
  25. package/dest/cmds/infrastructure/index.js +22 -0
  26. package/dest/cmds/infrastructure/sequencers.d.ts +12 -0
  27. package/dest/cmds/infrastructure/sequencers.d.ts.map +1 -0
  28. package/dest/cmds/infrastructure/sequencers.js +113 -0
  29. package/dest/cmds/infrastructure/setup_l2_contract.d.ts +3 -0
  30. package/dest/cmds/infrastructure/setup_l2_contract.d.ts.map +1 -0
  31. package/dest/cmds/infrastructure/setup_l2_contract.js +35 -0
  32. package/dest/cmds/l1/advance_epoch.d.ts +3 -0
  33. package/dest/cmds/l1/advance_epoch.d.ts.map +1 -0
  34. package/dest/cmds/l1/advance_epoch.js +12 -0
  35. package/dest/cmds/l1/assume_proven_through.d.ts +4 -0
  36. package/dest/cmds/l1/assume_proven_through.d.ts.map +1 -0
  37. package/dest/cmds/l1/assume_proven_through.js +12 -0
  38. package/dest/cmds/l1/compute_genesis_values.d.ts +4 -0
  39. package/dest/cmds/l1/compute_genesis_values.d.ts.map +1 -0
  40. package/dest/cmds/l1/compute_genesis_values.js +17 -0
  41. package/dest/cmds/l1/create_l1_account.d.ts +3 -0
  42. package/dest/cmds/l1/create_l1_account.d.ts.map +1 -0
  43. package/dest/cmds/l1/create_l1_account.js +15 -0
  44. package/dest/cmds/l1/deploy_l1_contracts_cmd.d.ts +4 -0
  45. package/dest/cmds/l1/deploy_l1_contracts_cmd.d.ts.map +1 -0
  46. package/dest/cmds/l1/deploy_l1_contracts_cmd.js +80 -0
  47. package/dest/cmds/l1/deploy_new_rollup.d.ts +5 -0
  48. package/dest/cmds/l1/deploy_new_rollup.d.ts.map +1 -0
  49. package/dest/cmds/l1/deploy_new_rollup.js +26 -0
  50. package/dest/cmds/l1/get_l1_addresses.d.ts +4 -0
  51. package/dest/cmds/l1/get_l1_addresses.d.ts.map +1 -0
  52. package/dest/cmds/l1/get_l1_addresses.js +21 -0
  53. package/dest/cmds/l1/get_l1_balance.d.ts +4 -0
  54. package/dest/cmds/l1/get_l1_balance.d.ts.map +1 -0
  55. package/dest/cmds/l1/get_l1_balance.js +35 -0
  56. package/dest/cmds/l1/governance_utils.d.ts +50 -0
  57. package/dest/cmds/l1/governance_utils.d.ts.map +1 -0
  58. package/dest/cmds/l1/governance_utils.js +87 -0
  59. package/dest/cmds/l1/index.d.ts +4 -0
  60. package/dest/cmds/l1/index.d.ts.map +1 -0
  61. package/dest/cmds/l1/index.js +201 -0
  62. package/dest/cmds/l1/prover_stats.d.ts +14 -0
  63. package/dest/cmds/l1/prover_stats.d.ts.map +1 -0
  64. package/dest/cmds/l1/prover_stats.js +147 -0
  65. package/dest/cmds/l1/trigger_seed_snapshot.d.ts +6 -0
  66. package/dest/cmds/l1/trigger_seed_snapshot.d.ts.map +1 -0
  67. package/dest/cmds/l1/trigger_seed_snapshot.js +20 -0
  68. package/dest/cmds/l1/update_l1_validators.d.ts +45 -0
  69. package/dest/cmds/l1/update_l1_validators.d.ts.map +1 -0
  70. package/dest/cmds/l1/update_l1_validators.js +280 -0
  71. package/dest/cmds/misc/generate_bootnode_enr.d.ts +3 -0
  72. package/dest/cmds/misc/generate_bootnode_enr.d.ts.map +1 -0
  73. package/dest/cmds/misc/generate_bootnode_enr.js +5 -0
  74. package/dest/cmds/misc/generate_p2p_private_key.d.ts +3 -0
  75. package/dest/cmds/misc/generate_p2p_private_key.d.ts.map +1 -0
  76. package/dest/cmds/misc/generate_p2p_private_key.js +7 -0
  77. package/dest/cmds/misc/generate_secret_key.d.ts +5 -0
  78. package/dest/cmds/misc/generate_secret_key.d.ts.map +1 -0
  79. package/dest/cmds/misc/generate_secret_key.js +6 -0
  80. package/dest/cmds/misc/index.d.ts +4 -0
  81. package/dest/cmds/misc/index.d.ts.map +1 -0
  82. package/dest/cmds/misc/index.js +32 -0
  83. package/dest/cmds/misc/update/common.d.ts +17 -0
  84. package/dest/cmds/misc/update/common.d.ts.map +1 -0
  85. package/dest/cmds/misc/update/common.js +3 -0
  86. package/dest/cmds/misc/update/github.d.ts +3 -0
  87. package/dest/cmds/misc/update/github.d.ts.map +1 -0
  88. package/dest/cmds/misc/update/github.js +2 -0
  89. package/dest/cmds/misc/update/noir.d.ts +10 -0
  90. package/dest/cmds/misc/update/noir.d.ts.map +1 -0
  91. package/dest/cmds/misc/update/noir.js +45 -0
  92. package/dest/cmds/misc/update/npm.d.ts +34 -0
  93. package/dest/cmds/misc/update/npm.d.ts.map +1 -0
  94. package/dest/cmds/misc/update/npm.js +123 -0
  95. package/dest/cmds/misc/update/utils.d.ts +14 -0
  96. package/dest/cmds/misc/update/utils.d.ts.map +1 -0
  97. package/dest/cmds/misc/update/utils.js +38 -0
  98. package/dest/cmds/misc/update.d.ts +3 -0
  99. package/dest/cmds/misc/update.d.ts.map +1 -0
  100. package/dest/cmds/misc/update.js +51 -0
  101. package/dest/cmds/validator_keys/add.d.ts +5 -0
  102. package/dest/cmds/validator_keys/add.d.ts.map +1 -0
  103. package/dest/cmds/validator_keys/add.js +83 -0
  104. package/dest/cmds/validator_keys/eth_json_v3_worker.d.ts +2 -0
  105. package/dest/cmds/validator_keys/eth_json_v3_worker.d.ts.map +1 -0
  106. package/dest/cmds/validator_keys/eth_json_v3_worker.js +27 -0
  107. package/dest/cmds/validator_keys/generate_bls_keypair.d.ts +12 -0
  108. package/dest/cmds/validator_keys/generate_bls_keypair.d.ts.map +1 -0
  109. package/dest/cmds/validator_keys/generate_bls_keypair.js +27 -0
  110. package/dest/cmds/validator_keys/index.d.ts +4 -0
  111. package/dest/cmds/validator_keys/index.d.ts.map +1 -0
  112. package/dest/cmds/validator_keys/index.js +33 -0
  113. package/dest/cmds/validator_keys/new.d.ts +35 -0
  114. package/dest/cmds/validator_keys/new.d.ts.map +1 -0
  115. package/dest/cmds/validator_keys/new.js +220 -0
  116. package/dest/cmds/validator_keys/set_funding_account.d.ts +14 -0
  117. package/dest/cmds/validator_keys/set_funding_account.d.ts.map +1 -0
  118. package/dest/cmds/validator_keys/set_funding_account.js +37 -0
  119. package/dest/cmds/validator_keys/shared.d.ts +81 -0
  120. package/dest/cmds/validator_keys/shared.d.ts.map +1 -0
  121. package/dest/cmds/validator_keys/shared.js +352 -0
  122. package/dest/cmds/validator_keys/staker.d.ts +38 -0
  123. package/dest/cmds/validator_keys/staker.d.ts.map +1 -0
  124. package/dest/cmds/validator_keys/staker.js +210 -0
  125. package/dest/cmds/validator_keys/utils.d.ts +35 -0
  126. package/dest/cmds/validator_keys/utils.d.ts.map +1 -0
  127. package/dest/cmds/validator_keys/utils.js +86 -0
  128. package/dest/config/cached_fetch.d.ts +27 -0
  129. package/dest/config/cached_fetch.d.ts.map +1 -0
  130. package/dest/config/cached_fetch.js +132 -0
  131. package/dest/config/chain_l2_config.d.ts +19 -0
  132. package/dest/config/chain_l2_config.d.ts.map +1 -0
  133. package/dest/config/chain_l2_config.js +60 -0
  134. package/dest/config/enrich_env.d.ts +4 -0
  135. package/dest/config/enrich_env.d.ts.map +1 -0
  136. package/dest/config/enrich_env.js +12 -0
  137. package/dest/config/generated/networks.d.ts +236 -0
  138. package/dest/config/generated/networks.d.ts.map +1 -0
  139. package/dest/config/generated/networks.js +237 -0
  140. package/dest/config/get_l1_config.d.ts +9 -0
  141. package/dest/config/get_l1_config.d.ts.map +1 -0
  142. package/dest/config/get_l1_config.js +24 -0
  143. package/dest/config/index.d.ts +5 -0
  144. package/dest/config/index.d.ts.map +1 -0
  145. package/dest/config/index.js +4 -0
  146. package/dest/config/network_config.d.ts +22 -0
  147. package/dest/config/network_config.d.ts.map +1 -0
  148. package/dest/config/network_config.js +119 -0
  149. package/dest/utils/aztec.d.ts +56 -0
  150. package/dest/utils/aztec.d.ts.map +1 -0
  151. package/dest/utils/aztec.js +161 -0
  152. package/dest/utils/commands.d.ts +161 -0
  153. package/dest/utils/commands.d.ts.map +1 -0
  154. package/dest/utils/commands.js +341 -0
  155. package/dest/utils/encoding.d.ts +15 -0
  156. package/dest/utils/encoding.d.ts.map +1 -0
  157. package/dest/utils/encoding.js +103 -0
  158. package/dest/utils/github.d.ts +3 -0
  159. package/dest/utils/github.d.ts.map +1 -0
  160. package/dest/utils/github.js +2 -0
  161. package/dest/utils/index.d.ts +6 -0
  162. package/dest/utils/index.d.ts.map +1 -0
  163. package/dest/utils/index.js +5 -0
  164. package/dest/utils/inspect.d.ts +11 -0
  165. package/dest/utils/inspect.d.ts.map +1 -0
  166. package/dest/utils/inspect.js +90 -0
  167. package/dest/utils/setup_contracts.d.ts +3 -0
  168. package/dest/utils/setup_contracts.d.ts.map +1 -0
  169. package/dest/utils/setup_contracts.js +16 -0
  170. package/package.json +141 -0
  171. package/public_include_metric_prefixes.json +1 -0
  172. package/src/cmds/aztec_node/block_number.ts +9 -0
  173. package/src/cmds/aztec_node/get_block.ts +11 -0
  174. package/src/cmds/aztec_node/get_current_min_fee.ts +9 -0
  175. package/src/cmds/aztec_node/get_l1_to_l2_message_witness.ts +27 -0
  176. package/src/cmds/aztec_node/get_logs.ts +100 -0
  177. package/src/cmds/aztec_node/get_node_info.ts +61 -0
  178. package/src/cmds/aztec_node/index.ts +91 -0
  179. package/src/cmds/infrastructure/index.ts +51 -0
  180. package/src/cmds/infrastructure/sequencers.ts +122 -0
  181. package/src/cmds/infrastructure/setup_l2_contract.ts +40 -0
  182. package/src/cmds/l1/advance_epoch.ts +14 -0
  183. package/src/cmds/l1/assume_proven_through.ts +20 -0
  184. package/src/cmds/l1/compute_genesis_values.ts +29 -0
  185. package/src/cmds/l1/create_l1_account.ts +16 -0
  186. package/src/cmds/l1/deploy_l1_contracts_cmd.ts +105 -0
  187. package/src/cmds/l1/deploy_new_rollup.ts +65 -0
  188. package/src/cmds/l1/get_l1_addresses.ts +31 -0
  189. package/src/cmds/l1/get_l1_balance.ts +44 -0
  190. package/src/cmds/l1/governance_utils.ts +183 -0
  191. package/src/cmds/l1/index.ts +499 -0
  192. package/src/cmds/l1/prover_stats.ts +213 -0
  193. package/src/cmds/l1/trigger_seed_snapshot.ts +32 -0
  194. package/src/cmds/l1/update_l1_validators.ts +358 -0
  195. package/src/cmds/misc/generate_bootnode_enr.ts +13 -0
  196. package/src/cmds/misc/generate_p2p_private_key.ts +9 -0
  197. package/src/cmds/misc/generate_secret_key.ts +5 -0
  198. package/src/cmds/misc/index.ts +67 -0
  199. package/src/cmds/misc/update/common.ts +16 -0
  200. package/src/cmds/misc/update/github.ts +2 -0
  201. package/src/cmds/misc/update/noir.ts +56 -0
  202. package/src/cmds/misc/update/npm.ts +148 -0
  203. package/src/cmds/misc/update/utils.ts +49 -0
  204. package/src/cmds/misc/update.ts +71 -0
  205. package/src/cmds/validator_keys/add.ts +122 -0
  206. package/src/cmds/validator_keys/eth_json_v3_worker.ts +30 -0
  207. package/src/cmds/validator_keys/generate_bls_keypair.ts +33 -0
  208. package/src/cmds/validator_keys/index.ts +181 -0
  209. package/src/cmds/validator_keys/new.ts +326 -0
  210. package/src/cmds/validator_keys/set_funding_account.ts +54 -0
  211. package/src/cmds/validator_keys/shared.ts +414 -0
  212. package/src/cmds/validator_keys/staker.ts +300 -0
  213. package/src/cmds/validator_keys/utils.ts +124 -0
  214. package/src/config/cached_fetch.ts +154 -0
  215. package/src/config/chain_l2_config.ts +71 -0
  216. package/src/config/enrich_env.ts +15 -0
  217. package/src/config/generated/networks.ts +241 -0
  218. package/src/config/get_l1_config.ts +31 -0
  219. package/src/config/index.ts +4 -0
  220. package/src/config/network_config.ts +150 -0
  221. package/src/utils/aztec.ts +203 -0
  222. package/src/utils/commands.ts +434 -0
  223. package/src/utils/encoding.ts +117 -0
  224. package/src/utils/github.ts +2 -0
  225. package/src/utils/index.ts +5 -0
  226. package/src/utils/inspect.ts +111 -0
  227. package/src/utils/setup_contracts.ts +19 -0
@@ -0,0 +1,237 @@
1
+ // Auto-generated from spartan/environments/network-defaults.yml
2
+ // Do not edit manually - run yarn generate to regenerate
3
+ export const devnetConfig = {
4
+ ETHEREUM_SLOT_DURATION: 12,
5
+ AZTEC_ACTIVATION_THRESHOLD: 100000000000000000000,
6
+ AZTEC_EJECTION_THRESHOLD: 50000000000000000000,
7
+ AZTEC_LOCAL_EJECTION_THRESHOLD: 98000000000000000000,
8
+ AZTEC_EXIT_DELAY_SECONDS: 172800,
9
+ AZTEC_PROOF_SUBMISSION_EPOCHS: 1,
10
+ AZTEC_MANA_TARGET: 100000000,
11
+ AZTEC_PROVING_COST_PER_MANA: 100,
12
+ AZTEC_INITIAL_ETH_PER_FEE_ASSET: 10000000,
13
+ AZTEC_SLASHER_ENABLED: true,
14
+ AZTEC_SLASHING_ROUND_SIZE_IN_EPOCHS: 4,
15
+ AZTEC_SLASHING_LIFETIME_IN_ROUNDS: 5,
16
+ AZTEC_SLASHING_OFFSET_IN_ROUNDS: 2,
17
+ AZTEC_SLASHING_VETOER: '0x0000000000000000000000000000000000000000',
18
+ AZTEC_SLASHING_DISABLE_DURATION: 432000,
19
+ AZTEC_SLASH_AMOUNT_SMALL: 10000000000000000000,
20
+ AZTEC_SLASH_AMOUNT_MEDIUM: 20000000000000000000,
21
+ AZTEC_SLASH_AMOUNT_LARGE: 50000000000000000000,
22
+ AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE: 300,
23
+ AZTEC_ENTRY_QUEUE_BOOTSTRAP_VALIDATOR_SET_SIZE: 0,
24
+ AZTEC_ENTRY_QUEUE_BOOTSTRAP_FLUSH_SIZE: 0,
25
+ AZTEC_ENTRY_QUEUE_FLUSH_SIZE_MIN: 48,
26
+ AZTEC_ENTRY_QUEUE_FLUSH_SIZE_QUOTIENT: 2,
27
+ AZTEC_ENTRY_QUEUE_MAX_FLUSH_SIZE: 48,
28
+ SLASH_OFFENSE_EXPIRATION_ROUNDS: 4,
29
+ SLASH_MAX_PAYLOAD_SIZE: 80,
30
+ SLASH_EXECUTE_ROUNDS_LOOK_BACK: 4,
31
+ SLASH_DATA_WITHHOLDING_TOLERANCE_SLOTS: 3,
32
+ P2P_ENABLED: true,
33
+ BOOTSTRAP_NODES: '',
34
+ SEQ_MIN_TX_PER_BLOCK: 1,
35
+ SEQ_BUILD_CHECKPOINT_IF_EMPTY: true,
36
+ DATA_STORE_MAP_SIZE_KB: 134217728,
37
+ ARCHIVER_STORE_MAP_SIZE_KB: 1073741824,
38
+ NOTE_HASH_TREE_MAP_SIZE_KB: 1073741824,
39
+ NULLIFIER_TREE_MAP_SIZE_KB: 1073741824,
40
+ PUBLIC_DATA_TREE_MAP_SIZE_KB: 1073741824,
41
+ PUBLIC_OTEL_INCLUDE_METRICS: 'aztec.validator,aztec.tx_collector,aztec.mempool,aztec.p2p.gossip.agg_,aztec.ivc_verifier.agg_',
42
+ SENTINEL_ENABLED: true,
43
+ OFFENSE_COLLECTION_ENABLED: true,
44
+ AZTEC_SLOT_DURATION: 36,
45
+ AZTEC_EPOCH_DURATION: 8,
46
+ AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET: 1,
47
+ AZTEC_LAG_IN_EPOCHS_FOR_RANDAO: 1,
48
+ AZTEC_TARGET_COMMITTEE_SIZE: 1,
49
+ SEQ_BLOCK_DURATION_MS: 3000,
50
+ MAX_BLOCKS_PER_CHECKPOINT: 9,
51
+ CHECKPOINT_PROPOSAL_SYNC_GRACE_SECONDS: 6,
52
+ AZTEC_SLASHING_EXECUTION_DELAY_IN_ROUNDS: 1,
53
+ AZTEC_SLASHING_QUORUM: 17,
54
+ AZTEC_GOVERNANCE_PROPOSER_QUORUM: 151,
55
+ L1_CHAIN_ID: 11155111,
56
+ TEST_ACCOUNTS: true,
57
+ SPONSORED_FPC: true,
58
+ TRANSACTIONS_DISABLED: false,
59
+ SEQ_MAX_TX_PER_BLOCK: 18,
60
+ PROVER_REAL_PROOFS: false,
61
+ PXE_PROVER_ENABLED: false,
62
+ SYNC_SNAPSHOTS_URLS: '',
63
+ SKIP_ARCHIVER_INITIAL_SYNC: false,
64
+ BLOB_ALLOW_EMPTY_SOURCES: false,
65
+ P2P_MAX_PENDING_TX_COUNT: 1000,
66
+ P2P_TX_POOL_DELETE_TXS_AFTER_REORG: false,
67
+ PUBLIC_OTEL_OPT_OUT: true,
68
+ PUBLIC_OTEL_EXPORTER_OTLP_METRICS_ENDPOINT: '',
69
+ PUBLIC_OTEL_COLLECT_FROM: '',
70
+ SLASH_DATA_WITHHOLDING_PENALTY: 10000000000000000000,
71
+ SLASH_INACTIVITY_TARGET_PERCENTAGE: 0.9,
72
+ SLASH_INACTIVITY_CONSECUTIVE_EPOCH_THRESHOLD: 1,
73
+ SLASH_INACTIVITY_PENALTY: 10000000000000000000,
74
+ SLASH_PROPOSE_INVALID_ATTESTATIONS_PENALTY: 10000000000000000000,
75
+ SLASH_DUPLICATE_PROPOSAL_PENALTY: 10000000000000000000,
76
+ SLASH_DUPLICATE_ATTESTATION_PENALTY: 10000000000000000000,
77
+ SLASH_PROPOSE_DESCENDANT_OF_CHECKPOINT_WITH_INVALID_ATTESTATIONS_PENALTY: 10000000000000000000,
78
+ SLASH_ATTEST_INVALID_CHECKPOINT_PROPOSAL_PENALTY: 10000000000000000000,
79
+ SLASH_UNKNOWN_PENALTY: 10000000000000000000,
80
+ SLASH_INVALID_BLOCK_PENALTY: 10000000000000000000,
81
+ SLASH_INVALID_CHECKPOINT_PROPOSAL_PENALTY: 0,
82
+ SLASH_GRACE_PERIOD_L2_SLOTS: 0,
83
+ ENABLE_AUTO_SHUTDOWN: false
84
+ };
85
+ export const testnetConfig = {
86
+ ETHEREUM_SLOT_DURATION: 12,
87
+ AZTEC_EPOCH_DURATION: 32,
88
+ AZTEC_TARGET_COMMITTEE_SIZE: 48,
89
+ AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET: 2,
90
+ AZTEC_LAG_IN_EPOCHS_FOR_RANDAO: 2,
91
+ AZTEC_EXIT_DELAY_SECONDS: 172800,
92
+ AZTEC_PROOF_SUBMISSION_EPOCHS: 1,
93
+ AZTEC_INITIAL_ETH_PER_FEE_ASSET: 10000000,
94
+ AZTEC_SLASHER_ENABLED: true,
95
+ AZTEC_SLASHING_ROUND_SIZE_IN_EPOCHS: 4,
96
+ AZTEC_SLASHING_LIFETIME_IN_ROUNDS: 5,
97
+ AZTEC_SLASHING_OFFSET_IN_ROUNDS: 2,
98
+ AZTEC_SLASHING_DISABLE_DURATION: 432000,
99
+ AZTEC_ENTRY_QUEUE_BOOTSTRAP_VALIDATOR_SET_SIZE: 0,
100
+ AZTEC_ENTRY_QUEUE_BOOTSTRAP_FLUSH_SIZE: 0,
101
+ AZTEC_ENTRY_QUEUE_FLUSH_SIZE_MIN: 48,
102
+ AZTEC_ENTRY_QUEUE_FLUSH_SIZE_QUOTIENT: 2,
103
+ AZTEC_ENTRY_QUEUE_MAX_FLUSH_SIZE: 48,
104
+ SLASH_OFFENSE_EXPIRATION_ROUNDS: 4,
105
+ SLASH_MAX_PAYLOAD_SIZE: 80,
106
+ SLASH_EXECUTE_ROUNDS_LOOK_BACK: 4,
107
+ SLASH_DATA_WITHHOLDING_TOLERANCE_SLOTS: 3,
108
+ P2P_ENABLED: true,
109
+ BOOTSTRAP_NODES: '',
110
+ SEQ_MIN_TX_PER_BLOCK: 1,
111
+ SEQ_BUILD_CHECKPOINT_IF_EMPTY: true,
112
+ SEQ_BLOCK_DURATION_MS: 6000,
113
+ MAX_BLOCKS_PER_CHECKPOINT: 10,
114
+ CHECKPOINT_PROPOSAL_SYNC_GRACE_SECONDS: 12,
115
+ DATA_STORE_MAP_SIZE_KB: 134217728,
116
+ ARCHIVER_STORE_MAP_SIZE_KB: 1073741824,
117
+ NOTE_HASH_TREE_MAP_SIZE_KB: 1073741824,
118
+ NULLIFIER_TREE_MAP_SIZE_KB: 1073741824,
119
+ PUBLIC_DATA_TREE_MAP_SIZE_KB: 1073741824,
120
+ PUBLIC_OTEL_INCLUDE_METRICS: 'aztec.validator,aztec.tx_collector,aztec.mempool,aztec.p2p.gossip.agg_,aztec.ivc_verifier.agg_',
121
+ SENTINEL_ENABLED: true,
122
+ OFFENSE_COLLECTION_ENABLED: true,
123
+ AZTEC_SLOT_DURATION: 72,
124
+ AZTEC_ACTIVATION_THRESHOLD: 2E+23,
125
+ AZTEC_EJECTION_THRESHOLD: 1E+23,
126
+ AZTEC_LOCAL_EJECTION_THRESHOLD: 1.99E+23,
127
+ AZTEC_SLASHING_EXECUTION_DELAY_IN_ROUNDS: 2,
128
+ AZTEC_SLASHING_VETOER: '0xdfe19Da6a717b7088621d8bBB66be59F2d78e924',
129
+ AZTEC_SLASHING_QUORUM: 33,
130
+ AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE: 100,
131
+ AZTEC_GOVERNANCE_PROPOSER_QUORUM: 60,
132
+ AZTEC_MANA_TARGET: 75000000,
133
+ AZTEC_PROVING_COST_PER_MANA: 12500000,
134
+ AZTEC_SLASH_AMOUNT_SMALL: 1E+23,
135
+ AZTEC_SLASH_AMOUNT_MEDIUM: 2.5E+23,
136
+ AZTEC_SLASH_AMOUNT_LARGE: 2.5E+23,
137
+ L1_CHAIN_ID: 11155111,
138
+ TEST_ACCOUNTS: false,
139
+ SPONSORED_FPC: false,
140
+ TRANSACTIONS_DISABLED: false,
141
+ SEQ_MAX_TX_PER_CHECKPOINT: 72,
142
+ PROVER_REAL_PROOFS: true,
143
+ P2P_MAX_PENDING_TX_COUNT: 1000,
144
+ P2P_TX_POOL_DELETE_TXS_AFTER_REORG: true,
145
+ SLASH_DATA_WITHHOLDING_PENALTY: 0,
146
+ SLASH_INACTIVITY_TARGET_PERCENTAGE: 0.9,
147
+ SLASH_INACTIVITY_CONSECUTIVE_EPOCH_THRESHOLD: 1,
148
+ SLASH_INACTIVITY_PENALTY: 1E+23,
149
+ SLASH_PROPOSE_INVALID_ATTESTATIONS_PENALTY: 1E+23,
150
+ SLASH_DUPLICATE_PROPOSAL_PENALTY: 2.5E+23,
151
+ SLASH_DUPLICATE_ATTESTATION_PENALTY: 2.5E+23,
152
+ SLASH_PROPOSE_DESCENDANT_OF_CHECKPOINT_WITH_INVALID_ATTESTATIONS_PENALTY: 0,
153
+ SLASH_ATTEST_INVALID_CHECKPOINT_PROPOSAL_PENALTY: 0,
154
+ SLASH_UNKNOWN_PENALTY: 1E+23,
155
+ SLASH_INVALID_BLOCK_PENALTY: 1E+23,
156
+ SLASH_INVALID_CHECKPOINT_PROPOSAL_PENALTY: 1E+23,
157
+ SLASH_GRACE_PERIOD_L2_SLOTS: 64,
158
+ ENABLE_AUTO_SHUTDOWN: false
159
+ };
160
+ export const mainnetConfig = {
161
+ ETHEREUM_SLOT_DURATION: 12,
162
+ AZTEC_EPOCH_DURATION: 32,
163
+ AZTEC_TARGET_COMMITTEE_SIZE: 48,
164
+ AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET: 2,
165
+ AZTEC_LAG_IN_EPOCHS_FOR_RANDAO: 2,
166
+ AZTEC_PROOF_SUBMISSION_EPOCHS: 1,
167
+ AZTEC_INITIAL_ETH_PER_FEE_ASSET: 10000000,
168
+ AZTEC_SLASHER_ENABLED: true,
169
+ AZTEC_SLASHING_ROUND_SIZE_IN_EPOCHS: 4,
170
+ AZTEC_SLASHING_OFFSET_IN_ROUNDS: 2,
171
+ SLASH_OFFENSE_EXPIRATION_ROUNDS: 4,
172
+ SLASH_MAX_PAYLOAD_SIZE: 80,
173
+ SLASH_EXECUTE_ROUNDS_LOOK_BACK: 4,
174
+ SLASH_DATA_WITHHOLDING_TOLERANCE_SLOTS: 3,
175
+ P2P_ENABLED: true,
176
+ BOOTSTRAP_NODES: '',
177
+ SEQ_MIN_TX_PER_BLOCK: 1,
178
+ SEQ_BUILD_CHECKPOINT_IF_EMPTY: true,
179
+ SEQ_BLOCK_DURATION_MS: 6000,
180
+ MAX_BLOCKS_PER_CHECKPOINT: 10,
181
+ CHECKPOINT_PROPOSAL_SYNC_GRACE_SECONDS: 12,
182
+ DATA_STORE_MAP_SIZE_KB: 134217728,
183
+ ARCHIVER_STORE_MAP_SIZE_KB: 1073741824,
184
+ NOTE_HASH_TREE_MAP_SIZE_KB: 1073741824,
185
+ NULLIFIER_TREE_MAP_SIZE_KB: 1073741824,
186
+ PUBLIC_DATA_TREE_MAP_SIZE_KB: 1073741824,
187
+ PUBLIC_OTEL_INCLUDE_METRICS: 'aztec.validator,aztec.tx_collector,aztec.mempool,aztec.p2p.gossip.agg_,aztec.ivc_verifier.agg_',
188
+ SENTINEL_ENABLED: true,
189
+ OFFENSE_COLLECTION_ENABLED: true,
190
+ AZTEC_SLOT_DURATION: 72,
191
+ AZTEC_ACTIVATION_THRESHOLD: 2E+23,
192
+ AZTEC_EJECTION_THRESHOLD: 1E+23,
193
+ AZTEC_LOCAL_EJECTION_THRESHOLD: 1.9E+23,
194
+ AZTEC_SLASH_AMOUNT_SMALL: 2E+21,
195
+ AZTEC_SLASH_AMOUNT_MEDIUM: 5E+21,
196
+ AZTEC_SLASH_AMOUNT_LARGE: 5E+21,
197
+ AZTEC_SLASHING_LIFETIME_IN_ROUNDS: 34,
198
+ AZTEC_SLASHING_EXECUTION_DELAY_IN_ROUNDS: 28,
199
+ AZTEC_SLASHING_VETOER: '0xBbB4aF368d02827945748b28CD4b2D42e4A37480',
200
+ AZTEC_SLASHING_QUORUM: 65,
201
+ AZTEC_GOVERNANCE_PROPOSER_QUORUM: 600,
202
+ AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE: 1000,
203
+ AZTEC_MANA_TARGET: 75000000,
204
+ AZTEC_PROVING_COST_PER_MANA: 12500000,
205
+ AZTEC_EXIT_DELAY_SECONDS: 345600,
206
+ AZTEC_SLASHING_DISABLE_DURATION: 259200,
207
+ AZTEC_ENTRY_QUEUE_BOOTSTRAP_VALIDATOR_SET_SIZE: 500,
208
+ AZTEC_ENTRY_QUEUE_BOOTSTRAP_FLUSH_SIZE: 500,
209
+ AZTEC_ENTRY_QUEUE_FLUSH_SIZE_MIN: 1,
210
+ AZTEC_ENTRY_QUEUE_FLUSH_SIZE_QUOTIENT: 400,
211
+ AZTEC_ENTRY_QUEUE_MAX_FLUSH_SIZE: 4,
212
+ L1_CHAIN_ID: 1,
213
+ TEST_ACCOUNTS: false,
214
+ SPONSORED_FPC: false,
215
+ TRANSACTIONS_DISABLED: false,
216
+ SEQ_MAX_TX_PER_CHECKPOINT: 72,
217
+ PROVER_REAL_PROOFS: true,
218
+ BLOB_ALLOW_EMPTY_SOURCES: true,
219
+ P2P_MAX_PENDING_TX_COUNT: 1000,
220
+ P2P_TX_POOL_DELETE_TXS_AFTER_REORG: true,
221
+ PUBLIC_OTEL_EXPORTER_OTLP_METRICS_ENDPOINT: '',
222
+ PUBLIC_OTEL_COLLECT_FROM: '',
223
+ ENABLE_AUTO_SHUTDOWN: false,
224
+ SLASH_DATA_WITHHOLDING_PENALTY: 0,
225
+ SLASH_INACTIVITY_TARGET_PERCENTAGE: 0.7,
226
+ SLASH_INACTIVITY_CONSECUTIVE_EPOCH_THRESHOLD: 2,
227
+ SLASH_INACTIVITY_PENALTY: 2E+21,
228
+ SLASH_PROPOSE_INVALID_ATTESTATIONS_PENALTY: 2E+21,
229
+ SLASH_DUPLICATE_PROPOSAL_PENALTY: 5E+21,
230
+ SLASH_DUPLICATE_ATTESTATION_PENALTY: 5E+21,
231
+ SLASH_PROPOSE_DESCENDANT_OF_CHECKPOINT_WITH_INVALID_ATTESTATIONS_PENALTY: 0,
232
+ SLASH_ATTEST_INVALID_CHECKPOINT_PROPOSAL_PENALTY: 0,
233
+ SLASH_UNKNOWN_PENALTY: 2E+21,
234
+ SLASH_INVALID_BLOCK_PENALTY: 2E+21,
235
+ SLASH_INVALID_CHECKPOINT_PROPOSAL_PENALTY: 2E+21,
236
+ SLASH_GRACE_PERIOD_L2_SLOTS: 8400
237
+ };
@@ -0,0 +1,9 @@
1
+ import type { L1ContractAddresses } from '@aztec-labs/ethereum/l1-contract-addresses';
2
+ import { getL1ContractsConfig } from '@aztec-labs/ethereum/queries';
3
+ import { EthAddress } from '@aztec-labs/foundation/eth-address';
4
+ export declare function getL1Config(registryAddress: EthAddress, l1RpcUrls: string[], l1ChainId: number, rollupVersion?: number | 'canonical'): Promise<{
5
+ addresses: L1ContractAddresses;
6
+ config: Awaited<ReturnType<typeof getL1ContractsConfig>>;
7
+ }>;
8
+ export declare function getL1RollupAddressFromEnv(l1RpcUrls: string[], l1ChainId: number): Promise<EthAddress>;
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0X2wxX2NvbmZpZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9nZXRfbDFfY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDdEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRWhFLHdCQUFzQixXQUFXLENBQy9CLGVBQWUsRUFBRSxVQUFVLEVBQzNCLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFDbkIsU0FBUyxFQUFFLE1BQU0sRUFDakIsYUFBYSxHQUFFLE1BQU0sR0FBRyxXQUF5QixHQUNoRCxPQUFPLENBQUM7SUFBRSxTQUFTLEVBQUUsbUJBQW1CLENBQUM7SUFBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLG9CQUFvQixDQUFDLENBQUMsQ0FBQTtDQUFFLENBQUMsQ0FVdkc7QUFFRCx3QkFBc0IseUJBQXlCLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQU9yRiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get_l1_config.d.ts","sourceRoot":"","sources":["../../src/config/get_l1_config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAEhE,wBAAsB,WAAW,CAC/B,eAAe,EAAE,UAAU,EAC3B,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,EAAE,MAAM,EACjB,aAAa,GAAE,MAAM,GAAG,WAAyB,GAChD,OAAO,CAAC;IAAE,SAAS,EAAE,mBAAmB,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAA;CAAE,CAAC,CAUvG;AAED,wBAAsB,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,uBAOrF"}
@@ -0,0 +1,24 @@
1
+ import { getPublicClient } from '@aztec-labs/ethereum/client';
2
+ import { RegistryContract } from '@aztec-labs/ethereum/contracts';
3
+ import { getL1ContractsConfig } from '@aztec-labs/ethereum/queries';
4
+ import { EthAddress } from '@aztec-labs/foundation/eth-address';
5
+ export async function getL1Config(registryAddress, l1RpcUrls, l1ChainId, rollupVersion = 'canonical') {
6
+ const publicClient = getPublicClient({
7
+ l1RpcUrls,
8
+ l1ChainId
9
+ });
10
+ const addresses = await RegistryContract.collectAddresses(publicClient, registryAddress, rollupVersion);
11
+ const config = await getL1ContractsConfig(publicClient, addresses);
12
+ return {
13
+ addresses,
14
+ config
15
+ };
16
+ }
17
+ export async function getL1RollupAddressFromEnv(l1RpcUrls, l1ChainId) {
18
+ const registryAddress = process.env.REGISTRY_CONTRACT_ADDRESS;
19
+ if (!registryAddress || !EthAddress.isAddress(registryAddress)) {
20
+ throw new Error(`Failed to extract registry address`);
21
+ }
22
+ const { addresses } = await getL1Config(EthAddress.fromString(registryAddress), l1RpcUrls, l1ChainId);
23
+ return addresses.rollupAddress;
24
+ }
@@ -0,0 +1,5 @@
1
+ export * from './cached_fetch.js';
2
+ export * from './chain_l2_config.js';
3
+ export * from './get_l1_config.js';
4
+ export * from './network_config.js';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxxQkFBcUIsQ0FBQyJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './cached_fetch.js';
2
+ export * from './chain_l2_config.js';
3
+ export * from './get_l1_config.js';
4
+ export * from './network_config.js';
@@ -0,0 +1,22 @@
1
+ import { type NetworkConfig, type NetworkNames } from '@aztec-labs/foundation/config';
2
+ /**
3
+ * Fetches remote network configuration from GitHub with caching support.
4
+ * Uses the reusable cachedFetch utility. Falls back to metadata.aztec.network if the default URL fails.
5
+ *
6
+ * @param networkName - The network name to fetch config for
7
+ * @param cacheDir - Optional cache directory for storing fetched config
8
+ * @returns Remote configuration for the specified network, or undefined if network not found in config
9
+ * @throws Error if both primary and fallback URLs fail to fetch
10
+ */
11
+ export declare function getNetworkConfig(networkName: NetworkNames, cacheDir?: string): Promise<NetworkConfig | undefined>;
12
+ /**
13
+ * Enriches environment variables with remote network configuration.
14
+ * This function is called before node config initialization to set env vars
15
+ * from the remote config.
16
+ *
17
+ * @param networkName - The network name to fetch remote config for
18
+ * @throws Error if network config fetch fails (network errors, parse errors, etc.)
19
+ * Does not throw if the network simply doesn't exist in the config - just returns without enriching
20
+ */
21
+ export declare function enrichEnvironmentWithNetworkConfig(networkName: NetworkNames): Promise<void>;
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya19jb25maWcuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvbmV0d29ya19jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssYUFBYSxFQUEwQixLQUFLLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBVzlHOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQXNCLGdCQUFnQixDQUNwQyxXQUFXLEVBQUUsWUFBWSxFQUN6QixRQUFRLENBQUMsRUFBRSxNQUFNLEdBQ2hCLE9BQU8sQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLENBOEJwQztBQXNERDs7Ozs7Ozs7R0FRRztBQUNILHdCQUFzQixrQ0FBa0MsQ0FBQyxXQUFXLEVBQUUsWUFBWSxpQkFpQ2pGIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network_config.d.ts","sourceRoot":"","sources":["../../src/config/network_config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAA0B,KAAK,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAW9G;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,YAAY,EACzB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CA8BpC;AAsDD;;;;;;;;GAQG;AACH,wBAAsB,kCAAkC,CAAC,WAAW,EAAE,YAAY,iBAiCjF"}
@@ -0,0 +1,119 @@
1
+ import { NetworkConfigMapSchema } from '@aztec-labs/foundation/config';
2
+ import { readFile } from 'fs/promises';
3
+ import { join } from 'path';
4
+ import { cachedFetch } from './cached_fetch.js';
5
+ import { enrichEthAddressVar, enrichVar } from './enrich_env.js';
6
+ const DEFAULT_CONFIG_URL = 'https://raw.githubusercontent.com/AztecProtocol/networks/refs/heads/main/network_config.json';
7
+ const FALLBACK_CONFIG_URL = 'https://metadata.aztec.network/network_config.json';
8
+ /**
9
+ * Fetches remote network configuration from GitHub with caching support.
10
+ * Uses the reusable cachedFetch utility. Falls back to metadata.aztec.network if the default URL fails.
11
+ *
12
+ * @param networkName - The network name to fetch config for
13
+ * @param cacheDir - Optional cache directory for storing fetched config
14
+ * @returns Remote configuration for the specified network, or undefined if network not found in config
15
+ * @throws Error if both primary and fallback URLs fail to fetch
16
+ */ export async function getNetworkConfig(networkName, cacheDir) {
17
+ // Try with the primary URL (env var or default)
18
+ const configLocation = process.env.NETWORK_CONFIG_LOCATION || DEFAULT_CONFIG_URL;
19
+ let primaryError;
20
+ let config;
21
+ // First try the primary config location
22
+ try {
23
+ config = await fetchNetworkConfigFromUrl(configLocation, networkName, cacheDir);
24
+ } catch (error) {
25
+ primaryError = error;
26
+ }
27
+ // If primary fails and we were using the default URL, try the fallback
28
+ if (!config && configLocation === DEFAULT_CONFIG_URL) {
29
+ try {
30
+ config = await fetchNetworkConfigFromUrl(FALLBACK_CONFIG_URL, networkName, cacheDir);
31
+ } catch {
32
+ // Both failed - throw the primary error
33
+ if (primaryError) {
34
+ throw primaryError;
35
+ }
36
+ }
37
+ } else if (primaryError) {
38
+ // Primary failed and no fallback to try
39
+ throw primaryError;
40
+ }
41
+ return config;
42
+ }
43
+ /**
44
+ * Helper function to fetch network config from a specific URL.
45
+ * @param configLocation - The URL or file path to fetch from
46
+ * @param networkName - The network name to fetch config for
47
+ * @param cacheDir - Optional cache directory for storing fetched config
48
+ * @returns Remote configuration for the specified network, or undefined if network not found in config, or undefined if URL invalid
49
+ * @throws Error if fetch/parse fails
50
+ */ async function fetchNetworkConfigFromUrl(configLocation, networkName, cacheDir) {
51
+ let url;
52
+ try {
53
+ if (configLocation.includes('://')) {
54
+ url = new URL(configLocation);
55
+ } else {
56
+ url = new URL(`file://${configLocation}`);
57
+ }
58
+ } catch {
59
+ /* no-op */ }
60
+ if (!url) {
61
+ return undefined;
62
+ }
63
+ let rawConfig;
64
+ if (url.protocol === 'http:' || url.protocol === 'https:') {
65
+ rawConfig = await cachedFetch(url.href, {
66
+ cacheFile: cacheDir ? join(cacheDir, networkName, 'network_config.json') : undefined
67
+ });
68
+ } else if (url.protocol === 'file:') {
69
+ rawConfig = JSON.parse(await readFile(url.pathname, 'utf-8'));
70
+ } else {
71
+ throw new Error('Unsupported Aztec network config protocol: ' + url.href);
72
+ }
73
+ if (!rawConfig) {
74
+ return undefined;
75
+ }
76
+ const networkConfigMap = NetworkConfigMapSchema.parse(rawConfig);
77
+ if (networkName in networkConfigMap) {
78
+ return networkConfigMap[networkName];
79
+ } else {
80
+ return undefined;
81
+ }
82
+ }
83
+ /**
84
+ * Enriches environment variables with remote network configuration.
85
+ * This function is called before node config initialization to set env vars
86
+ * from the remote config.
87
+ *
88
+ * @param networkName - The network name to fetch remote config for
89
+ * @throws Error if network config fetch fails (network errors, parse errors, etc.)
90
+ * Does not throw if the network simply doesn't exist in the config - just returns without enriching
91
+ */ export async function enrichEnvironmentWithNetworkConfig(networkName) {
92
+ if (networkName === 'local') {
93
+ return; // No remote config for local development
94
+ }
95
+ const cacheDir = process.env.DATA_DIRECTORY ? join(process.env.DATA_DIRECTORY, 'cache') : undefined;
96
+ const networkConfig = await getNetworkConfig(networkName, cacheDir);
97
+ if (!networkConfig) {
98
+ return; // Network not found in config, continue without enriching
99
+ }
100
+ enrichVar('BOOTSTRAP_NODES', networkConfig.bootnodes.join(','));
101
+ enrichVar('L1_CHAIN_ID', String(networkConfig.l1ChainId));
102
+ enrichVar('SYNC_SNAPSHOTS_URLS', networkConfig.snapshots.join(','));
103
+ enrichEthAddressVar('REGISTRY_CONTRACT_ADDRESS', networkConfig.registryAddress.toString());
104
+ if (networkConfig.feeAssetHandlerAddress) {
105
+ enrichEthAddressVar('FEE_ASSET_HANDLER_CONTRACT_ADDRESS', networkConfig.feeAssetHandlerAddress.toString());
106
+ }
107
+ if (networkConfig.blobFileStoreUrls?.length) {
108
+ enrichVar('BLOB_FILE_STORE_URLS', networkConfig.blobFileStoreUrls.join(','));
109
+ }
110
+ if (networkConfig.txCollectionFileStoreUrls?.length) {
111
+ enrichVar('TX_COLLECTION_FILE_STORE_URLS', networkConfig.txCollectionFileStoreUrls.join(','));
112
+ }
113
+ if (networkConfig.blockDurationMs !== undefined) {
114
+ enrichVar('SEQ_BLOCK_DURATION_MS', String(networkConfig.blockDurationMs));
115
+ }
116
+ if (networkConfig.txPublicSetupAllowListExtend) {
117
+ enrichVar('TX_PUBLIC_SETUP_ALLOWLIST', networkConfig.txPublicSetupAllowListExtend);
118
+ }
119
+ }
@@ -0,0 +1,56 @@
1
+ import { type ContractArtifact, type FunctionAbi } from '@aztec-labs/aztec.js/abi';
2
+ import { EthAddress } from '@aztec-labs/aztec.js/addresses';
3
+ import type { L1ContractsConfig } from '@aztec-labs/ethereum/config';
4
+ import { RollupContract } from '@aztec-labs/ethereum/contracts';
5
+ import type { Operator } from '@aztec-labs/ethereum/deploy-aztec-l1-contracts';
6
+ import { Fr } from '@aztec-labs/foundation/curves/bn254';
7
+ import { type LogFn } from '@aztec-labs/foundation/log';
8
+ import type { NoirPackageConfig } from '@aztec-labs/foundation/noir';
9
+ /**
10
+ * Helper to get an ABI function or throw error if it doesn't exist.
11
+ * @param artifact - Contract's build artifact in JSON format.
12
+ * @param fnName - Function name to be found.
13
+ * @returns The function's ABI.
14
+ */
15
+ export declare function getFunctionAbi(artifact: ContractArtifact, fnName: string): FunctionAbi;
16
+ export declare function deployNewRollupContracts(registryAddress: EthAddress, rpcUrls: string[], privateKey: string | undefined, chainId: number, mnemonic: string, mnemonicIndex: number, initialValidators: Operator[], genesisArchiveRoot: Fr, feeJuicePortalInitialBalance: bigint, config: L1ContractsConfig, realVerifier: boolean): Promise<{
17
+ rollup: RollupContract;
18
+ }>;
19
+ /**
20
+ * Gets all contracts available in \@aztec-labs/noir-contracts.js.
21
+ * @returns The contract names.
22
+ */
23
+ export declare function getExampleContractNames(): Promise<string[]>;
24
+ /**
25
+ * Reads a file and converts it to an Aztec Contract ABI.
26
+ * @param fileDir - The directory of the compiled contract ABI.
27
+ * @returns The parsed contract artifact.
28
+ */
29
+ export declare function getContractArtifact(fileDir: string, log: LogFn): Promise<ContractArtifact>;
30
+ /**
31
+ * Performs necessary checks, conversions & operations to call a contract fn from the CLI.
32
+ * @param contractFile - Directory of the compiled contract ABI.
33
+ * @param functionName - Name of the function to be called.
34
+ * @param _functionArgs - Arguments to call the function with.
35
+ * @param log - Logger instance that will output to the CLI
36
+ * @returns Formatted contract address, function arguments and caller's aztec address.
37
+ */
38
+ export declare function prepTx(contractFile: string, functionName: string, _functionArgs: string[], log: LogFn): Promise<{
39
+ functionArgs: any[];
40
+ contractArtifact: ContractArtifact;
41
+ isPrivate: boolean;
42
+ }>;
43
+ /**
44
+ * Removes the leading 0x from a hex string. If no leading 0x is found the string is returned unchanged.
45
+ * @param hex - A hex string
46
+ * @returns A new string with leading 0x removed
47
+ */
48
+ export declare const stripLeadingHex: (hex: string) => string;
49
+ /**
50
+ * Adds a leading 0x to a hex string. If a leading 0x is already present the string is returned unchanged.
51
+ * @param hex - A hex string
52
+ * @returns A new string with leading 0x added
53
+ */
54
+ export declare const addLeadingHex: (hex: string) => `0x${string}`;
55
+ export declare function prettyPrintNargoToml(config: NoirPackageConfig): string;
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9henRlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsS0FBSyxnQkFBZ0IsRUFDckIsS0FBSyxXQUFXLEVBSWpCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzVELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRS9FLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxLQUFLLEVBQWdCLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQVVyRTs7Ozs7R0FLRztBQUNILHdCQUFnQixjQUFjLENBQUMsUUFBUSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLEdBQUcsV0FBVyxDQU10RjtBQUVELHdCQUFzQix3QkFBd0IsQ0FDNUMsZUFBZSxFQUFFLFVBQVUsRUFDM0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUNqQixVQUFVLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDOUIsT0FBTyxFQUFFLE1BQU0sRUFDZixRQUFRLEVBQUUsTUFBTSxFQUNoQixhQUFhLEVBQUUsTUFBTSxFQUNyQixpQkFBaUIsRUFBRSxRQUFRLEVBQUUsRUFDN0Isa0JBQWtCLEVBQUUsRUFBRSxFQUN0Qiw0QkFBNEIsRUFBRSxNQUFNLEVBQ3BDLE1BQU0sRUFBRSxpQkFBaUIsRUFDekIsWUFBWSxFQUFFLE9BQU8sR0FDcEIsT0FBTyxDQUFDO0lBQUUsTUFBTSxFQUFFLGNBQWMsQ0FBQTtDQUFFLENBQUMsQ0EwQ3JDO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQXNCLHVCQUF1QixJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUtqRTtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBc0IsbUJBQW1CLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyw2QkFrQ3BFO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILHdCQUFzQixNQUFNLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSzs7OztHQU8zRztBQUVEOzs7O0dBSUc7QUFDSCxlQUFPLE1BQU0sZUFBZSx5QkFLM0IsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxlQUFPLE1BQU0sYUFBYSxnQ0FLekIsQ0FBQztBQU9GLHdCQUFnQixvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLEdBQUcsTUFBTSxDQVV0RSJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aztec.d.ts","sourceRoot":"","sources":["../../src/utils/aztec.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAIjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAE/E,OAAO,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AACzD,OAAO,EAAE,KAAK,KAAK,EAAgB,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAUrE;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAMtF;AAED,wBAAsB,wBAAwB,CAC5C,eAAe,EAAE,UAAU,EAC3B,OAAO,EAAE,MAAM,EAAE,EACjB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,iBAAiB,EAAE,QAAQ,EAAE,EAC7B,kBAAkB,EAAE,EAAE,EACtB,4BAA4B,EAAE,MAAM,EACpC,MAAM,EAAE,iBAAiB,EACzB,YAAY,EAAE,OAAO,GACpB,OAAO,CAAC;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,CAAC,CA0CrC;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAKjE;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,6BAkCpE;AAED;;;;;;;GAOG;AACH,wBAAsB,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK;;;;GAO3G;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,yBAK3B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,gCAKzB,CAAC;AAOF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAUtE"}
@@ -0,0 +1,161 @@
1
+ import { FunctionType, getAllFunctionAbis, loadContractArtifact } from '@aztec-labs/aztec.js/abi';
2
+ import { EthAddress } from '@aztec-labs/aztec.js/addresses';
3
+ import { SecretValue } from '@aztec-labs/foundation/config';
4
+ import { Fr } from '@aztec-labs/foundation/curves/bn254';
5
+ import { createLogger } from '@aztec-labs/foundation/log';
6
+ import { protocolContractsHash } from '@aztec-labs/protocol-contracts';
7
+ import TOML from '@iarna/toml';
8
+ import { readFile } from 'fs/promises';
9
+ import { encodeArgs } from './encoding.js';
10
+ const logger = createLogger('cli:utils:aztec');
11
+ /**
12
+ * Helper to get an ABI function or throw error if it doesn't exist.
13
+ * @param artifact - Contract's build artifact in JSON format.
14
+ * @param fnName - Function name to be found.
15
+ * @returns The function's ABI.
16
+ */ export function getFunctionAbi(artifact, fnName) {
17
+ const fn = getAllFunctionAbis(artifact).find(({ name })=>name === fnName);
18
+ if (!fn) {
19
+ throw Error(`Function ${fnName} not found in contract ABI.`);
20
+ }
21
+ return fn;
22
+ }
23
+ export async function deployNewRollupContracts(registryAddress, rpcUrls, privateKey, chainId, mnemonic, mnemonicIndex, initialValidators, genesisArchiveRoot, feeJuicePortalInitialBalance, config, realVerifier) {
24
+ const { deployRollupForUpgrade } = await import('@aztec-labs/ethereum/deploy-aztec-l1-contracts');
25
+ const { mnemonicToAccount, privateKeyToAccount } = await import('viem/accounts');
26
+ const { getVKTreeRoot } = await import('@aztec-labs/noir-protocol-circuits-types/vk-tree');
27
+ let account;
28
+ if (privateKey) {
29
+ account = privateKeyToAccount(addLeadingHex(privateKey));
30
+ } else {
31
+ account = mnemonicToAccount(mnemonic, {
32
+ addressIndex: mnemonicIndex
33
+ });
34
+ const privateKeyBuf = account.getHdKey().privateKey;
35
+ const privateKeyHex = Buffer.from(privateKeyBuf).toString('hex');
36
+ privateKey = `0x${privateKeyHex}`;
37
+ }
38
+ if (!initialValidators || initialValidators.length === 0) {
39
+ // initialize the new rollup with Amin's validator address.
40
+ const aminAddressString = '0x3b218d0F26d15B36C715cB06c949210a0d630637';
41
+ const amin = EthAddress.fromString(aminAddressString);
42
+ initialValidators = [
43
+ {
44
+ attester: amin,
45
+ withdrawer: amin,
46
+ // No secrets here. The actual keys are not currently used.
47
+ bn254SecretKey: new SecretValue(Fr.fromHexString(aminAddressString).toBigInt())
48
+ }
49
+ ];
50
+ logger.info('Initializing new rollup with old attesters', {
51
+ initialValidators
52
+ });
53
+ }
54
+ const { rollup } = await deployRollupForUpgrade(privateKey, rpcUrls[0], chainId, registryAddress, {
55
+ vkTreeRoot: getVKTreeRoot(),
56
+ protocolContractsHash,
57
+ genesisArchiveRoot,
58
+ initialValidators,
59
+ feeJuicePortalInitialBalance,
60
+ realVerifier,
61
+ ...config
62
+ });
63
+ return {
64
+ rollup
65
+ };
66
+ }
67
+ /**
68
+ * Gets all contracts available in \@aztec-labs/noir-contracts.js.
69
+ * @returns The contract names.
70
+ */ export async function getExampleContractNames() {
71
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
72
+ // @ts-ignore - Importing noir-contracts.js even in devDeps results in a circular dependency error. Need to ignore because this line doesn't cause an error in a dev environment
73
+ const { ContractNames } = await import('@aztec-labs/noir-contracts.js');
74
+ return ContractNames;
75
+ }
76
+ /**
77
+ * Reads a file and converts it to an Aztec Contract ABI.
78
+ * @param fileDir - The directory of the compiled contract ABI.
79
+ * @returns The parsed contract artifact.
80
+ */ export async function getContractArtifact(fileDir, log) {
81
+ // first check if it's a noir-contracts example
82
+ const allNames = await getExampleContractNames();
83
+ const contractName = fileDir.replace(/Contract(Artifact)?$/, '');
84
+ if (allNames.includes(contractName)) {
85
+ // This can load any generated contract module (noir-contracts.js/src, gitignored), so
86
+ // depend on all of them — the CI dependency map content-hashes generated files from the
87
+ // working tree — plus the generator side.
88
+ // @dependency ../../../noir-contracts.js/src/*.ts, ../../../noir-contracts.js/scripts/generate-types.sh, ../../../noir-contracts.js/package.json
89
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
90
+ // @ts-ignore - Importing noir-contracts.js even in devDeps results in a circular dependency error. Need to ignore because this line doesn't cause an error in a dev environment
91
+ const imported = await import(`@aztec-labs/noir-contracts.js/${contractName}`);
92
+ const artifact = imported[`${contractName}ContractArtifact`];
93
+ if (!artifact) {
94
+ throw Error(`Could not import ${contractName}ContractArtifact from @aztec-labs/noir-contracts.js/${contractName}`);
95
+ }
96
+ return artifact;
97
+ }
98
+ let contents;
99
+ try {
100
+ contents = await readFile(fileDir, 'utf8');
101
+ } catch {
102
+ throw Error(`Contract ${fileDir} not found`);
103
+ }
104
+ try {
105
+ return loadContractArtifact(JSON.parse(contents));
106
+ } catch (err) {
107
+ log('Invalid file used. Please try again.');
108
+ throw err;
109
+ }
110
+ }
111
+ /**
112
+ * Performs necessary checks, conversions & operations to call a contract fn from the CLI.
113
+ * @param contractFile - Directory of the compiled contract ABI.
114
+ * @param functionName - Name of the function to be called.
115
+ * @param _functionArgs - Arguments to call the function with.
116
+ * @param log - Logger instance that will output to the CLI
117
+ * @returns Formatted contract address, function arguments and caller's aztec address.
118
+ */ export async function prepTx(contractFile, functionName, _functionArgs, log) {
119
+ const contractArtifact = await getContractArtifact(contractFile, log);
120
+ const functionArtifact = getFunctionAbi(contractArtifact, functionName);
121
+ const functionArgs = encodeArgs(_functionArgs, functionArtifact.parameters);
122
+ const isPrivate = functionArtifact.functionType === FunctionType.PRIVATE;
123
+ return {
124
+ functionArgs,
125
+ contractArtifact,
126
+ isPrivate
127
+ };
128
+ }
129
+ /**
130
+ * Removes the leading 0x from a hex string. If no leading 0x is found the string is returned unchanged.
131
+ * @param hex - A hex string
132
+ * @returns A new string with leading 0x removed
133
+ */ export const stripLeadingHex = (hex)=>{
134
+ if (hex.length > 2 && hex.startsWith('0x')) {
135
+ return hex.substring(2);
136
+ }
137
+ return hex;
138
+ };
139
+ /**
140
+ * Adds a leading 0x to a hex string. If a leading 0x is already present the string is returned unchanged.
141
+ * @param hex - A hex string
142
+ * @returns A new string with leading 0x added
143
+ */ export const addLeadingHex = (hex)=>{
144
+ if (hex.length > 2 && hex.startsWith('0x')) {
145
+ return hex;
146
+ }
147
+ return `0x${hex}`;
148
+ };
149
+ /*
150
+ * Pretty prints Nargo.toml contents to a string
151
+ * @param config - Nargo.toml contents
152
+ * @returns The Nargo.toml contents as a string
153
+ */ export function prettyPrintNargoToml(config) {
154
+ const withoutDependencies = Object.fromEntries(Object.entries(config).filter(([key])=>key !== 'dependencies'));
155
+ const partialToml = TOML.stringify(withoutDependencies);
156
+ const dependenciesToml = Object.entries(config.dependencies).map(([name, dep])=>{
157
+ const depToml = TOML.stringify.value(dep);
158
+ return `${name} = ${depToml}`;
159
+ });
160
+ return partialToml + '\n[dependencies]\n' + dependenciesToml.join('\n') + '\n';
161
+ }