@aztec/cli 0.17.0 → 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2

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 (216) hide show
  1. package/README.md +9 -15
  2. package/dest/cmds/contracts/index.js +12 -0
  3. package/dest/cmds/contracts/inspect_contract.js +37 -0
  4. package/dest/cmds/contracts/parse_parameter_struct.js +13 -0
  5. package/dest/cmds/devnet/bootstrap_network.js +193 -0
  6. package/dest/cmds/devnet/faucet.js +26 -0
  7. package/dest/cmds/devnet/index.js +12 -0
  8. package/dest/cmds/infrastructure/index.js +22 -0
  9. package/dest/cmds/infrastructure/sequencers.js +93 -0
  10. package/dest/cmds/infrastructure/setup_protocol_contract.js +31 -0
  11. package/dest/cmds/l1/advance_epoch.js +10 -0
  12. package/dest/cmds/l1/assume_proven_through.js +12 -0
  13. package/dest/cmds/l1/bridge_erc20.js +31 -0
  14. package/dest/cmds/l1/create_l1_account.js +15 -0
  15. package/dest/cmds/l1/deploy_l1_contracts.js +25 -0
  16. package/dest/cmds/l1/deploy_l1_verifier.js +54 -0
  17. package/dest/cmds/l1/get_l1_balance.js +33 -0
  18. package/dest/cmds/l1/index.js +127 -0
  19. package/dest/cmds/l1/prover_stats.js +145 -0
  20. package/dest/cmds/l1/update_l1_validators.js +186 -0
  21. package/dest/cmds/misc/compute_selector.js +5 -0
  22. package/dest/cmds/misc/example_contracts.js +6 -0
  23. package/dest/cmds/misc/generate_p2p_private_key.js +7 -0
  24. package/dest/cmds/misc/generate_secret_and_hash.js +11 -0
  25. package/dest/cmds/misc/generate_secret_key.js +6 -0
  26. package/dest/cmds/misc/index.js +36 -0
  27. package/dest/cmds/misc/setup_contracts.js +25 -0
  28. package/dest/cmds/misc/update/common.js +3 -0
  29. package/dest/cmds/misc/update/github.js +3 -0
  30. package/dest/cmds/misc/update/noir.js +45 -0
  31. package/dest/cmds/misc/update/npm.js +127 -0
  32. package/dest/cmds/misc/update/utils.js +38 -0
  33. package/dest/cmds/misc/update.js +52 -0
  34. package/dest/cmds/pxe/add_contract.js +27 -0
  35. package/dest/cmds/pxe/block_number.js +10 -0
  36. package/dest/cmds/pxe/get_account.js +10 -0
  37. package/dest/cmds/pxe/get_accounts.js +25 -0
  38. package/dest/cmds/pxe/get_block.js +9 -0
  39. package/dest/cmds/pxe/get_contract_data.js +31 -0
  40. package/dest/cmds/pxe/get_current_base_fee.js +7 -0
  41. package/dest/cmds/pxe/get_l1_to_l2_message_witness.js +11 -0
  42. package/dest/cmds/pxe/get_logs.js +51 -0
  43. package/dest/cmds/pxe/get_node_info.js +61 -0
  44. package/dest/cmds/pxe/get_pxe_info.js +11 -0
  45. package/dest/cmds/pxe/index.js +55 -0
  46. package/dest/utils/aztec.js +162 -0
  47. package/dest/utils/commands.js +303 -0
  48. package/dest/utils/encoding.js +110 -0
  49. package/dest/utils/github.js +3 -0
  50. package/dest/utils/index.js +4 -0
  51. package/dest/utils/inspect.js +177 -0
  52. package/package.json +67 -22
  53. package/src/cmds/contracts/index.ts +34 -0
  54. package/src/cmds/contracts/inspect_contract.ts +51 -0
  55. package/src/cmds/contracts/parse_parameter_struct.ts +27 -0
  56. package/src/cmds/devnet/bootstrap_network.ts +306 -0
  57. package/src/cmds/devnet/faucet.ts +33 -0
  58. package/src/cmds/devnet/index.ts +52 -0
  59. package/src/cmds/infrastructure/index.ts +54 -0
  60. package/src/cmds/infrastructure/sequencers.ts +100 -0
  61. package/src/cmds/infrastructure/setup_protocol_contract.ts +36 -0
  62. package/src/cmds/l1/advance_epoch.ts +12 -0
  63. package/src/cmds/l1/assume_proven_through.ts +25 -0
  64. package/src/cmds/l1/bridge_erc20.ts +53 -0
  65. package/src/cmds/l1/create_l1_account.ts +17 -0
  66. package/src/cmds/l1/deploy_l1_contracts.ts +55 -0
  67. package/src/cmds/l1/deploy_l1_verifier.ts +105 -0
  68. package/src/cmds/l1/get_l1_balance.ts +41 -0
  69. package/src/cmds/l1/index.ts +415 -0
  70. package/src/cmds/l1/prover_stats.ts +192 -0
  71. package/src/cmds/l1/update_l1_validators.ts +238 -0
  72. package/src/cmds/misc/compute_selector.ts +7 -0
  73. package/src/cmds/misc/example_contracts.ts +12 -0
  74. package/src/cmds/misc/generate_p2p_private_key.ts +10 -0
  75. package/src/cmds/misc/generate_secret_and_hash.ts +15 -0
  76. package/src/cmds/misc/generate_secret_key.ts +5 -0
  77. package/src/cmds/misc/index.ts +70 -0
  78. package/src/cmds/misc/setup_contracts.ts +38 -0
  79. package/src/cmds/misc/update/common.ts +16 -0
  80. package/src/cmds/misc/update/github.ts +3 -0
  81. package/src/cmds/misc/update/noir.ts +57 -0
  82. package/src/cmds/misc/update/npm.ts +154 -0
  83. package/src/cmds/misc/update/utils.ts +50 -0
  84. package/src/cmds/misc/update.ts +78 -0
  85. package/src/cmds/pxe/add_contract.ts +39 -0
  86. package/src/cmds/pxe/block_number.ts +9 -0
  87. package/src/cmds/pxe/get_account.ts +16 -0
  88. package/src/cmds/pxe/get_accounts.ts +35 -0
  89. package/src/cmds/pxe/get_block.ts +10 -0
  90. package/src/cmds/pxe/get_contract_data.ts +49 -0
  91. package/src/cmds/pxe/get_current_base_fee.ts +9 -0
  92. package/src/cmds/pxe/get_l1_to_l2_message_witness.ts +25 -0
  93. package/src/cmds/pxe/get_logs.ts +66 -0
  94. package/src/cmds/pxe/get_node_info.ts +71 -0
  95. package/src/cmds/pxe/get_pxe_info.ts +13 -0
  96. package/src/cmds/pxe/index.ts +170 -0
  97. package/src/utils/aztec.ts +218 -0
  98. package/src/utils/commands.ts +384 -0
  99. package/src/utils/encoding.ts +123 -0
  100. package/src/utils/github.ts +3 -0
  101. package/src/utils/index.ts +4 -0
  102. package/src/utils/inspect.ts +207 -0
  103. package/dest/bin/index.d.ts +0 -3
  104. package/dest/bin/index.d.ts.map +0 -1
  105. package/dest/bin/index.js +0 -19
  106. package/dest/client.d.ts +0 -17
  107. package/dest/client.d.ts.map +0 -1
  108. package/dest/client.js +0 -60
  109. package/dest/cmds/add_contract.d.ts +0 -7
  110. package/dest/cmds/add_contract.d.ts.map +0 -1
  111. package/dest/cmds/add_contract.js +0 -15
  112. package/dest/cmds/add_note.d.ts +0 -8
  113. package/dest/cmds/add_note.d.ts.map +0 -1
  114. package/dest/cmds/add_note.js +0 -13
  115. package/dest/cmds/block_number.d.ts +0 -6
  116. package/dest/cmds/block_number.d.ts.map +0 -1
  117. package/dest/cmds/block_number.js +0 -10
  118. package/dest/cmds/call.d.ts +0 -7
  119. package/dest/cmds/call.d.ts.map +0 -1
  120. package/dest/cmds/call.js +0 -18
  121. package/dest/cmds/check_deploy.d.ts +0 -7
  122. package/dest/cmds/check_deploy.d.ts.map +0 -1
  123. package/dest/cmds/check_deploy.js +0 -16
  124. package/dest/cmds/compute_selector.d.ts +0 -6
  125. package/dest/cmds/compute_selector.d.ts.map +0 -1
  126. package/dest/cmds/compute_selector.js +0 -9
  127. package/dest/cmds/create_account.d.ts +0 -7
  128. package/dest/cmds/create_account.d.ts.map +0 -1
  129. package/dest/cmds/create_account.js +0 -31
  130. package/dest/cmds/deploy.d.ts +0 -7
  131. package/dest/cmds/deploy.d.ts.map +0 -1
  132. package/dest/cmds/deploy.js +0 -58
  133. package/dest/cmds/deploy_l1_contracts.d.ts +0 -6
  134. package/dest/cmds/deploy_l1_contracts.d.ts.map +0 -1
  135. package/dest/cmds/deploy_l1_contracts.js +0 -15
  136. package/dest/cmds/example_contracts.d.ts +0 -6
  137. package/dest/cmds/example_contracts.d.ts.map +0 -1
  138. package/dest/cmds/example_contracts.js +0 -10
  139. package/dest/cmds/generate_p2p_private_key.d.ts +0 -6
  140. package/dest/cmds/generate_p2p_private_key.d.ts.map +0 -1
  141. package/dest/cmds/generate_p2p_private_key.js +0 -11
  142. package/dest/cmds/generate_private_key.d.ts +0 -6
  143. package/dest/cmds/generate_private_key.d.ts.map +0 -1
  144. package/dest/cmds/generate_private_key.js +0 -22
  145. package/dest/cmds/get_account.d.ts +0 -7
  146. package/dest/cmds/get_account.d.ts.map +0 -1
  147. package/dest/cmds/get_account.js +0 -15
  148. package/dest/cmds/get_accounts.d.ts +0 -6
  149. package/dest/cmds/get_accounts.d.ts.map +0 -1
  150. package/dest/cmds/get_accounts.js +0 -18
  151. package/dest/cmds/get_contract_data.d.ts +0 -7
  152. package/dest/cmds/get_contract_data.d.ts.map +0 -1
  153. package/dest/cmds/get_contract_data.js +0 -28
  154. package/dest/cmds/get_logs.d.ts +0 -7
  155. package/dest/cmds/get_logs.d.ts.map +0 -1
  156. package/dest/cmds/get_logs.js +0 -54
  157. package/dest/cmds/get_node_info.d.ts +0 -6
  158. package/dest/cmds/get_node_info.d.ts.map +0 -1
  159. package/dest/cmds/get_node_info.js +0 -15
  160. package/dest/cmds/get_recipient.d.ts +0 -7
  161. package/dest/cmds/get_recipient.d.ts.map +0 -1
  162. package/dest/cmds/get_recipient.js +0 -15
  163. package/dest/cmds/get_recipients.d.ts +0 -6
  164. package/dest/cmds/get_recipients.d.ts.map +0 -1
  165. package/dest/cmds/get_recipients.js +0 -18
  166. package/dest/cmds/get_tx_receipt.d.ts +0 -7
  167. package/dest/cmds/get_tx_receipt.d.ts.map +0 -1
  168. package/dest/cmds/get_tx_receipt.js +0 -16
  169. package/dest/cmds/inspect_contract.d.ts +0 -6
  170. package/dest/cmds/inspect_contract.d.ts.map +0 -1
  171. package/dest/cmds/inspect_contract.js +0 -19
  172. package/dest/cmds/parse_parameter_struct.d.ts +0 -6
  173. package/dest/cmds/parse_parameter_struct.d.ts.map +0 -1
  174. package/dest/cmds/parse_parameter_struct.js +0 -20
  175. package/dest/cmds/register_account.d.ts +0 -7
  176. package/dest/cmds/register_account.d.ts.map +0 -1
  177. package/dest/cmds/register_account.js +0 -13
  178. package/dest/cmds/register_recipient.d.ts +0 -7
  179. package/dest/cmds/register_recipient.d.ts.map +0 -1
  180. package/dest/cmds/register_recipient.js +0 -11
  181. package/dest/cmds/send.d.ts +0 -7
  182. package/dest/cmds/send.d.ts.map +0 -1
  183. package/dest/cmds/send.js +0 -27
  184. package/dest/cmds/unbox.d.ts +0 -7
  185. package/dest/cmds/unbox.d.ts.map +0 -1
  186. package/dest/cmds/unbox.js +0 -133
  187. package/dest/encoding.d.ts +0 -15
  188. package/dest/encoding.d.ts.map +0 -1
  189. package/dest/encoding.js +0 -114
  190. package/dest/github.d.ts +0 -4
  191. package/dest/github.d.ts.map +0 -1
  192. package/dest/github.js +0 -4
  193. package/dest/index.d.ts +0 -10
  194. package/dest/index.d.ts.map +0 -1
  195. package/dest/index.js +0 -321
  196. package/dest/parse_args.d.ts +0 -105
  197. package/dest/parse_args.d.ts.map +0 -1
  198. package/dest/parse_args.js +0 -233
  199. package/dest/test/mocks.d.ts +0 -3
  200. package/dest/test/mocks.d.ts.map +0 -1
  201. package/dest/test/mocks.js +0 -65
  202. package/dest/update/common.d.ts +0 -17
  203. package/dest/update/common.d.ts.map +0 -1
  204. package/dest/update/common.js +0 -2
  205. package/dest/update/noir.d.ts +0 -10
  206. package/dest/update/noir.d.ts.map +0 -1
  207. package/dest/update/noir.js +0 -63
  208. package/dest/update/npm.d.ts +0 -34
  209. package/dest/update/npm.d.ts.map +0 -1
  210. package/dest/update/npm.js +0 -125
  211. package/dest/update/update.d.ts +0 -3
  212. package/dest/update/update.d.ts.map +0 -1
  213. package/dest/update/update.js +0 -58
  214. package/dest/utils.d.ts +0 -70
  215. package/dest/utils.d.ts.map +0 -1
  216. package/dest/utils.js +0 -168
