@aztec/cli 0.0.0-test.1 → 0.0.1-commit.023c3e5

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 (285) 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 +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 +7 -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 +13 -15
  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 -10
  31. package/dest/cmds/infrastructure/sequencers.d.ts +5 -6
  32. package/dest/cmds/infrastructure/sequencers.d.ts.map +1 -1
  33. package/dest/cmds/infrastructure/sequencers.js +38 -18
  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 +3 -2
  41. package/dest/cmds/l1/assume_proven_through.d.ts.map +1 -1
  42. package/dest/cmds/l1/assume_proven_through.js +10 -10
  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 +6 -5
  46. package/dest/cmds/l1/create_l1_account.d.ts +1 -1
  47. package/dest/cmds/l1/deploy_l1_contracts_cmd.d.ts +4 -0
  48. package/dest/cmds/l1/deploy_l1_contracts_cmd.d.ts.map +1 -0
  49. package/dest/cmds/l1/deploy_l1_contracts_cmd.js +81 -0
  50. package/dest/cmds/l1/deploy_new_rollup.d.ts +4 -3
  51. package/dest/cmds/l1/deploy_new_rollup.d.ts.map +1 -1
  52. package/dest/cmds/l1/deploy_new_rollup.js +18 -9
  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_addresses.js +5 -2
  56. package/dest/cmds/l1/get_l1_balance.d.ts +1 -1
  57. package/dest/cmds/l1/get_l1_balance.js +4 -2
  58. package/dest/cmds/l1/governance_utils.d.ts +5 -5
  59. package/dest/cmds/l1/governance_utils.d.ts.map +1 -1
  60. package/dest/cmds/l1/governance_utils.js +19 -17
  61. package/dest/cmds/l1/index.d.ts +1 -1
  62. package/dest/cmds/l1/index.d.ts.map +1 -1
  63. package/dest/cmds/l1/index.js +37 -44
  64. package/dest/cmds/l1/prover_stats.d.ts +1 -1
  65. package/dest/cmds/l1/prover_stats.d.ts.map +1 -1
  66. package/dest/cmds/l1/prover_stats.js +32 -30
  67. package/dest/cmds/l1/trigger_seed_snapshot.d.ts +6 -0
  68. package/dest/cmds/l1/trigger_seed_snapshot.d.ts.map +1 -0
  69. package/dest/cmds/l1/trigger_seed_snapshot.js +20 -0
  70. package/dest/cmds/l1/update_l1_validators.d.ts +21 -6
  71. package/dest/cmds/l1/update_l1_validators.d.ts.map +1 -1
  72. package/dest/cmds/l1/update_l1_validators.js +198 -103
  73. package/dest/cmds/misc/compute_selector.d.ts +1 -1
  74. package/dest/cmds/misc/example_contracts.d.ts +1 -1
  75. package/dest/cmds/misc/generate_bootnode_enr.d.ts +2 -2
  76. package/dest/cmds/misc/generate_bootnode_enr.d.ts.map +1 -1
  77. package/dest/cmds/misc/generate_bootnode_enr.js +2 -2
  78. package/dest/cmds/misc/generate_p2p_private_key.d.ts +1 -1
  79. package/dest/cmds/misc/generate_secret_and_hash.d.ts +2 -2
  80. package/dest/cmds/misc/generate_secret_and_hash.d.ts.map +1 -1
  81. package/dest/cmds/misc/generate_secret_and_hash.js +4 -4
  82. package/dest/cmds/misc/generate_secret_key.d.ts +2 -2
  83. package/dest/cmds/misc/generate_secret_key.d.ts.map +1 -1
  84. package/dest/cmds/misc/generate_secret_key.js +1 -1
  85. package/dest/cmds/misc/get_canonical_sponsored_fpc_address.d.ts +3 -0
  86. package/dest/cmds/misc/get_canonical_sponsored_fpc_address.d.ts.map +1 -0
  87. package/dest/cmds/misc/get_canonical_sponsored_fpc_address.js +4 -0
  88. package/dest/cmds/misc/index.d.ts +1 -1
  89. package/dest/cmds/misc/index.d.ts.map +1 -1
  90. package/dest/cmds/misc/index.js +8 -4
  91. package/dest/cmds/misc/update/common.d.ts +1 -1
  92. package/dest/cmds/misc/update/github.d.ts +1 -2
  93. package/dest/cmds/misc/update/github.d.ts.map +1 -1
  94. package/dest/cmds/misc/update/github.js +0 -1
  95. package/dest/cmds/misc/update/noir.d.ts +1 -1
  96. package/dest/cmds/misc/update/npm.d.ts +1 -1
  97. package/dest/cmds/misc/update/npm.js +1 -1
  98. package/dest/cmds/misc/update/utils.d.ts +1 -1
  99. package/dest/cmds/misc/update.d.ts +1 -1
  100. package/dest/cmds/misc/update.d.ts.map +1 -1
  101. package/dest/cmds/misc/update.js +2 -3
  102. package/dest/cmds/validator_keys/add.d.ts +5 -0
  103. package/dest/cmds/validator_keys/add.d.ts.map +1 -0
  104. package/dest/cmds/validator_keys/add.js +83 -0
  105. package/dest/cmds/validator_keys/generate_bls_keypair.d.ts +12 -0
  106. package/dest/cmds/validator_keys/generate_bls_keypair.d.ts.map +1 -0
  107. package/dest/cmds/validator_keys/generate_bls_keypair.js +27 -0
  108. package/dest/cmds/validator_keys/index.d.ts +4 -0
  109. package/dest/cmds/validator_keys/index.d.ts.map +1 -0
  110. package/dest/cmds/validator_keys/index.js +32 -0
  111. package/dest/cmds/validator_keys/new.d.ts +29 -0
  112. package/dest/cmds/validator_keys/new.d.ts.map +1 -0
  113. package/dest/cmds/validator_keys/new.js +134 -0
  114. package/dest/cmds/validator_keys/shared.d.ts +68 -0
  115. package/dest/cmds/validator_keys/shared.d.ts.map +1 -0
  116. package/dest/cmds/validator_keys/shared.js +274 -0
  117. package/dest/cmds/validator_keys/staker.d.ts +38 -0
  118. package/dest/cmds/validator_keys/staker.d.ts.map +1 -0
  119. package/dest/cmds/validator_keys/staker.js +210 -0
  120. package/dest/cmds/validator_keys/utils.d.ts +25 -0
  121. package/dest/cmds/validator_keys/utils.d.ts.map +1 -0
  122. package/dest/cmds/validator_keys/utils.js +52 -0
  123. package/dest/config/cached_fetch.d.ts +18 -0
  124. package/dest/config/cached_fetch.d.ts.map +1 -0
  125. package/dest/config/cached_fetch.js +54 -0
  126. package/dest/config/chain_l2_config.d.ts +14 -0
  127. package/dest/config/chain_l2_config.d.ts.map +1 -0
  128. package/dest/config/chain_l2_config.js +45 -0
  129. package/dest/config/enrich_env.d.ts +4 -0
  130. package/dest/config/enrich_env.d.ts.map +1 -0
  131. package/dest/config/enrich_env.js +12 -0
  132. package/dest/config/generated/networks.d.ts +205 -0
  133. package/dest/config/generated/networks.d.ts.map +1 -0
  134. package/dest/config/generated/networks.js +206 -0
  135. package/dest/config/get_l1_config.d.ts +9 -0
  136. package/dest/config/get_l1_config.d.ts.map +1 -0
  137. package/dest/config/get_l1_config.js +24 -0
  138. package/dest/config/index.d.ts +5 -0
  139. package/dest/config/index.d.ts.map +1 -0
  140. package/dest/config/index.js +4 -0
  141. package/dest/config/network_config.d.ts +22 -0
  142. package/dest/config/network_config.d.ts.map +1 -0
  143. package/dest/config/network_config.js +115 -0
  144. package/dest/utils/aztec.d.ts +15 -26
  145. package/dest/utils/aztec.d.ts.map +1 -1
  146. package/dest/utils/aztec.js +56 -72
  147. package/dest/utils/commands.d.ts +22 -13
  148. package/dest/utils/commands.d.ts.map +1 -1
  149. package/dest/utils/commands.js +43 -16
  150. package/dest/utils/encoding.d.ts +1 -1
  151. package/dest/utils/encoding.js +2 -2
  152. package/dest/utils/github.d.ts +1 -2
  153. package/dest/utils/github.d.ts.map +1 -1
  154. package/dest/utils/github.js +0 -1
  155. package/dest/utils/index.d.ts +2 -1
  156. package/dest/utils/index.d.ts.map +1 -1
  157. package/dest/utils/index.js +1 -0
  158. package/dest/utils/inspect.d.ts +5 -11
  159. package/dest/utils/inspect.d.ts.map +1 -1
  160. package/dest/utils/inspect.js +23 -110
  161. package/dest/utils/setup_contracts.d.ts +3 -0
  162. package/dest/utils/setup_contracts.d.ts.map +1 -0
  163. package/dest/utils/setup_contracts.js +16 -0
  164. package/package.json +61 -37
  165. package/public_include_metric_prefixes.json +1 -0
  166. package/src/cmds/aztec_node/block_number.ts +9 -0
  167. package/src/cmds/aztec_node/get_block.ts +11 -0
  168. package/src/cmds/aztec_node/get_current_min_fee.ts +9 -0
  169. package/src/cmds/aztec_node/get_l1_to_l2_message_witness.ts +27 -0
  170. package/src/cmds/{pxe → aztec_node}/get_logs.ts +11 -9
  171. package/src/cmds/{pxe → aztec_node}/get_node_info.ts +15 -23
  172. package/src/cmds/aztec_node/index.ts +87 -0
  173. package/src/cmds/contracts/inspect_contract.ts +20 -17
  174. package/src/cmds/infrastructure/index.ts +8 -11
  175. package/src/cmds/infrastructure/sequencers.ts +41 -22
  176. package/src/cmds/infrastructure/setup_l2_contract.ts +13 -25
  177. package/src/cmds/l1/advance_epoch.ts +7 -5
  178. package/src/cmds/l1/assume_proven_through.ts +11 -10
  179. package/src/cmds/l1/bridge_erc20.ts +8 -4
  180. package/src/cmds/l1/deploy_l1_contracts_cmd.ts +107 -0
  181. package/src/cmds/l1/deploy_new_rollup.ts +24 -15
  182. package/src/cmds/l1/get_l1_addresses.ts +5 -3
  183. package/src/cmds/l1/get_l1_balance.ts +2 -2
  184. package/src/cmds/l1/governance_utils.ts +20 -24
  185. package/src/cmds/l1/index.ts +77 -113
  186. package/src/cmds/l1/prover_stats.ts +42 -31
  187. package/src/cmds/l1/trigger_seed_snapshot.ts +32 -0
  188. package/src/cmds/l1/update_l1_validators.ts +218 -97
  189. package/src/cmds/misc/generate_bootnode_enr.ts +3 -2
  190. package/src/cmds/misc/generate_secret_and_hash.ts +4 -4
  191. package/src/cmds/misc/generate_secret_key.ts +1 -1
  192. package/src/cmds/misc/get_canonical_sponsored_fpc_address.ts +7 -0
  193. package/src/cmds/misc/index.ts +14 -5
  194. package/src/cmds/misc/update/github.ts +0 -1
  195. package/src/cmds/misc/update/npm.ts +1 -1
  196. package/src/cmds/misc/update.ts +1 -7
  197. package/src/cmds/validator_keys/add.ts +123 -0
  198. package/src/cmds/validator_keys/generate_bls_keypair.ts +34 -0
  199. package/src/cmds/validator_keys/index.ts +142 -0
  200. package/src/cmds/validator_keys/new.ts +207 -0
  201. package/src/cmds/validator_keys/shared.ts +326 -0
  202. package/src/cmds/validator_keys/staker.ts +301 -0
  203. package/src/cmds/validator_keys/utils.ts +81 -0
  204. package/src/config/cached_fetch.ts +67 -0
  205. package/src/config/chain_l2_config.ts +57 -0
  206. package/src/config/enrich_env.ts +15 -0
  207. package/src/config/generated/networks.ts +210 -0
  208. package/src/config/get_l1_config.ts +31 -0
  209. package/src/config/index.ts +4 -0
  210. package/src/config/network_config.ts +147 -0
  211. package/src/utils/aztec.ts +74 -120
  212. package/src/utils/commands.ts +57 -20
  213. package/src/utils/encoding.ts +2 -2
  214. package/src/utils/github.ts +0 -1
  215. package/src/utils/index.ts +1 -0
  216. package/src/utils/inspect.ts +28 -124
  217. package/src/utils/setup_contracts.ts +19 -0
  218. package/dest/cmds/devnet/bootstrap_network.d.ts +0 -3
  219. package/dest/cmds/devnet/bootstrap_network.d.ts.map +0 -1
  220. package/dest/cmds/devnet/bootstrap_network.js +0 -196
  221. package/dest/cmds/devnet/faucet.d.ts +0 -4
  222. package/dest/cmds/devnet/faucet.d.ts.map +0 -1
  223. package/dest/cmds/devnet/faucet.js +0 -26
  224. package/dest/cmds/devnet/index.d.ts +0 -4
  225. package/dest/cmds/devnet/index.d.ts.map +0 -1
  226. package/dest/cmds/devnet/index.js +0 -14
  227. package/dest/cmds/l1/deploy_l1_contracts.d.ts +0 -4
  228. package/dest/cmds/l1/deploy_l1_contracts.d.ts.map +0 -1
  229. package/dest/cmds/l1/deploy_l1_contracts.js +0 -29
  230. package/dest/cmds/l1/deploy_l1_verifier.d.ts +0 -5
  231. package/dest/cmds/l1/deploy_l1_verifier.d.ts.map +0 -1
  232. package/dest/cmds/l1/deploy_l1_verifier.js +0 -54
  233. package/dest/cmds/misc/setup_contracts.d.ts +0 -7
  234. package/dest/cmds/misc/setup_contracts.d.ts.map +0 -1
  235. package/dest/cmds/misc/setup_contracts.js +0 -27
  236. package/dest/cmds/pxe/add_contract.d.ts +0 -5
  237. package/dest/cmds/pxe/add_contract.d.ts.map +0 -1
  238. package/dest/cmds/pxe/add_contract.js +0 -29
  239. package/dest/cmds/pxe/block_number.d.ts +0 -3
  240. package/dest/cmds/pxe/block_number.d.ts.map +0 -1
  241. package/dest/cmds/pxe/block_number.js +0 -10
  242. package/dest/cmds/pxe/get_account.d.ts +0 -4
  243. package/dest/cmds/pxe/get_account.d.ts.map +0 -1
  244. package/dest/cmds/pxe/get_account.js +0 -10
  245. package/dest/cmds/pxe/get_accounts.d.ts +0 -3
  246. package/dest/cmds/pxe/get_accounts.d.ts.map +0 -1
  247. package/dest/cmds/pxe/get_accounts.js +0 -25
  248. package/dest/cmds/pxe/get_block.d.ts +0 -3
  249. package/dest/cmds/pxe/get_block.d.ts.map +0 -1
  250. package/dest/cmds/pxe/get_block.js +0 -9
  251. package/dest/cmds/pxe/get_contract_data.d.ts +0 -4
  252. package/dest/cmds/pxe/get_contract_data.d.ts.map +0 -1
  253. package/dest/cmds/pxe/get_contract_data.js +0 -31
  254. package/dest/cmds/pxe/get_current_base_fee.d.ts +0 -3
  255. package/dest/cmds/pxe/get_current_base_fee.d.ts.map +0 -1
  256. package/dest/cmds/pxe/get_current_base_fee.js +0 -7
  257. package/dest/cmds/pxe/get_l1_to_l2_message_witness.d.ts +0 -4
  258. package/dest/cmds/pxe/get_l1_to_l2_message_witness.d.ts.map +0 -1
  259. package/dest/cmds/pxe/get_l1_to_l2_message_witness.js +0 -11
  260. package/dest/cmds/pxe/get_logs.d.ts +0 -4
  261. package/dest/cmds/pxe/get_logs.d.ts.map +0 -1
  262. package/dest/cmds/pxe/get_node_info.d.ts +0 -3
  263. package/dest/cmds/pxe/get_node_info.d.ts.map +0 -1
  264. package/dest/cmds/pxe/get_pxe_info.d.ts +0 -3
  265. package/dest/cmds/pxe/get_pxe_info.d.ts.map +0 -1
  266. package/dest/cmds/pxe/get_pxe_info.js +0 -11
  267. package/dest/cmds/pxe/index.d.ts +0 -4
  268. package/dest/cmds/pxe/index.d.ts.map +0 -1
  269. package/dest/cmds/pxe/index.js +0 -55
  270. package/src/cmds/devnet/bootstrap_network.ts +0 -318
  271. package/src/cmds/devnet/faucet.ts +0 -33
  272. package/src/cmds/devnet/index.ts +0 -60
  273. package/src/cmds/l1/deploy_l1_contracts.ts +0 -65
  274. package/src/cmds/l1/deploy_l1_verifier.ts +0 -105
  275. package/src/cmds/misc/setup_contracts.ts +0 -40
  276. package/src/cmds/pxe/add_contract.ts +0 -41
  277. package/src/cmds/pxe/block_number.ts +0 -9
  278. package/src/cmds/pxe/get_account.ts +0 -16
  279. package/src/cmds/pxe/get_accounts.ts +0 -35
  280. package/src/cmds/pxe/get_block.ts +0 -10
  281. package/src/cmds/pxe/get_contract_data.ts +0 -51
  282. package/src/cmds/pxe/get_current_base_fee.ts +0 -9
  283. package/src/cmds/pxe/get_l1_to_l2_message_witness.ts +0 -25
  284. package/src/cmds/pxe/get_pxe_info.ts +0 -13
  285. package/src/cmds/pxe/index.ts +0 -170
