@aztec/cli 0.17.0 → 0.77.0-testnet-ignition.17

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 (325) hide show
  1. package/README.md +10 -16
  2. package/dest/cmds/contracts/index.d.ts +4 -0
  3. package/dest/cmds/contracts/index.d.ts.map +1 -0
  4. package/dest/cmds/contracts/index.js +12 -0
  5. package/dest/cmds/contracts/inspect_contract.d.ts +3 -0
  6. package/dest/cmds/contracts/inspect_contract.d.ts.map +1 -0
  7. package/dest/cmds/contracts/inspect_contract.js +37 -0
  8. package/dest/cmds/{parse_parameter_struct.d.ts → contracts/parse_parameter_struct.d.ts} +1 -4
  9. package/dest/cmds/contracts/parse_parameter_struct.d.ts.map +1 -0
  10. package/dest/cmds/contracts/parse_parameter_struct.js +13 -0
  11. package/dest/cmds/devnet/bootstrap_network.d.ts +3 -0
  12. package/dest/cmds/devnet/bootstrap_network.d.ts.map +1 -0
  13. package/dest/cmds/devnet/bootstrap_network.js +196 -0
  14. package/dest/cmds/devnet/faucet.d.ts +4 -0
  15. package/dest/cmds/devnet/faucet.d.ts.map +1 -0
  16. package/dest/cmds/devnet/faucet.js +26 -0
  17. package/dest/cmds/devnet/index.d.ts +4 -0
  18. package/dest/cmds/devnet/index.d.ts.map +1 -0
  19. package/dest/cmds/devnet/index.js +14 -0
  20. package/dest/cmds/infrastructure/index.d.ts +4 -0
  21. package/dest/cmds/infrastructure/index.d.ts.map +1 -0
  22. package/dest/cmds/infrastructure/index.js +24 -0
  23. package/dest/cmds/infrastructure/sequencers.d.ts +13 -0
  24. package/dest/cmds/infrastructure/sequencers.d.ts.map +1 -0
  25. package/dest/cmds/infrastructure/sequencers.js +93 -0
  26. package/dest/cmds/infrastructure/setup_l2_contract.d.ts +3 -0
  27. package/dest/cmds/infrastructure/setup_l2_contract.d.ts.map +1 -0
  28. package/dest/cmds/infrastructure/setup_l2_contract.js +43 -0
  29. package/dest/cmds/l1/advance_epoch.d.ts +3 -0
  30. package/dest/cmds/l1/advance_epoch.d.ts.map +1 -0
  31. package/dest/cmds/l1/advance_epoch.js +10 -0
  32. package/dest/cmds/l1/assume_proven_through.d.ts +3 -0
  33. package/dest/cmds/l1/assume_proven_through.d.ts.map +1 -0
  34. package/dest/cmds/l1/assume_proven_through.js +12 -0
  35. package/dest/cmds/l1/bridge_erc20.d.ts +4 -0
  36. package/dest/cmds/l1/bridge_erc20.d.ts.map +1 -0
  37. package/dest/cmds/l1/bridge_erc20.js +31 -0
  38. package/dest/cmds/l1/create_l1_account.d.ts +3 -0
  39. package/dest/cmds/l1/create_l1_account.d.ts.map +1 -0
  40. package/dest/cmds/l1/create_l1_account.js +15 -0
  41. package/dest/cmds/l1/deploy_l1_contracts.d.ts +4 -0
  42. package/dest/cmds/l1/deploy_l1_contracts.d.ts.map +1 -0
  43. package/dest/cmds/l1/deploy_l1_contracts.js +29 -0
  44. package/dest/cmds/l1/deploy_l1_verifier.d.ts +5 -0
  45. package/dest/cmds/l1/deploy_l1_verifier.d.ts.map +1 -0
  46. package/dest/cmds/l1/deploy_l1_verifier.js +54 -0
  47. package/dest/cmds/l1/deploy_new_rollup.d.ts +4 -0
  48. package/dest/cmds/l1/deploy_new_rollup.d.ts.map +1 -0
  49. package/dest/cmds/l1/deploy_new_rollup.js +19 -0
  50. package/dest/cmds/l1/get_l1_addresses.d.ts +4 -0
  51. package/dest/cmds/l1/get_l1_addresses.d.ts.map +1 -0
  52. package/dest/cmds/l1/get_l1_addresses.js +18 -0
  53. package/dest/cmds/l1/get_l1_balance.d.ts +4 -0
  54. package/dest/cmds/l1/get_l1_balance.d.ts.map +1 -0
  55. package/dest/cmds/l1/get_l1_balance.js +33 -0
  56. package/dest/cmds/l1/governance_utils.d.ts +50 -0
  57. package/dest/cmds/l1/governance_utils.d.ts.map +1 -0
  58. package/dest/cmds/l1/governance_utils.js +85 -0
  59. package/dest/cmds/l1/index.d.ts +4 -0
  60. package/dest/cmds/l1/index.d.ts.map +1 -0
  61. package/dest/cmds/l1/index.js +208 -0
  62. package/dest/cmds/l1/prover_stats.d.ts +14 -0
  63. package/dest/cmds/l1/prover_stats.d.ts.map +1 -0
  64. package/dest/cmds/l1/prover_stats.js +145 -0
  65. package/dest/cmds/l1/update_l1_validators.d.ts +30 -0
  66. package/dest/cmds/l1/update_l1_validators.d.ts.map +1 -0
  67. package/dest/cmds/l1/update_l1_validators.js +186 -0
  68. package/dest/cmds/misc/compute_selector.d.ts +3 -0
  69. package/dest/cmds/misc/compute_selector.d.ts.map +1 -0
  70. package/dest/cmds/misc/compute_selector.js +5 -0
  71. package/dest/cmds/misc/example_contracts.d.ts +3 -0
  72. package/dest/cmds/misc/example_contracts.d.ts.map +1 -0
  73. package/dest/cmds/misc/example_contracts.js +6 -0
  74. package/dest/cmds/misc/generate_bootnode_enr.d.ts +3 -0
  75. package/dest/cmds/misc/generate_bootnode_enr.d.ts.map +1 -0
  76. package/dest/cmds/misc/generate_bootnode_enr.js +5 -0
  77. package/dest/cmds/misc/generate_p2p_private_key.d.ts +3 -0
  78. package/dest/cmds/misc/generate_p2p_private_key.d.ts.map +1 -0
  79. package/dest/cmds/misc/generate_p2p_private_key.js +7 -0
  80. package/dest/cmds/misc/generate_secret_and_hash.d.ts +3 -0
  81. package/dest/cmds/misc/generate_secret_and_hash.d.ts.map +1 -0
  82. package/dest/cmds/misc/generate_secret_and_hash.js +11 -0
  83. package/dest/cmds/misc/generate_secret_key.d.ts +5 -0
  84. package/dest/cmds/misc/generate_secret_key.d.ts.map +1 -0
  85. package/dest/cmds/misc/generate_secret_key.js +6 -0
  86. package/dest/cmds/misc/index.d.ts +4 -0
  87. package/dest/cmds/misc/index.d.ts.map +1 -0
  88. package/dest/cmds/misc/index.js +44 -0
  89. package/dest/cmds/misc/setup_contracts.d.ts +7 -0
  90. package/dest/cmds/misc/setup_contracts.d.ts.map +1 -0
  91. package/dest/cmds/misc/setup_contracts.js +27 -0
  92. package/dest/cmds/misc/update/common.d.ts.map +1 -0
  93. package/dest/cmds/misc/update/common.js +3 -0
  94. package/dest/cmds/misc/update/github.d.ts.map +1 -0
  95. package/dest/cmds/misc/update/github.js +3 -0
  96. package/dest/{update → cmds/misc/update}/noir.d.ts +2 -2
  97. package/dest/cmds/misc/update/noir.d.ts.map +1 -0
  98. package/dest/cmds/misc/update/noir.js +45 -0
  99. package/dest/{update → cmds/misc/update}/npm.d.ts +3 -3
  100. package/dest/cmds/misc/update/npm.d.ts.map +1 -0
  101. package/dest/cmds/misc/update/npm.js +127 -0
  102. package/dest/cmds/misc/update/utils.d.ts +14 -0
  103. package/dest/cmds/misc/update/utils.d.ts.map +1 -0
  104. package/dest/cmds/misc/update/utils.js +38 -0
  105. package/dest/cmds/misc/update.d.ts +3 -0
  106. package/dest/cmds/misc/update.d.ts.map +1 -0
  107. package/dest/cmds/misc/update.js +52 -0
  108. package/dest/cmds/pxe/add_contract.d.ts +5 -0
  109. package/dest/cmds/pxe/add_contract.d.ts.map +1 -0
  110. package/dest/cmds/pxe/add_contract.js +29 -0
  111. package/dest/cmds/pxe/block_number.d.ts +3 -0
  112. package/dest/cmds/pxe/block_number.d.ts.map +1 -0
  113. package/dest/cmds/pxe/block_number.js +10 -0
  114. package/dest/cmds/pxe/get_account.d.ts +4 -0
  115. package/dest/cmds/pxe/get_account.d.ts.map +1 -0
  116. package/dest/cmds/pxe/get_account.js +10 -0
  117. package/dest/cmds/pxe/get_accounts.d.ts +3 -0
  118. package/dest/cmds/pxe/get_accounts.d.ts.map +1 -0
  119. package/dest/cmds/pxe/get_accounts.js +25 -0
  120. package/dest/cmds/pxe/get_block.d.ts +3 -0
  121. package/dest/cmds/pxe/get_block.d.ts.map +1 -0
  122. package/dest/cmds/pxe/get_block.js +9 -0
  123. package/dest/cmds/pxe/get_contract_data.d.ts +4 -0
  124. package/dest/cmds/pxe/get_contract_data.d.ts.map +1 -0
  125. package/dest/cmds/pxe/get_contract_data.js +31 -0
  126. package/dest/cmds/pxe/get_current_base_fee.d.ts +3 -0
  127. package/dest/cmds/pxe/get_current_base_fee.d.ts.map +1 -0
  128. package/dest/cmds/pxe/get_current_base_fee.js +7 -0
  129. package/dest/cmds/pxe/get_l1_to_l2_message_witness.d.ts +4 -0
  130. package/dest/cmds/pxe/get_l1_to_l2_message_witness.d.ts.map +1 -0
  131. package/dest/cmds/pxe/get_l1_to_l2_message_witness.js +11 -0
  132. package/dest/cmds/pxe/get_logs.d.ts +4 -0
  133. package/dest/cmds/pxe/get_logs.d.ts.map +1 -0
  134. package/dest/cmds/pxe/get_logs.js +51 -0
  135. package/dest/cmds/pxe/get_node_info.d.ts +3 -0
  136. package/dest/cmds/pxe/get_node_info.d.ts.map +1 -0
  137. package/dest/cmds/pxe/get_node_info.js +61 -0
  138. package/dest/cmds/pxe/get_pxe_info.d.ts +3 -0
  139. package/dest/cmds/pxe/get_pxe_info.d.ts.map +1 -0
  140. package/dest/cmds/pxe/get_pxe_info.js +11 -0
  141. package/dest/cmds/pxe/index.d.ts +4 -0
  142. package/dest/cmds/pxe/index.d.ts.map +1 -0
  143. package/dest/cmds/pxe/index.js +55 -0
  144. package/dest/utils/aztec.d.ts +68 -0
  145. package/dest/utils/aztec.d.ts.map +1 -0
  146. package/dest/utils/aztec.js +173 -0
  147. package/dest/{parse_args.d.ts → utils/commands.d.ts} +50 -12
  148. package/dest/utils/commands.d.ts.map +1 -0
  149. package/dest/utils/commands.js +303 -0
  150. package/dest/{encoding.d.ts → utils/encoding.d.ts} +1 -1
  151. package/dest/utils/encoding.d.ts.map +1 -0
  152. package/dest/utils/encoding.js +103 -0
  153. package/dest/utils/github.d.ts +4 -0
  154. package/dest/utils/github.d.ts.map +1 -0
  155. package/dest/utils/github.js +3 -0
  156. package/dest/utils/index.d.ts +5 -0
  157. package/dest/utils/index.d.ts.map +1 -0
  158. package/dest/utils/index.js +4 -0
  159. package/dest/utils/inspect.d.ts +17 -0
  160. package/dest/utils/inspect.d.ts.map +1 -0
  161. package/dest/utils/inspect.js +177 -0
  162. package/package.json +68 -22
  163. package/src/cmds/contracts/index.ts +34 -0
  164. package/src/cmds/contracts/inspect_contract.ts +51 -0
  165. package/src/cmds/contracts/parse_parameter_struct.ts +27 -0
  166. package/src/cmds/devnet/bootstrap_network.ts +318 -0
  167. package/src/cmds/devnet/faucet.ts +33 -0
  168. package/src/cmds/devnet/index.ts +60 -0
  169. package/src/cmds/infrastructure/index.ts +55 -0
  170. package/src/cmds/infrastructure/sequencers.ts +103 -0
  171. package/src/cmds/infrastructure/setup_l2_contract.ts +47 -0
  172. package/src/cmds/l1/advance_epoch.ts +12 -0
  173. package/src/cmds/l1/assume_proven_through.ts +19 -0
  174. package/src/cmds/l1/bridge_erc20.ts +52 -0
  175. package/src/cmds/l1/create_l1_account.ts +17 -0
  176. package/src/cmds/l1/deploy_l1_contracts.ts +63 -0
  177. package/src/cmds/l1/deploy_l1_verifier.ts +105 -0
  178. package/src/cmds/l1/deploy_new_rollup.ts +58 -0
  179. package/src/cmds/l1/get_l1_addresses.ts +30 -0
  180. package/src/cmds/l1/get_l1_balance.ts +44 -0
  181. package/src/cmds/l1/governance_utils.ts +187 -0
  182. package/src/cmds/l1/index.ts +556 -0
  183. package/src/cmds/l1/prover_stats.ts +202 -0
  184. package/src/cmds/l1/update_l1_validators.ts +238 -0
  185. package/src/cmds/misc/compute_selector.ts +7 -0
  186. package/src/cmds/misc/example_contracts.ts +12 -0
  187. package/src/cmds/misc/generate_bootnode_enr.ts +12 -0
  188. package/src/cmds/misc/generate_p2p_private_key.ts +10 -0
  189. package/src/cmds/misc/generate_secret_and_hash.ts +15 -0
  190. package/src/cmds/misc/generate_secret_key.ts +5 -0
  191. package/src/cmds/misc/index.ts +92 -0
  192. package/src/cmds/misc/setup_contracts.ts +40 -0
  193. package/src/cmds/misc/update/common.ts +16 -0
  194. package/src/cmds/misc/update/github.ts +3 -0
  195. package/src/cmds/misc/update/noir.ts +57 -0
  196. package/src/cmds/misc/update/npm.ts +154 -0
  197. package/src/cmds/misc/update/utils.ts +50 -0
  198. package/src/cmds/misc/update.ts +78 -0
  199. package/src/cmds/pxe/add_contract.ts +41 -0
  200. package/src/cmds/pxe/block_number.ts +9 -0
  201. package/src/cmds/pxe/get_account.ts +16 -0
  202. package/src/cmds/pxe/get_accounts.ts +35 -0
  203. package/src/cmds/pxe/get_block.ts +10 -0
  204. package/src/cmds/pxe/get_contract_data.ts +51 -0
  205. package/src/cmds/pxe/get_current_base_fee.ts +9 -0
  206. package/src/cmds/pxe/get_l1_to_l2_message_witness.ts +25 -0
  207. package/src/cmds/pxe/get_logs.ts +66 -0
  208. package/src/cmds/pxe/get_node_info.ts +71 -0
  209. package/src/cmds/pxe/get_pxe_info.ts +13 -0
  210. package/src/cmds/pxe/index.ts +170 -0
  211. package/src/utils/aztec.ts +248 -0
  212. package/src/utils/commands.ts +384 -0
  213. package/src/utils/encoding.ts +117 -0
  214. package/src/utils/github.ts +3 -0
  215. package/src/utils/index.ts +4 -0
  216. package/src/utils/inspect.ts +208 -0
  217. package/dest/bin/index.d.ts +0 -3
  218. package/dest/bin/index.d.ts.map +0 -1
  219. package/dest/bin/index.js +0 -19
  220. package/dest/client.d.ts +0 -17
  221. package/dest/client.d.ts.map +0 -1
  222. package/dest/client.js +0 -60
  223. package/dest/cmds/add_contract.d.ts +0 -7
  224. package/dest/cmds/add_contract.d.ts.map +0 -1
  225. package/dest/cmds/add_contract.js +0 -15
  226. package/dest/cmds/add_note.d.ts +0 -8
  227. package/dest/cmds/add_note.d.ts.map +0 -1
  228. package/dest/cmds/add_note.js +0 -13
  229. package/dest/cmds/block_number.d.ts +0 -6
  230. package/dest/cmds/block_number.d.ts.map +0 -1
  231. package/dest/cmds/block_number.js +0 -10
  232. package/dest/cmds/call.d.ts +0 -7
  233. package/dest/cmds/call.d.ts.map +0 -1
  234. package/dest/cmds/call.js +0 -18
  235. package/dest/cmds/check_deploy.d.ts +0 -7
  236. package/dest/cmds/check_deploy.d.ts.map +0 -1
  237. package/dest/cmds/check_deploy.js +0 -16
  238. package/dest/cmds/compute_selector.d.ts +0 -6
  239. package/dest/cmds/compute_selector.d.ts.map +0 -1
  240. package/dest/cmds/compute_selector.js +0 -9
  241. package/dest/cmds/create_account.d.ts +0 -7
  242. package/dest/cmds/create_account.d.ts.map +0 -1
  243. package/dest/cmds/create_account.js +0 -31
  244. package/dest/cmds/deploy.d.ts +0 -7
  245. package/dest/cmds/deploy.d.ts.map +0 -1
  246. package/dest/cmds/deploy.js +0 -58
  247. package/dest/cmds/deploy_l1_contracts.d.ts +0 -6
  248. package/dest/cmds/deploy_l1_contracts.d.ts.map +0 -1
  249. package/dest/cmds/deploy_l1_contracts.js +0 -15
  250. package/dest/cmds/example_contracts.d.ts +0 -6
  251. package/dest/cmds/example_contracts.d.ts.map +0 -1
  252. package/dest/cmds/example_contracts.js +0 -10
  253. package/dest/cmds/generate_p2p_private_key.d.ts +0 -6
  254. package/dest/cmds/generate_p2p_private_key.d.ts.map +0 -1
  255. package/dest/cmds/generate_p2p_private_key.js +0 -11
  256. package/dest/cmds/generate_private_key.d.ts +0 -6
  257. package/dest/cmds/generate_private_key.d.ts.map +0 -1
  258. package/dest/cmds/generate_private_key.js +0 -22
  259. package/dest/cmds/get_account.d.ts +0 -7
  260. package/dest/cmds/get_account.d.ts.map +0 -1
  261. package/dest/cmds/get_account.js +0 -15
  262. package/dest/cmds/get_accounts.d.ts +0 -6
  263. package/dest/cmds/get_accounts.d.ts.map +0 -1
  264. package/dest/cmds/get_accounts.js +0 -18
  265. package/dest/cmds/get_contract_data.d.ts +0 -7
  266. package/dest/cmds/get_contract_data.d.ts.map +0 -1
  267. package/dest/cmds/get_contract_data.js +0 -28
  268. package/dest/cmds/get_logs.d.ts +0 -7
  269. package/dest/cmds/get_logs.d.ts.map +0 -1
  270. package/dest/cmds/get_logs.js +0 -54
  271. package/dest/cmds/get_node_info.d.ts +0 -6
  272. package/dest/cmds/get_node_info.d.ts.map +0 -1
  273. package/dest/cmds/get_node_info.js +0 -15
  274. package/dest/cmds/get_recipient.d.ts +0 -7
  275. package/dest/cmds/get_recipient.d.ts.map +0 -1
  276. package/dest/cmds/get_recipient.js +0 -15
  277. package/dest/cmds/get_recipients.d.ts +0 -6
  278. package/dest/cmds/get_recipients.d.ts.map +0 -1
  279. package/dest/cmds/get_recipients.js +0 -18
  280. package/dest/cmds/get_tx_receipt.d.ts +0 -7
  281. package/dest/cmds/get_tx_receipt.d.ts.map +0 -1
  282. package/dest/cmds/get_tx_receipt.js +0 -16
  283. package/dest/cmds/inspect_contract.d.ts +0 -6
  284. package/dest/cmds/inspect_contract.d.ts.map +0 -1
  285. package/dest/cmds/inspect_contract.js +0 -19
  286. package/dest/cmds/parse_parameter_struct.d.ts.map +0 -1
  287. package/dest/cmds/parse_parameter_struct.js +0 -20
  288. package/dest/cmds/register_account.d.ts +0 -7
  289. package/dest/cmds/register_account.d.ts.map +0 -1
  290. package/dest/cmds/register_account.js +0 -13
  291. package/dest/cmds/register_recipient.d.ts +0 -7
  292. package/dest/cmds/register_recipient.d.ts.map +0 -1
  293. package/dest/cmds/register_recipient.js +0 -11
  294. package/dest/cmds/send.d.ts +0 -7
  295. package/dest/cmds/send.d.ts.map +0 -1
  296. package/dest/cmds/send.js +0 -27
  297. package/dest/cmds/unbox.d.ts +0 -7
  298. package/dest/cmds/unbox.d.ts.map +0 -1
  299. package/dest/cmds/unbox.js +0 -133
  300. package/dest/encoding.d.ts.map +0 -1
  301. package/dest/encoding.js +0 -114
  302. package/dest/github.d.ts.map +0 -1
  303. package/dest/github.js +0 -4
  304. package/dest/index.d.ts +0 -10
  305. package/dest/index.d.ts.map +0 -1
  306. package/dest/index.js +0 -321
  307. package/dest/parse_args.d.ts.map +0 -1
  308. package/dest/parse_args.js +0 -233
  309. package/dest/test/mocks.d.ts +0 -3
  310. package/dest/test/mocks.d.ts.map +0 -1
  311. package/dest/test/mocks.js +0 -65
  312. package/dest/update/common.d.ts.map +0 -1
  313. package/dest/update/common.js +0 -2
  314. package/dest/update/noir.d.ts.map +0 -1
  315. package/dest/update/noir.js +0 -63
  316. package/dest/update/npm.d.ts.map +0 -1
  317. package/dest/update/npm.js +0 -125
  318. package/dest/update/update.d.ts +0 -3
  319. package/dest/update/update.d.ts.map +0 -1
  320. package/dest/update/update.js +0 -58
  321. package/dest/utils.d.ts +0 -70
  322. package/dest/utils.d.ts.map +0 -1
  323. package/dest/utils.js +0 -168
  324. /package/dest/{update → cmds/misc/update}/common.d.ts +0 -0
  325. /package/dest/{github.d.ts → cmds/misc/update/github.d.ts} +0 -0