package/dest/index.js DELETED
@@ -1,321 +0,0 @@
1
- import { fileURLToPath } from '@aztec/foundation/url';
2
- import { addCodegenCommanderAction } from '@aztec/noir-compiler/cli';
3
- import { Command, Option } from 'commander';
4
- import { lookup } from 'dns/promises';
5
- import { readFileSync } from 'fs';
6
- import { dirname, resolve } from 'path';
7
- import { parseAztecAddress, parseEthereumAddress, parseField, parseOptionalAztecAddress, parseOptionalInteger, parseOptionalLogId, parseOptionalSelector, parseOptionalTxHash, parsePartialAddress, parsePrivateKey, parsePublicKey, parseSaltFromHexString, parseTxHash, } from './parse_args.js';
8
- /**
9
- * If we can successfully resolve 'host.docker.internal', then we are running in a container, and we should treat
10
- * localhost as being host.docker.internal.
11
- */
12
- const getLocalhost = () => lookup('host.docker.internal')
13
- .then(() => 'host.docker.internal')
14
- .catch(() => 'localhost');
15
- const LOCALHOST = await getLocalhost();
16
- const { ETHEREUM_HOST = `http://${LOCALHOST}:8545`, PRIVATE_KEY, API_KEY, CLI_VERSION } = process.env;
17
- /**
18
- * Returns commander program that defines the CLI.
19
- * @param log - Console logger.
20
- * @param debugLogger - Debug logger.
21
- * @returns The CLI.
22
- */
23
- export function getProgram(log, debugLogger) {
24
- const program = new Command();
25
- const packageJsonPath = resolve(dirname(fileURLToPath(import.meta.url)), '../package.json');
26
- const cliVersion = CLI_VERSION || JSON.parse(readFileSync(packageJsonPath).toString()).version;
27
- const logJson = (obj) => log(JSON.stringify(obj, null, 2));
28
- program.name('aztec-cli').description('CLI for interacting with Aztec.').version(cliVersion);
29
- const pxeOption = new Option('-u, --rpc-url <string>', 'URL of the PXE')
30
- .env('PXE_URL')
31
- .default(`http://${LOCALHOST}:8080`)
32
- .makeOptionMandatory(true);
33
- const createPrivateKeyOption = (description, mandatory) => new Option('-k, --private-key <string>', description)
34
- .env('PRIVATE_KEY')
35
- .argParser(parsePrivateKey)
36
- .makeOptionMandatory(mandatory);
37
- program
38
- .command('deploy-l1-contracts')
39
- .description('Deploys all necessary Ethereum contracts for Aztec.')
40
- .requiredOption('-u, --rpc-url <string>', 'Url of the ethereum host. Chain identifiers localhost and testnet can be used', ETHEREUM_HOST)
41
- .option('-a, --api-key <string>', 'Api key for the ethereum host', API_KEY)
42
- .requiredOption('-p, --private-key <string>', 'The private key to use for deployment', PRIVATE_KEY)
43
- .option('-m, --mnemonic <string>', 'The mnemonic to use in deployment', 'test test test test test test test test test test test junk')
44
- .action(async (options) => {
45
- const { deployL1Contracts } = await import('./cmds/deploy_l1_contracts.js');
46
- await deployL1Contracts(options.rpcUrl, options.apiKey ?? '', options.privateKey, options.mnemonic, log, debugLogger);
47
- });
48
- program
49
- .command('generate-private-key')
50
- .summary('Generates an encryption private key.')
51
- .description('Generates a private key which fits into the scalar field used by Grumpkin curve, can be used as an encryption private key.')
52
- .option('-m, --mnemonic', 'An optional mnemonic string used for the private key generation. If not provided, random private key will be generated.')
53
- .action(async (options) => {
54
- const { generatePrivateKey } = await import('./cmds/generate_private_key.js');
55
- generatePrivateKey(options.mnemonic, log);
56
- });
57
- program
58
- .command('generate-p2p-private-key')
59
- .summary('Generates a LibP2P peer private key.')
60
- .description('Generates a private key that can be used for running a node on a LibP2P network.')
61
- .action(async () => {
62
- const { generateP2PPrivateKey } = await import('./cmds/generate_p2p_private_key.js');
63
- await generateP2PPrivateKey(log);
64
- });
65
- program
66
- .command('create-account')
67
- .description('Creates an aztec account that can be used for sending transactions. Registers the account on the PXE and deploys an account contract. Uses a Schnorr single-key account which uses the same key for encryption and authentication (not secure for production usage).')
68
- .summary('Creates an aztec account that can be used for sending transactions.')
69
- .addOption(createPrivateKeyOption('Private key for note encryption and transaction signing. Uses random by default.', false))
70
- .addOption(pxeOption)
71
- // `options.wait` is default true. Passing `--no-wait` will set it to false.
72
- // https://github.com/tj/commander.js#other-option-types-negatable-boolean-and-booleanvalue
73
- .option('--no-wait', 'Skip waiting for the contract to be deployed. Print the hash of deployment transaction')
74
- .action(async ({ rpcUrl, privateKey, wait }) => {
75
- const { createAccount } = await import('./cmds/create_account.js');
76
- await createAccount(rpcUrl, privateKey, wait, debugLogger, log);
77
- });
78
- program
79
- .command('register-account')
80
- .description('Registers an aztec account that can be used for sending transactions. Registers the account on the PXE. Uses a Schnorr single-key account which uses the same key for encryption and authentication (not secure for production usage).')
81
- .summary('Registers an aztec account that can be used for sending transactions.')
82
- .addOption(createPrivateKeyOption('Private key for note encryption and transaction signing.', true))
83
- .requiredOption('-pa, --partial-address <partialAddress>', 'The partially computed address of the account contract.', parsePartialAddress)
84
- .addOption(pxeOption)
85
- .action(async ({ rpcUrl, privateKey, partialAddress }) => {
86
- const { registerAccount } = await import('./cmds/register_account.js');
87
- await registerAccount(rpcUrl, privateKey, partialAddress, debugLogger, log);
88
- });
89
- program
90
- .command('deploy')
91
- .description('Deploys a compiled Aztec.nr contract to Aztec.')
92
- .argument('<artifact>', "A compiled Aztec.nr contract's artifact in JSON format or name of a contract artifact exported by @aztec/noir-contracts")
93
- .option('-a, --args <constructorArgs...>', 'Contract constructor arguments', [])
94
- .addOption(pxeOption)
95
- .option('-k, --public-key <string>', 'Optional encryption public key for this address. Set this value only if this contract is expected to receive private notes, which will be encrypted using this public key.', parsePublicKey)
96
- .option('-p, --portal-address <hex string>', 'Optional L1 portal address to link the contract to.', parseEthereumAddress)
97
- .option('-s, --salt <hex string>', 'Optional deployment salt as a hex string for generating the deployment address.', parseSaltFromHexString)
98
- .option('--json', 'Emit output as json')
99
- // `options.wait` is default true. Passing `--no-wait` will set it to false.
100
- // https://github.com/tj/commander.js#other-option-types-negatable-boolean-and-booleanvalue
101
- .option('--no-wait', 'Skip waiting for the contract to be deployed. Print the hash of deployment transaction')
102
- .action(async (artifactPath, { json, rpcUrl, publicKey, args: rawArgs, portalAddress, salt, wait }) => {
103
- const { deploy } = await import('./cmds/deploy.js');
104
- await deploy(artifactPath, json, rpcUrl, publicKey, rawArgs, portalAddress, salt, wait, debugLogger, log, logJson);
105
- });
106
- program
107
- .command('check-deploy')
108
- .description('Checks if a contract is deployed to the specified Aztec address.')
109
- .requiredOption('-ca, --contract-address <address>', 'An Aztec address to check if contract has been deployed to.', parseAztecAddress)
110
- .addOption(pxeOption)
111
- .action(async (options) => {
112
- const { checkDeploy } = await import('./cmds/check_deploy.js');
113
- await checkDeploy(options.rpcUrl, options.contractAddress, debugLogger, log);
114
- });
115
- program
116
- .command('add-contract')
117
- .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.')
118
- .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")
119
- .requiredOption('-ca, --contract-address <address>', 'Aztec address of the contract.', parseAztecAddress)
120
- .requiredOption('-pa, --partial-address <address>', 'Partial address of the contract', parsePartialAddress)
121
- .option('-p, --public-key <public key>', 'Optional public key for this contract', parsePublicKey)
122
- .option('--portal-address <address>', 'Optional address to a portal contract on L1', parseEthereumAddress)
123
- .addOption(pxeOption)
124
- .action(async (options) => {
125
- const { addContract } = await import('./cmds/add_contract.js');
126
- await addContract(options.rpcUrl, options.contractArtifact, options.contractAddress, options.partialAddress, options.publicKey, options.portalContract, debugLogger, log);
127
- });
128
- program
129
- .command('get-tx-receipt')
130
- .description('Gets the receipt for the specified transaction hash.')
131
- .argument('<txHash>', 'A transaction hash to get the receipt for.', parseTxHash)
132
- .addOption(pxeOption)
133
- .action(async (txHash, options) => {
134
- const { getTxReceipt } = await import('./cmds/get_tx_receipt.js');
135
- await getTxReceipt(options.rpcUrl, txHash, debugLogger, log);
136
- });
137
- program
138
- .command('get-contract-data')
139
- .description('Gets information about the Aztec contract deployed at the specified address.')
140
- .argument('<contractAddress>', 'Aztec address of the contract.', parseAztecAddress)
141
- .addOption(pxeOption)
142
- .option('-b, --include-bytecode <boolean>', "Include the contract's public function bytecode, if any.", false)
143
- .action(async (contractAddress, options) => {
144
- const { getContractData } = await import('./cmds/get_contract_data.js');
145
- await getContractData(options.rpcUrl, contractAddress, options.includeBytecode, debugLogger, log);
146
- });
147
- program
148
- .command('get-logs')
149
- .description('Gets all the unencrypted logs from an intersection of all the filter params.')
150
- .option('-tx, --tx-hash <txHash>', 'A transaction hash to get the receipt for.', parseOptionalTxHash)
151
- .option('-fb, --from-block <blockNum>', 'Initial block number for getting logs (defaults to 1).', parseOptionalInteger)
152
- .option('-tb, --to-block <blockNum>', 'Up to which block to fetch logs (defaults to latest).', parseOptionalInteger)
153
- .option('-al --after-log <logId>', 'ID of a log after which to fetch the logs.', parseOptionalLogId)
154
- .option('-ca, --contract-address <address>', 'Contract address to filter logs by.', parseOptionalAztecAddress)
155
- .option('-s, --selector <hex string>', 'Event selector to filter logs by.', parseOptionalSelector)
156
- .addOption(pxeOption)
157
- .option('--follow', 'If set, will keep polling for new logs until interrupted.')
158
- .action(async ({ txHash, fromBlock, toBlock, afterLog, contractAddress, selector, rpcUrl, follow }) => {
159
- const { getLogs } = await import('./cmds/get_logs.js');
160
- await getLogs(txHash, fromBlock, toBlock, afterLog, contractAddress, selector, rpcUrl, follow, debugLogger, log);
161
- });
162
- program
163
- .command('register-recipient')
164
- .description('Register a recipient in the PXE.')
165
- .requiredOption('-a, --address <aztecAddress>', "The account's Aztec address.", parseAztecAddress)
166
- .requiredOption('-p, --public-key <publicKey>', 'The account public key.', parsePublicKey)
167
- .requiredOption('-pa, --partial-address <partialAddress>', 'The partially computed address of the account contract.', parsePartialAddress)
168
- .addOption(pxeOption)
169
- .action(async ({ address, publicKey, partialAddress, rpcUrl }) => {
170
- const { registerRecipient } = await import('./cmds/register_recipient.js');
171
- await registerRecipient(address, publicKey, partialAddress, rpcUrl, debugLogger, log);
172
- });
173
- program
174
- .command('get-accounts')
175
- .description('Gets all the Aztec accounts stored in the PXE.')
176
- .addOption(pxeOption)
177
- .action(async (options) => {
178
- const { getAccounts } = await import('./cmds/get_accounts.js');
179
- await getAccounts(options.rpcUrl, debugLogger, log);
180
- });
181
- program
182
- .command('get-account')
183
- .description('Gets an account given its Aztec address.')
184
- .argument('<address>', 'The Aztec address to get account for', parseAztecAddress)
185
- .addOption(pxeOption)
186
- .action(async (address, options) => {
187
- const { getAccount } = await import('./cmds/get_account.js');
188
- await getAccount(address, options.rpcUrl, debugLogger, log);
189
- });
190
- program
191
- .command('get-recipients')
192
- .description('Gets all the recipients stored in the PXE.')
193
- .addOption(pxeOption)
194
- .action(async (options) => {
195
- const { getRecipients } = await import('./cmds/get_recipients.js');
196
- await getRecipients(options.rpcUrl, debugLogger, log);
197
- });
198
- program
199
- .command('get-recipient')
200
- .description('Gets a recipient given its Aztec address.')
201
- .argument('<address>', 'The Aztec address to get recipient for', parseAztecAddress)
202
- .addOption(pxeOption)
203
- .action(async (address, options) => {
204
- const { getRecipient } = await import('./cmds/get_recipient.js');
205
- await getRecipient(address, options.rpcUrl, debugLogger, log);
206
- });
207
- program
208
- .command('send')
209
- .description('Calls a function on an Aztec contract.')
210
- .argument('<functionName>', 'Name of function to execute')
211
- .option('-a, --args [functionArgs...]', 'Function arguments', [])
212
- .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")
213
- .requiredOption('-ca, --contract-address <address>', 'Aztec address of the contract.', parseAztecAddress)
214
- .addOption(createPrivateKeyOption("The sender's private key.", true))
215
- .addOption(pxeOption)
216
- .option('--no-wait', 'Print transaction hash without waiting for it to be mined')
217
- .action(async (functionName, options) => {
218
- const { send } = await import('./cmds/send.js');
219
- await send(functionName, options.args, options.contractArtifact, options.contractAddress, options.privateKey, options.rpcUrl, !options.noWait, debugLogger, log);
220
- });
221
- program
222
- .command('call')
223
- .description('Simulates the execution of a view (read-only) function on a deployed contract, without modifying state.')
224
- .argument('<functionName>', 'Name of function to call')
225
- .option('-a, --args [functionArgs...]', 'Function arguments', [])
226
- .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")
227
- .requiredOption('-ca, --contract-address <address>', 'Aztec address of the contract.', parseAztecAddress)
228
- .option('-f, --from <string>', 'Aztec address of the caller. If empty, will use the first account from RPC.')
229
- .addOption(pxeOption)
230
- .action(async (functionName, options) => {
231
- const { call } = await import('./cmds/call.js');
232
- await call(functionName, options.args, options.contractArtifact, options.contractAddress, options.from, options.rpcUrl, debugLogger, log);
233
- });
234
- program
235
- .command('add-note')
236
- .description('Adds a note to the database in the PXE.')
237
- .argument('<address>', 'The Aztec address of the note owner.', parseAztecAddress)
238
- .argument('<contractAddress>', 'Aztec address of the contract.', parseAztecAddress)
239
- .argument('<storageSlot>', 'The storage slot of the note.', parseField)
240
- .argument('<txHash>', 'The tx hash of the tx containing the note.', parseTxHash)
241
- .requiredOption('-n, --note [note...]', 'The members of a Note serialized as hex strings.', [])
242
- .addOption(pxeOption)
243
- .action(async (address, contractAddress, storageSlot, txHash, options) => {
244
- const { addNote } = await import('./cmds/add_note.js');
245
- await addNote(address, contractAddress, storageSlot, txHash, options.note, options.rpcUrl, debugLogger);
246
- });
247
- // Helper for users to decode hex strings into structs if needed.
248
- program
249
- .command('parse-parameter-struct')
250
- .description("Helper for parsing an encoded string into a contract's parameter struct.")
251
- .argument('<encodedString>', 'The encoded hex string')
252
- .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")
253
- .requiredOption('-p, --parameter <parameterName>', 'The name of the struct parameter to decode into')
254
- .action(async (encodedString, options) => {
255
- const { parseParameterStruct } = await import('./cmds/parse_parameter_struct.js');
256
- await parseParameterStruct(encodedString, options.contractArtifact, options.parameter, log);
257
- });
258
- program
259
- .command('block-number')
260
- .description('Gets the current Aztec L2 block number.')
261
- .addOption(pxeOption)
262
- .action(async (options) => {
263
- const { blockNumber } = await import('./cmds/block_number.js');
264
- await blockNumber(options.rpcUrl, debugLogger, log);
265
- });
266
- program
267
- .command('example-contracts')
268
- .description('Lists the example contracts available to deploy from @aztec/noir-contracts')
269
- .action(async () => {
270
- const { exampleContracts } = await import('./cmds/example_contracts.js');
271
- await exampleContracts(log);
272
- });
273
- program
274
- .command('unbox')
275
- .description('Unboxes an example contract from @aztec/boxes. Also Copies `noir-libs` dependencies and setup simple frontend for the contract using its ABI.')
276
- .argument('<contractName>', 'Name of the contract to unbox, e.g. "PrivateToken"')
277
- .argument('[localDirectory]', 'Local directory to unbox source folder to (relative or absolute), optional - defaults to `<contractName>/`')
278
- .action(async (contractName, localDirectory) => {
279
- const { unbox } = await import('./cmds/unbox.js');
280
- unbox(contractName, localDirectory, cliVersion, log);
281
- });
282
- program
283
- .command('get-node-info')
284
- .description('Gets the information of an aztec node at a URL.')
285
- .addOption(pxeOption)
286
- .action(async (options) => {
287
- const { getNodeInfo } = await import('./cmds/get_node_info.js');
288
- await getNodeInfo(options.rpcUrl, debugLogger, log);
289
- });
290
- program
291
- .command('inspect-contract')
292
- .description('Shows list of external callable functions for a contract')
293
- .argument('<contractArtifactFile>', `A compiled Noir contract's artifact in JSON format or name of a contract artifact exported by @aztec/noir-contracts`)
294
- .action(async (contractArtifactFile) => {
295
- const { inspectContract } = await import('./cmds/inspect_contract.js');
296
- await inspectContract(contractArtifactFile, debugLogger, log);
297
- });
298
- program
299
- .command('compute-selector')
300
- .description('Given a function signature, it computes a selector')
301
- .argument('<functionSignature>', 'Function signature to compute selector for e.g. foo(Field)')
302
- .action(async (functionSignature) => {
303
- const { computeSelector } = await import('./cmds/compute_selector.js');
304
- computeSelector(functionSignature, log);
305
- });
306
- program
307
- .command('update')
308
- .description('Updates Nodejs and Noir dependencies')
309
- .argument('[projectPath]', 'Path to the project directory', process.cwd())
310
- .option('--contract [paths...]', 'Paths to contracts to update dependencies', [])
311
- .option('--aztec-version <semver>', 'The version to update Aztec packages to. Defaults to latest', 'latest')
312
- .addOption(pxeOption)
313
- .action(async (projectPath, options) => {
314
- const { update } = await import('./update/update.js');
315
- const { contract, aztecVersion, rpcUrl } = options;
316
- await update(projectPath, contract, rpcUrl, aztecVersion, log);
317
- });
318
- addCodegenCommanderAction(program, log);
319
- return program;
320
- }
321
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLElBQUksQ0FBQztBQUNsQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV4QyxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUNwQixVQUFVLEVBQ1YseUJBQXlCLEVBQ3pCLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIscUJBQXFCLEVBQ3JCLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLGNBQWMsRUFDZCxzQkFBc0IsRUFDdEIsV0FBVyxHQUNaLE1BQU0saUJBQWlCLENBQUM7QUFFekI7OztHQUdHO0FBQ0gsTUFBTSxZQUFZLEdBQUcsR0FBRyxFQUFFLENBQ3hCLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQztLQUMzQixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsc0JBQXNCLENBQUM7S0FDbEMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBRTlCLE1BQU0sU0FBUyxHQUFHLE1BQU0sWUFBWSxFQUFFLENBQUM7QUFDdkMsTUFBTSxFQUFFLGFBQWEsR0FBRyxVQUFVLFNBQVMsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQztBQUV0Rzs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxVQUFVLENB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
@@ -1,105 +0,0 @@
1
- import { FunctionSelector } from '@aztec/aztec.js/abi';
2
- import { AztecAddress } from '@aztec/aztec.js/aztec_address';
3
- import { EthAddress } from '@aztec/aztec.js/eth_address';
4
- import { Fr, GrumpkinScalar, Point } from '@aztec/aztec.js/fields';
5
- import { LogId } from '@aztec/aztec.js/log_id';
6
- import { TxHash } from '@aztec/aztec.js/tx_hash';
7
- /**
8
- * Parses a hex encoded string to an Fr integer to be used as salt
9
- * @param str - Hex encoded string
10
- * @returns A integer to be used as salt
11
- */
12
- export declare function parseSaltFromHexString(str: string): Fr;
13
- /**
14
- * Parses an AztecAddress from a string.
15
- * @param address - A serialized Aztec address
16
- * @returns An Aztec address
17
- * @throws InvalidArgumentError if the input string is not valid.
18
- */
19
- export declare function parseAztecAddress(address: string): AztecAddress;
20
- /**
21
- * Parses an Ethereum address from a string.
22
- * @param address - A serialized Ethereum address
23
- * @returns An Ethereum address
24
- * @throws InvalidArgumentError if the input string is not valid.
25
- */
26
- export declare function parseEthereumAddress(address: string): EthAddress;
27
- /**
28
- * Parses an AztecAddress from a string.
29
- * @param address - A serialized Aztec address
30
- * @returns An Aztec address
31
- * @throws InvalidArgumentError if the input string is not valid.
32
- */
33
- export declare function parseOptionalAztecAddress(address: string): AztecAddress | undefined;
34
- /**
35
- * Parses an optional log ID string into a LogId object.
36
- *
37
- * @param logId - The log ID string to parse.
38
- * @returns The parsed LogId object, or undefined if the log ID is missing or empty.
39
- */
40
- export declare function parseOptionalLogId(logId: string): LogId | undefined;
41
- /**
42
- * Parses a selector from a string.
43
- * @param selector - A serialized selector.
44
- * @returns A selector.
45
- * @throws InvalidArgumentError if the input string is not valid.
46
- */
47
- export declare function parseOptionalSelector(selector: string): FunctionSelector | undefined;
48
- /**
49
- * Parses a string into an integer or returns undefined if the input is falsy.
50
- *
51
- * @param value - The string to parse into an integer.
52
- * @returns The parsed integer, or undefined if the input string is falsy.
53
- * @throws If the input is not a valid integer.
54
- */
55
- export declare function parseOptionalInteger(value: string): number | undefined;
56
- /**
57
- * Parses a TxHash from a string.
58
- * @param txHash - A transaction hash
59
- * @returns A TxHash instance
60
- * @throws InvalidArgumentError if the input string is not valid.
61
- */
62
- export declare function parseTxHash(txHash: string): TxHash;
63
- /**
64
- * Parses an optional TxHash from a string.
65
- * Calls parseTxHash internally.
66
- * @param txHash - A transaction hash
67
- * @returns A TxHash instance, or undefined if the input string is falsy.
68
- * @throws InvalidArgumentError if the input string is not valid.
69
- */
70
- export declare function parseOptionalTxHash(txHash: string): TxHash | undefined;
71
- /**
72
- * Parses a public key from a string.
73
- * @param publicKey - A public key
74
- * @returns A Point instance
75
- * @throws InvalidArgumentError if the input string is not valid.
76
- */
77
- export declare function parsePublicKey(publicKey: string): Point;
78
- /**
79
- * Parses a partial address from a string.
80
- * @param address - A partial address
81
- * @returns A Fr instance
82
- * @throws InvalidArgumentError if the input string is not valid.
83
- */
84
- export declare function parsePartialAddress(address: string): Fr;
85
- /**
86
- * Parses a private key from a string.
87
- * @param privateKey - A string
88
- * @returns A private key
89
- * @throws InvalidArgumentError if the input string is not valid.
90
- */
91
- export declare function parsePrivateKey(privateKey: string): GrumpkinScalar;
92
- /**
93
- * Parses a field from a string.
94
- * @param field - A string representing the field.
95
- * @returns A field.
96
- * @throws InvalidArgumentError if the input string is not valid.
97
- */
98
- export declare function parseField(field: string): Fr;
99
- /**
100
- * Parses an array of strings to Frs.
101
- * @param fields - An array of strings representing the fields.
102
- * @returns An array of Frs.
103
- */
104
- export declare function parseFields(fields: string[]): Fr[];
105
- //# sourceMappingURL=parse_args.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse_args.d.ts","sourceRoot":"","sources":["../src/parse_args.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAgBjD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,CActD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAM/D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAMhE;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAKnF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAKnE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CASpF;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAStE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAMlD;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKtE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,CAMvD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,EAAE,CAMvD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CAYlE;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,EAAE,CAyB5C;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAElD"}