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

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 (242) hide show
  1. package/README.md +1 -427
  2. package/dest/cmds/aztec_node/block_number.d.ts +3 -0
  3. package/dest/cmds/aztec_node/block_number.d.ts.map +1 -0
  4. package/dest/cmds/aztec_node/block_number.js +10 -0
  5. package/dest/cmds/aztec_node/get_block.d.ts +3 -0
  6. package/dest/cmds/aztec_node/get_block.d.ts.map +1 -0
  7. package/dest/cmds/aztec_node/get_block.js +9 -0
  8. package/dest/cmds/aztec_node/get_current_base_fee.d.ts +3 -0
  9. package/dest/cmds/aztec_node/get_current_base_fee.d.ts.map +1 -0
  10. package/dest/cmds/aztec_node/get_current_base_fee.js +7 -0
  11. package/dest/cmds/aztec_node/get_l1_to_l2_message_witness.d.ts +5 -0
  12. package/dest/cmds/aztec_node/get_l1_to_l2_message_witness.d.ts.map +1 -0
  13. package/dest/cmds/aztec_node/get_l1_to_l2_message_witness.js +12 -0
  14. package/dest/cmds/aztec_node/get_logs.d.ts +6 -0
  15. package/dest/cmds/aztec_node/get_logs.d.ts.map +1 -0
  16. package/dest/cmds/{pxe → aztec_node}/get_logs.js +4 -4
  17. package/dest/cmds/aztec_node/get_node_info.d.ts +3 -0
  18. package/dest/cmds/aztec_node/get_node_info.d.ts.map +1 -0
  19. package/dest/cmds/{pxe → aztec_node}/get_node_info.js +14 -15
  20. package/dest/cmds/aztec_node/index.d.ts.map +1 -0
  21. package/dest/cmds/aztec_node/index.js +28 -0
  22. package/dest/cmds/contracts/inspect_contract.d.ts.map +1 -1
  23. package/dest/cmds/contracts/inspect_contract.js +9 -5
  24. package/dest/cmds/infrastructure/index.d.ts +2 -2
  25. package/dest/cmds/infrastructure/index.d.ts.map +1 -1
  26. package/dest/cmds/infrastructure/index.js +8 -9
  27. package/dest/cmds/infrastructure/sequencers.d.ts +4 -4
  28. package/dest/cmds/infrastructure/sequencers.d.ts.map +1 -1
  29. package/dest/cmds/infrastructure/sequencers.js +29 -16
  30. package/dest/cmds/infrastructure/setup_l2_contract.d.ts +1 -1
  31. package/dest/cmds/infrastructure/setup_l2_contract.d.ts.map +1 -1
  32. package/dest/cmds/infrastructure/setup_l2_contract.js +11 -24
  33. package/dest/cmds/l1/advance_epoch.d.ts +1 -1
  34. package/dest/cmds/l1/advance_epoch.d.ts.map +1 -1
  35. package/dest/cmds/l1/advance_epoch.js +8 -6
  36. package/dest/cmds/l1/assume_proven_through.d.ts +1 -1
  37. package/dest/cmds/l1/assume_proven_through.d.ts.map +1 -1
  38. package/dest/cmds/l1/assume_proven_through.js +9 -8
  39. package/dest/cmds/l1/bridge_erc20.d.ts +2 -2
  40. package/dest/cmds/l1/bridge_erc20.d.ts.map +1 -1
  41. package/dest/cmds/l1/bridge_erc20.js +5 -5
  42. package/dest/cmds/l1/deploy_l1_contracts.d.ts +2 -2
  43. package/dest/cmds/l1/deploy_l1_contracts.d.ts.map +1 -1
  44. package/dest/cmds/l1/deploy_l1_contracts.js +23 -6
  45. package/dest/cmds/l1/deploy_new_rollup.d.ts +2 -1
  46. package/dest/cmds/l1/deploy_new_rollup.d.ts.map +1 -1
  47. package/dest/cmds/l1/deploy_new_rollup.js +17 -8
  48. package/dest/cmds/l1/get_l1_addresses.d.ts +1 -1
  49. package/dest/cmds/l1/get_l1_addresses.d.ts.map +1 -1
  50. package/dest/cmds/l1/governance_utils.d.ts.map +1 -1
  51. package/dest/cmds/l1/governance_utils.js +17 -17
  52. package/dest/cmds/l1/index.d.ts +1 -0
  53. package/dest/cmds/l1/index.d.ts.map +1 -1
  54. package/dest/cmds/l1/index.js +33 -43
  55. package/dest/cmds/l1/trigger_seed_snapshot.d.ts +6 -0
  56. package/dest/cmds/l1/trigger_seed_snapshot.d.ts.map +1 -0
  57. package/dest/cmds/l1/trigger_seed_snapshot.js +19 -0
  58. package/dest/cmds/l1/update_l1_validators.d.ts +17 -2
  59. package/dest/cmds/l1/update_l1_validators.d.ts.map +1 -1
  60. package/dest/cmds/l1/update_l1_validators.js +159 -103
  61. package/dest/cmds/misc/generate_bootnode_enr.d.ts +1 -1
  62. package/dest/cmds/misc/generate_bootnode_enr.d.ts.map +1 -1
  63. package/dest/cmds/misc/generate_bootnode_enr.js +2 -2
  64. package/dest/cmds/misc/generate_secret_and_hash.d.ts +1 -1
  65. package/dest/cmds/misc/generate_secret_and_hash.d.ts.map +1 -1
  66. package/dest/cmds/misc/generate_secret_and_hash.js +3 -3
  67. package/dest/cmds/misc/generate_secret_key.d.ts +1 -1
  68. package/dest/cmds/misc/generate_secret_key.d.ts.map +1 -1
  69. package/dest/cmds/misc/generate_secret_key.js +1 -1
  70. package/dest/cmds/misc/get_canonical_sponsored_fpc_address.d.ts +3 -0
  71. package/dest/cmds/misc/get_canonical_sponsored_fpc_address.d.ts.map +1 -0
  72. package/dest/cmds/misc/get_canonical_sponsored_fpc_address.js +4 -0
  73. package/dest/cmds/misc/index.d.ts.map +1 -1
  74. package/dest/cmds/misc/index.js +7 -3
  75. package/dest/cmds/misc/update/github.d.ts +0 -1
  76. package/dest/cmds/misc/update/github.d.ts.map +1 -1
  77. package/dest/cmds/misc/update/github.js +0 -1
  78. package/dest/cmds/misc/update.d.ts.map +1 -1
  79. package/dest/cmds/misc/update.js +2 -3
  80. package/dest/cmds/validator_keys/add.d.ts +5 -0
  81. package/dest/cmds/validator_keys/add.d.ts.map +1 -0
  82. package/dest/cmds/validator_keys/add.js +70 -0
  83. package/dest/cmds/validator_keys/generate_bls_keypair.d.ts +12 -0
  84. package/dest/cmds/validator_keys/generate_bls_keypair.d.ts.map +1 -0
  85. package/dest/cmds/validator_keys/generate_bls_keypair.js +26 -0
  86. package/dest/cmds/validator_keys/index.d.ts +4 -0
  87. package/dest/cmds/validator_keys/index.d.ts.map +1 -0
  88. package/dest/cmds/validator_keys/index.js +20 -0
  89. package/dest/cmds/validator_keys/new.d.ts +26 -0
  90. package/dest/cmds/validator_keys/new.d.ts.map +1 -0
  91. package/dest/cmds/validator_keys/new.js +60 -0
  92. package/dest/cmds/validator_keys/shared.d.ts +68 -0
  93. package/dest/cmds/validator_keys/shared.d.ts.map +1 -0
  94. package/dest/cmds/validator_keys/shared.js +271 -0
  95. package/dest/config/cached_fetch.d.ts +18 -0
  96. package/dest/config/cached_fetch.d.ts.map +1 -0
  97. package/dest/config/cached_fetch.js +54 -0
  98. package/dest/config/chain_l2_config.d.ts +39 -0
  99. package/dest/config/chain_l2_config.d.ts.map +1 -0
  100. package/dest/config/chain_l2_config.js +475 -0
  101. package/dest/config/enrich_env.d.ts +4 -0
  102. package/dest/config/enrich_env.d.ts.map +1 -0
  103. package/dest/config/enrich_env.js +12 -0
  104. package/dest/config/get_l1_config.d.ts +8 -0
  105. package/dest/config/get_l1_config.d.ts.map +1 -0
  106. package/dest/config/get_l1_config.js +22 -0
  107. package/dest/config/index.d.ts +5 -0
  108. package/dest/config/index.d.ts.map +1 -0
  109. package/dest/config/index.js +4 -0
  110. package/dest/config/network_config.d.ts +19 -0
  111. package/dest/config/network_config.d.ts.map +1 -0
  112. package/dest/config/network_config.js +79 -0
  113. package/dest/utils/aztec.d.ts +12 -17
  114. package/dest/utils/aztec.d.ts.map +1 -1
  115. package/dest/utils/aztec.js +54 -49
  116. package/dest/utils/commands.d.ts +17 -9
  117. package/dest/utils/commands.d.ts.map +1 -1
  118. package/dest/utils/commands.js +40 -14
  119. package/dest/utils/encoding.js +1 -1
  120. package/dest/utils/github.d.ts +0 -1
  121. package/dest/utils/github.d.ts.map +1 -1
  122. package/dest/utils/github.js +0 -1
  123. package/dest/utils/index.d.ts +1 -0
  124. package/dest/utils/index.d.ts.map +1 -1
  125. package/dest/utils/index.js +1 -0
  126. package/dest/utils/inspect.d.ts +3 -10
  127. package/dest/utils/inspect.d.ts.map +1 -1
  128. package/dest/utils/inspect.js +19 -109
  129. package/dest/utils/setup_contracts.d.ts +3 -0
  130. package/dest/utils/setup_contracts.d.ts.map +1 -0
  131. package/dest/utils/setup_contracts.js +16 -0
  132. package/package.json +44 -33
  133. package/src/cmds/aztec_node/block_number.ts +9 -0
  134. package/src/cmds/aztec_node/get_block.ts +10 -0
  135. package/src/cmds/aztec_node/get_current_base_fee.ts +9 -0
  136. package/src/cmds/aztec_node/get_l1_to_l2_message_witness.ts +27 -0
  137. package/src/cmds/{pxe → aztec_node}/get_logs.ts +8 -7
  138. package/src/cmds/{pxe → aztec_node}/get_node_info.ts +15 -23
  139. package/src/cmds/aztec_node/index.ts +87 -0
  140. package/src/cmds/contracts/inspect_contract.ts +16 -6
  141. package/src/cmds/infrastructure/index.ts +8 -10
  142. package/src/cmds/infrastructure/sequencers.ts +36 -19
  143. package/src/cmds/infrastructure/setup_l2_contract.ts +13 -25
  144. package/src/cmds/l1/advance_epoch.ts +7 -5
  145. package/src/cmds/l1/assume_proven_through.ts +8 -7
  146. package/src/cmds/l1/bridge_erc20.ts +7 -4
  147. package/src/cmds/l1/deploy_l1_contracts.ts +32 -7
  148. package/src/cmds/l1/deploy_new_rollup.ts +23 -9
  149. package/src/cmds/l1/get_l1_addresses.ts +1 -1
  150. package/src/cmds/l1/governance_utils.ts +18 -17
  151. package/src/cmds/l1/index.ts +74 -101
  152. package/src/cmds/l1/trigger_seed_snapshot.ts +31 -0
  153. package/src/cmds/l1/update_l1_validators.ts +194 -94
  154. package/src/cmds/misc/generate_bootnode_enr.ts +3 -2
  155. package/src/cmds/misc/generate_secret_and_hash.ts +3 -3
  156. package/src/cmds/misc/generate_secret_key.ts +1 -1
  157. package/src/cmds/misc/get_canonical_sponsored_fpc_address.ts +7 -0
  158. package/src/cmds/misc/index.ts +13 -4
  159. package/src/cmds/misc/update/github.ts +0 -1
  160. package/src/cmds/misc/update.ts +1 -7
  161. package/src/cmds/validator_keys/add.ts +113 -0
  162. package/src/cmds/validator_keys/generate_bls_keypair.ts +33 -0
  163. package/src/cmds/validator_keys/index.ts +96 -0
  164. package/src/cmds/validator_keys/new.ts +120 -0
  165. package/src/cmds/validator_keys/shared.ts +321 -0
  166. package/src/config/cached_fetch.ts +67 -0
  167. package/src/config/chain_l2_config.ts +627 -0
  168. package/src/config/enrich_env.ts +15 -0
  169. package/src/config/get_l1_config.ts +28 -0
  170. package/src/config/index.ts +4 -0
  171. package/src/config/network_config.ts +102 -0
  172. package/src/utils/aztec.ts +78 -65
  173. package/src/utils/commands.ts +54 -18
  174. package/src/utils/encoding.ts +1 -1
  175. package/src/utils/github.ts +0 -1
  176. package/src/utils/index.ts +1 -0
  177. package/src/utils/inspect.ts +23 -123
  178. package/src/utils/setup_contracts.ts +19 -0
  179. package/dest/cmds/devnet/bootstrap_network.d.ts +0 -3
  180. package/dest/cmds/devnet/bootstrap_network.d.ts.map +0 -1
  181. package/dest/cmds/devnet/bootstrap_network.js +0 -196
  182. package/dest/cmds/devnet/faucet.d.ts +0 -4
  183. package/dest/cmds/devnet/faucet.d.ts.map +0 -1
  184. package/dest/cmds/devnet/faucet.js +0 -26
  185. package/dest/cmds/devnet/index.d.ts.map +0 -1
  186. package/dest/cmds/devnet/index.js +0 -14
  187. package/dest/cmds/l1/deploy_l1_verifier.d.ts +0 -5
  188. package/dest/cmds/l1/deploy_l1_verifier.d.ts.map +0 -1
  189. package/dest/cmds/l1/deploy_l1_verifier.js +0 -54
  190. package/dest/cmds/misc/setup_contracts.d.ts +0 -7
  191. package/dest/cmds/misc/setup_contracts.d.ts.map +0 -1
  192. package/dest/cmds/misc/setup_contracts.js +0 -27
  193. package/dest/cmds/pxe/add_contract.d.ts +0 -5
  194. package/dest/cmds/pxe/add_contract.d.ts.map +0 -1
  195. package/dest/cmds/pxe/add_contract.js +0 -29
  196. package/dest/cmds/pxe/block_number.d.ts +0 -3
  197. package/dest/cmds/pxe/block_number.d.ts.map +0 -1
  198. package/dest/cmds/pxe/block_number.js +0 -10
  199. package/dest/cmds/pxe/get_account.d.ts +0 -4
  200. package/dest/cmds/pxe/get_account.d.ts.map +0 -1
  201. package/dest/cmds/pxe/get_account.js +0 -10
  202. package/dest/cmds/pxe/get_accounts.d.ts +0 -3
  203. package/dest/cmds/pxe/get_accounts.d.ts.map +0 -1
  204. package/dest/cmds/pxe/get_accounts.js +0 -25
  205. package/dest/cmds/pxe/get_block.d.ts +0 -3
  206. package/dest/cmds/pxe/get_block.d.ts.map +0 -1
  207. package/dest/cmds/pxe/get_block.js +0 -9
  208. package/dest/cmds/pxe/get_contract_data.d.ts +0 -4
  209. package/dest/cmds/pxe/get_contract_data.d.ts.map +0 -1
  210. package/dest/cmds/pxe/get_contract_data.js +0 -31
  211. package/dest/cmds/pxe/get_current_base_fee.d.ts +0 -3
  212. package/dest/cmds/pxe/get_current_base_fee.d.ts.map +0 -1
  213. package/dest/cmds/pxe/get_current_base_fee.js +0 -7
  214. package/dest/cmds/pxe/get_l1_to_l2_message_witness.d.ts +0 -4
  215. package/dest/cmds/pxe/get_l1_to_l2_message_witness.d.ts.map +0 -1
  216. package/dest/cmds/pxe/get_l1_to_l2_message_witness.js +0 -11
  217. package/dest/cmds/pxe/get_logs.d.ts +0 -4
  218. package/dest/cmds/pxe/get_logs.d.ts.map +0 -1
  219. package/dest/cmds/pxe/get_node_info.d.ts +0 -3
  220. package/dest/cmds/pxe/get_node_info.d.ts.map +0 -1
  221. package/dest/cmds/pxe/get_pxe_info.d.ts +0 -3
  222. package/dest/cmds/pxe/get_pxe_info.d.ts.map +0 -1
  223. package/dest/cmds/pxe/get_pxe_info.js +0 -11
  224. package/dest/cmds/pxe/index.d.ts +0 -4
  225. package/dest/cmds/pxe/index.d.ts.map +0 -1
  226. package/dest/cmds/pxe/index.js +0 -55
  227. package/src/cmds/devnet/bootstrap_network.ts +0 -318
  228. package/src/cmds/devnet/faucet.ts +0 -33
  229. package/src/cmds/devnet/index.ts +0 -60
  230. package/src/cmds/l1/deploy_l1_verifier.ts +0 -105
  231. package/src/cmds/misc/setup_contracts.ts +0 -40
  232. package/src/cmds/pxe/add_contract.ts +0 -41
  233. package/src/cmds/pxe/block_number.ts +0 -9
  234. package/src/cmds/pxe/get_account.ts +0 -16
  235. package/src/cmds/pxe/get_accounts.ts +0 -35
  236. package/src/cmds/pxe/get_block.ts +0 -10
  237. package/src/cmds/pxe/get_contract_data.ts +0 -51
  238. package/src/cmds/pxe/get_current_base_fee.ts +0 -9
  239. package/src/cmds/pxe/get_l1_to_l2_message_witness.ts +0 -25
  240. package/src/cmds/pxe/get_pxe_info.ts +0 -13
  241. package/src/cmds/pxe/index.ts +0 -170
  242. /package/dest/cmds/{devnet → aztec_node}/index.d.ts +0 -0
