@aztec/cli 0.1.0-alpha47 → 0.1.0-alpha48

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.
package/README.md CHANGED
@@ -324,7 +324,7 @@ Options:
324
324
  - `-c, --contract-abi <fileLocation>`: The compiled contract's ABI in JSON format. You can also use one of Aztec's example contracts found in (@aztec/noir-contracts)[https://www.npmjs.com/package/@aztec/noir-contracts], e.g. PrivateTokenContractAbi.
325
325
  - `-ca, --contract-address <address>`: Address of the contract.
326
326
  - `-k, --private-key <string>`: The sender's private key.
327
- - `-u, --rpcUrl <string>`: URL of the Aztec RPC. Default: `http://localhost:8080`.
327
+ - `-u, --rpc-url <string>`: URL of the Aztec RPC. Default: `http://localhost:8080`.
328
328
 
329
329
  This command calls a function on an Aztec contract. It requires the contract's ABI, address, function name, and optionally, function arguments. The command executes the function call and displays the transaction details.
330
330
 
@@ -352,7 +352,7 @@ Options:
352
352
  - `-c, --contract-abi <fileLocation>`: The compiled contract's ABI in JSON format. You can also use one of Aztec's example contracts found in (@aztec/noir-contracts)[https://www.npmjs.com/package/@aztec/noir-contracts], e.g. PrivateTokenContractAbi.
353
353
  - `-ca, --contract-address <address>`: Address of the contract.
354
354
  - `-f, --from <string>`: Public key of the transaction viewer. If empty, it will try to find an account in the RPC.
355
- - `-u, --rpcUrl <string>`: URL of the Aztec RPC. Default: `http://localhost:8080`.
355
+ - `-u, --rpc-url <string>`: URL of the Aztec RPC. Default: `http://localhost:8080`.
356
356
 
357
357
  This command simulates the execution of a view function on a deployed contract without modifying the state. It requires the contract's ABI, address, function name, and optionally, function arguments. The command displays the result of the view function.
358
358
 
package/dest/client.d.ts CHANGED
@@ -1,7 +1,23 @@
1
+ import { AztecRPC } from '@aztec/aztec.js';
2
+ import { DebugLogger } from '@aztec/foundation/log';
1
3
  /**
2
4
  * Creates an Aztec RPC client with a given set of retries on non-server errors.
3
5
  * @param rpcUrl - URL of the RPC server.
4
6
  * @returns An RPC client.
5
7
  */
6
- export declare function createClient(rpcUrl: string): import("@aztec/aztec.js").AztecRPC;
8
+ export declare function createClient(rpcUrl: string): AztecRPC;
9
+ /**
10
+ * Creates an Aztec RPC client with a given set of retries on non-server errors.
11
+ * Checks that the RPC server matches the expected version, and warns if not.
12
+ * @param rpcUrl - URL of the RPC server.
13
+ * @param logger - Debug logger to warn version incompatibilities.
14
+ * @returns An RPC client.
15
+ */
16
+ export declare function createCompatibleClient(rpcUrl: string, logger: DebugLogger): Promise<AztecRPC>;
17
+ /**
18
+ * Checks that the RPC server version matches the expected one by this CLI. Throws if not.
19
+ * @param rpc - RPC server connection.
20
+ * @param expectedVersionRange - Expected version by CLI.
21
+ */
22
+ export declare function checkServerVersion(rpc: AztecRPC, expectedVersionRange: string, logger?: DebugLogger): Promise<void>;
7
23
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,sCAG1C"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAwB,MAAM,iBAAiB,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AASpD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,YAG1C;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,qBAiB/E;AAKD;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,iBAsBzG"}
package/dest/client.js CHANGED
@@ -1,5 +1,9 @@
1
1
  import { createAztecRpcClient } from '@aztec/aztec.js';
2
2
  import { makeFetch } from '@aztec/foundation/json-rpc/client';
3
+ import { readFileSync } from 'fs';
4
+ import { dirname, resolve } from 'path';
5
+ import { gtr, ltr, satisfies, valid } from 'semver';
6
+ import { fileURLToPath } from 'url';
3
7
  const retries = [1, 1, 2];
4
8
  /**
5
9
  * Creates an Aztec RPC client with a given set of retries on non-server errors.
@@ -10,4 +14,57 @@ export function createClient(rpcUrl) {
10
14
  const fetch = makeFetch(retries, true);
11
15
  return createAztecRpcClient(rpcUrl, fetch);
12
16
  }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFOUQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRTFCOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLE1BQWM7SUFDekMsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN2QyxPQUFPLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztBQUM3QyxDQUFDIn0=
17
+ /**
18
+ * Creates an Aztec RPC client with a given set of retries on non-server errors.
19
+ * Checks that the RPC server matches the expected version, and warns if not.
20
+ * @param rpcUrl - URL of the RPC server.
21
+ * @param logger - Debug logger to warn version incompatibilities.
22
+ * @returns An RPC client.
23
+ */
24
+ export async function createCompatibleClient(rpcUrl, logger) {
25
+ const client = createClient(rpcUrl);
26
+ const packageJsonPath = resolve(dirname(fileURLToPath(import.meta.url)), '../package.json');
27
+ const packageJsonContents = JSON.parse(readFileSync(packageJsonPath).toString());
28
+ const expectedVersionRange = packageJsonContents.version; // During sandbox, we'll expect exact matches
29
+ try {
30
+ await checkServerVersion(client, expectedVersionRange, logger);
31
+ }
32
+ catch (err) {
33
+ if (err instanceof VersionMismatchError) {
34
+ logger.warn(err.message);
35
+ }
36
+ else {
37
+ throw err;
38
+ }
39
+ }
40
+ return client;
41
+ }
42
+ /** Mismatch between server and client versions. */
43
+ class VersionMismatchError extends Error {
44
+ }
45
+ /**
46
+ * Checks that the RPC server version matches the expected one by this CLI. Throws if not.
47
+ * @param rpc - RPC server connection.
48
+ * @param expectedVersionRange - Expected version by CLI.
49
+ */
50
+ export async function checkServerVersion(rpc, expectedVersionRange, logger) {
51
+ const serverName = 'Aztec Sandbox';
52
+ const { client } = await rpc.getNodeInfo();
53
+ const version = client.split('@')[1];
54
+ logger?.debug(`Comparing server version ${version} against CLI expected ${expectedVersionRange}`);
55
+ if (!version || !valid(version)) {
56
+ throw new VersionMismatchError(`Missing or invalid version identifier for ${serverName} (${version ?? 'empty'}).`);
57
+ }
58
+ else if (!satisfies(version, expectedVersionRange)) {
59
+ if (gtr(version, expectedVersionRange)) {
60
+ throw new VersionMismatchError(`${serverName} is running version ${version} which is newer than the expected by this CLI (${expectedVersionRange}). Consider upgrading your CLI to a newer version.`);
61
+ }
62
+ else if (ltr(version, expectedVersionRange)) {
63
+ throw new VersionMismatchError(`${serverName} is running version ${version} which is older than the expected by this CLI (${expectedVersionRange}). Consider upgrading your ${serverName} to a newer version.`);
64
+ }
65
+ else {
66
+ throw new VersionMismatchError(`${serverName} is running version ${version} which does not match the expected by this CLI (${expectedVersionRange}).`);
67
+ }
68
+ }
69
+ }
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVksb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLElBQUksQ0FBQztBQUNsQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFcEMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRTFCOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLE1BQWM7SUFDekMsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN2QyxPQUFPLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxzQkFBc0IsQ0FBQyxNQUFjLEVBQUUsTUFBbUI7SUFDOUUsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQzVGLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNqRixNQUFNLG9CQUFvQixHQUFHLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLDZDQUE2QztJQUV2RyxJQUFJO1FBQ0YsTUFBTSxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDaEU7SUFBQyxPQUFPLEdBQUcsRUFBRTtRQUNaLElBQUksR0FBRyxZQUFZLG9CQUFvQixFQUFFO1lBQ3ZDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzFCO2FBQU07WUFDTCxNQUFNLEdBQUcsQ0FBQztTQUNYO0tBQ0Y7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsbURBQW1EO0FBQ25ELE1BQU0sb0JBQXFCLFNBQVEsS0FBSztDQUFHO0FBRTNDOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGtCQUFrQixDQUFDLEdBQWEsRUFBRSxvQkFBNEIsRUFBRSxNQUFvQjtJQUN4RyxNQUFNLFVBQVUsR0FBRyxlQUFlLENBQUM7SUFDbkMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzNDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckMsTUFBTSxFQUFFLEtBQUssQ0FBQyw0QkFBNEIsT0FBTyx5QkFBeUIsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBQ2xHLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDL0IsTUFBTSxJQUFJLG9CQUFvQixDQUFDLDZDQUE2QyxVQUFVLEtBQUssT0FBTyxJQUFJLE9BQU8sSUFBSSxDQUFDLENBQUM7S0FDcEg7U0FBTSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxvQkFBb0IsQ0FBQyxFQUFFO1FBQ3BELElBQUksR0FBRyxDQUFDLE9BQU8sRUFBRSxvQkFBb0IsQ0FBQyxFQUFFO1lBQ3RDLE1BQU0sSUFBSSxvQkFBb0IsQ0FDNUIsR0FBRyxVQUFVLHVCQUF1QixPQUFPLGtEQUFrRCxvQkFBb0Isb0RBQW9ELENBQ3RLLENBQUM7U0FDSDthQUFNLElBQUksR0FBRyxDQUFDLE9BQU8sRUFBRSxvQkFBb0IsQ0FBQyxFQUFFO1lBQzdDLE1BQU0sSUFBSSxvQkFBb0IsQ0FDNUIsR0FBRyxVQUFVLHVCQUF1QixPQUFPLGtEQUFrRCxvQkFBb0IsOEJBQThCLFVBQVUsc0JBQXNCLENBQ2hMLENBQUM7U0FDSDthQUFNO1lBQ0wsTUFBTSxJQUFJLG9CQUFvQixDQUM1QixHQUFHLFVBQVUsdUJBQXVCLE9BQU8sbURBQW1ELG9CQUFvQixJQUFJLENBQ3ZILENBQUM7U0FDSDtLQUNGO0FBQ0gsQ0FBQyJ9
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=client.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.test.d.ts","sourceRoot":"","sources":["../src/client.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ import { mock } from 'jest-mock-extended';
2
+ import { checkServerVersion } from './client.js';
3
+ describe('client', () => {
4
+ describe('checkServerVersion', () => {
5
+ let rpc;
6
+ beforeEach(() => {
7
+ rpc = mock();
8
+ });
9
+ it('checks versions match', async () => {
10
+ rpc.getNodeInfo.mockResolvedValue({ client: 'rpc@0.1.0-alpha47' });
11
+ await checkServerVersion(rpc, '0.1.0-alpha47');
12
+ });
13
+ it('reports mismatch on older rpc version', async () => {
14
+ rpc.getNodeInfo.mockResolvedValue({ client: 'rpc@0.1.0-alpha47' });
15
+ await expect(checkServerVersion(rpc, '0.1.0-alpha48')).rejects.toThrowError(/is older than the expected by this CLI/);
16
+ });
17
+ it('reports mismatch on newer rpc version', async () => {
18
+ rpc.getNodeInfo.mockResolvedValue({ client: 'rpc@0.1.0-alpha48' });
19
+ await expect(checkServerVersion(rpc, '0.1.0-alpha47')).rejects.toThrowError(/is newer than the expected by this CLI/);
20
+ });
21
+ });
22
+ });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2xpZW50LnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFhLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXJELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVqRCxRQUFRLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtJQUN0QixRQUFRLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFO1FBQ2xDLElBQUksR0FBd0IsQ0FBQztRQUU3QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsR0FBRyxHQUFHLElBQUksRUFBWSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLHVCQUF1QixFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3JDLEdBQUcsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsRUFBRSxNQUFNLEVBQUUsbUJBQW1CLEVBQWMsQ0FBQyxDQUFDO1lBQy9FLE1BQU0sa0JBQWtCLENBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQ2pELENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLHVDQUF1QyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3JELEdBQUcsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsRUFBRSxNQUFNLEVBQUUsbUJBQW1CLEVBQWMsQ0FBQyxDQUFDO1lBQy9FLE1BQU0sTUFBTSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQ3pFLHdDQUF3QyxDQUN6QyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsdUNBQXVDLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDckQsR0FBRyxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLE1BQU0sRUFBRSxtQkFBbUIsRUFBYyxDQUFDLENBQUM7WUFDL0UsTUFBTSxNQUFNLENBQUMsa0JBQWtCLENBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FDekUsd0NBQXdDLENBQ3pDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../src/encoding.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAW,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAE1E;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,OAcjE;AA8CD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,SAO7D"}
1
+ {"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../src/encoding.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAW,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAE1E;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,OAcjE;AA8DD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,SAU7D"}
package/dest/encoding.js CHANGED
@@ -25,30 +25,43 @@ export function parseStructString(str, abiType) {
25
25
  * @param abiType - The type as described by the contract's ABI.
26
26
  * @returns The encoded argument.
27
27
  */
28
- function encodeArg(arg, abiType) {
28
+ function encodeArg(arg, abiType, name) {
29
29
  const { kind } = abiType;
30
30
  if (kind === 'field' || kind === 'integer') {
31
- return BigInt(arg);
31
+ let res;
32
+ try {
33
+ res = BigInt(arg);
34
+ }
35
+ catch (err) {
36
+ throw new Error(`Invalid value passed for ${name}. Could not parse ${arg} as a${kind === 'integer' ? 'n' : ''} ${kind}.`);
37
+ }
38
+ return res;
32
39
  }
33
40
  else if (kind === 'boolean') {
34
41
  if (arg === 'true')
35
42
  return true;
36
43
  if (arg === 'false')
37
44
  return false;
45
+ else
46
+ throw Error(`Invalid boolean value passed for ${name}: ${arg}.`);
38
47
  }
39
48
  else if (kind === 'array') {
40
49
  let arr;
50
+ const res = [];
41
51
  try {
42
52
  arr = JSON.parse(arg);
43
- if (!Array.isArray(arr))
44
- throw Error();
45
- for (let i = 0; i < abiType.length; i += 1) {
46
- return encodeArg(arg[i], abiType.type);
47
- }
48
53
  }
49
54
  catch {
50
- throw new Error(`Unable to parse arg ${arg} as array`);
55
+ throw new Error(`Unable to parse arg ${arg} as array for ${name} parameter`);
51
56
  }
57
+ if (!Array.isArray(arr))
58
+ throw Error(`Invalid argument ${arg} passed for array parameter ${name}.`);
59
+ if (arr.length !== abiType.length)
60
+ throw Error(`Invalid array length passed for ${name}. Expected ${abiType.length}, received ${arr.length}.`);
61
+ for (let i = 0; i < abiType.length; i += 1) {
62
+ res.push(encodeArg(arr[i], abiType.type, name));
63
+ }
64
+ return res;
52
65
  }
53
66
  else if (kind === 'struct') {
54
67
  // check if input is encoded long string
@@ -58,17 +71,21 @@ function encodeArg(arg, abiType) {
58
71
  let obj;
59
72
  try {
60
73
  obj = JSON.parse(arg);
61
- if (Array.isArray(obj))
62
- throw Error();
63
- const res = [];
64
- for (const field of abiType.fields) {
65
- res.push(encodeArg(obj[field.name], field.type));
66
- }
67
- return res;
68
74
  }
69
75
  catch {
70
76
  throw new Error(`Unable to parse arg ${arg} as struct`);
71
77
  }
78
+ if (Array.isArray(obj))
79
+ throw Error(`Array passed for arg ${name}. Expected a struct.`);
80
+ const res = [];
81
+ for (const field of abiType.fields) {
82
+ // Remove field name from list as it's present
83
+ const arg = obj[field.name];
84
+ if (!arg)
85
+ throw Error(`Expected field ${field.name} not found in struct ${name}.`);
86
+ res.push(encodeArg(obj[field.name], field.type, field.name));
87
+ }
88
+ return res;
72
89
  }
73
90
  }
74
91
  /**
@@ -77,11 +94,14 @@ function encodeArg(arg, abiType) {
77
94
  * @returns The encoded array.
78
95
  */
79
96
  export function encodeArgs(args, params) {
97
+ if (args.length !== params.length) {
98
+ throw new Error(`Invalid number of args provided. Expected: ${params.length}, received: ${args.length}`);
99
+ }
80
100
  return args
81
101
  .map((arg, index) => {
82
- const paramType = params[index].type;
83
- return encodeArg(arg, paramType);
102
+ const { type, name } = params[index];
103
+ return encodeArg(arg, type, name);
84
104
  })
85
105
  .flat();
86
106
  }
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2RpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZW5jb2RpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR3JDOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEdBQVcsRUFBRSxPQUFtQjtJQUNoRSx3Q0FBd0M7SUFDeEMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN4RCxNQUFNLE1BQU0sR0FBUSxFQUFFLENBQUM7SUFDdkIsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQ2xCLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztJQUNqQixPQUFPLFNBQVMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFO1FBQzdCLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLFNBQVMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLFNBQVMsSUFBSSxFQUFFLENBQUM7UUFDaEIsUUFBUSxJQUFJLENBQUMsQ0FBQztLQUNmO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBUyxTQUFTLENBQUMsR0FBVyxFQUFFLE9BQWdCO0lBQzlDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFDekIsSUFBSSxJQUFJLEtBQUssT0FBTyxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7UUFDMUMsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDcEI7U0FBTSxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7UUFDN0IsSUFBSSxHQUFHLEtBQUssTUFBTTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ2hDLElBQUksR0FBRyxLQUFLLE9BQU87WUFBRSxPQUFPLEtBQUssQ0FBQztLQUNuQztTQUFNLElBQUksSUFBSSxLQUFLLE9BQU8sRUFBRTtRQUMzQixJQUFJLEdBQUcsQ0FBQztRQUNSLElBQUk7WUFDRixHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7Z0JBQUUsTUFBTSxLQUFLLEVBQUUsQ0FBQztZQUN2QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUMxQyxPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3hDO1NBQ0Y7UUFBQyxNQUFNO1lBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsR0FBRyxXQUFXLENBQUMsQ0FBQztTQUN4RDtLQUNGO1NBQU0sSUFBSSxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzVCLHdDQUF3QztRQUN4QyxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDeEIsT0FBTyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDeEM7UUFDRCxJQUFJLEdBQUcsQ0FBQztRQUNSLElBQUk7WUFDRixHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO2dCQUFFLE1BQU0sS0FBSyxFQUFFLENBQUM7WUFDdEMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ2YsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO2dCQUNsQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ2xEO1lBQ0QsT0FBTyxHQUFHLENBQUM7U0FDWjtRQUFDLE1BQU07WUFDTixNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixHQUFHLFlBQVksQ0FBQyxDQUFDO1NBQ3pEO0tBQ0Y7QUFDSCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQUMsSUFBVyxFQUFFLE1BQXNCO0lBQzVELE9BQU8sSUFBSTtTQUNSLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUN2QixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3JDLE9BQU8sU0FBUyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNuQyxDQUFDLENBQUM7U0FDRCxJQUFJLEVBQUUsQ0FBQztBQUNaLENBQUMifQ==
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2RpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZW5jb2RpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR3JDOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEdBQVcsRUFBRSxPQUFtQjtJQUNoRSx3Q0FBd0M7SUFDeEMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN4RCxNQUFNLE1BQU0sR0FBUSxFQUFFLENBQUM7SUFDdkIsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQ2xCLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztJQUNqQixPQUFPLFNBQVMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFO1FBQzdCLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLFNBQVMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLFNBQVMsSUFBSSxFQUFFLENBQUM7UUFDaEIsUUFBUSxJQUFJLENBQUMsQ0FBQztLQUNmO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBUyxTQUFTLENBQUMsR0FBVyxFQUFFLE9BQWdCLEVBQUUsSUFBWTtJQUM1RCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQ3pCLElBQUksSUFBSSxLQUFLLE9BQU8sSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1FBQzFDLElBQUksR0FBVyxDQUFDO1FBQ2hCLElB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
package/dest/index.js CHANGED
@@ -8,7 +8,7 @@ import { readFileSync } from 'fs';
8
8
  import { dirname, resolve } from 'path';
9
9
  import { fileURLToPath } from 'url';
10
10
  import { mnemonicToAccount } from 'viem/accounts';
11
- import { createClient } from './client.js';
11
+ import { createCompatibleClient } from './client.js';
12
12
  import { encodeArgs, parseStructString } from './encoding.js';
13
13
  import { deployAztecContracts, getAbiFunction, getContractAbi, getExampleContractArtifacts, getTxSender, prepTx, } from './utils.js';
14
14
  const accountCreationSalt = Fr.ZERO;
@@ -74,9 +74,9 @@ export function getProgram(log, debugLogger) {
74
74
  .option('-k, --private-key <string>', 'Private key for note encryption and transaction signing. Uses random by default.', PRIVATE_KEY)
75
75
  .option('-u, --rpc-url <string>', 'URL of the Aztec RPC', AZTEC_RPC_HOST || 'http://localhost:8080')
76
76
  .action(async (options) => {
77
- const client = createClient(options.rpcUrl);
77
+ const client = await createCompatibleClient(options.rpcUrl, debugLogger);
78
78
  const privateKey = options.privateKey
79
- ? new PrivateKey(Buffer.from(stripLeadingHex(options.privateKey), 'hex'))
79
+ ? PrivateKey.fromString(stripLeadingHex(options.privateKey))
80
80
  : PrivateKey.random();
81
81
  const account = getSchnorrAccount(client, privateKey, privateKey, accountCreationSalt);
82
82
  const wallet = await account.waitDeploy();
@@ -99,7 +99,7 @@ export function getProgram(log, debugLogger) {
99
99
  .action(async (abiPath, options) => {
100
100
  const contractAbi = await getContractAbi(abiPath, log);
101
101
  const constructorAbi = contractAbi.functions.find(({ name }) => name === 'constructor');
102
- const client = createClient(options.rpcUrl);
102
+ const client = await createCompatibleClient(options.rpcUrl, debugLogger);
103
103
  const publicKey = options.publicKey ? Point.fromString(options.publicKey) : undefined;
104
104
  const salt = options.salt ? Fr.fromBuffer(Buffer.from(stripLeadingHex(options.salt), 'hex')) : undefined;
105
105
  const deployer = new ContractDeployer(contractAbi, client, publicKey);
@@ -123,7 +123,7 @@ export function getProgram(log, debugLogger) {
123
123
  .requiredOption('-ca, --contract-address <address>', 'An Aztec address to check if contract has been deployed to.')
124
124
  .option('-u, --rpc-url <url>', 'URL of the Aztec RPC', AZTEC_RPC_HOST || 'http://localhost:8080')
125
125
  .action(async (options) => {
126
- const client = createClient(options.rpcUrl);
126
+ const client = await createCompatibleClient(options.rpcUrl, debugLogger);
127
127
  const address = AztecAddress.fromString(options.contractAddress);
128
128
  const isDeployed = await isContractDeployed(client, address);
129
129
  if (isDeployed)
@@ -133,11 +133,11 @@ export function getProgram(log, debugLogger) {
133
133
  });
134
134
  program
135
135
  .command('get-tx-receipt')
136
- .argument('<txHash>', 'A transaction hash to get the receipt for.')
137
136
  .description('Gets the receipt for the specified transaction hash.')
137
+ .argument('<txHash>', 'A transaction hash to get the receipt for.')
138
138
  .option('-u, --rpc-url <string>', 'URL of the Aztec RPC', AZTEC_RPC_HOST || 'http://localhost:8080')
139
139
  .action(async (_txHash, options) => {
140
- const client = createClient(options.rpcUrl);
140
+ const client = await createCompatibleClient(options.rpcUrl, debugLogger);
141
141
  const txHash = TxHash.fromString(_txHash);
142
142
  const receipt = await client.getTxReceipt(txHash);
143
143
  if (!receipt) {
@@ -154,10 +154,10 @@ export function getProgram(log, debugLogger) {
154
154
  .option('-u, --rpc-url <string>', 'URL of the Aztec RPC', AZTEC_RPC_HOST || 'http://localhost:8080')
155
155
  .option('-b, --include-bytecode <boolean>', "Include the contract's public function bytecode, if any.", false)
156
156
  .action(async (contractAddress, options) => {
157
- const client = createClient(options.rpcUrl);
157
+ const client = await createCompatibleClient(options.rpcUrl, debugLogger);
158
158
  const address = AztecAddress.fromString(contractAddress);
159
159
  const contractDataWithOrWithoutBytecode = options.includeBytecode
160
- ? await client.getContractDataAndBytecode(address)
160
+ ? await client.getExtendedContractData(address)
161
161
  : await client.getContractData(address);
162
162
  if (!contractDataWithOrWithoutBytecode) {
163
163
  log(`No contract data found at ${contractAddress}`);
@@ -187,7 +187,7 @@ export function getProgram(log, debugLogger) {
187
187
  const { from, limit } = options;
188
188
  const fromBlock = from ? parseInt(from) : 1;
189
189
  const limitCount = limit ? parseInt(limit) : 100;
190
- const client = createClient(options.rpcUrl);
190
+ const client = await createCompatibleClient(options.rpcUrl, debugLogger);
191
191
  const logs = await client.getUnencryptedLogs(fromBlock, limitCount);
192
192
  if (!logs.length) {
193
193
  log(`No logs found in blocks ${fromBlock} to ${fromBlock + limitCount}`);
@@ -205,7 +205,7 @@ export function getProgram(log, debugLogger) {
205
205
  .requiredOption('-pa, --partial-address <partialAddress', 'The partially computed address of the account contract.')
206
206
  .option('-u, --rpc-url <string>', 'URL of the Aztec RPC', AZTEC_RPC_HOST || 'http://localhost:8080')
207
207
  .action(async (options) => {
208
- const client = createClient(options.rpcUrl);
208
+ const client = await createCompatibleClient(options.rpcUrl, debugLogger);
209
209
  const address = AztecAddress.fromString(options.address);
210
210
  const publicKey = Point.fromString(options.publicKey);
211
211
  const partialAddress = Fr.fromString(options.partialAddress);
@@ -217,7 +217,7 @@ export function getProgram(log, debugLogger) {
217
217
  .description('Gets all the Aztec accounts stored in the Aztec RPC.')
218
218
  .option('-u, --rpc-url <string>', 'URL of the Aztec RPC', AZTEC_RPC_HOST || 'http://localhost:8080')
219
219
  .action(async (options) => {
220
- const client = createClient(options.rpcUrl);
220
+ const client = await createCompatibleClient(options.rpcUrl, debugLogger);
221
221
  const accounts = await client.getAccounts();
222
222
  if (!accounts.length) {
223
223
  log('No accounts found.');
@@ -235,7 +235,7 @@ export function getProgram(log, debugLogger) {
235
235
  .argument('<address>', 'The Aztec address to get account for')
236
236
  .option('-u, --rpc-url <string>', 'URL of the Aztec RPC', AZTEC_RPC_HOST || 'http://localhost:8080')
237
237
  .action(async (_address, options) => {
238
- const client = createClient(options.rpcUrl);
238
+ const client = await createCompatibleClient(options.rpcUrl, debugLogger);
239
239
  const address = AztecAddress.fromString(_address);
240
240
  const account = await client.getAccount(address);
241
241
  if (!account) {
@@ -250,7 +250,7 @@ export function getProgram(log, debugLogger) {
250
250
  .description('Gets all the recipients stored in the Aztec RPC.')
251
251
  .option('-u, --rpc-url <string>', 'URL of the Aztec RPC', AZTEC_RPC_HOST || 'http://localhost:8080')
252
252
  .action(async (options) => {
253
- const client = createClient(options.rpcUrl);
253
+ const client = await createCompatibleClient(options.rpcUrl, debugLogger);
254
254
  const recipients = await client.getRecipients();
255
255
  if (!recipients.length) {
256
256
  log('No recipients found.');
@@ -268,7 +268,7 @@ export function getProgram(log, debugLogger) {
268
268
  .argument('<address>', 'The Aztec address to get recipient for')
269
269
  .option('-u, --rpc-url <string>', 'URL of the Aztec RPC', AZTEC_RPC_HOST || 'http://localhost:8080')
270
270
  .action(async (_address, options) => {
271
- const client = createClient(options.rpcUrl);
271
+ const client = await createCompatibleClient(options.rpcUrl, debugLogger);
272
272
  const address = AztecAddress.fromString(_address);
273
273
  const recipient = await client.getRecipient(address);
274
274
  if (!recipient) {
@@ -286,19 +286,19 @@ export function getProgram(log, debugLogger) {
286
286
  .requiredOption('-c, --contract-abi <fileLocation>', "A compiled Noir contract's ABI in JSON format or name of a contract ABI exported by @aztec/noir-contracts")
287
287
  .requiredOption('-ca, --contract-address <address>', 'Aztec address of the contract.')
288
288
  .option('-k, --private-key <string>', "The sender's private key.", PRIVATE_KEY)
289
- .option('-u, --rpcUrl <string>', 'URL of the Aztec RPC', AZTEC_RPC_HOST || 'http://localhost:8080')
289
+ .option('-u, --rpc-url <string>', 'URL of the Aztec RPC', AZTEC_RPC_HOST || 'http://localhost:8080')
290
290
  .action(async (functionName, options) => {
291
291
  const { contractAddress, functionArgs, contractAbi } = await prepTx(options.contractAbi, options.contractAddress, functionName, options.args, log);
292
292
  const fnAbi = getAbiFunction(contractAbi, functionName);
293
293
  if (fnAbi.parameters.length !== options.args.length) {
294
294
  throw Error(`Invalid number of args passed. Expected ${fnAbi.parameters.length}; Received: ${options.args.length}`);
295
295
  }
296
- const privateKey = new PrivateKey(Buffer.from(stripLeadingHex(options.privateKey), 'hex'));
297
- const client = createClient(options.rpcUrl);
296
+ const privateKey = PrivateKey.fromString(stripLeadingHex(options.privateKey));
297
+ const client = await createCompatibleClient(options.rpcUrl, debugLogger);
298
298
  const wallet = await getAccountWallets(client, SchnorrAccountContractAbi, [privateKey], [privateKey], [accountCreationSalt]);
299
299
  const contract = await Contract.at(contractAddress, contractAbi, wallet);
300
300
  const tx = contract.methods[functionName](...functionArgs).send();
301
- await tx.isMined();
301
+ await tx.wait();
302
302
  log('\nTransaction has been mined');
303
303
  const receipt = await tx.getReceipt();
304
304
  log(`Transaction hash: ${(await tx.getTxHash()).toString()}`);
@@ -314,17 +314,17 @@ export function getProgram(log, debugLogger) {
314
314
  .requiredOption('-c, --contract-abi <fileLocation>', "A compiled Noir contract's ABI in JSON format or name of a contract ABI exported by @aztec/noir-contracts")
315
315
  .requiredOption('-ca, --contract-address <address>', 'Aztec address of the contract.')
316
316
  .option('-f, --from <string>', 'Public key of the TX viewer. If empty, will try to find account in RPC.')
317
- .option('-u, --rpcUrl <string>', 'URL of the Aztec RPC', AZTEC_RPC_HOST || 'http://localhost:8080')
317
+ .option('-u, --rpc-url <string>', 'URL of the Aztec RPC', AZTEC_RPC_HOST || 'http://localhost:8080')
318
318
  .action(async (functionName, options) => {
319
319
  const { contractAddress, functionArgs, contractAbi } = await prepTx(options.contractAbi, options.contractAddress, functionName, options.args, log);
320
320
  const fnAbi = getAbiFunction(contractAbi, functionName);
321
321
  if (fnAbi.parameters.length !== options.args.length) {
322
322
  throw Error(`Invalid number of args passed. Expected ${fnAbi.parameters.length}; Received: ${options.args.length}`);
323
323
  }
324
- const client = createClient(options.rpcUrl);
324
+ const client = await createCompatibleClient(options.rpcUrl, debugLogger);
325
325
  const from = await getTxSender(client, options.from);
326
326
  const result = await client.viewTx(functionName, functionArgs, contractAddress, from);
327
- log('\nView result: ', JsonStringify(result, true), '\n');
327
+ log('\nView result: ', result, '\n');
328
328
  });
329
329
  // Helper for users to decode hex strings into structs if needed
330
330
  program
@@ -349,9 +349,9 @@ export function getProgram(log, debugLogger) {
349
349
  program
350
350
  .command('block-number')
351
351
  .description('Gets the current Aztec L2 block number.')
352
- .option('-u, --rpcUrl <string>', 'URL of the Aztec RPC', AZTEC_RPC_HOST || 'http://localhost:8080')
352
+ .option('-u, --rpc-url <string>', 'URL of the Aztec RPC', AZTEC_RPC_HOST || 'http://localhost:8080')
353
353
  .action(async (options) => {
354
- const client = createClient(options.rpcUrl);
354
+ const client = await createCompatibleClient(options.rpcUrl, debugLogger);
355
355
  const num = await client.getBlockNumber();
356
356
  log(`${num}\n`);
357
357
  });
@@ -366,4 +366,4 @@ export function getProgram(log, debugLogger) {
366
366
  compileContract(program, 'compile', log);
367
367
  return program;
368
368
  }
369
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFlBQVksRUFDWixRQUFRLEVBQ1IsZ0JBQWdCLEVBQ2hCLEVBQUUsRUFDRixLQUFLLEVBQ0wsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsa0JBQWtCLEdBQ25CLE1BQU0saUJBQWlCLENBQUM7QUFFekIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFnQixhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVoRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDbEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUNwQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsY0FBYyxFQUNkLGNBQWMsRUFDZCwyQkFBMkIsRUFDM0IsV0FBVyxFQUNYLE1BQU0sR0FDUCxNQUFNLFlBQVksQ0FBQztBQUVwQixNQUFNLG1CQUFtQixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7QUFFcEMsTUFB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
369
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFlBQVksRUFDWixRQUFRLEVBQ1IsZ0JBQWdCLEVBQ2hCLEVBQUUsRUFDRixLQUFLLEVBQ0wsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsa0JBQWtCLEdBQ25CLE1BQU0saUJBQWlCLENBQUM7QUFFekIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFnQixhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVoRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDbEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUNwQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixjQUFjLEVBQ2QsY0FBYyxFQUNkLDJCQUEyQixFQUMzQixXQUFXLEVBQ1gsTUFBTSxHQUNQLE1BQU0sWUFBWSxDQUFDO0FBRXBCLE1BQU0sbUJBQW1CLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztBQUVwQyxN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
@@ -0,0 +1,3 @@
1
+ import { ContractAbi } from '@aztec/foundation/abi';
2
+ export declare const mockContractAbi: ContractAbi;
3
+ //# sourceMappingURL=mocks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../src/test/mocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,WAAW,EAAgB,MAAM,uBAAuB,CAAC;AAE1F,eAAO,MAAM,eAAe,EAAE,WA4D7B,CAAC"}
@@ -0,0 +1,63 @@
1
+ import { ABIParameterVisibility, FunctionType } from '@aztec/foundation/abi';
2
+ export const mockContractAbi = {
3
+ name: 'MockContract',
4
+ functions: [
5
+ {
6
+ name: 'constructor',
7
+ functionType: FunctionType.SECRET,
8
+ isInternal: false,
9
+ parameters: [
10
+ {
11
+ name: 'constructorParam1',
12
+ type: {
13
+ kind: 'field',
14
+ },
15
+ visibility: ABIParameterVisibility.SECRET,
16
+ },
17
+ ],
18
+ returnTypes: [],
19
+ bytecode: 'constructorBytecode',
20
+ },
21
+ {
22
+ name: 'mockFunction',
23
+ functionType: FunctionType.SECRET,
24
+ isInternal: false,
25
+ parameters: [
26
+ {
27
+ name: 'fieldParam',
28
+ type: { kind: 'field' },
29
+ visibility: ABIParameterVisibility.SECRET,
30
+ },
31
+ {
32
+ name: 'boolParam',
33
+ type: { kind: 'boolean' },
34
+ visibility: ABIParameterVisibility.SECRET,
35
+ },
36
+ {
37
+ name: 'integerParam',
38
+ type: { kind: 'integer', sign: 'signed', width: 32 },
39
+ visibility: ABIParameterVisibility.SECRET,
40
+ },
41
+ {
42
+ name: 'arrayParam',
43
+ type: { kind: 'array', length: 3, type: { kind: 'field' } },
44
+ visibility: ABIParameterVisibility.SECRET,
45
+ },
46
+ {
47
+ name: 'structParam',
48
+ type: {
49
+ kind: 'struct',
50
+ fields: [
51
+ { name: 'subField1', type: { kind: 'field' } },
52
+ { name: 'subField2', type: { kind: 'boolean' } },
53
+ ],
54
+ },
55
+ visibility: ABIParameterVisibility.SECRET,
56
+ },
57
+ ],
58
+ returnTypes: [{ kind: 'boolean' }],
59
+ bytecode: 'mockBytecode',
60
+ },
61
+ ],
62
+ };
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC9tb2Nrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQWUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFnQjtJQUMxQyxJQUFJLEVBQUUsY0FBYztJQUNwQixTQUFTLEVBQUU7UUFDVDtZQUNFLElBQUksRUFBRSxhQUFhO1lBQ25CLFlBQVksRUFBRSxZQUFZLENBQUMsTUFBTTtZQUNqQyxVQUFVLEVBQUUsS0FBSztZQUNqQixVQUFVLEVBQUU7Z0JBQ1Y7b0JBQ0UsSUFBSSxFQUFFLG1CQUFtQjtvQkFDekIsSUFBSSxFQUFFO3dCQUNKLElBQUksRUFBRSxPQUFPO3FCQUNkO29CQUNELFVBQVUsRUFBRSxzQkFBc0IsQ0FBQyxNQUFNO2lCQUMxQzthQUNGO1lBQ0QsV0FBVyxFQUFFLEVBQUU7WUFDZixRQUFRLEVBQUUscUJBQXFCO1NBQ2hDO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsY0FBYztZQUNwQixZQUFZLEVBQUUsWUFBWSxDQUFDLE1BQU07WUFDakMsVUFBVSxFQUFFLEtBQUs7WUFDakIsVUFBVSxFQUFFO2dCQUNWO29CQUNFLElBQUksRUFBRSxZQUFZO29CQUNsQixJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFO29CQUN2QixVQUFVLEVBQUUsc0JBQXNCLENBQUMsTUFBTTtpQkFDMUM7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLFdBQVc7b0JBQ2pCLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7b0JBQ3pCLFVBQVUsRUFBRSxzQkFBc0IsQ0FBQyxNQUFNO2lCQUMxQztnQkFDRDtvQkFDRSxJQUFJLEVBQUUsY0FBYztvQkFDcEIsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7b0JBQ3BELFVBQVUsRUFBRSxzQkFBc0IsQ0FBQyxNQUFNO2lCQUMxQztnQkFDRDtvQkFDRSxJQUFJLEVBQUUsWUFBWTtvQkFDbEIsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRTtvQkFDM0QsVUFBVSxFQUFFLHNCQUFzQixDQUFDLE1BQU07aUJBQzFDO2dCQUNEO29CQUNFLElBQUksRUFBRSxhQUFhO29CQUNuQixJQUFJLEVBQUU7d0JBQ0osSUFBSSxFQUFFLFFBQVE7d0JBQ2QsTUFBTSxFQUFFOzRCQUNOLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUU7NEJBQzlDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUU7eUJBQ2pEO3FCQUNGO29CQUNELFVBQVUsRUFBRSxzQkFBc0IsQ0FBQyxNQUFNO2lCQUMxQzthQUNGO1lBQ0QsV0FBVyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7WUFDbEMsUUFBUSxFQUFFLGNBQWM7U0FDekI7S0FDRjtDQUNGLENBQUMifQ==