@@ -8,6 +8,13 @@ export interface RollupCommandArgs {
8
8
  rollupAddress: EthAddress;
9
9
  withdrawerAddress?: EthAddress;
10
10
  }
11
+ export interface StakingAssetHandlerCommandArgs {
12
+ rpcUrls: string[];
13
+ chainId: number;
14
+ privateKey?: string;
15
+ mnemonic?: string;
16
+ stakingAssetHandlerAddress: EthAddress;
17
+ }
11
18
  export interface LoggerArgs {
12
19
  log: LogFn;
13
20
  debugLogger: Logger;
@@ -16,15 +23,23 @@ export declare function generateL1Account(): {
16
23
  privateKey: `0x${string}`;
17
24
  address: `0x${string}`;
18
25
  };
19
- export declare function addL1Validator({ rpcUrls, chainId, privateKey, mnemonic, validatorAddress, rollupAddress, withdrawerAddress, log, debugLogger, }: RollupCommandArgs & LoggerArgs & {
20
- validatorAddress: EthAddress;
26
+ export declare function addL1Validator({ rpcUrls, chainId, privateKey, mnemonic, attesterAddress, withdrawerAddress, stakingAssetHandlerAddress, proofParams, blsSecretKey, log, debugLogger }: StakingAssetHandlerCommandArgs & LoggerArgs & {
27
+ blsSecretKey: bigint;
28
+ attesterAddress: EthAddress;
29
+ withdrawerAddress: EthAddress;
30
+ proofParams: Buffer;
31
+ }): Promise<void>;
32
+ export declare function addL1ValidatorViaRollup({ rpcUrls, chainId, privateKey, mnemonic, attesterAddress, withdrawerAddress, blsSecretKey, moveWithLatestRollup, rollupAddress, log, debugLogger }: RollupCommandArgs & LoggerArgs & {
33
+ blsSecretKey: bigint;
34
+ attesterAddress: EthAddress;
35
+ moveWithLatestRollup: boolean;
21
36
  }): Promise<void>;
22
- export declare function removeL1Validator({ rpcUrls, chainId, privateKey, mnemonic, validatorAddress, rollupAddress, log, debugLogger, }: RollupCommandArgs & LoggerArgs & {
37
+ export declare function removeL1Validator({ rpcUrls, chainId, privateKey, mnemonic, validatorAddress, rollupAddress, log, debugLogger }: RollupCommandArgs & LoggerArgs & {
23
38
  validatorAddress: EthAddress;
24
39
  }): Promise<void>;
25
- export declare function pruneRollup({ rpcUrls, chainId, privateKey, mnemonic, rollupAddress, log, debugLogger, }: RollupCommandArgs & LoggerArgs): Promise<void>;
26
- export declare function fastForwardEpochs({ rpcUrls, chainId, rollupAddress, numEpochs, log, debugLogger, }: RollupCommandArgs & LoggerArgs & {
40
+ export declare function pruneRollup({ rpcUrls, chainId, privateKey, mnemonic, rollupAddress, log, debugLogger }: RollupCommandArgs & LoggerArgs): Promise<void>;
41
+ export declare function fastForwardEpochs({ rpcUrls, chainId, rollupAddress, numEpochs, log, debugLogger }: RollupCommandArgs & LoggerArgs & {
27
42
  numEpochs: bigint;
28
43
  }): Promise<void>;
29
44
  export declare function debugRollup({ rpcUrls, chainId, rollupAddress, log }: RollupCommandArgs & LoggerArgs): Promise<void>;
30
- //# sourceMappingURL=update_l1_validators.d.ts.map
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlX2wxX3ZhbGlkYXRvcnMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbWRzL2wxL3VwZGF0ZV9sMV92YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVEzRCxNQUFNLFdBQVcsaUJBQWlCO0lBQ2hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNsQixPQUFPLEVBQUUsTUFBTSxDQUFDO0lBQ2hCLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNwQixRQUFRLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDbEIsYUFBYSxFQUFFLFVBQVUsQ0FBQztJQUMxQixpQkFBaUIsQ0FBQyxFQUFFLFVBQVUsQ0FBQztDQUNoQztBQUVELE1BQU0sV0FBVyw4QkFBOEI7SUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ2xCLE9BQU8sRUFBRSxNQUFNLENBQUM7SUFDaEIsVUFBVSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3BCLFFBQVEsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNsQiwwQkFBMEIsRUFBRSxVQUFVLENBQUM7Q0FDeEM7QUFFRCxNQUFNLFdBQVcsVUFBVTtJQUN6QixHQUFHLEVBQUUsS0FBSyxDQUFDO0lBQ1gsV0FBVyxFQUFFLE1BQU0sQ0FBQztDQUNyQjtBQUVELHdCQUFnQixpQkFBaUI7OztFQVFoQztBQUVELHdCQUFzQixjQUFjLENBQUMsRUFDbkMsT0FBTyxFQUNQLE9BQU8sRUFDUCxVQUFVLEVBQ1YsUUFBUSxFQUNSLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsMEJBQTBCLEVBQzFCLFdBQVcsRUFDWCxZQUFZLEVBQ1osR0FBRyxFQUNILFdBQVcsRUFDWixFQUFFLDhCQUE4QixHQUMvQixVQUFVLEdBQUc7SUFDWCxZQUFZLEVBQUUsTUFBTSxDQUFDO0lBQ3JCLGVBQWUsRUFBRSxVQUFVLENBQUM7SUFDNUIsaUJBQWlCLEVBQUUsVUFBVSxDQUFDO0lBQzlCLFdBQVcsRUFBRSxNQUFNLENBQUM7Q0FDckIsaUJBd0ZGO0FBRUQsd0JBQXNCLHVCQUF1QixDQUFDLEVBQzVDLE9BQU8sRUFDUCxPQUFPLEVBQ1AsVUFBVSxFQUNWLFFBQVEsRUFDUixlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsYUFBYSxFQUNiLEdBQUcsRUFDSCxXQUFXLEVBQ1osRUFBRSxpQkFBaUIsR0FDbEIsVUFBVSxHQUFHO0lBQ1gsWUFBWSxFQUFFLE1BQU0sQ0FBQztJQUNyQixlQUFlLEVBQUUsVUFBVSxDQUFDO0lBQzVCLG9CQUFvQixFQUFFLE9BQU8sQ0FBQztDQUMvQixpQkF1REY7QUFFRCx3QkFBc0IsaUJBQWlCLENBQUMsRUFDdEMsT0FBTyxFQUNQLE9BQU8sRUFDUCxVQUFVLEVBQ1YsUUFBUSxFQUNSLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsR0FBRyxFQUNILFdBQVcsRUFDWixFQUFFLGlCQUFpQixHQUFHLFVBQVUsR0FBRztJQUFFLGdCQUFnQixFQUFFLFVBQVUsQ0FBQTtDQUFFLGlCQWlCbkU7QUFFRCx3QkFBc0IsV0FBVyxDQUFDLEVBQ2hDLE9BQU8sRUFDUCxPQUFPLEVBQ1AsVUFBVSxFQUNWLFFBQVEsRUFDUixhQUFhLEVBQ2IsR0FBRyxFQUNILFdBQVcsRUFDWixFQUFFLGlCQUFpQixHQUFHLFVBQVUsaUJBZ0JoQztBQUVELHdCQUFzQixpQkFBaUIsQ0FBQyxFQUN0QyxPQUFPLEVBQ1AsT0FBTyxFQUNQLGFBQWEsRUFDYixTQUFTLEVBQ1QsR0FBRyxFQUNILFdBQVcsRUFDWixFQUFFLGlCQUFpQixHQUFHLFVBQVUsR0FBRztJQUFFLFNBQVMsRUFBRSxNQUFNLENBQUE7Q0FBRSxpQkF5QnhEO0FBRUQsd0JBQXNCLFdBQVcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxFQUFFLGlCQUFpQixHQUFHLFVBQVUsaUJBd0J6RyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"update_l1_validators.d.ts","sourceRoot":"","sources":["../../../src/cmds/l1/update_l1_validators.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAM3D,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,UAAU,CAAC;IAC1B,iBAAiB,CAAC,EAAE,UAAU,CAAC;CAChC;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,KAAK,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,iBAAiB;;;EAQhC;AAED,wBAAsB,cAAc,CAAC,EACnC,OAAO,EACP,OAAO,EACP,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,GAAG,EACH,WAAW,GACZ,EAAE,iBAAiB,GAAG,UAAU,GAAG;IAAE,gBAAgB,EAAE,UAAU,CAAA;CAAE,iBA+CnE;AAED,wBAAsB,iBAAiB,CAAC,EACtC,OAAO,EACP,OAAO,EACP,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,GAAG,EACH,WAAW,GACZ,EAAE,iBAAiB,GAAG,UAAU,GAAG;IAAE,gBAAgB,EAAE,UAAU,CAAA;CAAE,iBAcnE;AAED,wBAAsB,WAAW,CAAC,EAChC,OAAO,EACP,OAAO,EACP,UAAU,EACV,QAAQ,EACR,aAAa,EACb,GAAG,EACH,WAAW,GACZ,EAAE,iBAAiB,GAAG,UAAU,iBAchC;AAED,wBAAsB,iBAAiB,CAAC,EACtC,OAAO,EACP,OAAO,EACP,aAAa,EACb,SAAS,EACT,GAAG,EACH,WAAW,GACZ,EAAE,iBAAiB,GAAG,UAAU,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,iBAyBxD;AAED,wBAAsB,WAAW,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,iBAAiB,GAAG,UAAU,iBA4BzG"}
1
+ {"version":3,"file":"update_l1_validators.d.ts","sourceRoot":"","sources":["../../../src/cmds/l1/update_l1_validators.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAQ3D,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,UAAU,CAAC;IAC1B,iBAAiB,CAAC,EAAE,UAAU,CAAC;CAChC;AAED,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0BAA0B,EAAE,UAAU,CAAC;CACxC;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,KAAK,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,iBAAiB;;;EAQhC;AAED,wBAAsB,cAAc,CAAC,EACnC,OAAO,EACP,OAAO,EACP,UAAU,EACV,QAAQ,EACR,eAAe,EACf,iBAAiB,EACjB,0BAA0B,EAC1B,WAAW,EACX,YAAY,EACZ,GAAG,EACH,WAAW,EACZ,EAAE,8BAA8B,GAC/B,UAAU,GAAG;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,UAAU,CAAC;IAC5B,iBAAiB,EAAE,UAAU,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB,iBAwFF;AAED,wBAAsB,uBAAuB,CAAC,EAC5C,OAAO,EACP,OAAO,EACP,UAAU,EACV,QAAQ,EACR,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,GAAG,EACH,WAAW,EACZ,EAAE,iBAAiB,GAClB,UAAU,GAAG;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,UAAU,CAAC;IAC5B,oBAAoB,EAAE,OAAO,CAAC;CAC/B,iBAuDF;AAED,wBAAsB,iBAAiB,CAAC,EACtC,OAAO,EACP,OAAO,EACP,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,GAAG,EACH,WAAW,EACZ,EAAE,iBAAiB,GAAG,UAAU,GAAG;IAAE,gBAAgB,EAAE,UAAU,CAAA;CAAE,iBAiBnE;AAED,wBAAsB,WAAW,CAAC,EAChC,OAAO,EACP,OAAO,EACP,UAAU,EACV,QAAQ,EACR,aAAa,EACb,GAAG,EACH,WAAW,EACZ,EAAE,iBAAiB,GAAG,UAAU,iBAgBhC;AAED,wBAAsB,iBAAiB,CAAC,EACtC,OAAO,EACP,OAAO,EACP,aAAa,EACb,SAAS,EACT,GAAG,EACH,WAAW,EACZ,EAAE,iBAAiB,GAAG,UAAU,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,iBAyBxD;AAED,wBAAsB,WAAW,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,iBAAiB,GAAG,UAAU,iBAwBzG"}
@@ -1,6 +1,13 @@
1
- import { EthCheatCodes, createEthereumChain, getExpectedAddress, getL1ContractsConfigEnvVars, isAnvilTestChain } from '@aztec/ethereum';
2
- import { ForwarderAbi, ForwarderBytecode, RollupAbi, TestERC20Abi } from '@aztec/l1-artifacts';
3
- import { createPublicClient, createWalletClient, fallback, getContract, http } from 'viem';
1
+ import { createEthereumChain, isAnvilTestChain } from '@aztec/ethereum/chain';
2
+ import { createExtendedL1Client, getPublicClient } from '@aztec/ethereum/client';
3
+ import { getL1ContractsConfigEnvVars } from '@aztec/ethereum/config';
4
+ import { GSEContract, RollupContract } from '@aztec/ethereum/contracts';
5
+ import { createL1TxUtilsFromViemWallet } from '@aztec/ethereum/l1-tx-utils';
6
+ import { EthCheatCodes } from '@aztec/ethereum/test';
7
+ import { DateProvider } from '@aztec/foundation/timer';
8
+ import { RollupAbi, StakingAssetHandlerAbi, TestERC20Abi } from '@aztec/l1-artifacts';
9
+ import { ZkPassportProofParams } from '@aztec/stdlib/zkpassport';
10
+ import { encodeFunctionData, formatEther, getContract, maxUint256 } from 'viem';
4
11
  import { generatePrivateKey, mnemonicToAccount, privateKeyToAccount } from 'viem/accounts';
5
12
  export function generateL1Account() {
6
13
  const privateKey = generatePrivateKey();
@@ -11,106 +18,207 @@ export function generateL1Account() {
11
18
  address: account.address
12
19
  };
13
20
  }
14
- export async function addL1Validator({ rpcUrls, chainId, privateKey, mnemonic, validatorAddress, rollupAddress, withdrawerAddress, log, debugLogger }) {
15
- const config = getL1ContractsConfigEnvVars();
21
+ export async function addL1Validator({ rpcUrls, chainId, privateKey, mnemonic, attesterAddress, withdrawerAddress, stakingAssetHandlerAddress, proofParams, blsSecretKey, log, debugLogger }) {
16
22
  const dualLog = makeDualLog(log, debugLogger);
17
- const publicClient = getPublicClient(rpcUrls, chainId);
18
- const walletClient = getWalletClient(rpcUrls, chainId, privateKey, mnemonic);
23
+ const account = getAccount(privateKey, mnemonic);
24
+ const chain = createEthereumChain(rpcUrls, chainId);
25
+ const l1Client = createExtendedL1Client(rpcUrls, account, chain.chainInfo);
26
+ const stakingAssetHandler = getContract({
27
+ address: stakingAssetHandlerAddress.toString(),
28
+ abi: StakingAssetHandlerAbi,
29
+ client: l1Client
30
+ });
31
+ const rollupAddress = await stakingAssetHandler.read.getRollup();
32
+ dualLog(`Adding validator ${attesterAddress} to rollup ${rollupAddress.toString()}`);
19
33
  const rollup = getContract({
20
- address: rollupAddress.toString(),
34
+ address: rollupAddress,
21
35
  abi: RollupAbi,
22
- client: walletClient
23
- });
24
- const stakingAsset = getContract({
25
- address: await rollup.read.getStakingAsset(),
26
- abi: TestERC20Abi,
27
- client: walletClient
28
- });
29
- await Promise.all([
30
- await stakingAsset.write.mint([
31
- walletClient.account.address,
32
- config.minimumStake
33
- ], {}),
34
- await stakingAsset.write.approve([
35
- rollupAddress.toString(),
36
- config.minimumStake
37
- ], {})
38
- ].map((txHash)=>publicClient.waitForTransactionReceipt({
39
- hash: txHash
40
- })));
41
- dualLog(`Adding validator ${validatorAddress.toString()} to rollup ${rollupAddress.toString()}`);
42
- const txHash = await rollup.write.deposit([
43
- validatorAddress.toString(),
44
- // TODO(#11451): custom forwarders
45
- getExpectedAddress(ForwarderAbi, ForwarderBytecode, [
46
- validatorAddress.toString()
47
- ], validatorAddress.toString()).address,
48
- withdrawerAddress?.toString() ?? validatorAddress.toString(),
49
- config.minimumStake
50
- ]);
51
- dualLog(`Transaction hash: ${txHash}`);
52
- await publicClient.waitForTransactionReceipt({
53
- hash: txHash
36
+ client: l1Client
37
+ });
38
+ const gseAddress = await rollup.read.getGSE();
39
+ const gse = new GSEContract(l1Client, gseAddress);
40
+ const registrationTuple = await gse.makeRegistrationTuple(blsSecretKey);
41
+ const l1TxUtils = createL1TxUtilsFromViemWallet(l1Client, {
42
+ logger: debugLogger
43
+ });
44
+ const proofParamsObj = ZkPassportProofParams.fromBuffer(proofParams);
45
+ // Step 1: Claim STK tokens from the faucet
46
+ dualLog(`Claiming STK tokens from faucet`);
47
+ const { receipt: claimReceipt } = await l1TxUtils.sendAndMonitorTransaction({
48
+ to: stakingAssetHandlerAddress.toString(),
49
+ data: encodeFunctionData({
50
+ abi: StakingAssetHandlerAbi,
51
+ functionName: 'claim',
52
+ args: [
53
+ proofParamsObj.toViem()
54
+ ]
55
+ }),
56
+ abi: StakingAssetHandlerAbi
57
+ });
58
+ dualLog(`Claim transaction hash: ${claimReceipt.transactionHash}`);
59
+ await l1Client.waitForTransactionReceipt({
60
+ hash: claimReceipt.transactionHash
61
+ });
62
+ // Step 2: Approve the rollup to spend STK tokens
63
+ const stakingAssetAddress = await stakingAssetHandler.read.STAKING_ASSET();
64
+ dualLog(`Approving rollup to spend STK tokens`);
65
+ const { receipt: approveReceipt } = await l1TxUtils.sendAndMonitorTransaction({
66
+ to: stakingAssetAddress,
67
+ data: encodeFunctionData({
68
+ abi: TestERC20Abi,
69
+ functionName: 'approve',
70
+ args: [
71
+ rollupAddress,
72
+ maxUint256
73
+ ]
74
+ }),
75
+ abi: TestERC20Abi
76
+ });
77
+ await l1Client.waitForTransactionReceipt({
78
+ hash: approveReceipt.transactionHash
79
+ });
80
+ // Step 3: Deposit into the rollup to register as a validator
81
+ dualLog(`Depositing into rollup to register validator`);
82
+ const { receipt } = await l1TxUtils.sendAndMonitorTransaction({
83
+ to: rollupAddress,
84
+ data: encodeFunctionData({
85
+ abi: RollupAbi,
86
+ functionName: 'deposit',
87
+ args: [
88
+ attesterAddress.toString(),
89
+ withdrawerAddress.toString(),
90
+ registrationTuple.publicKeyInG1,
91
+ registrationTuple.publicKeyInG2,
92
+ registrationTuple.proofOfPossession,
93
+ false
94
+ ]
95
+ }),
96
+ abi: RollupAbi
97
+ });
98
+ dualLog(`Deposit transaction hash: ${receipt.transactionHash}`);
99
+ await l1Client.waitForTransactionReceipt({
100
+ hash: receipt.transactionHash
54
101
  });
55
102
  if (isAnvilTestChain(chainId)) {
56
103
  dualLog(`Funding validator on L1`);
57
- const cheatCodes = new EthCheatCodes(rpcUrls, debugLogger);
58
- await cheatCodes.setBalance(validatorAddress, 10n ** 20n);
104
+ const cheatCodes = new EthCheatCodes(rpcUrls, new DateProvider(), debugLogger);
105
+ await cheatCodes.setBalance(attesterAddress, 10n ** 20n);
59
106
  } else {
60
- const balance = await publicClient.getBalance({
61
- address: validatorAddress.toString()
107
+ const balance = await l1Client.getBalance({
108
+ address: attesterAddress.toString()
62
109
  });
63
- const balanceInEth = Number(balance) / 10 ** 18;
64
- dualLog(`Validator balance: ${balanceInEth.toFixed(6)} ETH`);
65
- if (balanceInEth === 0) {
66
- dualLog(`WARNING: Validator has no balance. Remember to fund it!`);
110
+ dualLog(`Validator balance: ${formatEther(balance)} ETH`);
111
+ if (balance === 0n) {
112
+ dualLog(`WARNING: Proposer has no balance. Remember to fund it!`);
67
113
  }
68
114
  }
69
115
  }
70
- export async function removeL1Validator({ rpcUrls, chainId, privateKey, mnemonic, validatorAddress, rollupAddress, log, debugLogger }) {
116
+ export async function addL1ValidatorViaRollup({ rpcUrls, chainId, privateKey, mnemonic, attesterAddress, withdrawerAddress, blsSecretKey, moveWithLatestRollup, rollupAddress, log, debugLogger }) {
71
117
  const dualLog = makeDualLog(log, debugLogger);
72
- const publicClient = getPublicClient(rpcUrls, chainId);
73
- const walletClient = getWalletClient(rpcUrls, chainId, privateKey, mnemonic);
118
+ const account = getAccount(privateKey, mnemonic);
119
+ const chain = createEthereumChain(rpcUrls, chainId);
120
+ const l1Client = createExtendedL1Client(rpcUrls, account, chain.chainInfo);
121
+ dualLog(`Adding validator ${attesterAddress} to rollup ${rollupAddress.toString()} via direct deposit`);
122
+ if (!withdrawerAddress) {
123
+ throw new Error(`Withdrawer address required`);
124
+ }
74
125
  const rollup = getContract({
75
126
  address: rollupAddress.toString(),
76
127
  abi: RollupAbi,
77
- client: walletClient
128
+ client: l1Client
129
+ });
130
+ const gseAddress = await rollup.read.getGSE();
131
+ const gse = new GSEContract(l1Client, gseAddress);
132
+ const registrationTuple = await gse.makeRegistrationTuple(blsSecretKey);
133
+ const l1TxUtils = createL1TxUtilsFromViemWallet(l1Client, {
134
+ logger: debugLogger
135
+ });
136
+ const { receipt } = await l1TxUtils.sendAndMonitorTransaction({
137
+ to: rollupAddress.toString(),
138
+ data: encodeFunctionData({
139
+ abi: RollupAbi,
140
+ functionName: 'deposit',
141
+ args: [
142
+ attesterAddress.toString(),
143
+ withdrawerAddress.toString(),
144
+ registrationTuple.publicKeyInG1,
145
+ registrationTuple.publicKeyInG2,
146
+ registrationTuple.proofOfPossession,
147
+ moveWithLatestRollup
148
+ ]
149
+ }),
150
+ abi: StakingAssetHandlerAbi
151
+ });
152
+ dualLog(`Transaction hash: ${receipt.transactionHash}`);
153
+ await l1Client.waitForTransactionReceipt({
154
+ hash: receipt.transactionHash
155
+ });
156
+ if (isAnvilTestChain(chainId)) {
157
+ dualLog(`Funding validator on L1`);
158
+ const cheatCodes = new EthCheatCodes(rpcUrls, new DateProvider(), debugLogger);
159
+ await cheatCodes.setBalance(attesterAddress, 10n ** 20n);
160
+ } else {
161
+ const balance = await l1Client.getBalance({
162
+ address: attesterAddress.toString()
163
+ });
164
+ dualLog(`Validator balance: ${formatEther(balance)} ETH`);
165
+ if (balance === 0n) {
166
+ dualLog(`WARNING: Proposer has no balance. Remember to fund it!`);
167
+ }
168
+ }
169
+ }
170
+ export async function removeL1Validator({ rpcUrls, chainId, privateKey, mnemonic, validatorAddress, rollupAddress, log, debugLogger }) {
171
+ const dualLog = makeDualLog(log, debugLogger);
172
+ const account = getAccount(privateKey, mnemonic);
173
+ const chain = createEthereumChain(rpcUrls, chainId);
174
+ const l1Client = createExtendedL1Client(rpcUrls, account, chain.chainInfo);
175
+ const l1TxUtils = createL1TxUtilsFromViemWallet(l1Client, {
176
+ logger: debugLogger
78
177
  });
79
178
  dualLog(`Removing validator ${validatorAddress.toString()} from rollup ${rollupAddress.toString()}`);
80
- const txHash = await rollup.write.initiateWithdraw([
81
- validatorAddress.toString(),
82
- validatorAddress.toString()
83
- ]);
84
- dualLog(`Transaction hash: ${txHash}`);
85
- await publicClient.waitForTransactionReceipt({
86
- hash: txHash
179
+ const { receipt } = await l1TxUtils.sendAndMonitorTransaction({
180
+ to: rollupAddress.toString(),
181
+ data: encodeFunctionData({
182
+ abi: RollupAbi,
183
+ functionName: 'initiateWithdraw',
184
+ args: [
185
+ validatorAddress.toString(),
186
+ validatorAddress.toString()
187
+ ]
188
+ })
87
189
  });
190
+ dualLog(`Transaction hash: ${receipt.transactionHash}`);
88
191
  }
89
192
  export async function pruneRollup({ rpcUrls, chainId, privateKey, mnemonic, rollupAddress, log, debugLogger }) {
90
193
  const dualLog = makeDualLog(log, debugLogger);
91
- const publicClient = getPublicClient(rpcUrls, chainId);
92
- const walletClient = getWalletClient(rpcUrls, chainId, privateKey, mnemonic);
93
- const rollup = getContract({
94
- address: rollupAddress.toString(),
95
- abi: RollupAbi,
96
- client: walletClient
194
+ const account = getAccount(privateKey, mnemonic);
195
+ const chain = createEthereumChain(rpcUrls, chainId);
196
+ const l1Client = createExtendedL1Client(rpcUrls, account, chain.chainInfo);
197
+ const l1TxUtils = createL1TxUtilsFromViemWallet(l1Client, {
198
+ logger: debugLogger
97
199
  });
98
200
  dualLog(`Trying prune`);
99
- const txHash = await rollup.write.prune();
100
- dualLog(`Transaction hash: ${txHash}`);
101
- await publicClient.waitForTransactionReceipt({
102
- hash: txHash
201
+ const { receipt } = await l1TxUtils.sendAndMonitorTransaction({
202
+ to: rollupAddress.toString(),
203
+ data: encodeFunctionData({
204
+ abi: RollupAbi,
205
+ functionName: 'prune'
206
+ })
103
207
  });
208
+ dualLog(`Transaction hash: ${receipt.transactionHash}`);
104
209
  }
105
210
  export async function fastForwardEpochs({ rpcUrls, chainId, rollupAddress, numEpochs, log, debugLogger }) {
106
211
  const dualLog = makeDualLog(log, debugLogger);
107
- const publicClient = getPublicClient(rpcUrls, chainId);
212
+ const publicClient = getPublicClient({
213
+ l1RpcUrls: rpcUrls,
214
+ l1ChainId: chainId
215
+ });
108
216
  const rollup = getContract({
109
217
  address: rollupAddress.toString(),
110
218
  abi: RollupAbi,
111
219
  client: publicClient
112
220
  });
113
- const cheatCodes = new EthCheatCodes(rpcUrls, debugLogger);
221
+ const cheatCodes = new EthCheatCodes(rpcUrls, new DateProvider(), debugLogger);
114
222
  const currentSlot = await rollup.read.getCurrentSlot();
115
223
  const l2SlotsInEpoch = await rollup.read.getEpochDuration();
116
224
  const timestamp = await rollup.read.getTimestampForSlot([
@@ -118,7 +226,9 @@ export async function fastForwardEpochs({ rpcUrls, chainId, rollupAddress, numEp
118
226
  ]);
119
227
  dualLog(`Fast forwarding ${numEpochs} epochs to ${timestamp}`);
120
228
  try {
121
- await cheatCodes.warp(Number(timestamp));
229
+ await cheatCodes.warp(Number(timestamp), {
230
+ resetBlockInterval: true
231
+ });
122
232
  dualLog(`Fast forwarded ${numEpochs} epochs to ${timestamp}`);
123
233
  } catch (error) {
124
234
  if (error instanceof Error && error.message.includes("is lower than or equal to previous block's timestamp")) {
@@ -131,32 +241,29 @@ export async function fastForwardEpochs({ rpcUrls, chainId, rollupAddress, numEp
131
241
  }
132
242
  export async function debugRollup({ rpcUrls, chainId, rollupAddress, log }) {
133
243
  const config = getL1ContractsConfigEnvVars();
134
- const publicClient = getPublicClient(rpcUrls, chainId);
135
- const rollup = getContract({
136
- address: rollupAddress.toString(),
137
- abi: RollupAbi,
138
- client: publicClient
244
+ const publicClient = getPublicClient({
245
+ l1RpcUrls: rpcUrls,
246
+ l1ChainId: chainId
139
247
  });
140
- const pendingNum = await rollup.read.getPendingBlockNumber();
248
+ const rollup = new RollupContract(publicClient, rollupAddress);
249
+ const pendingNum = await rollup.getCheckpointNumber();
141
250
  log(`Pending block num: ${pendingNum}`);
142
- const provenNum = await rollup.read.getProvenBlockNumber();
251
+ const provenNum = await rollup.getProvenCheckpointNumber();
143
252
  log(`Proven block num: ${provenNum}`);
144
- const validators = await rollup.read.getAttesters();
253
+ const validators = await rollup.getAttesters();
145
254
  log(`Validators: ${validators.map((v)=>v.toString()).join(', ')}`);
146
- const committee = await rollup.read.getCurrentEpochCommittee();
147
- log(`Committee: ${committee.map((v)=>v.toString()).join(', ')}`);
148
- const archive = await rollup.read.archive();
255
+ const committee = await rollup.getCurrentEpochCommittee();
256
+ log(`Committee: ${committee?.map((v)=>v.toString()).join(', ')}`);
257
+ const archive = await rollup.archive();
149
258
  log(`Archive: ${archive}`);
150
- const epochNum = await rollup.read.getCurrentEpoch();
259
+ const epochNum = await rollup.getCurrentEpochNumber();
151
260
  log(`Current epoch: ${epochNum}`);
152
- const slot = await rollup.read.getCurrentSlot();
261
+ const slot = await rollup.getSlotNumber();
153
262
  log(`Current slot: ${slot}`);
154
- const proposerDuringPrevL1Block = await rollup.read.getCurrentProposer();
263
+ const proposerDuringPrevL1Block = await rollup.getCurrentProposer();
155
264
  log(`Proposer during previous L1 block: ${proposerDuringPrevL1Block}`);
156
265
  const nextBlockTS = BigInt((await publicClient.getBlock()).timestamp + BigInt(config.ethereumSlotDuration));
157
- const proposer = await rollup.read.getProposerAt([
158
- nextBlockTS
159
- ]);
266
+ const proposer = await rollup.getProposerAt(nextBlockTS);
160
267
  log(`Proposer NOW: ${proposer.toString()}`);
161
268
  }
162
269
  function makeDualLog(log, debugLogger) {
@@ -165,22 +272,10 @@ function makeDualLog(log, debugLogger) {
165
272
  debugLogger.info(msg);
166
273
  };
167
274
  }
168
- function getPublicClient(rpcUrls, chainId) {
169
- const chain = createEthereumChain(rpcUrls, chainId);
170
- return createPublicClient({
171
- chain: chain.chainInfo,
172
- transport: fallback(rpcUrls.map((url)=>http(url)))
173
- });
174
- }
175
- function getWalletClient(rpcUrls, chainId, privateKey, mnemonic) {
275
+ function getAccount(privateKey, mnemonic) {
176
276
  if (!privateKey && !mnemonic) {
177
277
  throw new Error('Either privateKey or mnemonic must be provided to create a wallet client');
178
278
  }
179
- const chain = createEthereumChain(rpcUrls, chainId);
180
279
  const account = !privateKey ? mnemonicToAccount(mnemonic) : privateKeyToAccount(`${privateKey.startsWith('0x') ? '' : '0x'}${privateKey}`);
181
- return createWalletClient({
182
- account,
183
- chain: chain.chainInfo,
184
- transport: fallback(rpcUrls.map((url)=>http(url)))
185
- });
280
+ return account;
186
281
  }
@@ -1,3 +1,3 @@
1
1
  import type { LogFn } from '@aztec/foundation/log';
2
2
  export declare function computeSelector(functionSignature: string, log: LogFn): Promise<void>;
3
- //# sourceMappingURL=compute_selector.d.ts.map
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHV0ZV9zZWxlY3Rvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NtZHMvbWlzYy9jb21wdXRlX3NlbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR25ELHdCQUFzQixlQUFlLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLGlCQUcxRSJ9
@@ -1,3 +1,3 @@
1
1
  import type { LogFn } from '@aztec/foundation/log';
2
2
  export declare function exampleContracts(log: LogFn): Promise<void>;
3
- //# sourceMappingURL=example_contracts.d.ts.map
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhhbXBsZV9jb250cmFjdHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbWRzL21pc2MvZXhhbXBsZV9jb250cmFjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJbkQsd0JBQXNCLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxLQUFLLGlCQU9oRCJ9
@@ -1,3 +1,3 @@
1
1
  import type { LogFn } from '@aztec/foundation/log';
2
- export declare function generateEncodedBootnodeENR(privateKey: string, udpAnnounceAddress: string, l1ChainId: number, log: LogFn): Promise<void>;
3
- //# sourceMappingURL=generate_bootnode_enr.d.ts.map
2
+ export declare function generateEncodedBootnodeENR(privateKey: string, p2pIp: string, p2pPort: number, l1ChainId: number, log: LogFn): Promise<void>;
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVfYm9vdG5vZGVfZW5yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY21kcy9taXNjL2dlbmVyYXRlX2Jvb3Rub2RlX2Vuci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUduRCx3QkFBc0IsMEJBQTBCLENBQzlDLFVBQVUsRUFBRSxNQUFNLEVBQ2xCLEtBQUssRUFBRSxNQUFNLEVBQ2IsT0FBTyxFQUFFLE1BQU0sRUFDZixTQUFTLEVBQUUsTUFBTSxFQUNqQixHQUFHLEVBQUUsS0FBSyxpQkFJWCJ9
@@ -1 +1 @@
1
- {"version":3,"file":"generate_bootnode_enr.d.ts","sourceRoot":"","sources":["../../../src/cmds/misc/generate_bootnode_enr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,MAAM,EAC1B,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,KAAK,iBAIX"}
1
+ {"version":3,"file":"generate_bootnode_enr.d.ts","sourceRoot":"","sources":["../../../src/cmds/misc/generate_bootnode_enr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,KAAK,iBAIX"}
@@ -1,5 +1,5 @@
1
1
  import { createBootnodeENRandPeerId } from '@aztec/p2p/enr';
2
- export async function generateEncodedBootnodeENR(privateKey, udpAnnounceAddress, l1ChainId, log) {
3
- const { enr } = await createBootnodeENRandPeerId(privateKey, udpAnnounceAddress, l1ChainId);
2
+ export async function generateEncodedBootnodeENR(privateKey, p2pIp, p2pPort, l1ChainId, log) {
3
+ const { enr } = await createBootnodeENRandPeerId(privateKey, p2pIp, p2pPort, l1ChainId);
4
4
  log(`ENR: ${enr.encodeTxt()}`);
5
5
  }
@@ -1,3 +1,3 @@
1
1
  import type { LogFn } from '@aztec/foundation/log';
2
2
  export declare function generateP2PPrivateKey(log: LogFn): Promise<void>;
3
- //# sourceMappingURL=generate_p2p_private_key.d.ts.map
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVfcDJwX3ByaXZhdGVfa2V5LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY21kcy9taXNjL2dlbmVyYXRlX3AycF9wcml2YXRlX2tleS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUluRCx3QkFBc0IscUJBQXFCLENBQUMsR0FBRyxFQUFFLEtBQUssaUJBS3JEIn0=
@@ -1,3 +1,3 @@
1
1
  import type { LogFn } from '@aztec/foundation/log';
2
- export declare function generateSecretAndHash(log: LogFn): void;
3
- //# sourceMappingURL=generate_secret_and_hash.d.ts.map
2
+ export declare function generateSecretAndHash(log: LogFn): Promise<void>;
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVfc2VjcmV0X2FuZF9oYXNoLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY21kcy9taXNjL2dlbmVyYXRlX3NlY3JldF9hbmRfaGFzaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVuRCx3QkFBc0IscUJBQXFCLENBQUMsR0FBRyxFQUFFLEtBQUssaUJBVXJEIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"generate_secret_and_hash.d.ts","sourceRoot":"","sources":["../../../src/cmds/misc/generate_secret_and_hash.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,KAAK,QAU/C"}
1
+ {"version":3,"file":"generate_secret_and_hash.d.ts","sourceRoot":"","sources":["../../../src/cmds/misc/generate_secret_and_hash.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,KAAK,iBAUrD"}
@@ -1,9 +1,9 @@
1
- import { computeSecretHash } from '@aztec/aztec.js';
2
- import { Fr } from '@aztec/foundation/fields';
3
- export function generateSecretAndHash(log) {
1
+ import { computeSecretHash } from '@aztec/aztec.js/crypto';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
+ export async function generateSecretAndHash(log) {
4
4
  const secret = Fr.random();
5
5
  // We hash this the same way that aztec nr hash does.
6
- const secretHash = computeSecretHash(secret);
6
+ const secretHash = await computeSecretHash(secret);
7
7
  log(`
8
8
  Secret: ${secret}
9
9
  Secret hash: ${secretHash}
@@ -1,5 +1,5 @@
1
- import { Fr } from '@aztec/aztec.js';
1
+ import { Fr } from '@aztec/aztec.js/fields';
2
2
  export declare function generateSecretKey(): {
3
3
  secretKey: Fr;
4
4
  };
5
- //# sourceMappingURL=generate_secret_key.d.ts.map
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVfc2VjcmV0X2tleS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NtZHMvbWlzYy9nZW5lcmF0ZV9zZWNyZXRfa2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1Qyx3QkFBZ0IsaUJBQWlCOztFQUVoQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"generate_secret_key.d.ts","sourceRoot":"","sources":["../../../src/cmds/misc/generate_secret_key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,wBAAgB,iBAAiB;;EAEhC"}
1
+ {"version":3,"file":"generate_secret_key.d.ts","sourceRoot":"","sources":["../../../src/cmds/misc/generate_secret_key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAE5C,wBAAgB,iBAAiB;;EAEhC"}
@@ -1,4 +1,4 @@
1
- import { Fr } from '@aztec/aztec.js';
1
+ import { Fr } from '@aztec/aztec.js/fields';
2
2
  export function generateSecretKey() {
3
3
  return {
4
4
  secretKey: Fr.random()
@@ -0,0 +1,3 @@
1
+ import type { LogFn } from '@aztec/foundation/log';
2
+ export declare function getCanonicalSponsoredFPCAddress(log: LogFn): Promise<void>;
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0X2Nhbm9uaWNhbF9zcG9uc29yZWRfZnBjX2FkZHJlc3MuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbWRzL21pc2MvZ2V0X2Nhbm9uaWNhbF9zcG9uc29yZWRfZnBjX2FkZHJlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJbkQsd0JBQXNCLCtCQUErQixDQUFDLEdBQUcsRUFBRSxLQUFLLGlCQUUvRCJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get_canonical_sponsored_fpc_address.d.ts","sourceRoot":"","sources":["../../../src/cmds/misc/get_canonical_sponsored_fpc_address.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAInD,wBAAsB,+BAA+B,CAAC,GAAG,EAAE,KAAK,iBAE/D"}
@@ -0,0 +1,4 @@
1
+ import { getSponsoredFPCAddress } from '../../utils/setup_contracts.js';
2
+ export async function getCanonicalSponsoredFPCAddress(log) {
3
+ log(`Canonical SponsoredFPC Address: ${(await getSponsoredFPCAddress()).toString()}`);
4
+ }
@@ -1,4 +1,4 @@
1
1
  import type { LogFn } from '@aztec/foundation/log';
2
2
  import type { Command } from 'commander';
3
3
  export declare function injectCommands(program: Command, log: LogFn): Command;
4
- //# sourceMappingURL=index.d.ts.map
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbWRzL21pc2MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbkQsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBSXpDLHdCQUFnQixjQUFjLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxXQThGMUQifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmds/misc/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,WAoF1D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmds/misc/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,WA8F1D"}
@@ -1,4 +1,3 @@
1
- import { printENR } from '@aztec/p2p/enr';
2
1
  import { l1ChainIdOption, prettyPrintJSON } from '../../utils/commands.js';
3
2
  export function injectCommands(program, log) {
4
3
  program.command('generate-keys').summary('Generates encryption and signing private keys.').description('Generates and encryption and signing private key pair.').option('--json', 'Output the keys in JSON format').action(async ({ json })=>{
@@ -16,11 +15,12 @@ export function injectCommands(program, log) {
16
15
  const { generateP2PPrivateKey } = await import('./generate_p2p_private_key.js');
17
16
  await generateP2PPrivateKey(log);
18
17
  });
19
- program.command('generate-bootnode-enr').summary('Generates the encoded ENR record for a bootnode.').description('Generates the encoded ENR record for a bootnode.').argument('<privateKey>', 'The peer id private key of the bootnode').argument('<udpAnnounceAddress>', 'The bootnode UDP announce address').addOption(l1ChainIdOption).action(async (privateKey, udpAnnounceAddress, options)=>{
18
+ program.command('generate-bootnode-enr').summary('Generates the encoded ENR record for a bootnode.').description('Generates the encoded ENR record for a bootnode.').argument('<privateKey>', 'The peer id private key of the bootnode').argument('<p2pIp>', 'The bootnode P2P IP address').argument('<p2pPort>', 'The bootnode P2P port').addOption(l1ChainIdOption).action(async (privateKey, p2pIp, p2pPort, options)=>{
20
19
  const { generateEncodedBootnodeENR } = await import('./generate_bootnode_enr.js');
21
- await generateEncodedBootnodeENR(privateKey, udpAnnounceAddress, options.l1ChainId, log);
20
+ await generateEncodedBootnodeENR(privateKey, p2pIp, p2pPort, options.l1ChainId, log);
22
21
  });
23
22
  program.command('decode-enr').summary('Decodes an ENR record').description('Decodes and ENR record').argument('<enr>', 'The encoded ENR string').action(async (enr)=>{
23
+ const { printENR } = await import('@aztec/p2p/enr');
24
24
  await printENR(enr, log);
25
25
  });
26
26
  program.command('example-contracts').description('Lists the example contracts available to deploy from @aztec/noir-contracts.js').action(async ()=>{
@@ -33,7 +33,11 @@ export function injectCommands(program, log) {
33
33
  });
34
34
  program.command('generate-secret-and-hash').description('Generates an arbitrary secret (Fr), and its hash (using aztec-nr defaults)').action(async ()=>{
35
35
  const { generateSecretAndHash } = await import('./generate_secret_and_hash.js');
36
- generateSecretAndHash(log);
36
+ await generateSecretAndHash(log);
37
+ });
38
+ program.command('get-canonical-sponsored-fpc-address').description('Gets the canonical SponsoredFPC address for this any testnet running on the same version as this CLI').action(async ()=>{
39
+ const { getCanonicalSponsoredFPCAddress } = await import('./get_canonical_sponsored_fpc_address.js');
40
+ await getCanonicalSponsoredFPCAddress(log);
37
41
  });
38
42
  program.command('update').description('Updates Nodejs and Noir dependencies').argument('[projectPath]', 'Path to the project directory', process.cwd()).option('--contract [paths...]', 'Paths to contracts to update dependencies', []).option('--aztec-version <semver>', 'The version to update Aztec packages to. Defaults to latest', 'latest').action(async (projectPath, options)=>{
39
43
  const { updateProject } = await import('./update.js');
@@ -14,4 +14,4 @@ export type DependencyChanges = {
14
14
  to: string;
15
15
  }>;
16
16
  };
17
- //# sourceMappingURL=common.d.ts.map
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY21kcy9taXNjL3VwZGF0ZS9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLE1BQU0saUJBQWlCLEdBQUc7SUFDOUIsNkJBQTZCO0lBQzdCLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYiwrQkFBK0I7SUFDL0IsWUFBWSxFQUFFLEtBQUssQ0FBQztRQUNsQiwyQ0FBMkM7UUFDM0MsSUFBSSxFQUFFLE1BQU0sQ0FBQztRQUNiLHlDQUF5QztRQUN6QyxJQUFJLEVBQUUsTUFBTSxDQUFDO1FBQ2IsdURBQXVEO1FBQ3ZELEVBQUUsRUFBRSxNQUFNLENBQUM7S0FDWixDQUFDLENBQUM7Q0FDSixDQUFDIn0=
@@ -1,4 +1,3 @@
1
1
  export declare const GITHUB_OWNER = "AztecProtocol";
2
2
  export declare const GITHUB_REPO = "aztec-packages";
3
- export declare const GITHUB_TAG_PREFIX = "aztec-packages";
4
- //# sourceMappingURL=github.d.ts.map
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY21kcy9taXNjL3VwZGF0ZS9naXRodWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZUFBTyxNQUFNLFlBQVksa0JBQWtCLENBQUM7QUFDNUMsZUFBTyxNQUFNLFdBQVcsbUJBQW1CLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../../../src/cmds/misc/update/github.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,kBAAkB,CAAC;AAC5C,eAAO,MAAM,WAAW,mBAAmB,CAAC;AAC5C,eAAO,MAAM,iBAAiB,mBAAmB,CAAC"}
1
+ {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../../../src/cmds/misc/update/github.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,kBAAkB,CAAC;AAC5C,eAAO,MAAM,WAAW,mBAAmB,CAAC"}
@@ -1,3 +1,2 @@
1
1
  export const GITHUB_OWNER = 'AztecProtocol';
2
2
  export const GITHUB_REPO = 'aztec-packages';
3
- export const GITHUB_TAG_PREFIX = 'aztec-packages';