@@ -1,8 +1,5 @@
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);
1
+ export async function inspectBlock(aztecNode, blockNumber, log, opts = {}) {
2
+ const block = await aztecNode.getBlock(blockNumber);
6
3
  if (!block) {
7
4
  log(`No block found for block number ${blockNumber}`);
8
5
  return;
@@ -11,31 +8,25 @@ export async function inspectBlock(pxe, blockNumber, log, opts = {}) {
11
8
  log(`Block ${blockNumber} (${blockHash.toString()})`);
12
9
  log(` Total fees: ${block.header.totalFees.toBigInt()}`);
13
10
  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()}`);
11
+ log(` Fee per gas unit: DA=${block.header.globalVariables.gasFees.feePerDaGas} L2=${block.header.globalVariables.gasFees.feePerL2Gas}`);
15
12
  log(` Coinbase: ${block.header.globalVariables.coinbase}`);
16
13
  log(` Fee recipient: ${block.header.globalVariables.feeRecipient}`);
17
- log(` Timestamp: ${new Date(block.header.globalVariables.timestamp.toNumber() * 500)}`);
14
+ log(` Timestamp: ${new Date(Number(block.header.globalVariables.timestamp) * 500)}`);
18
15
  if (opts.showTxs) {
19
16
  log(``);
20
- const artifactMap = await getKnownArtifacts(pxe);
21
17
  for (const txHash of block.body.txEffects.map((tx)=>tx.txHash)){
22
- await inspectTx(pxe, txHash, log, {
23
- includeBlockInfo: false,
24
- artifactMap
18
+ await inspectTx(aztecNode, txHash, log, {
19
+ includeBlockInfo: false
25
20
  });
26
21
  }
27
22
  } else {
28
23
  log(` Transactions: ${block.body.txEffects.length}`);
29
24
  }
30
25
  }
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
- })
26
+ export async function inspectTx(aztecNode, txHash, log, opts = {}) {
27
+ const [receipt, effectsInBlock] = await Promise.all([
28
+ aztecNode.getTxReceipt(txHash),
29
+ aztecNode.getTxEffect(txHash)
39
30
  ]);
40
31
  // Base tx data
41
32
  log(`Tx ${txHash.toString()}`);
@@ -47,7 +38,6 @@ export async function inspectTx(pxe, txHash, log, opts = {}) {
47
38
  return;
48
39
  }
49
40
  const effects = effectsInBlock.data;
50
- const artifactMap = opts?.artifactMap ?? await getKnownArtifacts(pxe);
51
41
  if (opts.includeBlockInfo) {
52
42
  log(` Block: ${receipt.blockNumber} (${receipt.blockHash?.toString()})`);
53
43
  }
@@ -74,39 +64,17 @@ export async function inspectTx(pxe, txHash, log, opts = {}) {
74
64
  const notes = effects.noteHashes;
75
65
  if (notes.length > 0) {
76
66
  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
- }
67
+ log(` Total: ${notes.length}`);
68
+ for (const note of notes){
69
+ log(` Note hash: ${note.toShortString()}`);
83
70
  }
84
71
  }
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
- }
72
+ // Created nullifiers
73
+ const nullifiers = effects.nullifiers;
74
+ if (nullifiers.length > 0) {
75
+ log(' Created nullifiers:');
76
+ for (const nullifier of nullifiers){
77
+ log(` Nullifier: ${nullifier.toShortString()}`);
110
78
  }
111
79
  }
112
80
  // L2 to L1 messages
@@ -117,61 +85,3 @@ export async function inspectTx(pxe, txHash, log, opts = {}) {
117
85
  }
118
86
  }
119
87
  }
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
- }
@@ -0,0 +1,3 @@
1
+ import type { AztecAddress } from '@aztec/aztec.js/addresses';
2
+ export declare function getSponsoredFPCAddress(): Promise<AztecAddress>;
3
+ //# sourceMappingURL=setup_contracts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup_contracts.d.ts","sourceRoot":"","sources":["../../src/utils/setup_contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAY9D,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,YAAY,CAAC,CAMpE"}
@@ -0,0 +1,16 @@
1
+ import { getContractInstanceFromInstantiationParams } from '@aztec/aztec.js/contracts';
2
+ import { Fr } from '@aztec/aztec.js/fields';
3
+ import { SPONSORED_FPC_SALT } from '@aztec/constants';
4
+ async function getSponsoredFPCContract() {
5
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
6
+ // @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
7
+ const { SponsoredFPCContract } = await import('@aztec/noir-contracts.js/SponsoredFPC');
8
+ return SponsoredFPCContract;
9
+ }
10
+ export async function getSponsoredFPCAddress() {
11
+ const SponsoredFPCContract = await getSponsoredFPCContract();
12
+ const sponsoredFPCInstance = await getContractInstanceFromInstantiationParams(SponsoredFPCContract.artifact, {
13
+ salt: new Fr(SPONSORED_FPC_SALT)
14
+ });
15
+ return sponsoredFPCInstance.address;
16
+ }
package/package.json CHANGED
@@ -1,18 +1,20 @@
1
1
  {
2
2
  "name": "@aztec/cli",
3
- "version": "0.0.0-test.1",
3
+ "version": "0.0.1-commit.b655e406",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./contracts": "./dest/cmds/contracts/index.js",
7
7
  "./devnet": "./dest/cmds/devnet/index.js",
8
8
  "./infrastructure": "./dest/cmds/infrastructure/index.js",
9
9
  "./l1": "./dest/cmds/l1/index.js",
10
- "./pxe": "./dest/cmds/pxe/index.js",
10
+ "./aztec_node": "./dest/cmds/aztec_node/index.js",
11
11
  "./cli-utils": "./dest/utils/index.js",
12
12
  "./misc": "./dest/cmds/misc/index.js",
13
+ "./validator_keys": "./dest/cmds/validator_keys/index.js",
13
14
  "./setup-contracts": "./dest/cmds/misc/setup_contracts.js",
14
15
  "./utils": "./dest/utils/index.js",
15
- "./inspect": "./dest/utils/inspect.js"
16
+ "./inspect": "./dest/utils/inspect.js",
17
+ "./config": "./dest/config/index.js"
16
18
  },
17
19
  "typedocOptions": {
18
20
  "entryPoints": [
@@ -25,8 +27,6 @@
25
27
  "build": "yarn clean && tsc -b",
26
28
  "build:dev": "tsc -b --watch",
27
29
  "clean": "rm -rf ./dest .tsbuildinfo",
28
- "formatting": "run -T prettier --check ./src && run -T eslint ./src",
29
- "formatting:fix": "run -T eslint --fix ./src && run -T prettier -w ./src",
30
30
  "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
31
31
  },
32
32
  "inherits": [
@@ -64,54 +64,65 @@
64
64
  "testTimeout": 120000,
65
65
  "setupFiles": [
66
66
  "../../foundation/src/jest/setup.mjs"
67
+ ],
68
+ "testEnvironment": "../../foundation/src/jest/env.mjs",
69
+ "setupFilesAfterEnv": [
70
+ "../../foundation/src/jest/setupAfterEnv.mjs"
67
71
  ]
68
72
  },
69
73
  "dependencies": {
70
- "@aztec/archiver": "0.0.0-test.1",
71
- "@aztec/aztec.js": "0.0.0-test.1",
72
- "@aztec/constants": "0.0.0-test.1",
73
- "@aztec/foundation": "0.0.0-test.1",
74
- "@aztec/l1-artifacts": "0.0.0-test.1",
75
- "@aztec/p2p": "0.0.0-test.1",
76
- "@aztec/stdlib": "0.0.0-test.1",
77
- "@aztec/world-state": "0.0.0-test.1",
74
+ "@aztec/accounts": "0.0.1-commit.b655e406",
75
+ "@aztec/archiver": "0.0.1-commit.b655e406",
76
+ "@aztec/aztec.js": "0.0.1-commit.b655e406",
77
+ "@aztec/constants": "0.0.1-commit.b655e406",
78
+ "@aztec/entrypoints": "0.0.1-commit.b655e406",
79
+ "@aztec/ethereum": "0.0.1-commit.b655e406",
80
+ "@aztec/foundation": "0.0.1-commit.b655e406",
81
+ "@aztec/l1-artifacts": "0.0.1-commit.b655e406",
82
+ "@aztec/node-keystore": "0.0.1-commit.b655e406",
83
+ "@aztec/node-lib": "0.0.1-commit.b655e406",
84
+ "@aztec/p2p": "0.0.1-commit.b655e406",
85
+ "@aztec/protocol-contracts": "0.0.1-commit.b655e406",
86
+ "@aztec/stdlib": "0.0.1-commit.b655e406",
87
+ "@aztec/test-wallet": "0.0.1-commit.b655e406",
88
+ "@aztec/world-state": "0.0.1-commit.b655e406",
89
+ "@ethersproject/wallet": "^5.8.0",
78
90
  "@iarna/toml": "^2.2.5",
79
91
  "@libp2p/peer-id-factory": "^3.0.4",
92
+ "@scure/bip39": "^2.0.1",
80
93
  "commander": "^12.1.0",
81
94
  "lodash.chunk": "^4.2.0",
82
95
  "lodash.groupby": "^4.6.0",
83
96
  "semver": "^7.5.4",
84
97
  "source-map-support": "^0.5.21",
85
98
  "tslib": "^2.4.0",
86
- "viem": "2.22.8"
99
+ "viem": "npm:@spalladino/viem@2.38.2-eip7594.0"
87
100
  },
88
101
  "devDependencies": {
89
- "@aztec/accounts": "0.0.0-test.1",
90
- "@aztec/ethereum": "0.0.0-test.1",
91
- "@aztec/protocol-contracts": "0.0.0-test.1",
92
- "@jest/globals": "^29.5.0",
93
- "@types/jest": "^29.5.0",
102
+ "@jest/globals": "^30.0.0",
103
+ "@types/jest": "^30.0.0",
94
104
  "@types/lodash.chunk": "^4.2.9",
95
105
  "@types/lodash.groupby": "^4.6.9",
96
106
  "@types/lodash.startcase": "^4.4.7",
97
- "@types/node": "^18.7.23",
107
+ "@types/node": "^22.15.17",
98
108
  "@types/semver": "^7.5.2",
99
109
  "@types/source-map-support": "^0.5.10",
100
- "jest": "^29.5.0",
101
- "jest-mock-extended": "^3.0.5",
102
- "ts-jest": "^29.1.0",
110
+ "jest": "^30.0.0",
111
+ "jest-mock-extended": "^4.0.0",
112
+ "ts-jest": "^29.4.0",
103
113
  "ts-node": "^10.9.1",
104
- "typescript": "^5.0.4"
114
+ "typescript": "^5.3.3"
105
115
  },
106
116
  "peerDependencies": {
107
- "@aztec/accounts": "0.0.0-test.1",
108
- "@aztec/bb-prover": "0.0.0-test.1",
109
- "@aztec/ethereum": "0.0.0-test.1",
110
- "@aztec/l1-artifacts": "0.0.0-test.1",
111
- "@aztec/noir-contracts.js": "0.0.0-test.1",
112
- "@aztec/noir-protocol-circuits-types": "0.0.0-test.1",
113
- "@aztec/protocol-contracts": "0.0.0-test.1",
114
- "@aztec/stdlib": "0.0.0-test.1"
117
+ "@aztec/accounts": "0.0.1-commit.b655e406",
118
+ "@aztec/bb-prover": "0.0.1-commit.b655e406",
119
+ "@aztec/ethereum": "0.0.1-commit.b655e406",
120
+ "@aztec/l1-artifacts": "0.0.1-commit.b655e406",
121
+ "@aztec/noir-contracts.js": "0.0.1-commit.b655e406",
122
+ "@aztec/noir-protocol-circuits-types": "0.0.1-commit.b655e406",
123
+ "@aztec/noir-test-contracts.js": "0.0.1-commit.b655e406",
124
+ "@aztec/protocol-contracts": "0.0.1-commit.b655e406",
125
+ "@aztec/stdlib": "0.0.1-commit.b655e406"
115
126
  },
116
127
  "files": [
117
128
  "dest",
@@ -120,6 +131,6 @@
120
131
  ],
121
132
  "types": "./dest/index.d.ts",
122
133
  "engines": {
123
- "node": ">=18"
134
+ "node": ">=20.10"
124
135
  }
125
136
  }
@@ -0,0 +1,9 @@
1
+ import { createAztecNodeClient } from '@aztec/aztec.js/node';
2
+ import type { LogFn } from '@aztec/foundation/log';
3
+
4
+ export async function blockNumber(nodeUrl: string, log: LogFn) {
5
+ const aztecNode = createAztecNodeClient(nodeUrl);
6
+ const [latestNum, provenNum] = await Promise.all([aztecNode.getBlockNumber(), aztecNode.getProvenBlockNumber()]);
7
+ log(`Latest block: ${latestNum}`);
8
+ log(`Proven block: ${provenNum}`);
9
+ }
@@ -0,0 +1,10 @@
1
+ import { createAztecNodeClient } from '@aztec/aztec.js/node';
2
+ import type { LogFn } from '@aztec/foundation/log';
3
+
4
+ import { inspectBlock } from '../../utils/inspect.js';
5
+
6
+ export async function getBlock(nodeUrl: string, maybeBlockNumber: number | undefined, log: LogFn) {
7
+ const aztecNode = createAztecNodeClient(nodeUrl);
8
+ const blockNumber = maybeBlockNumber ?? (await aztecNode.getBlockNumber());
9
+ await inspectBlock(aztecNode, blockNumber, log, { showTxs: true });
10
+ }
@@ -0,0 +1,9 @@
1
+ import { createAztecNodeClient } from '@aztec/aztec.js/node';
2
+ import { jsonStringify } from '@aztec/foundation/json-rpc';
3
+ import type { LogFn, Logger } from '@aztec/foundation/log';
4
+
5
+ export async function getCurrentBaseFee(nodeUrl: string, debugLogger: Logger, log: LogFn) {
6
+ const node = createAztecNodeClient(nodeUrl);
7
+ const fees = await node.getCurrentBaseFees();
8
+ log(`Current fees: ${jsonStringify(fees)}`);
9
+ }
@@ -0,0 +1,27 @@
1
+ import type { AztecAddress } from '@aztec/aztec.js/addresses';
2
+ import type { Fr } from '@aztec/aztec.js/fields';
3
+ import { createAztecNodeClient } from '@aztec/aztec.js/node';
4
+ import type { LogFn } from '@aztec/foundation/log';
5
+ import { getNonNullifiedL1ToL2MessageWitness } from '@aztec/stdlib/messaging';
6
+
7
+ export async function getL1ToL2MessageWitness(
8
+ nodeUrl: string,
9
+ contractAddress: AztecAddress,
10
+ messageHash: Fr,
11
+ secret: Fr,
12
+ log: LogFn,
13
+ ) {
14
+ const node = createAztecNodeClient(nodeUrl);
15
+ const messageWitness = await getNonNullifiedL1ToL2MessageWitness(node, contractAddress, messageHash, secret);
16
+
17
+ log(
18
+ messageWitness === undefined
19
+ ? `
20
+ L1 to L2 Message not found.
21
+ `
22
+ : `
23
+ L1 to L2 message index: ${messageWitness[0]}
24
+ L1 to L2 message sibling path: ${messageWitness[1]}
25
+ `,
26
+ );
27
+ }
@@ -1,6 +1,8 @@
1
- import type { AztecAddress, LogFilter, LogId, TxHash } from '@aztec/aztec.js';
2
- import { createCompatibleClient } from '@aztec/aztec.js';
3
- import type { LogFn, Logger } from '@aztec/foundation/log';
1
+ import type { AztecAddress } from '@aztec/aztec.js/addresses';
2
+ import type { LogFilter, LogId } from '@aztec/aztec.js/log';
3
+ import { createAztecNodeClient } from '@aztec/aztec.js/node';
4
+ import type { TxHash } from '@aztec/aztec.js/tx';
5
+ import type { LogFn } from '@aztec/foundation/log';
4
6
  import { sleep } from '@aztec/foundation/sleep';
5
7
 
6
8
  export async function getLogs(
@@ -9,12 +11,11 @@ export async function getLogs(
9
11
  toBlock: number,
10
12
  afterLog: LogId,
11
13
  contractAddress: AztecAddress,
12
- rpcUrl: string,
14
+ nodeUrl: string,
13
15
  follow: boolean,
14
- debugLogger: Logger,
15
16
  log: LogFn,
16
17
  ) {
17
- const pxe = await createCompatibleClient(rpcUrl, debugLogger);
18
+ const node = createAztecNodeClient(nodeUrl);
18
19
 
19
20
  if (follow) {
20
21
  if (txHash) {
@@ -28,7 +29,7 @@ export async function getLogs(
28
29
  const filter: LogFilter = { txHash, fromBlock, toBlock, afterLog, contractAddress };
29
30
 
30
31
  const fetchLogs = async () => {
31
- const response = await pxe.getPublicLogs(filter);
32
+ const response = await node.getPublicLogs(filter);
32
33
  const logs = response.logs;
33
34
 
34
35
  if (!logs.length) {
@@ -1,26 +1,15 @@
1
- import { type AztecNode, type PXE, createAztecNodeClient, createCompatibleClient } from '@aztec/aztec.js';
2
- import type { LogFn, Logger } from '@aztec/foundation/log';
1
+ import { createAztecNodeClient } from '@aztec/aztec.js/node';
2
+ import type { LogFn } from '@aztec/foundation/log';
3
+
4
+ export async function getNodeInfo(nodeUrl: string, json: boolean, log: LogFn, logJson: (output: any) => void) {
5
+ const client = createAztecNodeClient(nodeUrl);
3
6
 
4
- export async function getNodeInfo(
5
- rpcUrl: string,
6
- pxeRequest: boolean,
7
- debugLogger: Logger,
8
- json: boolean,
9
- log: LogFn,
10
- logJson: (output: any) => void,
11
- ) {
12
- let client: AztecNode | PXE;
13
- if (pxeRequest) {
14
- client = await createCompatibleClient(rpcUrl, debugLogger);
15
- } else {
16
- client = createAztecNodeClient(rpcUrl);
17
- }
18
7
  const info = await client.getNodeInfo();
19
8
  if (json) {
20
9
  logJson({
21
10
  nodeVersion: info.nodeVersion,
22
11
  l1ChainId: info.l1ChainId,
23
- protocolVersion: info.protocolVersion,
12
+ rollupVersion: info.rollupVersion,
24
13
  enr: info.enr,
25
14
  l1ContractAddresses: {
26
15
  rollup: info.l1ContractAddresses.rollupAddress.toString(),
@@ -35,18 +24,20 @@ export async function getNodeInfo(
35
24
  governanceProposer: info.l1ContractAddresses.governanceProposerAddress.toString(),
36
25
  governance: info.l1ContractAddresses.governanceAddress.toString(),
37
26
  slashFactory: info.l1ContractAddresses.slashFactoryAddress?.toString(),
27
+ feeAssetHandler: info.l1ContractAddresses.feeAssetHandlerAddress?.toString(),
28
+ stakingAssetHandler: info.l1ContractAddresses.stakingAssetHandlerAddress?.toString(),
38
29
  },
39
30
  protocolContractAddresses: {
40
- classRegisterer: info.protocolContractAddresses.classRegisterer.toString(),
31
+ classRegistry: info.protocolContractAddresses.classRegistry.toString(),
41
32
  feeJuice: info.protocolContractAddresses.feeJuice.toString(),
42
- instanceDeployer: info.protocolContractAddresses.instanceDeployer.toString(),
33
+ instanceRegistry: info.protocolContractAddresses.instanceRegistry.toString(),
43
34
  multiCallEntrypoint: info.protocolContractAddresses.multiCallEntrypoint.toString(),
44
35
  },
45
36
  });
46
37
  } else {
47
38
  log(`Node Version: ${info.nodeVersion}`);
48
39
  log(`Chain Id: ${info.l1ChainId}`);
49
- log(`Protocol Version: ${info.protocolVersion}`);
40
+ log(`Rollup Version: ${info.rollupVersion}`);
50
41
  log(`Node ENR: ${info.enr}`);
51
42
  log(`L1 Contract Addresses:`);
52
43
  log(` Rollup Address: ${info.l1ContractAddresses.rollupAddress.toString()}`);
@@ -61,11 +52,12 @@ export async function getNodeInfo(
61
52
  log(` GovernanceProposer Address: ${info.l1ContractAddresses.governanceProposerAddress.toString()}`);
62
53
  log(` Governance Address: ${info.l1ContractAddresses.governanceAddress.toString()}`);
63
54
  log(` SlashFactory Address: ${info.l1ContractAddresses.slashFactoryAddress?.toString()}`);
64
-
55
+ log(` FeeAssetHandler Address: ${info.l1ContractAddresses.feeAssetHandlerAddress?.toString()}`);
56
+ log(` StakingAssetHandler Address: ${info.l1ContractAddresses.stakingAssetHandlerAddress?.toString()}`);
65
57
  log(`L2 Contract Addresses:`);
66
- log(` Class Registerer: ${info.protocolContractAddresses.classRegisterer.toString()}`);
58
+ log(` Class Registry: ${info.protocolContractAddresses.classRegistry.toString()}`);
67
59
  log(` Fee Juice: ${info.protocolContractAddresses.feeJuice.toString()}`);
68
- log(` Instance Deployer: ${info.protocolContractAddresses.instanceDeployer.toString()}`);
60
+ log(` Instance Deployer: ${info.protocolContractAddresses.instanceRegistry.toString()}`);
69
61
  log(` MultiCall: ${info.protocolContractAddresses.multiCallEntrypoint.toString()}`);
70
62
  }
71
63
  }
@@ -0,0 +1,87 @@
1
+ import type { LogFn, Logger } from '@aztec/foundation/log';
2
+
3
+ import type { Command } from 'commander';
4
+
5
+ import {
6
+ logJson,
7
+ nodeOption,
8
+ parseAztecAddress,
9
+ parseField,
10
+ parseOptionalAztecAddress,
11
+ parseOptionalInteger,
12
+ parseOptionalLogId,
13
+ parseOptionalTxHash,
14
+ } from '../../utils/commands.js';
15
+
16
+ export function injectCommands(program: Command, log: LogFn, debugLogger: Logger) {
17
+ program
18
+ .command('get-block')
19
+ .description('Gets info for a given block or latest.')
20
+ .argument('[blockNumber]', 'Block height', parseOptionalInteger)
21
+ .addOption(nodeOption)
22
+ .action(async (blockNumber, options) => {
23
+ const { getBlock } = await import('./get_block.js');
24
+ await getBlock(options.nodeUrl, blockNumber, log);
25
+ });
26
+
27
+ program
28
+ .command('get-current-base-fee')
29
+ .description('Gets the current base fee.')
30
+ .addOption(nodeOption)
31
+ .action(async options => {
32
+ const { getCurrentBaseFee } = await import('./get_current_base_fee.js');
33
+ await getCurrentBaseFee(options.rpcUrl, debugLogger, log);
34
+ });
35
+
36
+ program
37
+ .command('get-l1-to-l2-message-witness')
38
+ .description('Gets a L1 to L2 message witness.')
39
+ .requiredOption('-ca, --contract-address <address>', 'Aztec address of the contract.', parseAztecAddress)
40
+ .requiredOption('--message-hash <messageHash>', 'The L1 to L2 message hash.', parseField)
41
+ .requiredOption('--secret <secret>', 'The secret used to claim the L1 to L2 message', parseField)
42
+ .addOption(nodeOption)
43
+ .action(async ({ contractAddress, messageHash, secret, nodeUrl }) => {
44
+ const { getL1ToL2MessageWitness } = await import('./get_l1_to_l2_message_witness.js');
45
+ await getL1ToL2MessageWitness(nodeUrl, contractAddress, messageHash, secret, log);
46
+ });
47
+
48
+ program
49
+ .command('get-logs')
50
+ .description('Gets all the public logs from an intersection of all the filter params.')
51
+ .option('-tx, --tx-hash <txHash>', 'A transaction hash to get the receipt for.', parseOptionalTxHash)
52
+ .option(
53
+ '-fb, --from-block <blockNum>',
54
+ 'Initial block number for getting logs (defaults to 1).',
55
+ parseOptionalInteger,
56
+ )
57
+ .option('-tb, --to-block <blockNum>', 'Up to which block to fetch logs (defaults to latest).', parseOptionalInteger)
58
+ .option('-al --after-log <logId>', 'ID of a log after which to fetch the logs.', parseOptionalLogId)
59
+ .option('-ca, --contract-address <address>', 'Contract address to filter logs by.', parseOptionalAztecAddress)
60
+ .addOption(nodeOption)
61
+ .option('--follow', 'If set, will keep polling for new logs until interrupted.')
62
+ .action(async ({ txHash, fromBlock, toBlock, afterLog, contractAddress, aztecNodeRpcUrl: nodeUrl, follow }) => {
63
+ const { getLogs } = await import('./get_logs.js');
64
+ await getLogs(txHash, fromBlock, toBlock, afterLog, contractAddress, nodeUrl, follow, log);
65
+ });
66
+
67
+ program
68
+ .command('block-number')
69
+ .description('Gets the current Aztec L2 block number.')
70
+ .addOption(nodeOption)
71
+ .action(async (options: any) => {
72
+ const { blockNumber } = await import('./block_number.js');
73
+ await blockNumber(options.nodeUrl, log);
74
+ });
75
+
76
+ program
77
+ .command('get-node-info')
78
+ .description('Gets the information of an Aztec node from a PXE or directly from an Aztec node.')
79
+ .option('--json', 'Emit output as json')
80
+ .addOption(nodeOption)
81
+ .action(async options => {
82
+ const { getNodeInfo } = await import('./get_node_info.js');
83
+ await getNodeInfo(options.nodeUrl, options.json, log, logJson(log));
84
+ });
85
+
86
+ return program;
87
+ }
@@ -5,6 +5,7 @@ import {
5
5
  FunctionSelector,
6
6
  decodeFunctionSignature,
7
7
  decodeFunctionSignatureWithParameterNames,
8
+ retainBytecode,
8
9
  } from '@aztec/stdlib/abi';
9
10
  import { getContractClassFromArtifact } from '@aztec/stdlib/contract';
10
11
 
@@ -12,7 +13,9 @@ import { getContractArtifact } from '../../utils/aztec.js';
12
13
 
13
14
  export async function inspectContract(contractArtifactFile: string, debugLogger: Logger, log: LogFn) {
14
15
  const contractArtifact = await getContractArtifact(contractArtifactFile, log);
15
- const contractFns = contractArtifact.functions;
16
+ const contractFns = contractArtifact.functions.concat(
17
+ contractArtifact.nonDispatchPublicFunctions.map(f => f as FunctionArtifact),
18
+ );
16
19
  if (contractFns.length === 0) {
17
20
  log(`No functions found for contract ${contractArtifact.name}`);
18
21
  }
@@ -43,9 +46,16 @@ async function logFunction(fn: FunctionArtifact, log: LogFn) {
43
46
  const signatureWithParameterNames = decodeFunctionSignatureWithParameterNames(fn.name, fn.parameters);
44
47
  const signature = decodeFunctionSignature(fn.name, fn.parameters);
45
48
  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
- );
49
+
50
+ if (retainBytecode(fn)) {
51
+ const bytecodeSize = fn.bytecode.length;
52
+ const bytecodeHash = sha256(fn.bytecode).toString('hex');
53
+ log(
54
+ `${fn.functionType} ${signatureWithParameterNames} \n\tfunction signature: ${signature}\n\tselector: ${selector}\n\tbytecode: ${bytecodeSize} bytes (sha256 ${bytecodeHash})`,
55
+ );
56
+ } else {
57
+ log(
58
+ `${fn.functionType} ${signatureWithParameterNames} \n\tfunction signature: ${signature}\n\tselector: ${selector}`,
59
+ );
60
+ }
51
61
  }