@aztec/cli 0.0.0-test.1 → 0.0.1-commit.21caa21

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 (274) hide show
  1. package/README.md +2 -428
  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 +9 -0
  8. package/dest/cmds/aztec_node/get_current_base_fee.d.ts +3 -0
  9. package/dest/cmds/aztec_node/get_current_base_fee.d.ts.map +1 -0
  10. package/dest/cmds/aztec_node/get_current_base_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 +6 -0
  15. package/dest/cmds/aztec_node/get_logs.d.ts.map +1 -0
  16. package/dest/cmds/{pxe → aztec_node}/get_logs.js +4 -4
  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/{pxe → aztec_node}/get_node_info.js +14 -15
  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 +28 -0
  23. package/dest/cmds/contracts/index.d.ts +1 -1
  24. package/dest/cmds/contracts/inspect_contract.d.ts +1 -1
  25. package/dest/cmds/contracts/inspect_contract.d.ts.map +1 -1
  26. package/dest/cmds/contracts/inspect_contract.js +12 -14
  27. package/dest/cmds/contracts/parse_parameter_struct.d.ts +1 -1
  28. package/dest/cmds/infrastructure/index.d.ts +3 -3
  29. package/dest/cmds/infrastructure/index.d.ts.map +1 -1
  30. package/dest/cmds/infrastructure/index.js +8 -9
  31. package/dest/cmds/infrastructure/sequencers.d.ts +5 -5
  32. package/dest/cmds/infrastructure/sequencers.d.ts.map +1 -1
  33. package/dest/cmds/infrastructure/sequencers.js +29 -16
  34. package/dest/cmds/infrastructure/setup_l2_contract.d.ts +2 -2
  35. package/dest/cmds/infrastructure/setup_l2_contract.d.ts.map +1 -1
  36. package/dest/cmds/infrastructure/setup_l2_contract.js +11 -24
  37. package/dest/cmds/l1/advance_epoch.d.ts +2 -2
  38. package/dest/cmds/l1/advance_epoch.d.ts.map +1 -1
  39. package/dest/cmds/l1/advance_epoch.js +8 -6
  40. package/dest/cmds/l1/assume_proven_through.d.ts +2 -2
  41. package/dest/cmds/l1/assume_proven_through.d.ts.map +1 -1
  42. package/dest/cmds/l1/assume_proven_through.js +9 -8
  43. package/dest/cmds/l1/bridge_erc20.d.ts +3 -3
  44. package/dest/cmds/l1/bridge_erc20.d.ts.map +1 -1
  45. package/dest/cmds/l1/bridge_erc20.js +5 -5
  46. package/dest/cmds/l1/create_l1_account.d.ts +1 -1
  47. package/dest/cmds/l1/deploy_l1_contracts.d.ts +3 -3
  48. package/dest/cmds/l1/deploy_l1_contracts.d.ts.map +1 -1
  49. package/dest/cmds/l1/deploy_l1_contracts.js +23 -6
  50. package/dest/cmds/l1/deploy_new_rollup.d.ts +3 -2
  51. package/dest/cmds/l1/deploy_new_rollup.d.ts.map +1 -1
  52. package/dest/cmds/l1/deploy_new_rollup.js +17 -8
  53. package/dest/cmds/l1/get_l1_addresses.d.ts +2 -2
  54. package/dest/cmds/l1/get_l1_addresses.d.ts.map +1 -1
  55. package/dest/cmds/l1/get_l1_balance.d.ts +1 -1
  56. package/dest/cmds/l1/governance_utils.d.ts +5 -5
  57. package/dest/cmds/l1/governance_utils.d.ts.map +1 -1
  58. package/dest/cmds/l1/governance_utils.js +17 -17
  59. package/dest/cmds/l1/index.d.ts +2 -1
  60. package/dest/cmds/l1/index.d.ts.map +1 -1
  61. package/dest/cmds/l1/index.js +33 -43
  62. package/dest/cmds/l1/prover_stats.d.ts +1 -1
  63. package/dest/cmds/l1/prover_stats.d.ts.map +1 -1
  64. package/dest/cmds/l1/prover_stats.js +28 -28
  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 +19 -0
  68. package/dest/cmds/l1/update_l1_validators.d.ts +21 -6
  69. package/dest/cmds/l1/update_l1_validators.d.ts.map +1 -1
  70. package/dest/cmds/l1/update_l1_validators.js +159 -103
  71. package/dest/cmds/misc/compute_selector.d.ts +1 -1
  72. package/dest/cmds/misc/example_contracts.d.ts +1 -1
  73. package/dest/cmds/misc/generate_bootnode_enr.d.ts +2 -2
  74. package/dest/cmds/misc/generate_bootnode_enr.d.ts.map +1 -1
  75. package/dest/cmds/misc/generate_bootnode_enr.js +2 -2
  76. package/dest/cmds/misc/generate_p2p_private_key.d.ts +1 -1
  77. package/dest/cmds/misc/generate_secret_and_hash.d.ts +2 -2
  78. package/dest/cmds/misc/generate_secret_and_hash.d.ts.map +1 -1
  79. package/dest/cmds/misc/generate_secret_and_hash.js +3 -3
  80. package/dest/cmds/misc/generate_secret_key.d.ts +2 -2
  81. package/dest/cmds/misc/generate_secret_key.d.ts.map +1 -1
  82. package/dest/cmds/misc/generate_secret_key.js +1 -1
  83. package/dest/cmds/misc/get_canonical_sponsored_fpc_address.d.ts +3 -0
  84. package/dest/cmds/misc/get_canonical_sponsored_fpc_address.d.ts.map +1 -0
  85. package/dest/cmds/misc/get_canonical_sponsored_fpc_address.js +4 -0
  86. package/dest/cmds/misc/index.d.ts +1 -1
  87. package/dest/cmds/misc/index.d.ts.map +1 -1
  88. package/dest/cmds/misc/index.js +7 -3
  89. package/dest/cmds/misc/update/common.d.ts +1 -1
  90. package/dest/cmds/misc/update/github.d.ts +1 -2
  91. package/dest/cmds/misc/update/github.d.ts.map +1 -1
  92. package/dest/cmds/misc/update/github.js +0 -1
  93. package/dest/cmds/misc/update/noir.d.ts +1 -1
  94. package/dest/cmds/misc/update/npm.d.ts +1 -1
  95. package/dest/cmds/misc/update/npm.js +1 -1
  96. package/dest/cmds/misc/update/utils.d.ts +1 -1
  97. package/dest/cmds/misc/update.d.ts +1 -1
  98. package/dest/cmds/misc/update.d.ts.map +1 -1
  99. package/dest/cmds/misc/update.js +2 -3
  100. package/dest/cmds/validator_keys/add.d.ts +5 -0
  101. package/dest/cmds/validator_keys/add.d.ts.map +1 -0
  102. package/dest/cmds/validator_keys/add.js +83 -0
  103. package/dest/cmds/validator_keys/generate_bls_keypair.d.ts +12 -0
  104. package/dest/cmds/validator_keys/generate_bls_keypair.d.ts.map +1 -0
  105. package/dest/cmds/validator_keys/generate_bls_keypair.js +27 -0
  106. package/dest/cmds/validator_keys/index.d.ts +4 -0
  107. package/dest/cmds/validator_keys/index.d.ts.map +1 -0
  108. package/dest/cmds/validator_keys/index.js +32 -0
  109. package/dest/cmds/validator_keys/new.d.ts +29 -0
  110. package/dest/cmds/validator_keys/new.d.ts.map +1 -0
  111. package/dest/cmds/validator_keys/new.js +131 -0
  112. package/dest/cmds/validator_keys/shared.d.ts +68 -0
  113. package/dest/cmds/validator_keys/shared.d.ts.map +1 -0
  114. package/dest/cmds/validator_keys/shared.js +273 -0
  115. package/dest/cmds/validator_keys/staker.d.ts +38 -0
  116. package/dest/cmds/validator_keys/staker.d.ts.map +1 -0
  117. package/dest/cmds/validator_keys/staker.js +207 -0
  118. package/dest/cmds/validator_keys/utils.d.ts +25 -0
  119. package/dest/cmds/validator_keys/utils.d.ts.map +1 -0
  120. package/dest/cmds/validator_keys/utils.js +52 -0
  121. package/dest/config/cached_fetch.d.ts +18 -0
  122. package/dest/config/cached_fetch.d.ts.map +1 -0
  123. package/dest/config/cached_fetch.js +54 -0
  124. package/dest/config/chain_l2_config.d.ts +40 -0
  125. package/dest/config/chain_l2_config.d.ts.map +1 -0
  126. package/dest/config/chain_l2_config.js +505 -0
  127. package/dest/config/enrich_env.d.ts +4 -0
  128. package/dest/config/enrich_env.d.ts.map +1 -0
  129. package/dest/config/enrich_env.js +12 -0
  130. package/dest/config/get_l1_config.d.ts +8 -0
  131. package/dest/config/get_l1_config.d.ts.map +1 -0
  132. package/dest/config/get_l1_config.js +22 -0
  133. package/dest/config/index.d.ts +5 -0
  134. package/dest/config/index.d.ts.map +1 -0
  135. package/dest/config/index.js +4 -0
  136. package/dest/config/network_config.d.ts +19 -0
  137. package/dest/config/network_config.d.ts.map +1 -0
  138. package/dest/config/network_config.js +93 -0
  139. package/dest/utils/aztec.d.ts +13 -18
  140. package/dest/utils/aztec.d.ts.map +1 -1
  141. package/dest/utils/aztec.js +54 -49
  142. package/dest/utils/commands.d.ts +19 -11
  143. package/dest/utils/commands.d.ts.map +1 -1
  144. package/dest/utils/commands.js +40 -14
  145. package/dest/utils/encoding.d.ts +1 -1
  146. package/dest/utils/encoding.js +1 -1
  147. package/dest/utils/github.d.ts +1 -2
  148. package/dest/utils/github.d.ts.map +1 -1
  149. package/dest/utils/github.js +0 -1
  150. package/dest/utils/index.d.ts +2 -1
  151. package/dest/utils/index.d.ts.map +1 -1
  152. package/dest/utils/index.js +1 -0
  153. package/dest/utils/inspect.d.ts +4 -11
  154. package/dest/utils/inspect.d.ts.map +1 -1
  155. package/dest/utils/inspect.js +19 -109
  156. package/dest/utils/setup_contracts.d.ts +3 -0
  157. package/dest/utils/setup_contracts.d.ts.map +1 -0
  158. package/dest/utils/setup_contracts.js +16 -0
  159. package/package.json +52 -36
  160. package/public_include_metric_prefixes.json +1 -0
  161. package/src/cmds/aztec_node/block_number.ts +9 -0
  162. package/src/cmds/aztec_node/get_block.ts +10 -0
  163. package/src/cmds/aztec_node/get_current_base_fee.ts +9 -0
  164. package/src/cmds/aztec_node/get_l1_to_l2_message_witness.ts +27 -0
  165. package/src/cmds/{pxe → aztec_node}/get_logs.ts +8 -7
  166. package/src/cmds/{pxe → aztec_node}/get_node_info.ts +15 -23
  167. package/src/cmds/aztec_node/index.ts +87 -0
  168. package/src/cmds/contracts/inspect_contract.ts +19 -16
  169. package/src/cmds/infrastructure/index.ts +8 -10
  170. package/src/cmds/infrastructure/sequencers.ts +36 -19
  171. package/src/cmds/infrastructure/setup_l2_contract.ts +13 -25
  172. package/src/cmds/l1/advance_epoch.ts +7 -5
  173. package/src/cmds/l1/assume_proven_through.ts +8 -7
  174. package/src/cmds/l1/bridge_erc20.ts +7 -4
  175. package/src/cmds/l1/deploy_l1_contracts.ts +32 -7
  176. package/src/cmds/l1/deploy_new_rollup.ts +23 -9
  177. package/src/cmds/l1/get_l1_addresses.ts +1 -1
  178. package/src/cmds/l1/governance_utils.ts +18 -17
  179. package/src/cmds/l1/index.ts +74 -101
  180. package/src/cmds/l1/prover_stats.ts +36 -29
  181. package/src/cmds/l1/trigger_seed_snapshot.ts +31 -0
  182. package/src/cmds/l1/update_l1_validators.ts +194 -94
  183. package/src/cmds/misc/generate_bootnode_enr.ts +3 -2
  184. package/src/cmds/misc/generate_secret_and_hash.ts +3 -3
  185. package/src/cmds/misc/generate_secret_key.ts +1 -1
  186. package/src/cmds/misc/get_canonical_sponsored_fpc_address.ts +7 -0
  187. package/src/cmds/misc/index.ts +13 -4
  188. package/src/cmds/misc/update/github.ts +0 -1
  189. package/src/cmds/misc/update/npm.ts +1 -1
  190. package/src/cmds/misc/update.ts +1 -7
  191. package/src/cmds/validator_keys/add.ts +123 -0
  192. package/src/cmds/validator_keys/generate_bls_keypair.ts +34 -0
  193. package/src/cmds/validator_keys/index.ts +142 -0
  194. package/src/cmds/validator_keys/new.ts +206 -0
  195. package/src/cmds/validator_keys/shared.ts +325 -0
  196. package/src/cmds/validator_keys/staker.ts +300 -0
  197. package/src/cmds/validator_keys/utils.ts +80 -0
  198. package/src/config/cached_fetch.ts +67 -0
  199. package/src/config/chain_l2_config.ts +668 -0
  200. package/src/config/enrich_env.ts +15 -0
  201. package/src/config/get_l1_config.ts +28 -0
  202. package/src/config/index.ts +4 -0
  203. package/src/config/network_config.ts +123 -0
  204. package/src/utils/aztec.ts +78 -65
  205. package/src/utils/commands.ts +54 -18
  206. package/src/utils/encoding.ts +1 -1
  207. package/src/utils/github.ts +0 -1
  208. package/src/utils/index.ts +1 -0
  209. package/src/utils/inspect.ts +23 -123
  210. package/src/utils/setup_contracts.ts +19 -0
  211. package/dest/cmds/devnet/bootstrap_network.d.ts +0 -3
  212. package/dest/cmds/devnet/bootstrap_network.d.ts.map +0 -1
  213. package/dest/cmds/devnet/bootstrap_network.js +0 -196
  214. package/dest/cmds/devnet/faucet.d.ts +0 -4
  215. package/dest/cmds/devnet/faucet.d.ts.map +0 -1
  216. package/dest/cmds/devnet/faucet.js +0 -26
  217. package/dest/cmds/devnet/index.d.ts +0 -4
  218. package/dest/cmds/devnet/index.d.ts.map +0 -1
  219. package/dest/cmds/devnet/index.js +0 -14
  220. package/dest/cmds/l1/deploy_l1_verifier.d.ts +0 -5
  221. package/dest/cmds/l1/deploy_l1_verifier.d.ts.map +0 -1
  222. package/dest/cmds/l1/deploy_l1_verifier.js +0 -54
  223. package/dest/cmds/misc/setup_contracts.d.ts +0 -7
  224. package/dest/cmds/misc/setup_contracts.d.ts.map +0 -1
  225. package/dest/cmds/misc/setup_contracts.js +0 -27
  226. package/dest/cmds/pxe/add_contract.d.ts +0 -5
  227. package/dest/cmds/pxe/add_contract.d.ts.map +0 -1
  228. package/dest/cmds/pxe/add_contract.js +0 -29
  229. package/dest/cmds/pxe/block_number.d.ts +0 -3
  230. package/dest/cmds/pxe/block_number.d.ts.map +0 -1
  231. package/dest/cmds/pxe/block_number.js +0 -10
  232. package/dest/cmds/pxe/get_account.d.ts +0 -4
  233. package/dest/cmds/pxe/get_account.d.ts.map +0 -1
  234. package/dest/cmds/pxe/get_account.js +0 -10
  235. package/dest/cmds/pxe/get_accounts.d.ts +0 -3
  236. package/dest/cmds/pxe/get_accounts.d.ts.map +0 -1
  237. package/dest/cmds/pxe/get_accounts.js +0 -25
  238. package/dest/cmds/pxe/get_block.d.ts +0 -3
  239. package/dest/cmds/pxe/get_block.d.ts.map +0 -1
  240. package/dest/cmds/pxe/get_block.js +0 -9
  241. package/dest/cmds/pxe/get_contract_data.d.ts +0 -4
  242. package/dest/cmds/pxe/get_contract_data.d.ts.map +0 -1
  243. package/dest/cmds/pxe/get_contract_data.js +0 -31
  244. package/dest/cmds/pxe/get_current_base_fee.d.ts +0 -3
  245. package/dest/cmds/pxe/get_current_base_fee.d.ts.map +0 -1
  246. package/dest/cmds/pxe/get_current_base_fee.js +0 -7
  247. package/dest/cmds/pxe/get_l1_to_l2_message_witness.d.ts +0 -4
  248. package/dest/cmds/pxe/get_l1_to_l2_message_witness.d.ts.map +0 -1
  249. package/dest/cmds/pxe/get_l1_to_l2_message_witness.js +0 -11
  250. package/dest/cmds/pxe/get_logs.d.ts +0 -4
  251. package/dest/cmds/pxe/get_logs.d.ts.map +0 -1
  252. package/dest/cmds/pxe/get_node_info.d.ts +0 -3
  253. package/dest/cmds/pxe/get_node_info.d.ts.map +0 -1
  254. package/dest/cmds/pxe/get_pxe_info.d.ts +0 -3
  255. package/dest/cmds/pxe/get_pxe_info.d.ts.map +0 -1
  256. package/dest/cmds/pxe/get_pxe_info.js +0 -11
  257. package/dest/cmds/pxe/index.d.ts +0 -4
  258. package/dest/cmds/pxe/index.d.ts.map +0 -1
  259. package/dest/cmds/pxe/index.js +0 -55
  260. package/src/cmds/devnet/bootstrap_network.ts +0 -318
  261. package/src/cmds/devnet/faucet.ts +0 -33
  262. package/src/cmds/devnet/index.ts +0 -60
  263. package/src/cmds/l1/deploy_l1_verifier.ts +0 -105
  264. package/src/cmds/misc/setup_contracts.ts +0 -40
  265. package/src/cmds/pxe/add_contract.ts +0 -41
  266. package/src/cmds/pxe/block_number.ts +0 -9
  267. package/src/cmds/pxe/get_account.ts +0 -16
  268. package/src/cmds/pxe/get_accounts.ts +0 -35
  269. package/src/cmds/pxe/get_block.ts +0 -10
  270. package/src/cmds/pxe/get_contract_data.ts +0 -51
  271. package/src/cmds/pxe/get_current_base_fee.ts +0 -9
  272. package/src/cmds/pxe/get_l1_to_l2_message_witness.ts +0 -25
  273. package/src/cmds/pxe/get_pxe_info.ts +0 -13
  274. package/src/cmds/pxe/index.ts +0 -170