@@ -0,0 +1,177 @@
1
+ import { ProtocolContractAddress } from '@aztec/protocol-contracts';
2
+ import { siloNullifier } from '@aztec/stdlib/hash';
3
+ import { NoteStatus } from '@aztec/stdlib/note';
4
+ export async function inspectBlock(pxe, blockNumber, log, opts = {}) {
5
+ const block = await pxe.getBlock(blockNumber);
6
+ if (!block) {
7
+ log(`No block found for block number ${blockNumber}`);
8
+ return;
9
+ }
10
+ const blockHash = await block.hash();
11
+ log(`Block ${blockNumber} (${blockHash.toString()})`);
12
+ log(` Total fees: ${block.header.totalFees.toBigInt()}`);
13
+ log(` Total mana used: ${block.header.totalManaUsed.toBigInt()}`);
14
+ log(` Fee per gas unit: DA=${block.header.globalVariables.gasFees.feePerDaGas.toBigInt()} L2=${block.header.globalVariables.gasFees.feePerL2Gas.toBigInt()}`);
15
+ log(` Coinbase: ${block.header.globalVariables.coinbase}`);
16
+ log(` Fee recipient: ${block.header.globalVariables.feeRecipient}`);
17
+ log(` Timestamp: ${new Date(block.header.globalVariables.timestamp.toNumber() * 500)}`);
18
+ if (opts.showTxs) {
19
+ log(``);
20
+ const artifactMap = await getKnownArtifacts(pxe);
21
+ for (const txHash of block.body.txEffects.map((tx)=>tx.txHash)){
22
+ await inspectTx(pxe, txHash, log, {
23
+ includeBlockInfo: false,
24
+ artifactMap
25
+ });
26
+ }
27
+ } else {
28
+ log(` Transactions: ${block.body.txEffects.length}`);
29
+ }
30
+ }
31
+ export async function inspectTx(pxe, txHash, log, opts = {}) {
32
+ const [receipt, effectsInBlock, getNotes] = await Promise.all([
33
+ pxe.getTxReceipt(txHash),
34
+ pxe.getTxEffect(txHash),
35
+ pxe.getNotes({
36
+ txHash,
37
+ status: NoteStatus.ACTIVE_OR_NULLIFIED
38
+ })
39
+ ]);
40
+ // Base tx data
41
+ log(`Tx ${txHash.toString()}`);
42
+ log(` Status: ${receipt.status} ${effectsInBlock ? `(${effectsInBlock.data.revertCode.getDescription()})` : ''}`);
43
+ if (receipt.error) {
44
+ log(` Error: ${receipt.error}`);
45
+ }
46
+ if (!effectsInBlock) {
47
+ return;
48
+ }
49
+ const effects = effectsInBlock.data;
50
+ const artifactMap = opts?.artifactMap ?? await getKnownArtifacts(pxe);
51
+ if (opts.includeBlockInfo) {
52
+ log(` Block: ${receipt.blockNumber} (${receipt.blockHash?.toString()})`);
53
+ }
54
+ if (receipt.transactionFee) {
55
+ log(` Fee: ${receipt.transactionFee.toString()}`);
56
+ }
57
+ // Public logs
58
+ const publicLogs = effects.publicLogs;
59
+ if (publicLogs.length > 0) {
60
+ log(' Logs:');
61
+ for (const publicLog of publicLogs){
62
+ log(` ${publicLog.toHumanReadable()}`);
63
+ }
64
+ }
65
+ // Public data writes
66
+ const writes = effects.publicDataWrites;
67
+ if (writes.length > 0) {
68
+ log(' Public data writes:');
69
+ for (const write of writes){
70
+ log(` Leaf ${write.leafSlot.toString()} = ${write.value.toString()}`);
71
+ }
72
+ }
73
+ // Created notes
74
+ const notes = effects.noteHashes;
75
+ if (notes.length > 0) {
76
+ log(' Created notes:');
77
+ log(` Total: ${notes.length}. Found: ${getNotes.length}.`);
78
+ if (getNotes.length) {
79
+ log(' Found notes:');
80
+ for (const note of getNotes){
81
+ inspectNote(note, artifactMap, log);
82
+ }
83
+ }
84
+ }
85
+ // Nullifiers
86
+ const nullifierCount = effects.nullifiers.length;
87
+ const { deployNullifiers, initNullifiers, classNullifiers } = await getKnownNullifiers(pxe, artifactMap);
88
+ if (nullifierCount > 0) {
89
+ log(' Nullifiers:');
90
+ for (const nullifier of effects.nullifiers){
91
+ const [note] = await pxe.getNotes({
92
+ siloedNullifier: nullifier
93
+ });
94
+ const deployed = deployNullifiers[nullifier.toString()];
95
+ const initialized = initNullifiers[nullifier.toString()];
96
+ const registered = classNullifiers[nullifier.toString()];
97
+ if (nullifier.toBuffer().equals(txHash.toBuffer())) {
98
+ log(` Transaction hash nullifier ${nullifier.toShortString()}`);
99
+ } else if (note) {
100
+ inspectNote(note, artifactMap, log, `Nullifier ${nullifier.toShortString()} for note`);
101
+ } else if (deployed) {
102
+ log(` Contract ${toFriendlyAddress(deployed, artifactMap)} deployed via nullifier ${nullifier.toShortString()}`);
103
+ } else if (initialized) {
104
+ log(` Contract ${toFriendlyAddress(initialized, artifactMap)} initialized via nullifier ${nullifier.toShortString()}`);
105
+ } else if (registered) {
106
+ log(` Class ${registered} registered via nullifier ${nullifier.toShortString()}`);
107
+ } else {
108
+ log(` Unknown nullifier ${nullifier.toString()}`);
109
+ }
110
+ }
111
+ }
112
+ // L2 to L1 messages
113
+ if (effects.l2ToL1Msgs.length > 0) {
114
+ log(` L2 to L1 messages:`);
115
+ for (const msg of effects.l2ToL1Msgs){
116
+ log(` ${msg.toString()}`);
117
+ }
118
+ }
119
+ }
120
+ function inspectNote(note, artifactMap, log, text = 'Note') {
121
+ const artifact = artifactMap[note.contractAddress.toString()];
122
+ const contract = artifact?.name ?? note.contractAddress.toString();
123
+ const type = artifact?.notes[note.noteTypeId.toString()]?.typ ?? note.noteTypeId.toField().toShortString();
124
+ log(` ${text} type ${type} at ${contract}`);
125
+ log(` Owner: ${toFriendlyAddress(note.owner, artifactMap)}`);
126
+ for (const field of note.note.items){
127
+ log(` ${field.toString()}`);
128
+ }
129
+ }
130
+ function toFriendlyAddress(address, artifactMap) {
131
+ const artifact = artifactMap[address.toString()];
132
+ if (!artifact) {
133
+ return address.toString();
134
+ }
135
+ return `${artifact.name}<${address.toString()}>`;
136
+ }
137
+ async function getKnownNullifiers(pxe, artifactMap) {
138
+ const knownContracts = await pxe.getContracts();
139
+ const deployerAddress = ProtocolContractAddress.ContractInstanceDeployer;
140
+ const registererAddress = ProtocolContractAddress.ContractClassRegisterer;
141
+ const initNullifiers = {};
142
+ const deployNullifiers = {};
143
+ const classNullifiers = {};
144
+ for (const contract of knownContracts){
145
+ initNullifiers[siloNullifier(contract, contract.toField()).toString()] = contract;
146
+ deployNullifiers[siloNullifier(deployerAddress, contract.toField()).toString()] = contract;
147
+ }
148
+ for (const artifact of Object.values(artifactMap)){
149
+ classNullifiers[siloNullifier(registererAddress, artifact.classId).toString()] = `${artifact.name}Class<${artifact.classId}>`;
150
+ }
151
+ return {
152
+ initNullifiers,
153
+ deployNullifiers,
154
+ classNullifiers
155
+ };
156
+ }
157
+ async function getKnownArtifacts(pxe) {
158
+ const knownContractAddresses = await pxe.getContracts();
159
+ const knownContracts = (await Promise.all(knownContractAddresses.map((contractAddress)=>pxe.getContractMetadata(contractAddress)))).map((contractMetadata)=>contractMetadata.contractInstance);
160
+ const classIds = [
161
+ ...new Set(knownContracts.map((contract)=>contract?.currentContractClassId))
162
+ ];
163
+ const knownArtifacts = (await Promise.all(classIds.map((classId)=>classId ? pxe.getContractClassMetadata(classId) : undefined))).map((contractClassMetadata)=>contractClassMetadata ? {
164
+ ...contractClassMetadata.artifact,
165
+ classId: contractClassMetadata.contractClass?.id
166
+ } : undefined);
167
+ const map = {};
168
+ for (const instance of knownContracts){
169
+ if (instance) {
170
+ const artifact = knownArtifacts.find((a)=>a?.classId?.equals(instance.currentContractClassId));
171
+ if (artifact) {
172
+ map[instance.address.toString()] = artifact;
173
+ }
174
+ }
175
+ }
176
+ return map;
177
+ }
package/package.json CHANGED
@@ -1,14 +1,22 @@
1
1
  {
2
2
  "name": "@aztec/cli",
3
- "version": "0.17.0",
3
+ "version": "0.77.0-testnet-ignition.17",
4
4
  "type": "module",
5
- "main": "./dest/index.js",
6
- "bin": {
7
- "aztec-cli": "./dest/bin/index.js"
5
+ "exports": {
6
+ "./contracts": "./dest/cmds/contracts/index.js",
7
+ "./devnet": "./dest/cmds/devnet/index.js",
8
+ "./infrastructure": "./dest/cmds/infrastructure/index.js",
9
+ "./l1": "./dest/cmds/l1/index.js",
10
+ "./pxe": "./dest/cmds/pxe/index.js",
11
+ "./cli-utils": "./dest/utils/index.js",
12
+ "./misc": "./dest/cmds/misc/index.js",
13
+ "./setup-contracts": "./dest/cmds/misc/setup_contracts.js",
14
+ "./utils": "./dest/utils/index.js",
15
+ "./inspect": "./dest/utils/inspect.js"
8
16
  },
9
17
  "typedocOptions": {
10
18
  "entryPoints": [
11
- "./src/index.ts"
19
+ "./dest/builder/index.js"
12
20
  ],
13
21
  "name": "Aztec CLI",
14
22
  "tsconfig": "./tsconfig.json"
@@ -19,8 +27,7 @@
19
27
  "clean": "rm -rf ./dest .tsbuildinfo",
20
28
  "formatting": "run -T prettier --check ./src && run -T eslint ./src",
21
29
  "formatting:fix": "run -T eslint --fix ./src && run -T prettier -w ./src",
22
- "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules $(yarn bin jest) --passWithNoTests",
23
- "start": "node --no-warnings ./dest/bin/index.js"
30
+ "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
24
31
  },
25
32
  "inherits": [
26
33
  "../package.common.json"
@@ -31,32 +38,61 @@
31
38
  "^(\\.{1,2}/.*)\\.[cm]?js$": "$1"
32
39
  },
33
40
  "testRegex": "./src/.*\\.test\\.(js|mjs|ts)$",
34
- "rootDir": "./src"
41
+ "rootDir": "./src",
42
+ "extensionsToTreatAsEsm": [
43
+ ".ts"
44
+ ],
45
+ "transform": {
46
+ "^.+\\.tsx?$": [
47
+ "@swc/jest",
48
+ {
49
+ "jsc": {
50
+ "parser": {
51
+ "syntax": "typescript",
52
+ "decorators": true
53
+ },
54
+ "transform": {
55
+ "decoratorVersion": "2022-03"
56
+ }
57
+ }
58
+ }
59
+ ]
60
+ },
61
+ "reporters": [
62
+ "default"
63
+ ],
64
+ "testTimeout": 120000,
65
+ "setupFiles": [
66
+ "../../foundation/src/jest/setup.mjs"
67
+ ]
35
68
  },
36
69
  "dependencies": {
37
- "@aztec/accounts": "0.17.0",
38
- "@aztec/aztec.js": "0.17.0",
39
- "@aztec/ethereum": "0.17.0",
40
- "@aztec/foundation": "0.17.0",
41
- "@aztec/l1-artifacts": "0.17.0",
42
- "@aztec/noir-compiler": "0.17.0",
43
- "@aztec/noir-contracts": "0.17.0",
44
- "@aztec/types": "0.17.0",
70
+ "@aztec/archiver": "0.77.0-testnet-ignition.17",
71
+ "@aztec/aztec.js": "0.77.0-testnet-ignition.17",
72
+ "@aztec/constants": "0.77.0-testnet-ignition.17",
73
+ "@aztec/foundation": "0.77.0-testnet-ignition.17",
74
+ "@aztec/l1-artifacts": "0.77.0-testnet-ignition.17",
75
+ "@aztec/p2p": "0.77.0-testnet-ignition.17",
76
+ "@aztec/stdlib": "0.77.0-testnet-ignition.17",
77
+ "@aztec/world-state": "0.77.0-testnet-ignition.17",
45
78
  "@iarna/toml": "^2.2.5",
46
79
  "@libp2p/peer-id-factory": "^3.0.4",
47
- "@ltd/j-toml": "^1.38.0",
48
- "commander": "^9.0.0",
49
- "jszip": "^3.10.1",
50
- "lodash.startcase": "^4.4.0",
51
- "node-fetch": "^3.3.2",
80
+ "commander": "^12.1.0",
81
+ "lodash.chunk": "^4.2.0",
82
+ "lodash.groupby": "^4.6.0",
52
83
  "semver": "^7.5.4",
53
84
  "source-map-support": "^0.5.21",
54
85
  "tslib": "^2.4.0",
55
- "viem": "^1.2.5"
86
+ "viem": "2.22.8"
56
87
  },
57
88
  "devDependencies": {
89
+ "@aztec/accounts": "workspace:^",
90
+ "@aztec/ethereum": "workspace:^",
91
+ "@aztec/protocol-contracts": "workspace:^",
58
92
  "@jest/globals": "^29.5.0",
59
93
  "@types/jest": "^29.5.0",
94
+ "@types/lodash.chunk": "^4.2.9",
95
+ "@types/lodash.groupby": "^4.6.9",
60
96
  "@types/lodash.startcase": "^4.4.7",
61
97
  "@types/node": "^18.7.23",
62
98
  "@types/semver": "^7.5.2",
@@ -67,6 +103,16 @@
67
103
  "ts-node": "^10.9.1",
68
104
  "typescript": "^5.0.4"
69
105
  },
106
+ "peerDependencies": {
107
+ "@aztec/accounts": "workspace:^",
108
+ "@aztec/bb-prover": "workspace:^",
109
+ "@aztec/ethereum": "workspace:^",
110
+ "@aztec/l1-artifacts": "workspace:^",
111
+ "@aztec/noir-contracts.js": "workspace:^",
112
+ "@aztec/noir-protocol-circuits-types": "workspace:^",
113
+ "@aztec/protocol-contracts": "workspace:^",
114
+ "@aztec/stdlib": "workspace:^"
115
+ },
70
116
  "files": [
71
117
  "dest",
72
118
  "src",
@@ -0,0 +1,34 @@
1
+ import type { LogFn, Logger } from '@aztec/foundation/log';
2
+
3
+ import type { Command } from 'commander';
4
+
5
+ export function injectCommands(program: Command, log: LogFn, debugLogger: Logger) {
6
+ program
7
+ .command('inspect-contract')
8
+ .description('Shows list of external callable functions for a contract')
9
+ .argument(
10
+ '<contractArtifactFile>',
11
+ `A compiled Noir contract's artifact in JSON format or name of a contract artifact exported by @aztec/noir-contracts.js`,
12
+ )
13
+ .action(async (contractArtifactFile: string) => {
14
+ const { inspectContract } = await import('./inspect_contract.js');
15
+ await inspectContract(contractArtifactFile, debugLogger, log);
16
+ });
17
+
18
+ // Helper for users to decode hex strings into structs if needed.
19
+ program
20
+ .command('parse-parameter-struct')
21
+ .description("Helper for parsing an encoded string into a contract's parameter struct.")
22
+ .argument('<encodedString>', 'The encoded hex string')
23
+ .requiredOption(
24
+ '-c, --contract-artifact <fileLocation>',
25
+ "A compiled Aztec.nr contract's ABI in JSON format or name of a contract ABI exported by @aztec/noir-contracts.js",
26
+ )
27
+ .requiredOption('-p, --parameter <parameterName>', 'The name of the struct parameter to decode into')
28
+ .action(async (encodedString, options) => {
29
+ const { parseParameterStruct } = await import('./parse_parameter_struct.js');
30
+ await parseParameterStruct(encodedString, options.contractArtifact, options.parameter, log);
31
+ });
32
+
33
+ return program;
34
+ }
@@ -0,0 +1,51 @@
1
+ import { sha256 } from '@aztec/foundation/crypto';
2
+ import type { LogFn, Logger } from '@aztec/foundation/log';
3
+ import {
4
+ type FunctionArtifact,
5
+ FunctionSelector,
6
+ decodeFunctionSignature,
7
+ decodeFunctionSignatureWithParameterNames,
8
+ } from '@aztec/stdlib/abi';
9
+ import { getContractClassFromArtifact } from '@aztec/stdlib/contract';
10
+
11
+ import { getContractArtifact } from '../../utils/aztec.js';
12
+
13
+ export async function inspectContract(contractArtifactFile: string, debugLogger: Logger, log: LogFn) {
14
+ const contractArtifact = await getContractArtifact(contractArtifactFile, log);
15
+ const contractFns = contractArtifact.functions;
16
+ if (contractFns.length === 0) {
17
+ log(`No functions found for contract ${contractArtifact.name}`);
18
+ }
19
+ const contractClass = await getContractClassFromArtifact(contractArtifact);
20
+ const bytecodeLengthInFields = 1 + Math.ceil(contractClass.packedBytecode.length / 31);
21
+
22
+ log(`Contract class details:`);
23
+ log(`\tidentifier: ${contractClass.id.toString()}`);
24
+ log(`\tartifact hash: ${contractClass.artifactHash.toString()}`);
25
+ log(`\tprivate function tree root: ${contractClass.privateFunctionsRoot.toString()}`);
26
+ log(`\tpublic bytecode commitment: ${contractClass.publicBytecodeCommitment.toString()}`);
27
+ log(`\tpublic bytecode length: ${contractClass.packedBytecode.length} bytes (${bytecodeLengthInFields} fields)`);
28
+
29
+ const externalFunctions = contractFns.filter(f => !f.isInternal);
30
+ if (externalFunctions.length > 0) {
31
+ log(`\nExternal functions:`);
32
+ await Promise.all(externalFunctions.map(f => logFunction(f, log)));
33
+ }
34
+
35
+ const internalFunctions = contractFns.filter(f => f.isInternal);
36
+ if (internalFunctions.length > 0) {
37
+ log(`\nInternal functions:`);
38
+ await Promise.all(internalFunctions.map(f => logFunction(f, log)));
39
+ }
40
+ }
41
+
42
+ async function logFunction(fn: FunctionArtifact, log: LogFn) {
43
+ const signatureWithParameterNames = decodeFunctionSignatureWithParameterNames(fn.name, fn.parameters);
44
+ const signature = decodeFunctionSignature(fn.name, fn.parameters);
45
+ const selector = await FunctionSelector.fromSignature(signature);
46
+ const bytecodeSize = fn.bytecode.length;
47
+ const bytecodeHash = sha256(fn.bytecode).toString('hex');
48
+ log(
49
+ `${fn.functionType} ${signatureWithParameterNames} \n\tfunction signature: ${signature}\n\tselector: ${selector}\n\tbytecode: ${bytecodeSize} bytes (sha256 ${bytecodeHash})`,
50
+ );
51
+ }
@@ -0,0 +1,27 @@
1
+ import { jsonStringify } from '@aztec/foundation/json-rpc';
2
+ import type { LogFn } from '@aztec/foundation/log';
3
+ import type { StructType } from '@aztec/stdlib/abi';
4
+
5
+ import { getContractArtifact } from '../../utils/aztec.js';
6
+ import { parseStructString } from '../../utils/encoding.js';
7
+
8
+ export async function parseParameterStruct(
9
+ encodedString: string,
10
+ contractArtifactPath: string,
11
+ parameterName: string,
12
+ log: LogFn,
13
+ ) {
14
+ const contractArtifact = await getContractArtifact(contractArtifactPath, log);
15
+ const parameterAbitype = contractArtifact.functions
16
+ .map(({ parameters }) => parameters)
17
+ .flat()
18
+ .find(({ name, type }) => name === parameterName && type.kind === 'struct');
19
+
20
+ if (!parameterAbitype) {
21
+ log(`No struct parameter found with name ${parameterName}`);
22
+ return;
23
+ }
24
+
25
+ const data = parseStructString(encodedString, parameterAbitype.type as StructType);
26
+ log(`\nStruct Data: \n${jsonStringify(data, true)}\n`);
27
+ }