@aztec/cli 4.0.0-nightly.20250907 → 4.0.0-nightly.20260108

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 (252) 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 +3 -8
  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 +4 -10
  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 +7 -9
  31. package/dest/cmds/infrastructure/sequencers.d.ts +3 -5
  32. package/dest/cmds/infrastructure/sequencers.d.ts.map +1 -1
  33. package/dest/cmds/infrastructure/sequencers.js +15 -7
  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 +10 -25
  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 +6 -5
  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 +8 -6
  43. package/dest/cmds/l1/bridge_erc20.d.ts +2 -2
  44. package/dest/cmds/l1/bridge_erc20.d.ts.map +1 -1
  45. package/dest/cmds/l1/bridge_erc20.js +3 -2
  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.js → deploy_l1_contracts_cmd.js} +42 -7
  50. package/dest/cmds/l1/deploy_new_rollup.d.ts +4 -4
  51. package/dest/cmds/l1/deploy_new_rollup.d.ts.map +1 -1
  52. package/dest/cmds/l1/deploy_new_rollup.js +5 -5
  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 +3 -1
  61. package/dest/cmds/l1/index.d.ts +1 -2
  62. package/dest/cmds/l1/index.d.ts.map +1 -1
  63. package/dest/cmds/l1/index.js +22 -36
  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 +2 -2
  68. package/dest/cmds/l1/trigger_seed_snapshot.d.ts.map +1 -1
  69. package/dest/cmds/l1/trigger_seed_snapshot.js +2 -1
  70. package/dest/cmds/l1/update_l1_validators.d.ts +10 -5
  71. package/dest/cmds/l1/update_l1_validators.d.ts.map +1 -1
  72. package/dest/cmds/l1/update_l1_validators.js +74 -9
  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 +1 -1
  76. package/dest/cmds/misc/generate_p2p_private_key.d.ts +1 -1
  77. package/dest/cmds/misc/generate_secret_and_hash.d.ts +1 -1
  78. package/dest/cmds/misc/generate_secret_and_hash.js +2 -2
  79. package/dest/cmds/misc/generate_secret_key.d.ts +2 -2
  80. package/dest/cmds/misc/generate_secret_key.d.ts.map +1 -1
  81. package/dest/cmds/misc/generate_secret_key.js +1 -1
  82. package/dest/cmds/misc/get_canonical_sponsored_fpc_address.d.ts +1 -1
  83. package/dest/cmds/misc/index.d.ts +1 -1
  84. package/dest/cmds/misc/index.d.ts.map +1 -1
  85. package/dest/cmds/misc/index.js +1 -1
  86. package/dest/cmds/misc/update/common.d.ts +1 -1
  87. package/dest/cmds/misc/update/github.d.ts +1 -1
  88. package/dest/cmds/misc/update/noir.d.ts +1 -1
  89. package/dest/cmds/misc/update/npm.d.ts +1 -1
  90. package/dest/cmds/misc/update/npm.js +1 -1
  91. package/dest/cmds/misc/update/utils.d.ts +1 -1
  92. package/dest/cmds/misc/update.d.ts +1 -1
  93. package/dest/cmds/validator_keys/add.d.ts +5 -0
  94. package/dest/cmds/validator_keys/add.d.ts.map +1 -0
  95. package/dest/cmds/validator_keys/add.js +83 -0
  96. package/dest/cmds/validator_keys/generate_bls_keypair.d.ts +12 -0
  97. package/dest/cmds/validator_keys/generate_bls_keypair.d.ts.map +1 -0
  98. package/dest/cmds/validator_keys/generate_bls_keypair.js +27 -0
  99. package/dest/cmds/validator_keys/index.d.ts +4 -0
  100. package/dest/cmds/validator_keys/index.d.ts.map +1 -0
  101. package/dest/cmds/validator_keys/index.js +32 -0
  102. package/dest/cmds/validator_keys/new.d.ts +29 -0
  103. package/dest/cmds/validator_keys/new.d.ts.map +1 -0
  104. package/dest/cmds/validator_keys/new.js +134 -0
  105. package/dest/cmds/validator_keys/shared.d.ts +68 -0
  106. package/dest/cmds/validator_keys/shared.d.ts.map +1 -0
  107. package/dest/cmds/validator_keys/shared.js +274 -0
  108. package/dest/cmds/validator_keys/staker.d.ts +38 -0
  109. package/dest/cmds/validator_keys/staker.d.ts.map +1 -0
  110. package/dest/cmds/validator_keys/staker.js +210 -0
  111. package/dest/cmds/validator_keys/utils.d.ts +25 -0
  112. package/dest/cmds/validator_keys/utils.d.ts.map +1 -0
  113. package/dest/cmds/validator_keys/utils.js +52 -0
  114. package/dest/config/cached_fetch.d.ts +18 -0
  115. package/dest/config/cached_fetch.d.ts.map +1 -0
  116. package/dest/config/cached_fetch.js +54 -0
  117. package/dest/config/chain_l2_config.d.ts +41 -0
  118. package/dest/config/chain_l2_config.d.ts.map +1 -0
  119. package/dest/config/chain_l2_config.js +524 -0
  120. package/dest/config/enrich_env.d.ts +4 -0
  121. package/dest/config/enrich_env.d.ts.map +1 -0
  122. package/dest/config/enrich_env.js +12 -0
  123. package/dest/config/get_l1_config.d.ts +9 -0
  124. package/dest/config/get_l1_config.d.ts.map +1 -0
  125. package/dest/config/get_l1_config.js +24 -0
  126. package/dest/config/index.d.ts +5 -0
  127. package/dest/config/index.d.ts.map +1 -0
  128. package/dest/config/index.js +4 -0
  129. package/dest/config/network_config.d.ts +22 -0
  130. package/dest/config/network_config.d.ts.map +1 -0
  131. package/dest/config/network_config.js +115 -0
  132. package/dest/utils/aztec.d.ts +8 -20
  133. package/dest/utils/aztec.d.ts.map +1 -1
  134. package/dest/utils/aztec.js +22 -67
  135. package/dest/utils/commands.d.ts +21 -12
  136. package/dest/utils/commands.d.ts.map +1 -1
  137. package/dest/utils/commands.js +38 -11
  138. package/dest/utils/encoding.d.ts +1 -1
  139. package/dest/utils/encoding.js +1 -1
  140. package/dest/utils/github.d.ts +1 -1
  141. package/dest/utils/index.d.ts +1 -1
  142. package/dest/utils/inspect.d.ts +5 -11
  143. package/dest/utils/inspect.d.ts.map +1 -1
  144. package/dest/utils/inspect.js +13 -95
  145. package/dest/utils/setup_contracts.d.ts +2 -4
  146. package/dest/utils/setup_contracts.d.ts.map +1 -1
  147. package/dest/utils/setup_contracts.js +2 -22
  148. package/package.json +43 -28
  149. package/public_include_metric_prefixes.json +1 -0
  150. package/src/cmds/aztec_node/block_number.ts +9 -0
  151. package/src/cmds/aztec_node/get_block.ts +11 -0
  152. package/src/cmds/aztec_node/get_current_min_fee.ts +9 -0
  153. package/src/cmds/aztec_node/get_l1_to_l2_message_witness.ts +27 -0
  154. package/src/cmds/{pxe → aztec_node}/get_logs.ts +11 -9
  155. package/src/cmds/{pxe → aztec_node}/get_node_info.ts +5 -16
  156. package/src/cmds/aztec_node/index.ts +87 -0
  157. package/src/cmds/contracts/inspect_contract.ts +4 -11
  158. package/src/cmds/infrastructure/index.ts +7 -18
  159. package/src/cmds/infrastructure/sequencers.ts +13 -11
  160. package/src/cmds/infrastructure/setup_l2_contract.ts +13 -30
  161. package/src/cmds/l1/advance_epoch.ts +6 -5
  162. package/src/cmds/l1/assume_proven_through.ts +10 -6
  163. package/src/cmds/l1/bridge_erc20.ts +5 -2
  164. package/src/cmds/l1/{deploy_l1_contracts.ts → deploy_l1_contracts_cmd.ts} +44 -24
  165. package/src/cmds/l1/deploy_new_rollup.ts +6 -9
  166. package/src/cmds/l1/get_l1_addresses.ts +5 -3
  167. package/src/cmds/l1/get_l1_balance.ts +2 -2
  168. package/src/cmds/l1/governance_utils.ts +3 -8
  169. package/src/cmds/l1/index.ts +28 -66
  170. package/src/cmds/l1/prover_stats.ts +42 -31
  171. package/src/cmds/l1/trigger_seed_snapshot.ts +2 -1
  172. package/src/cmds/l1/update_l1_validators.ts +88 -18
  173. package/src/cmds/misc/generate_secret_and_hash.ts +2 -2
  174. package/src/cmds/misc/generate_secret_key.ts +1 -1
  175. package/src/cmds/misc/index.ts +1 -1
  176. package/src/cmds/misc/update/npm.ts +1 -1
  177. package/src/cmds/validator_keys/add.ts +123 -0
  178. package/src/cmds/validator_keys/generate_bls_keypair.ts +34 -0
  179. package/src/cmds/validator_keys/index.ts +142 -0
  180. package/src/cmds/validator_keys/new.ts +207 -0
  181. package/src/cmds/validator_keys/shared.ts +326 -0
  182. package/src/cmds/validator_keys/staker.ts +301 -0
  183. package/src/cmds/validator_keys/utils.ts +81 -0
  184. package/src/config/cached_fetch.ts +67 -0
  185. package/src/config/chain_l2_config.ts +694 -0
  186. package/src/config/enrich_env.ts +15 -0
  187. package/src/config/get_l1_config.ts +31 -0
  188. package/src/config/index.ts +4 -0
  189. package/src/config/network_config.ts +147 -0
  190. package/src/utils/aztec.ts +27 -118
  191. package/src/utils/commands.ts +52 -15
  192. package/src/utils/encoding.ts +1 -1
  193. package/src/utils/inspect.ts +19 -111
  194. package/src/utils/setup_contracts.ts +4 -43
  195. package/dest/cmds/devnet/bootstrap_network.d.ts +0 -3
  196. package/dest/cmds/devnet/bootstrap_network.d.ts.map +0 -1
  197. package/dest/cmds/devnet/bootstrap_network.js +0 -216
  198. package/dest/cmds/devnet/faucet.d.ts +0 -4
  199. package/dest/cmds/devnet/faucet.d.ts.map +0 -1
  200. package/dest/cmds/devnet/faucet.js +0 -26
  201. package/dest/cmds/devnet/index.d.ts +0 -4
  202. package/dest/cmds/devnet/index.d.ts.map +0 -1
  203. package/dest/cmds/devnet/index.js +0 -14
  204. package/dest/cmds/l1/deploy_l1_contracts.d.ts +0 -4
  205. package/dest/cmds/l1/deploy_l1_contracts.d.ts.map +0 -1
  206. package/dest/cmds/pxe/add_contract.d.ts +0 -5
  207. package/dest/cmds/pxe/add_contract.d.ts.map +0 -1
  208. package/dest/cmds/pxe/add_contract.js +0 -29
  209. package/dest/cmds/pxe/block_number.d.ts +0 -3
  210. package/dest/cmds/pxe/block_number.d.ts.map +0 -1
  211. package/dest/cmds/pxe/block_number.js +0 -10
  212. package/dest/cmds/pxe/get_account.d.ts +0 -4
  213. package/dest/cmds/pxe/get_account.d.ts.map +0 -1
  214. package/dest/cmds/pxe/get_account.js +0 -10
  215. package/dest/cmds/pxe/get_accounts.d.ts +0 -3
  216. package/dest/cmds/pxe/get_accounts.d.ts.map +0 -1
  217. package/dest/cmds/pxe/get_accounts.js +0 -25
  218. package/dest/cmds/pxe/get_block.d.ts +0 -3
  219. package/dest/cmds/pxe/get_block.d.ts.map +0 -1
  220. package/dest/cmds/pxe/get_block.js +0 -9
  221. package/dest/cmds/pxe/get_contract_data.d.ts +0 -4
  222. package/dest/cmds/pxe/get_contract_data.d.ts.map +0 -1
  223. package/dest/cmds/pxe/get_contract_data.js +0 -31
  224. package/dest/cmds/pxe/get_current_base_fee.d.ts +0 -3
  225. package/dest/cmds/pxe/get_current_base_fee.d.ts.map +0 -1
  226. package/dest/cmds/pxe/get_current_base_fee.js +0 -7
  227. package/dest/cmds/pxe/get_l1_to_l2_message_witness.d.ts +0 -4
  228. package/dest/cmds/pxe/get_l1_to_l2_message_witness.d.ts.map +0 -1
  229. package/dest/cmds/pxe/get_l1_to_l2_message_witness.js +0 -11
  230. package/dest/cmds/pxe/get_logs.d.ts +0 -4
  231. package/dest/cmds/pxe/get_logs.d.ts.map +0 -1
  232. package/dest/cmds/pxe/get_node_info.d.ts +0 -3
  233. package/dest/cmds/pxe/get_node_info.d.ts.map +0 -1
  234. package/dest/cmds/pxe/get_pxe_info.d.ts +0 -3
  235. package/dest/cmds/pxe/get_pxe_info.d.ts.map +0 -1
  236. package/dest/cmds/pxe/get_pxe_info.js +0 -11
  237. package/dest/cmds/pxe/index.d.ts +0 -4
  238. package/dest/cmds/pxe/index.d.ts.map +0 -1
  239. package/dest/cmds/pxe/index.js +0 -55
  240. package/src/cmds/devnet/bootstrap_network.ts +0 -321
  241. package/src/cmds/devnet/faucet.ts +0 -33
  242. package/src/cmds/devnet/index.ts +0 -60
  243. package/src/cmds/pxe/add_contract.ts +0 -41
  244. package/src/cmds/pxe/block_number.ts +0 -9
  245. package/src/cmds/pxe/get_account.ts +0 -16
  246. package/src/cmds/pxe/get_accounts.ts +0 -35
  247. package/src/cmds/pxe/get_block.ts +0 -10
  248. package/src/cmds/pxe/get_contract_data.ts +0 -51
  249. package/src/cmds/pxe/get_current_base_fee.ts +0 -9
  250. package/src/cmds/pxe/get_l1_to_l2_message_witness.ts +0 -25
  251. package/src/cmds/pxe/get_pxe_info.ts +0 -13
  252. package/src/cmds/pxe/index.ts +0 -170