@@ -0,0 +1,22 @@
1
+ import { RegistryContract, getL1ContractsConfig, getPublicClient } from '@aztec/ethereum';
2
+ import { EthAddress } from '@aztec/foundation/eth-address';
3
+ export async function getL1Config(registryAddress, l1RpcUrls, l1ChainId, rollupVersion = 'canonical') {
4
+ const publicClient = getPublicClient({
5
+ l1RpcUrls,
6
+ l1ChainId
7
+ });
8
+ const addresses = await RegistryContract.collectAddresses(publicClient, registryAddress, rollupVersion);
9
+ const config = await getL1ContractsConfig(publicClient, addresses);
10
+ return {
11
+ addresses,
12
+ config
13
+ };
14
+ }
15
+ export async function getL1RollupAddressFromEnv(l1RpcUrls, l1ChainId) {
16
+ const registryAddress = process.env.REGISTRY_CONTRACT_ADDRESS;
17
+ if (!registryAddress || !EthAddress.isAddress(registryAddress)) {
18
+ throw new Error(`Failed to extract registry address`);
19
+ }
20
+ const { addresses } = await getL1Config(EthAddress.fromString(registryAddress), l1RpcUrls, l1ChainId);
21
+ return addresses.rollupAddress;
22
+ }
@@ -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,19 @@
1
+ import { type NetworkConfig, type NetworkNames } from '@aztec/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 not found/error
9
+ */
10
+ export declare function getNetworkConfig(networkName: NetworkNames, cacheDir?: string): Promise<NetworkConfig | undefined>;
11
+ /**
12
+ * Enriches environment variables with remote network configuration.
13
+ * This function is called before node config initialization to set env vars
14
+ * from the remote config, following the same pattern as enrichEnvironmentWithChainConfig().
15
+ *
16
+ * @param networkName - The network name to fetch remote config for
17
+ */
18
+ export declare function enrichEnvironmentWithNetworkConfig(networkName: NetworkNames): Promise<void>;
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya19jb25maWcuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvbmV0d29ya19jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssYUFBYSxFQUEwQixLQUFLLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBYXpHOzs7Ozs7O0dBT0c7QUFDSCx3QkFBc0IsZ0JBQWdCLENBQ3BDLFdBQVcsRUFBRSxZQUFZLEVBQ3pCLFFBQVEsQ0FBQyxFQUFFLE1BQU0sR0FDaEIsT0FBTyxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUMsQ0FhcEM7QUEwREQ7Ozs7OztHQU1HO0FBQ0gsd0JBQXNCLGtDQUFrQyxDQUFDLFdBQVcsRUFBRSxZQUFZLGlCQW9CakYifQ==
@@ -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,0BAA0B,CAAC;AAazG;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,YAAY,EACzB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAapC;AA0DD;;;;;;GAMG;AACH,wBAAsB,kCAAkC,CAAC,WAAW,EAAE,YAAY,iBAoBjF"}
@@ -0,0 +1,93 @@
1
+ import { NetworkConfigMapSchema } from '@aztec/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
+ const NETWORK_CONFIG_CACHE_DURATION_MS = 60 * 60 * 1000; // 1 hour
9
+ /**
10
+ * Fetches remote network configuration from GitHub with caching support.
11
+ * Uses the reusable cachedFetch utility. Falls back to metadata.aztec.network if the default URL fails.
12
+ *
13
+ * @param networkName - The network name to fetch config for
14
+ * @param cacheDir - Optional cache directory for storing fetched config
15
+ * @returns Remote configuration for the specified network, or undefined if not found/error
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
+ // First try the primary config location
20
+ let config = await fetchNetworkConfigFromUrl(configLocation, networkName, cacheDir);
21
+ // If primary fails and we were using the default URL, try the fallback
22
+ if (!config && configLocation === DEFAULT_CONFIG_URL) {
23
+ config = await fetchNetworkConfigFromUrl(FALLBACK_CONFIG_URL, networkName, cacheDir);
24
+ }
25
+ return config;
26
+ }
27
+ /**
28
+ * Helper function to fetch network config from a specific URL.
29
+ * @param configLocation - The URL or file path to fetch from
30
+ * @param networkName - The network name to fetch config for
31
+ * @param cacheDir - Optional cache directory for storing fetched config
32
+ * @returns Remote configuration for the specified network, or undefined if not found/error
33
+ */ async function fetchNetworkConfigFromUrl(configLocation, networkName, cacheDir) {
34
+ let url;
35
+ try {
36
+ if (configLocation.includes('://')) {
37
+ url = new URL(configLocation);
38
+ } else {
39
+ url = new URL(`file://${configLocation}`);
40
+ }
41
+ } catch {
42
+ /* no-op */ }
43
+ if (!url) {
44
+ return undefined;
45
+ }
46
+ try {
47
+ let rawConfig;
48
+ if (url.protocol === 'http:' || url.protocol === 'https:') {
49
+ rawConfig = await cachedFetch(url.href, {
50
+ cacheDurationMs: NETWORK_CONFIG_CACHE_DURATION_MS,
51
+ cacheFile: cacheDir ? join(cacheDir, networkName, 'network_config.json') : undefined
52
+ });
53
+ } else if (url.protocol === 'file:') {
54
+ rawConfig = JSON.parse(await readFile(url.pathname, 'utf-8'));
55
+ } else {
56
+ throw new Error('Unsupported Aztec network config protocol: ' + url.href);
57
+ }
58
+ if (!rawConfig) {
59
+ return undefined;
60
+ }
61
+ const networkConfigMap = NetworkConfigMapSchema.parse(rawConfig);
62
+ if (networkName in networkConfigMap) {
63
+ return networkConfigMap[networkName];
64
+ } else {
65
+ return undefined;
66
+ }
67
+ } catch {
68
+ return undefined;
69
+ }
70
+ }
71
+ /**
72
+ * Enriches environment variables with remote network configuration.
73
+ * This function is called before node config initialization to set env vars
74
+ * from the remote config, following the same pattern as enrichEnvironmentWithChainConfig().
75
+ *
76
+ * @param networkName - The network name to fetch remote config for
77
+ */ export async function enrichEnvironmentWithNetworkConfig(networkName) {
78
+ if (networkName === 'local') {
79
+ return; // No remote config for local development
80
+ }
81
+ const cacheDir = process.env.DATA_DIRECTORY ? join(process.env.DATA_DIRECTORY, 'cache') : undefined;
82
+ const networkConfig = await getNetworkConfig(networkName, cacheDir);
83
+ if (!networkConfig) {
84
+ throw new Error(`Failed to fetch network config for network: ${networkName}`);
85
+ }
86
+ enrichVar('BOOTSTRAP_NODES', networkConfig.bootnodes.join(','));
87
+ enrichVar('L1_CHAIN_ID', String(networkConfig.l1ChainId));
88
+ enrichVar('SYNC_SNAPSHOTS_URLS', networkConfig.snapshots.join(','));
89
+ enrichEthAddressVar('REGISTRY_CONTRACT_ADDRESS', networkConfig.registryAddress.toString());
90
+ if (networkConfig.feeAssetHandlerAddress) {
91
+ enrichEthAddressVar('FEE_ASSET_HANDLER_CONTRACT_ADDRESS', networkConfig.feeAssetHandlerAddress.toString());
92
+ }
93
+ }
@@ -1,7 +1,7 @@
1
- import type { EthAddress, PXE } from '@aztec/aztec.js';
2
- import { type ContractArtifact, type FunctionArtifact } from '@aztec/aztec.js/abi';
3
- import type { DeployL1ContractsReturnType, L1ContractsConfig, RollupContract } from '@aztec/ethereum';
4
- import type { Fr } from '@aztec/foundation/fields';
1
+ import { type ContractArtifact, type FunctionAbi } from '@aztec/aztec.js/abi';
2
+ import { EthAddress } from '@aztec/aztec.js/addresses';
3
+ import { type DeployL1ContractsReturnType, type L1ContractsConfig, type Operator, RollupContract } from '@aztec/ethereum';
4
+ import { Fr } from '@aztec/foundation/fields';
5
5
  import type { LogFn, Logger } from '@aztec/foundation/log';
6
6
  import type { NoirPackageConfig } from '@aztec/foundation/noir';
7
7
  /**
@@ -10,7 +10,7 @@ import type { NoirPackageConfig } from '@aztec/foundation/noir';
10
10
  * @param fnName - Function name to be found.
11
11
  * @returns The function's ABI.
12
12
  */
13
- export declare function getFunctionArtifact(artifact: ContractArtifact, fnName: string): FunctionArtifact;
13
+ export declare function getFunctionAbi(artifact: ContractArtifact, fnName: string): FunctionAbi;
14
14
  /**
15
15
  * Function to execute the 'deployRollupContracts' command.
16
16
  * @param rpcUrls - The RPC URL of the ethereum node.
@@ -18,10 +18,10 @@ export declare function getFunctionArtifact(artifact: ContractArtifact, fnName:
18
18
  * @param privateKey - The private key to be used in contract deployment.
19
19
  * @param mnemonic - The mnemonic to be used in contract deployment.
20
20
  */
21
- export declare function deployAztecContracts(rpcUrls: string[], chainId: number, privateKey: string | undefined, mnemonic: string, mnemonicIndex: number, salt: number | undefined, initialValidators: EthAddress[], genesisArchiveRoot: Fr, genesisBlockHash: Fr, acceleratedTestDeployments: boolean, config: L1ContractsConfig, debugLogger: Logger): Promise<DeployL1ContractsReturnType>;
22
- export declare function deployNewRollupContracts(registryAddress: EthAddress, rpcUrls: string[], chainId: number, privateKey: string | undefined, mnemonic: string, mnemonicIndex: number, salt: number | undefined, initialValidators: EthAddress[], genesisArchiveRoot: Fr, genesisBlockHash: Fr, config: L1ContractsConfig, logger: Logger): Promise<{
23
- payloadAddress: EthAddress;
21
+ export declare function deployAztecContracts(rpcUrls: string[], chainId: number, privateKey: string | undefined, mnemonic: string, mnemonicIndex: number, salt: number | undefined, initialValidators: Operator[], genesisArchiveRoot: Fr, feeJuicePortalInitialBalance: bigint, acceleratedTestDeployments: boolean, config: L1ContractsConfig, existingToken: EthAddress | undefined, realVerifier: boolean, createVerificationJson: string | false, debugLogger: Logger): Promise<DeployL1ContractsReturnType>;
22
+ export declare function deployNewRollupContracts(registryAddress: EthAddress, rpcUrls: string[], chainId: number, privateKey: string | undefined, mnemonic: string, mnemonicIndex: number, salt: number | undefined, initialValidators: Operator[], genesisArchiveRoot: Fr, feeJuicePortalInitialBalance: bigint, config: L1ContractsConfig, realVerifier: boolean, createVerificationJson: string | false, logger: Logger): Promise<{
24
23
  rollup: RollupContract;
24
+ slashFactoryAddress: EthAddress;
25
25
  }>;
26
26
  /**
27
27
  * Gets all contracts available in \@aztec/noir-contracts.js.
@@ -54,15 +54,10 @@ export declare function prepTx(contractFile: string, functionName: string, _func
54
54
  */
55
55
  export declare const stripLeadingHex: (hex: string) => string;
56
56
  /**
57
- * Pretty prints Nargo.toml contents to a string
58
- * @param config - Nargo.toml contents
59
- * @returns The Nargo.toml contents as a string
57
+ * Adds a leading 0x to a hex string. If a leading 0x is already present the string is returned unchanged.
58
+ * @param hex - A hex string
59
+ * @returns A new string with leading 0x added
60
60
  */
61
+ export declare const addLeadingHex: (hex: string) => `0x${string}`;
61
62
  export declare function prettyPrintNargoToml(config: NoirPackageConfig): string;
62
- /**
63
- * Checks that Private eXecution Environment (PXE) version matches the expected one by this CLI. Throws if not.
64
- * @param pxe - PXE client.
65
- * @param expectedVersionRange - Expected version by CLI.
66
- */
67
- export declare function checkServerVersion(pxe: PXE, expectedVersionRange: string): Promise<void>;
68
- //# sourceMappingURL=aztec.d.ts.map
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp0ZWMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9henRlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsS0FBSyxnQkFBZ0IsRUFDckIsS0FBSyxXQUFXLEVBSWpCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFDTCxLQUFLLDJCQUEyQixFQUNoQyxLQUFLLGlCQUFpQixFQUN0QixLQUFLLFFBQVEsRUFDYixjQUFjLEVBQ2YsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUMsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFRaEU7Ozs7O0dBS0c7QUFDSCx3QkFBZ0IsY0FBYyxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsTUFBTSxHQUFHLFdBQVcsQ0FNdEY7QUFFRDs7Ozs7O0dBTUc7QUFDSCx3QkFBc0Isb0JBQW9CLENBQ3hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFDakIsT0FBTyxFQUFFLE1BQU0sRUFDZixVQUFVLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDOUIsUUFBUSxFQUFFLE1BQU0sRUFDaEIsYUFBYSxFQUFFLE1BQU0sRUFDckIsSUFBSSxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBQ3hCLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxFQUM3QixrQkFBa0IsRUFBRSxFQUFFLEVBQ3RCLDRCQUE0QixFQUFFLE1BQU0sRUFDcEMsMEJBQTBCLEVBQUUsT0FBTyxFQUNuQyxNQUFNLEVBQUUsaUJBQWlCLEVBQ3pCLGFBQWEsRUFBRSxVQUFVLEdBQUcsU0FBUyxFQUNyQyxZQUFZLEVBQUUsT0FBTyxFQUNyQixzQkFBc0IsRUFBRSxNQUFNLEdBQUcsS0FBSyxFQUN0QyxXQUFXLEVBQUUsTUFBTSxHQUNsQixPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FpQ3RDO0FBRUQsd0JBQXNCLHdCQUF3QixDQUM1QyxlQUFlLEVBQUUsVUFBVSxFQUMzQixPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQ2pCLE9BQU8sRUFBRSxNQUFNLEVBQ2YsVUFBVSxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBQzlCLFFBQVEsRUFBRSxNQUFNLEVBQ2hCLGFBQWEsRUFBRSxNQUFNLEVBQ3JCLElBQUksRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUN4QixpQkFBaUIsRUFBRSxRQUFRLEVBQUUsRUFDN0Isa0JBQWtCLEVBQUUsRUFBRSxFQUN0Qiw0QkFBNEIsRUFBRSxNQUFNLEVBQ3BDLE1BQU0sRUFBRSxpQkFBaUIsRUFDekIsWUFBWSxFQUFFLE9BQU8sRUFDckIsc0JBQXNCLEVBQUUsTUFBTSxHQUFHLEtBQUssRUFDdEMsTUFBTSxFQUFFLE1BQU0sR0FDYixPQUFPLENBQUM7SUFBRSxNQUFNLEVBQUUsY0FBYyxDQUFDO0lBQUMsbUJBQW1CLEVBQUUsVUFBVSxDQUFBO0NBQUUsQ0FBQyxDQThDdEU7QUFFRDs7O0dBR0c7QUFDSCx3QkFBc0IsdUJBQXVCLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBS2pFO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFzQixtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLDZCQTRCcEU7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsd0JBQXNCLE1BQU0sQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLOzs7O0dBTzNHO0FBRUQ7Ozs7R0FJRztBQUNILGVBQU8sTUFBTSxlQUFlLHlCQUszQixDQUFDO0FBRUY7Ozs7R0FJRztBQUNILGVBQU8sTUFBTSxhQUFhLGdDQUt6QixDQUFDO0FBT0Ysd0JBQWdCLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxpQkFBaUIsR0FBRyxNQUFNLENBVXRFIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"aztec.d.ts","sourceRoot":"","sources":["../../src/utils/aztec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAwB,MAAM,qBAAqB,CAAC;AACzG,OAAO,KAAK,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtG,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAUhE;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAMhG;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,iBAAiB,EAAE,UAAU,EAAE,EAC/B,kBAAkB,EAAE,EAAE,EACtB,gBAAgB,EAAE,EAAE,EACpB,0BAA0B,EAAE,OAAO,EACnC,MAAM,EAAE,iBAAiB,EACzB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,2BAA2B,CAAC,CA6BtC;AAED,wBAAsB,wBAAwB,CAC5C,eAAe,EAAE,UAAU,EAC3B,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,iBAAiB,EAAE,UAAU,EAAE,EAC/B,kBAAkB,EAAE,EAAE,EACtB,gBAAgB,EAAE,EAAE,EACpB,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,cAAc,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,CAAC,CA6BjE;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,6BA4BpE;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,QAAS,MAAM,WAK1C,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAUtE;AAKD;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,oBAAoB,EAAE,MAAM,iBAyB9E"}
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,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EACL,KAAK,2BAA2B,EAChC,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,cAAc,EACf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAQhE;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAMtF;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,iBAAiB,EAAE,QAAQ,EAAE,EAC7B,kBAAkB,EAAE,EAAE,EACtB,4BAA4B,EAAE,MAAM,EACpC,0BAA0B,EAAE,OAAO,EACnC,MAAM,EAAE,iBAAiB,EACzB,aAAa,EAAE,UAAU,GAAG,SAAS,EACrC,YAAY,EAAE,OAAO,EACrB,sBAAsB,EAAE,MAAM,GAAG,KAAK,EACtC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,2BAA2B,CAAC,CAiCtC;AAED,wBAAsB,wBAAwB,CAC5C,eAAe,EAAE,UAAU,EAC3B,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,iBAAiB,EAAE,QAAQ,EAAE,EAC7B,kBAAkB,EAAE,EAAE,EACtB,4BAA4B,EAAE,MAAM,EACpC,MAAM,EAAE,iBAAiB,EACzB,YAAY,EAAE,OAAO,EACrB,sBAAsB,EAAE,MAAM,GAAG,KAAK,EACtC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,MAAM,EAAE,cAAc,CAAC;IAAC,mBAAmB,EAAE,UAAU,CAAA;CAAE,CAAC,CA8CtE;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,6BA4BpE;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"}
@@ -1,17 +1,18 @@
1
- import { loadContractArtifact } from '@aztec/aztec.js/abi';
2
- import { ProtocolContractAddress, protocolContractTreeRoot } from '@aztec/protocol-contracts';
3
- import { FunctionType } from '@aztec/stdlib/abi';
1
+ import { FunctionType, getAllFunctionAbis, loadContractArtifact } from '@aztec/aztec.js/abi';
2
+ import { EthAddress } from '@aztec/aztec.js/addresses';
3
+ import { SecretValue } from '@aztec/foundation/config';
4
+ import { Fr } from '@aztec/foundation/fields';
5
+ import { protocolContractsHash } from '@aztec/protocol-contracts';
4
6
  import TOML from '@iarna/toml';
5
7
  import { readFile } from 'fs/promises';
6
- import { gtr, ltr, satisfies, valid } from 'semver';
7
8
  import { encodeArgs } from './encoding.js';
8
9
  /**
9
10
  * Helper to get an ABI function or throw error if it doesn't exist.
10
11
  * @param artifact - Contract's build artifact in JSON format.
11
12
  * @param fnName - Function name to be found.
12
13
  * @returns The function's ABI.
13
- */ export function getFunctionArtifact(artifact, fnName) {
14
- const fn = artifact.functions.find(({ name })=>name === fnName);
14
+ */ export function getFunctionAbi(artifact, fnName) {
15
+ const fn = getAllFunctionAbis(artifact).find(({ name })=>name === fnName);
15
16
  if (!fn) {
16
17
  throw Error(`Function ${fnName} not found in contract ABI.`);
17
18
  }
@@ -23,48 +24,66 @@ import { encodeArgs } from './encoding.js';
23
24
  * @param chainId - The chain ID of the L1 host.
24
25
  * @param privateKey - The private key to be used in contract deployment.
25
26
  * @param mnemonic - The mnemonic to be used in contract deployment.
26
- */ export async function deployAztecContracts(rpcUrls, chainId, privateKey, mnemonic, mnemonicIndex, salt, initialValidators, genesisArchiveRoot, genesisBlockHash, acceleratedTestDeployments, config, debugLogger) {
27
+ */ export async function deployAztecContracts(rpcUrls, chainId, privateKey, mnemonic, mnemonicIndex, salt, initialValidators, genesisArchiveRoot, feeJuicePortalInitialBalance, acceleratedTestDeployments, config, existingToken, realVerifier, createVerificationJson, debugLogger) {
27
28
  const { createEthereumChain, deployL1Contracts } = await import('@aztec/ethereum');
28
29
  const { mnemonicToAccount, privateKeyToAccount } = await import('viem/accounts');
29
30
  const account = !privateKey ? mnemonicToAccount(mnemonic, {
30
31
  addressIndex: mnemonicIndex
31
- }) : privateKeyToAccount(`${privateKey.startsWith('0x') ? '' : '0x'}${privateKey}`);
32
+ }) : privateKeyToAccount(addLeadingHex(privateKey));
32
33
  const chain = createEthereumChain(rpcUrls, chainId);
33
34
  const { getVKTreeRoot } = await import('@aztec/noir-protocol-circuits-types/vk-tree');
34
- return await deployL1Contracts(chain.rpcUrls, account, chain.chainInfo, debugLogger, {
35
- l2FeeJuiceAddress: ProtocolContractAddress.FeeJuice.toField(),
35
+ const result = await deployL1Contracts(chain.rpcUrls, account, chain.chainInfo, debugLogger, {
36
36
  vkTreeRoot: getVKTreeRoot(),
37
- protocolContractTreeRoot,
37
+ protocolContractsHash,
38
38
  genesisArchiveRoot,
39
- genesisBlockHash,
40
39
  salt,
41
40
  initialValidators,
42
41
  acceleratedTestDeployments,
42
+ feeJuicePortalInitialBalance,
43
+ realVerifier,
44
+ existingTokenAddress: existingToken,
43
45
  ...config
44
- }, config);
46
+ }, config, createVerificationJson);
47
+ return result;
45
48
  }
46
- export async function deployNewRollupContracts(registryAddress, rpcUrls, chainId, privateKey, mnemonic, mnemonicIndex, salt, initialValidators, genesisArchiveRoot, genesisBlockHash, config, logger) {
47
- const { createEthereumChain, deployRollupAndPeriphery, createL1Clients } = await import('@aztec/ethereum');
49
+ export async function deployNewRollupContracts(registryAddress, rpcUrls, chainId, privateKey, mnemonic, mnemonicIndex, salt, initialValidators, genesisArchiveRoot, feeJuicePortalInitialBalance, config, realVerifier, createVerificationJson, logger) {
50
+ const { createEthereumChain, deployRollupForUpgrade, createExtendedL1Client } = await import('@aztec/ethereum');
48
51
  const { mnemonicToAccount, privateKeyToAccount } = await import('viem/accounts');
49
52
  const { getVKTreeRoot } = await import('@aztec/noir-protocol-circuits-types/vk-tree');
50
53
  const account = !privateKey ? mnemonicToAccount(mnemonic, {
51
54
  addressIndex: mnemonicIndex
52
- }) : privateKeyToAccount(`${privateKey.startsWith('0x') ? '' : '0x'}${privateKey}`);
55
+ }) : privateKeyToAccount(addLeadingHex(privateKey));
53
56
  const chain = createEthereumChain(rpcUrls, chainId);
54
- const clients = createL1Clients(rpcUrls, account, chain.chainInfo, mnemonicIndex);
55
- const { payloadAddress, rollup } = await deployRollupAndPeriphery(clients, {
57
+ const client = createExtendedL1Client(rpcUrls, account, chain.chainInfo, undefined, mnemonicIndex);
58
+ if (!initialValidators || initialValidators.length === 0) {
59
+ // initialize the new rollup with Amin's validator address.
60
+ const aminAddressString = '0x3b218d0F26d15B36C715cB06c949210a0d630637';
61
+ const amin = EthAddress.fromString(aminAddressString);
62
+ initialValidators = [
63
+ {
64
+ attester: amin,
65
+ withdrawer: amin,
66
+ // No secrets here. The actual keys are not currently used.
67
+ bn254SecretKey: new SecretValue(Fr.fromHexString(aminAddressString).toBigInt())
68
+ }
69
+ ];
70
+ logger.info('Initializing new rollup with old attesters', {
71
+ initialValidators
72
+ });
73
+ }
74
+ const { rollup, slashFactoryAddress } = await deployRollupForUpgrade(client, {
56
75
  salt,
57
76
  vkTreeRoot: getVKTreeRoot(),
58
- protocolContractTreeRoot,
59
- l2FeeJuiceAddress: ProtocolContractAddress.FeeJuice.toField(),
77
+ protocolContractsHash,
60
78
  genesisArchiveRoot,
61
- genesisBlockHash,
62
79
  initialValidators,
80
+ feeJuicePortalInitialBalance,
81
+ realVerifier,
63
82
  ...config
64
- }, registryAddress, logger, config);
83
+ }, registryAddress, logger, config, createVerificationJson);
65
84
  return {
66
- payloadAddress,
67
- rollup
85
+ rollup,
86
+ slashFactoryAddress
68
87
  };
69
88
  }
70
89
  /**
@@ -116,7 +135,7 @@ export async function deployNewRollupContracts(registryAddress, rpcUrls, chainId
116
135
  * @returns Formatted contract address, function arguments and caller's aztec address.
117
136
  */ export async function prepTx(contractFile, functionName, _functionArgs, log) {
118
137
  const contractArtifact = await getContractArtifact(contractFile, log);
119
- const functionArtifact = getFunctionArtifact(contractArtifact, functionName);
138
+ const functionArtifact = getFunctionAbi(contractArtifact, functionName);
120
139
  const functionArgs = encodeArgs(_functionArgs, functionArtifact.parameters);
121
140
  const isPrivate = functionArtifact.functionType === FunctionType.PRIVATE;
122
141
  return {
@@ -136,6 +155,16 @@ export async function deployNewRollupContracts(registryAddress, rpcUrls, chainId
136
155
  return hex;
137
156
  };
138
157
  /**
158
+ * Adds a leading 0x to a hex string. If a leading 0x is already present the string is returned unchanged.
159
+ * @param hex - A hex string
160
+ * @returns A new string with leading 0x added
161
+ */ export const addLeadingHex = (hex)=>{
162
+ if (hex.length > 2 && hex.startsWith('0x')) {
163
+ return hex;
164
+ }
165
+ return `0x${hex}`;
166
+ };
167
+ /*
139
168
  * Pretty prints Nargo.toml contents to a string
140
169
  * @param config - Nargo.toml contents
141
170
  * @returns The Nargo.toml contents as a string
@@ -148,27 +177,3 @@ export async function deployNewRollupContracts(registryAddress, rpcUrls, chainId
148
177
  });
149
178
  return partialToml + '\n[dependencies]\n' + dependenciesToml.join('\n') + '\n';
150
179
  }
151
- /** Mismatch between server and client versions. */ class VersionMismatchError extends Error {
152
- }
153
- /**
154
- * Checks that Private eXecution Environment (PXE) version matches the expected one by this CLI. Throws if not.
155
- * @param pxe - PXE client.
156
- * @param expectedVersionRange - Expected version by CLI.
157
- */ export async function checkServerVersion(pxe, expectedVersionRange) {
158
- const serverName = 'Aztec Node';
159
- const { nodeVersion } = await pxe.getNodeInfo();
160
- if (!nodeVersion) {
161
- throw new VersionMismatchError(`Couldn't determine ${serverName} version. You may run into issues.`);
162
- }
163
- if (!nodeVersion || !valid(nodeVersion)) {
164
- throw new VersionMismatchError(`Missing or invalid version identifier for ${serverName} (${nodeVersion ?? 'empty'}).`);
165
- } else if (!satisfies(nodeVersion, expectedVersionRange)) {
166
- if (gtr(nodeVersion, expectedVersionRange)) {
167
- throw new VersionMismatchError(`${serverName} is running version ${nodeVersion} which is newer than the expected by this CLI (${expectedVersionRange}). Consider upgrading your CLI to a newer version.`);
168
- } else if (ltr(nodeVersion, expectedVersionRange)) {
169
- throw new VersionMismatchError(`${serverName} is running version ${nodeVersion} which is older than the expected by this CLI (${expectedVersionRange}). Consider upgrading your ${serverName} to a newer version.`);
170
- } else {
171
- throw new VersionMismatchError(`${serverName} is running version ${nodeVersion} which does not match the expected by this CLI (${expectedVersionRange}).`);
172
- }
173
- }
174
- }
@@ -1,11 +1,10 @@
1
1
  import { FunctionSelector } from '@aztec/aztec.js/abi';
2
- import { AztecAddress } from '@aztec/aztec.js/addresses';
3
- import { EthAddress } from '@aztec/aztec.js/eth_address';
2
+ import { AztecAddress, EthAddress } from '@aztec/aztec.js/addresses';
4
3
  import { Fr } from '@aztec/aztec.js/fields';
5
- import { LogId } from '@aztec/aztec.js/log_id';
6
- import { TxHash } from '@aztec/aztec.js/tx_hash';
4
+ import { LogId } from '@aztec/aztec.js/log';
5
+ import { TxHash } from '@aztec/aztec.js/tx';
7
6
  import type { LogFn } from '@aztec/foundation/log';
8
- import type { PXE } from '@aztec/stdlib/interfaces/client';
7
+ import type { PXE } from '@aztec/pxe/server';
9
8
  import { PublicKeys } from '@aztec/stdlib/keys';
10
9
  import { type Command, Option } from 'commander';
11
10
  /**
@@ -14,12 +13,12 @@ import { type Command, Option } from 'commander';
14
13
  */
15
14
  export declare const getLocalhost: () => Promise<string>;
16
15
  export declare const LOCALHOST: string;
17
- export declare const ETHEREUM_HOSTS: string, PRIVATE_KEY: string | undefined, API_KEY: string | undefined, CLI_VERSION: string | undefined;
16
+ export declare const ETHEREUM_HOSTS: string, PRIVATE_KEY: string | undefined, MNEMONIC: string | undefined, API_KEY: string | undefined, CLI_VERSION: string | undefined;
18
17
  export declare function addOptions(program: Command, options: Option[]): Command;
19
- export declare const makePxeOption: (mandatory: boolean) => Option;
20
- export declare const pxeOption: Option;
18
+ export declare const makeNodeOption: (mandatory: boolean) => Option;
19
+ export declare const nodeOption: Option;
21
20
  export declare const l1ChainIdOption: Option;
22
- export declare const createSecretKeyOption: (description: string, mandatory: boolean, argsParser?: (value: string, previous: Fr) => Fr) => Option;
21
+ export declare const createSecretKeyOption: (description: string, mandatory: boolean, argsParser?: ((value: string, previous: Fr) => Fr) | undefined) => Option;
23
22
  export declare const logJson: (log: LogFn) => (obj: object) => void;
24
23
  /**
25
24
  * Updates a file in place atomically.
@@ -35,6 +34,15 @@ export declare function atomicUpdateFile(filePath: string, contents: string): Pr
35
34
  * @returns An Aztec address. Will throw if one can't be found in either options.
36
35
  */
37
36
  export declare function getTxSender(pxe: PXE, _from?: string): Promise<AztecAddress>;
37
+ /**
38
+ * Parses and validates a hex string. Removes leading 0x if present, checks for hex validity,
39
+ * and enforces an optional minimum length.
40
+ * @param hex - The hex string to validate.
41
+ * @param minLen - Optional minimum length (in hex characters, after stripping '0x').
42
+ * @returns The normalized hex string (without leading 0x).
43
+ * @throws InvalidArgumentError if the string is not valid hex or does not meet the minimum length.
44
+ */
45
+ export declare function parseHex(hex: string, minLen?: number): `0x${string}`;
38
46
  export declare function parseBigint(bigint: string): bigint | undefined;
39
47
  /**
40
48
  * Parses a hex encoded string to an Fr integer
@@ -84,7 +92,7 @@ export declare function parseOptionalSelector(selector: string): FunctionSelecto
84
92
  * @returns The parsed integer, or undefined if the input string is falsy.
85
93
  * @throws If the input is not a valid integer.
86
94
  */
87
- export declare function parseOptionalInteger(value: string): number | undefined;
95
+ export declare function parseOptionalInteger(value: string, min?: number, max?: number): number | undefined;
88
96
  /**
89
97
  * Parses a TxHash from a string.
90
98
  * @param txHash - A transaction hash
@@ -140,4 +148,4 @@ export declare function parseFields(fields: string[]): Fr[];
140
148
  * @returns A JSON string
141
149
  */
142
150
  export declare function prettyPrintJSON(data: Record<string, any>): string;
143
- //# sourceMappingURL=commands.d.ts.map
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9jb21tYW5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsS0FBSyxPQUFPLEVBQXdDLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUl2Rjs7O0dBR0c7QUFDSCxlQUFPLE1BQU0sWUFBWSx1QkFHSSxDQUFDO0FBRTlCLGVBQU8sTUFBTSxTQUFTLFFBQXVCLENBQUM7QUFDOUMsZUFBTyxNQUFRLGNBQWMsVUFBK0IsV0FBVyxzQkFBRSxRQUFRLHNCQUFFLE9BQU8sc0JBQUUsV0FBVyxvQkFBZ0IsQ0FBQztBQUV4SCx3QkFBZ0IsVUFBVSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUc3RDtBQUVELGVBQU8sTUFBTSxjQUFjLGdDQUlRLENBQUM7QUFFcEMsZUFBTyxNQUFNLFVBQVUsUUFBdUIsQ0FBQztBQUUvQyxlQUFPLE1BQU0sZUFBZSxRQVN4QixDQUFDO0FBRUwsZUFBTyxNQUFNLHFCQUFxQixxSEFRQyxDQUFDO0FBRXBDLGVBQU8s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
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/utils/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/utils/commands.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,8 @@
1
1
  import { FunctionSelector } from '@aztec/aztec.js/abi';
2
- import { AztecAddress } from '@aztec/aztec.js/addresses';
3
- import { EthAddress } from '@aztec/aztec.js/eth_address';
2
+ import { AztecAddress, EthAddress } from '@aztec/aztec.js/addresses';
4
3
  import { Fr } from '@aztec/aztec.js/fields';
5
- import { LogId } from '@aztec/aztec.js/log_id';
6
- import { TxHash } from '@aztec/aztec.js/tx_hash';
4
+ import { LogId } from '@aztec/aztec.js/log';
5
+ import { TxHash } from '@aztec/aztec.js/tx';
7
6
  import { PublicKeys } from '@aztec/stdlib/keys';
8
7
  import { CommanderError, InvalidArgumentError, Option } from 'commander';
9
8
  import { lookup } from 'dns/promises';
@@ -13,13 +12,13 @@ import { rename, writeFile } from 'fs/promises';
13
12
  * localhost as being host.docker.internal.
14
13
  */ export const getLocalhost = ()=>lookup('host.docker.internal').then(()=>'host.docker.internal').catch(()=>'localhost');
15
14
  export const LOCALHOST = await getLocalhost();
16
- export const { ETHEREUM_HOSTS = `http://${LOCALHOST}:8545`, PRIVATE_KEY, API_KEY, CLI_VERSION } = process.env;
15
+ export const { ETHEREUM_HOSTS = `http://${LOCALHOST}:8545`, PRIVATE_KEY, MNEMONIC, API_KEY, CLI_VERSION } = process.env;
17
16
  export function addOptions(program, options) {
18
17
  options.forEach((option)=>program.addOption(option));
19
18
  return program;
20
19
  }
21
- export const makePxeOption = (mandatory)=>new Option('-u, --rpc-url <string>', 'URL of the PXE').env('PXE_URL').default(`http://${LOCALHOST}:8080`).conflicts('remote-pxe').makeOptionMandatory(mandatory);
22
- export const pxeOption = makePxeOption(true);
20
+ export const makeNodeOption = (mandatory)=>new Option('-n, --node-url <string>', 'URL of the Aztec node').env('AZTEC_NODE_URL').default(`http://${LOCALHOST}:8080`).makeOptionMandatory(mandatory);
21
+ export const nodeOption = makeNodeOption(true);
23
22
  export const l1ChainIdOption = new Option('-c, --l1-chain-id <number>', 'Chain ID of the ethereum host').env('L1_CHAIN_ID').default(31337).argParser((value)=>{
24
23
  const parsedValue = Number(value);
25
24
  if (isNaN(parsedValue)) {
@@ -74,6 +73,27 @@ export const logJson = (log)=>(obj)=>log(JSON.stringify(obj, null, 2));
74
73
  }
75
74
  return from;
76
75
  }
76
+ /**
77
+ * Parses and validates a hex string. Removes leading 0x if present, checks for hex validity,
78
+ * and enforces an optional minimum length.
79
+ * @param hex - The hex string to validate.
80
+ * @param minLen - Optional minimum length (in hex characters, after stripping '0x').
81
+ * @returns The normalized hex string (without leading 0x).
82
+ * @throws InvalidArgumentError if the string is not valid hex or does not meet the minimum length.
83
+ */ // minLen is now interpreted as the minimum number of bytes (2 hex characters per byte)
84
+ export function parseHex(hex, minLen) {
85
+ const normalized = hex.startsWith('0x') ? hex.slice(2) : hex;
86
+ if (!/^[0-9a-fA-F]*$/.test(normalized)) {
87
+ throw new InvalidArgumentError('Invalid hex string');
88
+ }
89
+ if (minLen !== undefined) {
90
+ const minHexLen = minLen * 2;
91
+ if (normalized.length < minHexLen) {
92
+ throw new InvalidArgumentError(`Hex string is too short (length ${normalized.length}), minimum byte length is ${minLen} (hex chars: ${minHexLen})`);
93
+ }
94
+ }
95
+ return `0x${normalized}`;
96
+ }
77
97
  /**
78
98
  * Removes the leading 0x from a hex string. If no leading 0x is found the string is returned unchanged.
79
99
  * @param hex - A hex string
@@ -118,7 +138,7 @@ export function parseBigint(bigint) {
118
138
  try {
119
139
  return AztecAddress.fromString(address);
120
140
  } catch {
121
- throw new InvalidArgumentError(`Invalid address: ${address}`);
141
+ throw new InvalidArgumentError(`Invalid Aztec address: ${address}`);
122
142
  }
123
143
  }
124
144
  /**
@@ -130,7 +150,7 @@ export function parseBigint(bigint) {
130
150
  try {
131
151
  return EthAddress.fromString(address);
132
152
  } catch {
133
- throw new InvalidArgumentError(`Invalid address: ${address}`);
153
+ throw new InvalidArgumentError(`Invalid Ethereumaddress: ${address}`);
134
154
  }
135
155
  }
136
156
  /**
@@ -176,7 +196,7 @@ export function parseBigint(bigint) {
176
196
  * @param value - The string to parse into an integer.
177
197
  * @returns The parsed integer, or undefined if the input string is falsy.
178
198
  * @throws If the input is not a valid integer.
179
- */ export function parseOptionalInteger(value) {
199
+ */ export function parseOptionalInteger(value, min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER) {
180
200
  if (!value) {
181
201
  return undefined;
182
202
  }
@@ -184,6 +204,12 @@ export function parseBigint(bigint) {
184
204
  if (!Number.isInteger(parsed)) {
185
205
  throw new InvalidArgumentError('Invalid integer.');
186
206
  }
207
+ if (parsed < min) {
208
+ throw new InvalidArgumentError(`Value must be greater than ${min}.`);
209
+ }
210
+ if (parsed > max) {
211
+ throw new InvalidArgumentError(`Value must be less than ${max}.`);
212
+ }
187
213
  return parsed;
188
214
  }
189
215
  /**
@@ -221,7 +247,7 @@ export function parseBigint(bigint) {
221
247
  }
222
248
  try {
223
249
  return PublicKeys.fromString(publicKey);
224
- } catch (err) {
250
+ } catch {
225
251
  throw new InvalidArgumentError(`Invalid public key: ${publicKey}`);
226
252
  }
227
253
  }
@@ -233,7 +259,7 @@ export function parseBigint(bigint) {
233
259
  */ export function parsePartialAddress(address) {
234
260
  try {
235
261
  return Fr.fromHexString(address);
236
- } catch (err) {
262
+ } catch {
237
263
  throw new InvalidArgumentError(`Invalid partial address: ${address}`);
238
264
  }
239
265
  }
@@ -245,7 +271,7 @@ export function parseBigint(bigint) {
245
271
  */ export function parseSecretKey(secretKey) {
246
272
  try {
247
273
  return Fr.fromHexString(secretKey);
248
- } catch (err) {
274
+ } catch {
249
275
  throw new InvalidArgumentError(`Invalid encryption secret key: ${secretKey}`);
250
276
  }
251
277
  }
@@ -275,7 +301,7 @@ export function parseBigint(bigint) {
275
301
  return new Fr(BigInt(field.replace(/n$/, '')));
276
302
  }
277
303
  return new Fr(BigInt(field));
278
- } catch (err) {
304
+ } catch {
279
305
  throw new InvalidArgumentError(`Invalid field: ${field}`);
280
306
  }
281
307
  }
@@ -12,4 +12,4 @@ export declare function parseStructString(str: string, abiType: StructType): any
12
12
  * @returns The encoded array.
13
13
  */
14
14
  export declare function encodeArgs(args: any[], params: ABIParameter[]): any[];
15
- //# sourceMappingURL=encoding.d.ts.map
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2RpbmcuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9lbmNvZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQVcsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFM0U7Ozs7O0dBS0c7QUFDSCx3QkFBZ0IsaUJBQWlCLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxPQWNqRTtBQTRFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLFVBQVUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQVk3RCJ9
@@ -29,7 +29,7 @@ import { Fr } from '@aztec/foundation/fields';
29
29
  let res;
30
30
  try {
31
31
  res = BigInt(arg);
32
- } catch (err) {
32
+ } catch {
33
33
  throw new Error(`Invalid value passed for ${name}. Could not parse ${arg} as a${kind === 'integer' ? 'n' : ''} ${kind}.`);
34
34
  }
35
35
  return res;