@@ -1,3 +0,0 @@
1
- import type { LogFn, Logger } from '@aztec/foundation/log';
2
- export declare function getBlock(rpcUrl: string, maybeBlockNumber: number | undefined, debugLogger: Logger, log: LogFn): Promise<void>;
3
- //# sourceMappingURL=get_block.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get_block.d.ts","sourceRoot":"","sources":["../../../src/cmds/pxe/get_block.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAI3D,wBAAsB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,iBAInH"}
@@ -1,9 +0,0 @@
1
- import { createCompatibleClient } from '@aztec/aztec.js';
2
- import { inspectBlock } from '../../utils/inspect.js';
3
- export async function getBlock(rpcUrl, maybeBlockNumber, debugLogger, log) {
4
- const client = await createCompatibleClient(rpcUrl, debugLogger);
5
- const blockNumber = maybeBlockNumber ?? await client.getBlockNumber();
6
- await inspectBlock(client, blockNumber, log, {
7
- showTxs: true
8
- });
9
- }
@@ -1,4 +0,0 @@
1
- import type { AztecAddress } from '@aztec/aztec.js';
2
- import type { LogFn, Logger } from '@aztec/foundation/log';
3
- export declare function getContractData(rpcUrl: string, contractAddress: AztecAddress, includeBytecode: boolean, debugLogger: Logger, log: LogFn): Promise<void>;
4
- //# sourceMappingURL=get_contract_data.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get_contract_data.d.ts","sourceRoot":"","sources":["../../../src/cmds/pxe/get_contract_data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,YAAY,EAC7B,eAAe,EAAE,OAAO,EACxB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,KAAK,iBAyCX"}
@@ -1,31 +0,0 @@
1
- import { createCompatibleClient } from '@aztec/aztec.js';
2
- export async function getContractData(rpcUrl, contractAddress, includeBytecode, debugLogger, log) {
3
- const client = await createCompatibleClient(rpcUrl, debugLogger);
4
- const { contractInstance: instance, isContractInitialized: isInitialized, isContractPublished: isPubliclyDeployed } = await client.getContractMetadata(contractAddress);
5
- const contractClass = includeBytecode && instance && (await client.getContractClassMetadata(instance?.currentContractClassId)).contractClass;
6
- const isPrivatelyDeployed = !!instance;
7
- const initStr = isInitialized ? 'initialized' : 'not initialized';
8
- const addrStr = contractAddress.toString();
9
- if (isPubliclyDeployed && isPrivatelyDeployed) {
10
- log(`Contract is ${initStr} and publicly deployed at ${addrStr}`);
11
- } else if (isPrivatelyDeployed) {
12
- log(`Contract is ${initStr} and registered in the local pxe at ${addrStr} but not publicly deployed`);
13
- } else if (isPubliclyDeployed) {
14
- log(`Contract is ${initStr} and publicly deployed at ${addrStr} but not registered in the local pxe`);
15
- } else if (isInitialized) {
16
- log(`Contract is initialized but not publicly deployed nor registered in the local pxe at ${addrStr}`);
17
- } else {
18
- log(`No contract found at ${addrStr}`);
19
- }
20
- if (instance) {
21
- log(``);
22
- Object.entries(instance).forEach(([key, value])=>{
23
- const capitalized = key.charAt(0).toUpperCase() + key.slice(1);
24
- log(`${capitalized}: ${value.toString()}`);
25
- });
26
- if (contractClass) {
27
- log(`\nBytecode: ${contractClass.packedBytecode.toString('base64')}`);
28
- }
29
- log('');
30
- }
31
- }
@@ -1,3 +0,0 @@
1
- import type { LogFn, Logger } from '@aztec/foundation/log';
2
- export declare function getCurrentBaseFee(rpcUrl: string, debugLogger: Logger, log: LogFn): Promise<void>;
3
- //# sourceMappingURL=get_current_base_fee.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get_current_base_fee.d.ts","sourceRoot":"","sources":["../../../src/cmds/pxe/get_current_base_fee.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,iBAItF"}
@@ -1,7 +0,0 @@
1
- import { createCompatibleClient } from '@aztec/aztec.js';
2
- import { jsonStringify } from '@aztec/foundation/json-rpc';
3
- export async function getCurrentBaseFee(rpcUrl, debugLogger, log) {
4
- const client = await createCompatibleClient(rpcUrl, debugLogger);
5
- const fees = await client.getCurrentBaseFees();
6
- log(`Current fees: ${jsonStringify(fees)}`);
7
- }
@@ -1,4 +0,0 @@
1
- import { type AztecAddress, type Fr } from '@aztec/aztec.js';
2
- import type { LogFn, Logger } from '@aztec/foundation/log';
3
- export declare function getL1ToL2MessageWitness(rpcUrl: string, contractAddress: AztecAddress, messageHash: Fr, secret: Fr, debugLogger: Logger, log: LogFn): Promise<void>;
4
- //# sourceMappingURL=get_l1_to_l2_message_witness.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get_l1_to_l2_message_witness.d.ts","sourceRoot":"","sources":["../../../src/cmds/pxe/get_l1_to_l2_message_witness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,EAAE,EAA0B,MAAM,iBAAiB,CAAC;AACrF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,YAAY,EAC7B,WAAW,EAAE,EAAE,EACf,MAAM,EAAE,EAAE,EACV,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,KAAK,iBAeX"}
@@ -1,11 +0,0 @@
1
- import { createCompatibleClient } from '@aztec/aztec.js';
2
- export async function getL1ToL2MessageWitness(rpcUrl, contractAddress, messageHash, secret, debugLogger, log) {
3
- const client = await createCompatibleClient(rpcUrl, debugLogger);
4
- const messageWitness = await client.getL1ToL2MembershipWitness(contractAddress, messageHash, secret);
5
- log(messageWitness === undefined ? `
6
- L1 to L2 Message not found.
7
- ` : `
8
- L1 to L2 message index: ${messageWitness[0]}
9
- L1 to L2 message sibling path: ${messageWitness[1]}
10
- `);
11
- }
@@ -1,4 +0,0 @@
1
- import type { AztecAddress, LogId, TxHash } from '@aztec/aztec.js';
2
- import type { LogFn, Logger } from '@aztec/foundation/log';
3
- export declare function getLogs(txHash: TxHash, fromBlock: number, toBlock: number, afterLog: LogId, contractAddress: AztecAddress, rpcUrl: string, follow: boolean, debugLogger: Logger, log: LogFn): Promise<void>;
4
- //# sourceMappingURL=get_logs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get_logs.d.ts","sourceRoot":"","sources":["../../../src/cmds/pxe/get_logs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAa,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAG3D,wBAAsB,OAAO,CAC3B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,KAAK,EACf,eAAe,EAAE,YAAY,EAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,KAAK,iBAmDX"}
@@ -1,3 +0,0 @@
1
- import type { LogFn, Logger } from '@aztec/foundation/log';
2
- export declare function getNodeInfo(rpcUrl: string, pxeRequest: boolean, debugLogger: Logger, json: boolean, log: LogFn, logJson: (output: any) => void): Promise<void>;
3
- //# sourceMappingURL=get_node_info.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get_node_info.d.ts","sourceRoot":"","sources":["../../../src/cmds/pxe/get_node_info.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,OAAO,EACnB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,KAAK,EACV,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,iBAgE/B"}
@@ -1,3 +0,0 @@
1
- import type { LogFn, Logger } from '@aztec/foundation/log';
2
- export declare function getPXEInfo(rpcUrl: string, debugLogger: Logger, log: LogFn): Promise<void>;
3
- //# sourceMappingURL=get_pxe_info.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get_pxe_info.d.ts","sourceRoot":"","sources":["../../../src/cmds/pxe/get_pxe_info.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,iBAS/E"}
@@ -1,11 +0,0 @@
1
- import { createCompatibleClient } from '@aztec/aztec.js';
2
- export async function getPXEInfo(rpcUrl, debugLogger, log) {
3
- const client = await createCompatibleClient(rpcUrl, debugLogger);
4
- const info = await client.getPXEInfo();
5
- log(`PXE Version: ${info.pxeVersion}`);
6
- log(`Protocol Contract Addresses:`);
7
- log(` Class Registry: ${info.protocolContractAddresses.classRegistry.toString()}`);
8
- log(` Fee Juice: ${info.protocolContractAddresses.feeJuice.toString()}`);
9
- log(` Instance Deployer: ${info.protocolContractAddresses.instanceRegistry.toString()}`);
10
- log(` Multi Call Entrypoint: ${info.protocolContractAddresses.multiCallEntrypoint.toString()}`);
11
- }
@@ -1,4 +0,0 @@
1
- import type { LogFn, Logger } from '@aztec/foundation/log';
2
- import type { Command } from 'commander';
3
- export declare function injectCommands(program: Command, log: LogFn, debugLogger: Logger): Command;
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cmds/pxe/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBzC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,WAqJ/E"}
@@ -1,55 +0,0 @@
1
- import { Fr } from '@aztec/foundation/fields';
2
- import { logJson, makePxeOption, parseAztecAddress, parseEthereumAddress, parseField, parseFieldFromHexString, parseOptionalAztecAddress, parseOptionalInteger, parseOptionalLogId, parseOptionalTxHash, parsePublicKey, pxeOption } from '../../utils/commands.js';
3
- export function injectCommands(program, log, debugLogger) {
4
- program.command('add-contract').description('Adds an existing contract to the PXE. This is useful if you have deployed a contract outside of the PXE and want to use it with the PXE.').requiredOption('-c, --contract-artifact <fileLocation>', "A compiled Aztec.nr contract's ABI in JSON format or name of a contract ABI exported by @aztec/noir-contracts.js").requiredOption('-ca, --contract-address <address>', 'Aztec address of the contract.', parseAztecAddress).requiredOption('--init-hash <init hash>', 'Initialization hash', parseFieldFromHexString).option('--salt <salt>', 'Optional deployment salt', parseFieldFromHexString).option('-p, --public-key <public key>', 'Optional public key for this contract', parsePublicKey).option('--portal-address <address>', 'Optional address to a portal contract on L1', parseEthereumAddress).option('--deployer-address <address>', 'Optional address of the contract deployer', parseAztecAddress).addOption(pxeOption).action(async (options)=>{
5
- const { addContract } = await import('./add_contract.js');
6
- await addContract(options.rpcUrl, options.contractArtifact, options.contractAddress, options.initHash, options.salt ?? Fr.ZERO, options.publicKey, options.deployerAddress, debugLogger, log);
7
- });
8
- program.command('get-block').description('Gets info for a given block or latest.').argument('[blockNumber]', 'Block height', parseOptionalInteger).addOption(pxeOption).action(async (blockNumber, options)=>{
9
- const { getBlock } = await import('./get_block.js');
10
- await getBlock(options.rpcUrl, blockNumber, debugLogger, log);
11
- });
12
- program.command('get-current-base-fee').description('Gets the current base fee.').addOption(pxeOption).action(async (options)=>{
13
- const { getCurrentBaseFee } = await import('./get_current_base_fee.js');
14
- await getCurrentBaseFee(options.rpcUrl, debugLogger, log);
15
- });
16
- program.command('get-contract-data').description('Gets information about the Aztec contract deployed at the specified address.').argument('<contractAddress>', 'Aztec address of the contract.', parseAztecAddress).addOption(pxeOption).option('-b, --include-bytecode <boolean>', "Include the contract's public function bytecode, if any.", false).action(async (contractAddress, options)=>{
17
- const { getContractData } = await import('./get_contract_data.js');
18
- await getContractData(options.rpcUrl, contractAddress, options.includeBytecode, debugLogger, log);
19
- });
20
- program.command('get-logs').description('Gets all the public logs from an intersection of all the filter params.').option('-tx, --tx-hash <txHash>', 'A transaction hash to get the receipt for.', parseOptionalTxHash).option('-fb, --from-block <blockNum>', 'Initial block number for getting logs (defaults to 1).', parseOptionalInteger).option('-tb, --to-block <blockNum>', 'Up to which block to fetch logs (defaults to latest).', parseOptionalInteger).option('-al --after-log <logId>', 'ID of a log after which to fetch the logs.', parseOptionalLogId).option('-ca, --contract-address <address>', 'Contract address to filter logs by.', parseOptionalAztecAddress).addOption(pxeOption).option('--follow', 'If set, will keep polling for new logs until interrupted.').action(async ({ txHash, fromBlock, toBlock, afterLog, contractAddress, rpcUrl, follow })=>{
21
- const { getLogs } = await import('./get_logs.js');
22
- await getLogs(txHash, fromBlock, toBlock, afterLog, contractAddress, rpcUrl, follow, debugLogger, log);
23
- });
24
- program.command('get-accounts').description('Gets all the Aztec accounts stored in the PXE.').addOption(pxeOption).option('--json', 'Emit output as json').action(async (options)=>{
25
- const { getAccounts } = await import('./get_accounts.js');
26
- await getAccounts(options.rpcUrl, options.json, debugLogger, log, logJson(log));
27
- });
28
- program.command('get-account').description('Gets an account given its Aztec address.').argument('<address>', 'The Aztec address to get account for', parseAztecAddress).addOption(pxeOption).action(async (address, options)=>{
29
- const { getAccount } = await import('./get_account.js');
30
- await getAccount(address, options.rpcUrl, debugLogger, log);
31
- });
32
- program.command('block-number').description('Gets the current Aztec L2 block number.').addOption(pxeOption).action(async (options)=>{
33
- const { blockNumber } = await import('./block_number.js');
34
- await blockNumber(options.rpcUrl, debugLogger, log);
35
- });
36
- program.command('get-l1-to-l2-message-witness').description('Gets a L1 to L2 message witness.').requiredOption('-ca, --contract-address <address>', 'Aztec address of the contract.', parseAztecAddress).requiredOption('--message-hash <messageHash>', 'The L1 to L2 message hash.', parseField).requiredOption('--secret <secret>', 'The secret used to claim the L1 to L2 message', parseField).addOption(pxeOption).action(async ({ contractAddress, messageHash, secret, rpcUrl })=>{
37
- const { getL1ToL2MessageWitness } = await import('./get_l1_to_l2_message_witness.js');
38
- await getL1ToL2MessageWitness(rpcUrl, contractAddress, messageHash, secret, debugLogger, log);
39
- });
40
- program.command('get-node-info').description('Gets the information of an Aztec node from a PXE or directly from an Aztec node.').option('--node-url <string>', 'URL of the node.').option('--json', 'Emit output as json').addOption(makePxeOption(false)).action(async (options)=>{
41
- const { getNodeInfo } = await import('./get_node_info.js');
42
- let url;
43
- if (options.nodeUrl) {
44
- url = options.nodeUrl;
45
- } else {
46
- url = options.rpcUrl;
47
- }
48
- await getNodeInfo(url, !options.nodeUrl, debugLogger, options.json, log, logJson(log));
49
- });
50
- program.command('get-pxe-info').description('Gets the information of a PXE at a URL.').addOption(pxeOption).action(async (options)=>{
51
- const { getPXEInfo } = await import('./get_pxe_info.js');
52
- await getPXEInfo(options.rpcUrl, debugLogger, log);
53
- });
54
- return program;
55
- }
@@ -1,321 +0,0 @@
1
- import { getInitialTestAccountsManagers } from '@aztec/accounts/testing';
2
- import {
3
- AztecAddress,
4
- BatchCall,
5
- EthAddress,
6
- Fr,
7
- L1FeeJuicePortalManager,
8
- type PXE,
9
- type WaitForProvenOpts,
10
- type WaitOpts,
11
- type Wallet,
12
- createCompatibleClient,
13
- retryUntil,
14
- waitForProven,
15
- } from '@aztec/aztec.js';
16
- import {
17
- type ContractArtifacts,
18
- type ExtendedViemWalletClient,
19
- createEthereumChain,
20
- createExtendedL1Client,
21
- deployL1Contract,
22
- } from '@aztec/ethereum';
23
- import type { LogFn, Logger } from '@aztec/foundation/log';
24
-
25
- import { getContract } from 'viem';
26
- import { mnemonicToAccount, privateKeyToAccount } from 'viem/accounts';
27
-
28
- type ContractDeploymentInfo = {
29
- address: AztecAddress;
30
- initHash: Fr;
31
- salt: Fr;
32
- };
33
-
34
- const waitOpts: WaitOpts = {
35
- timeout: 120,
36
- interval: 1,
37
- };
38
-
39
- const provenWaitOpts: WaitForProvenOpts = {
40
- provenTimeout: 4800,
41
- interval: 1,
42
- };
43
-
44
- export async function bootstrapNetwork(
45
- pxeUrl: string,
46
- l1Urls: string[],
47
- l1ChainId: string,
48
- l1PrivateKey: `0x${string}` | undefined,
49
- l1Mnemonic: string,
50
- addressIndex: number,
51
- json: boolean,
52
- log: LogFn,
53
- debugLog: Logger,
54
- ) {
55
- const pxe = await createCompatibleClient(pxeUrl, debugLog);
56
-
57
- // We assume here that the initial test accounts were prefunded with deploy-l1-contracts, and deployed with setup-l2-contracts
58
- // so all we need to do is register them to our pxe.
59
- const [accountManager] = await getInitialTestAccountsManagers(pxe);
60
- await accountManager.register();
61
-
62
- const wallet = await accountManager.getWallet();
63
- const defaultAccountAddress = wallet.getAddress();
64
-
65
- const l1Client = createExtendedL1Client(
66
- l1Urls,
67
- l1PrivateKey
68
- ? privateKeyToAccount(l1PrivateKey)
69
- : // We need to use a different account that the main "deployer" account because the "deployer" account creates transactions that send blobs.
70
- // Note that this account needs to be funded on L1 !
71
- mnemonicToAccount(l1Mnemonic, { addressIndex }),
72
- createEthereumChain(l1Urls, +l1ChainId).chainInfo,
73
- );
74
-
75
- const { erc20Address, portalAddress } = await deployERC20(l1Client);
76
-
77
- const { token, bridge } = await deployToken(wallet, defaultAccountAddress, portalAddress);
78
-
79
- await initPortal(pxe, l1Client, erc20Address, portalAddress, bridge.address);
80
-
81
- const fpcAdmin = wallet.getAddress();
82
- const fpc = await deployFPC(wallet, defaultAccountAddress, token.address, fpcAdmin);
83
-
84
- const counter = await deployCounter(wallet, defaultAccountAddress);
85
-
86
- await fundFPC(pxe, counter.address, wallet, defaultAccountAddress, l1Client, fpc.address, debugLog);
87
-
88
- if (json) {
89
- log(
90
- JSON.stringify(
91
- {
92
- devCoinL1: erc20Address.toString(),
93
- devCoinPortalL1: portalAddress.toString(),
94
- devCoin: {
95
- address: token.address.toString(),
96
- initHash: token.initHash.toString(),
97
- salt: token.salt.toString(),
98
- },
99
- devCoinBridge: {
100
- address: bridge.address.toString(),
101
- initHash: bridge.initHash.toString(),
102
- salt: bridge.salt.toString(),
103
- },
104
- devCoinFpc: {
105
- address: fpc.address.toString(),
106
- initHash: fpc.initHash.toString(),
107
- salt: fpc.salt.toString(),
108
- },
109
- counter: {
110
- address: counter.address.toString(),
111
- initHash: counter.initHash.toString(),
112
- salt: counter.salt.toString(),
113
- },
114
- },
115
- null,
116
- 2,
117
- ),
118
- );
119
- } else {
120
- log(`DevCoin L1: ${erc20Address}`);
121
- log(`DevCoin L1 Portal: ${portalAddress}`);
122
- log(`DevCoin L2: ${token.address}`);
123
- log(`DevCoin L2 init hash: ${token.initHash}`);
124
- log(`DevCoin L2 salt: ${token.salt}`);
125
- log(`DevCoin L2 Bridge: ${bridge.address}`);
126
- log(`DevCoin L2 Bridge init hash: ${bridge.initHash}`);
127
- log(`DevCoin L2 Bridge salt: ${bridge.salt}`);
128
- log(`DevCoin FPC: ${fpc.address}`);
129
- log(`DevCoin FPC init hash: ${fpc.initHash}`);
130
- log(`DevCoin FPC salt: ${fpc.salt}`);
131
- log(`Counter: ${counter.address}`);
132
- log(`Counter init hash: ${counter.initHash}`);
133
- log(`Counter salt: ${counter.salt}`);
134
- }
135
- }
136
-
137
- /**
138
- * Step 1. Deploy the L1 contracts, but don't initialize
139
- */
140
- async function deployERC20(l1Client: ExtendedViemWalletClient) {
141
- const { TestERC20Abi, TestERC20Bytecode, TokenPortalAbi, TokenPortalBytecode } = await import('@aztec/l1-artifacts');
142
-
143
- const erc20: ContractArtifacts = {
144
- name: 'TestERC20',
145
- contractAbi: TestERC20Abi,
146
- contractBytecode: TestERC20Bytecode,
147
- };
148
- const portal: ContractArtifacts = {
149
- name: 'TokenPortal',
150
- contractAbi: TokenPortalAbi,
151
- contractBytecode: TokenPortalBytecode,
152
- };
153
-
154
- const { address: erc20Address } = await deployL1Contract(l1Client, erc20.contractAbi, erc20.contractBytecode, [
155
- 'DevCoin',
156
- 'DEV',
157
- l1Client.account.address,
158
- ]);
159
- const { address: portalAddress } = await deployL1Contract(l1Client, portal.contractAbi, portal.contractBytecode);
160
-
161
- return {
162
- erc20Address,
163
- portalAddress,
164
- };
165
- }
166
-
167
- /**
168
- * Step 2. Deploy the L2 contracts
169
- */
170
- async function deployToken(
171
- wallet: Wallet,
172
- defaultAccountAddress: AztecAddress,
173
- l1Portal: EthAddress,
174
- ): Promise<{ token: ContractDeploymentInfo; bridge: ContractDeploymentInfo }> {
175
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
176
- // @ts-ignore - Importing noir-contracts.js even in devDeps results in a circular dependency error. Need to ignore because this line doesn't cause an error in a dev environment
177
- const { TokenContract } = await import('@aztec/noir-contracts.js/Token');
178
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
179
- // @ts-ignore - Importing noir-contracts.js even in devDeps results in a circular dependency error. Need to ignore because this line doesn't cause an error in a dev environment
180
- const { TokenBridgeContract } = await import('@aztec/noir-contracts.js/TokenBridge');
181
- const devCoin = await TokenContract.deploy(wallet, defaultAccountAddress, 'DevCoin', 'DEV', 18)
182
- .send({ from: defaultAccountAddress, universalDeploy: true })
183
- .deployed(waitOpts);
184
- const bridge = await TokenBridgeContract.deploy(wallet, devCoin.address, l1Portal)
185
- .send({ from: defaultAccountAddress, universalDeploy: true })
186
- .deployed(waitOpts);
187
-
188
- await new BatchCall(wallet, [
189
- devCoin.methods.set_minter(bridge.address, true),
190
- devCoin.methods.set_admin(bridge.address),
191
- ])
192
- .send({ from: defaultAccountAddress })
193
- .wait(waitOpts);
194
-
195
- return {
196
- token: {
197
- address: devCoin.address,
198
- initHash: devCoin.instance.initializationHash,
199
- salt: devCoin.instance.salt,
200
- },
201
- bridge: {
202
- address: bridge.address,
203
- initHash: bridge.instance.initializationHash,
204
- salt: bridge.instance.salt,
205
- },
206
- };
207
- }
208
-
209
- /**
210
- * Step 3. Initialize DevCoin's L1 portal
211
- */
212
- async function initPortal(
213
- pxe: PXE,
214
- l1Client: ExtendedViemWalletClient,
215
- erc20: EthAddress,
216
- portal: EthAddress,
217
- bridge: AztecAddress,
218
- ) {
219
- const { TokenPortalAbi } = await import('@aztec/l1-artifacts');
220
- const {
221
- l1ContractAddresses: { registryAddress },
222
- } = await pxe.getNodeInfo();
223
-
224
- const contract = getContract({
225
- abi: TokenPortalAbi,
226
- address: portal.toString(),
227
- client: l1Client,
228
- });
229
-
230
- const hash = await contract.write.initialize([registryAddress.toString(), erc20.toString(), bridge.toString()]);
231
-
232
- await l1Client.waitForTransactionReceipt({ hash });
233
- }
234
-
235
- async function deployFPC(
236
- wallet: Wallet,
237
- defaultAccountAddress: AztecAddress,
238
- tokenAddress: AztecAddress,
239
- admin: AztecAddress,
240
- ): Promise<ContractDeploymentInfo> {
241
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
242
- // @ts-ignore - Importing noir-contracts.js even in devDeps results in a circular dependency error. Need to ignore because this line doesn't cause an error in a dev environment
243
- const { FPCContract } = await import('@aztec/noir-contracts.js/FPC');
244
- const fpc = await FPCContract.deploy(wallet, tokenAddress, admin)
245
- .send({ from: defaultAccountAddress, universalDeploy: true })
246
- .deployed(waitOpts);
247
- const info: ContractDeploymentInfo = {
248
- address: fpc.address,
249
- initHash: fpc.instance.initializationHash,
250
- salt: fpc.instance.salt,
251
- };
252
- return info;
253
- }
254
-
255
- async function deployCounter(wallet: Wallet, defaultAccountAddress: AztecAddress): Promise<ContractDeploymentInfo> {
256
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
257
- // @ts-ignore - Importing noir-contracts.js even in devDeps results in a circular dependency error. Need to ignore because this line doesn't cause an error in a dev environment
258
- const { CounterContract } = await import('@aztec/noir-test-contracts.js/Counter');
259
- const counter = await CounterContract.deploy(wallet, 1, defaultAccountAddress)
260
- .send({ from: defaultAccountAddress, universalDeploy: true })
261
- .deployed(waitOpts);
262
- const info: ContractDeploymentInfo = {
263
- address: counter.address,
264
- initHash: counter.instance.initializationHash,
265
- salt: counter.instance.salt,
266
- };
267
- return info;
268
- }
269
-
270
- // NOTE: Disabling for now in order to get devnet running
271
- async function fundFPC(
272
- pxe: PXE,
273
- counterAddress: AztecAddress,
274
- wallet: Wallet,
275
- defaultAccountAddress: AztecAddress,
276
- l1Client: ExtendedViemWalletClient,
277
- fpcAddress: AztecAddress,
278
- debugLog: Logger,
279
- ) {
280
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
281
- // @ts-ignore - Importing noir-contracts.js even in devDeps results in a circular dependency error. Need to ignore because this line doesn't cause an error in a dev environment
282
- const { FeeJuiceContract } = await import('@aztec/noir-contracts.js/FeeJuice');
283
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
284
- // @ts-ignore - Importing noir-contracts.js even in devDeps results in a circular dependency error. Need to ignore because this line doesn't cause an error in a dev environment
285
- const { CounterContract } = await import('@aztec/noir-test-contracts.js/Counter');
286
- const {
287
- protocolContractAddresses: { feeJuice },
288
- } = await wallet.getPXEInfo();
289
-
290
- const feeJuiceContract = await FeeJuiceContract.at(feeJuice, wallet);
291
-
292
- const feeJuicePortal = await L1FeeJuicePortalManager.new(wallet, l1Client, debugLog);
293
-
294
- const { claimAmount, claimSecret, messageLeafIndex, messageHash } = await feeJuicePortal.bridgeTokensPublic(
295
- fpcAddress,
296
- undefined,
297
- true,
298
- );
299
-
300
- await retryUntil(async () => await pxe.isL1ToL2MessageSynced(Fr.fromHexString(messageHash)), 'message sync', 600, 1);
301
-
302
- const counter = await CounterContract.at(counterAddress, wallet);
303
-
304
- debugLog.info('Incrementing Counter');
305
-
306
- // TODO (alexg) remove this once sequencer builds blocks continuously
307
- // advance the chain
308
- await counter.methods.increment(wallet.getAddress()).send({ from: defaultAccountAddress }).wait(waitOpts);
309
- await counter.methods.increment(wallet.getAddress()).send({ from: defaultAccountAddress }).wait(waitOpts);
310
-
311
- debugLog.info('Claiming FPC');
312
-
313
- const receipt = await feeJuiceContract.methods
314
- .claim(fpcAddress, claimAmount, claimSecret, messageLeafIndex)
315
- .send({ from: defaultAccountAddress })
316
- .wait({ ...waitOpts });
317
-
318
- await waitForProven(pxe, receipt, provenWaitOpts);
319
-
320
- debugLog.info('Finished claiming FPC');
321
- }
@@ -1,33 +0,0 @@
1
- import type { EthAddress } from '@aztec/foundation/eth-address';
2
- import type { LogFn } from '@aztec/foundation/log';
3
-
4
- import { prettyPrintJSON } from '../../utils/commands.js';
5
-
6
- export async function dripFaucet(
7
- faucetUrl: string,
8
- asset: string,
9
- account: EthAddress,
10
- json: boolean,
11
- log: LogFn,
12
- ): Promise<void> {
13
- const url = new URL(`/drip/${account.toString()}`, faucetUrl);
14
- url.searchParams.set('asset', asset);
15
- const res = await fetch(url);
16
- if (res.status === 200) {
17
- if (json) {
18
- log(prettyPrintJSON({ ok: true }));
19
- } else {
20
- log(`Dripped ${asset} for ${account.toString()}`);
21
- }
22
- } else {
23
- if (json) {
24
- log(prettyPrintJSON({ ok: false }));
25
- } else if (res.status === 429) {
26
- log(`Rate limited when dripping ${asset} for ${account.toString()}`);
27
- } else {
28
- log(`Failed to drip ${asset} for ${account.toString()}`);
29
- }
30
-
31
- process.exit(1);
32
- }
33
- }
@@ -1,60 +0,0 @@
1
- import type { LogFn, Logger } from '@aztec/foundation/log';
2
-
3
- import type { Command } from 'commander';
4
-
5
- import { ETHEREUM_HOSTS, l1ChainIdOption, parseEthereumAddress, pxeOption } from '../../utils/commands.js';
6
-
7
- export function injectCommands(program: Command, log: LogFn, debugLogger: Logger) {
8
- program
9
- .command('bootstrap-network')
10
- .description('Bootstrap a new network')
11
- .addOption(pxeOption)
12
- .addOption(l1ChainIdOption)
13
- .requiredOption<string[]>(
14
- '--l1-rpc-urls <string>',
15
- 'List of Ethereum host URLs. Chain identifiers localhost and testnet can be used (comma separated)',
16
- (arg: string) => arg.split(','),
17
- [ETHEREUM_HOSTS],
18
- )
19
- .option('--l1-private-key <string>', 'The private key to use for deployment', process.env.PRIVATE_KEY)
20
- .option(
21
- '-m, --mnemonic <string>',
22
- 'The mnemonic to use in deployment',
23
- 'test test test test test test test test test test test junk',
24
- )
25
- .option(
26
- '-ai, --address-index <number>',
27
- 'The address index to use when calculating an address',
28
- arg => BigInt(arg),
29
- 0n,
30
- )
31
- .option('--json', 'Output the result as JSON')
32
- .action(async options => {
33
- const { bootstrapNetwork } = await import('./bootstrap_network.js');
34
- await bootstrapNetwork(
35
- options[pxeOption.attributeName()],
36
- options.l1RpcUrls,
37
- options[l1ChainIdOption.attributeName()],
38
- options.l1PrivateKey,
39
- options.mnemonic,
40
- options.addressIndex,
41
- options.json,
42
- log,
43
- debugLogger,
44
- );
45
- });
46
-
47
- program
48
- .command('drip-faucet')
49
- .description('Drip the faucet')
50
- .requiredOption('-u, --faucet-url <string>', 'Url of the faucet', 'http://localhost:8082')
51
- .requiredOption('-t, --token <string>', 'The asset to drip', 'eth')
52
- .requiredOption('-a, --address <string>', 'The Ethereum address to drip to', parseEthereumAddress)
53
- .option('--json', 'Output the result as JSON')
54
- .action(async options => {
55
- const { dripFaucet } = await import('./faucet.js');
56
- await dripFaucet(options.faucetUrl, options.token, options.address, options.json, log);
57
- });
58
-
59
- return program;
60
- }