@aztec/cli 0.7.9 → 0.8.4
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 +19 -19
- package/dest/bin/index.js +0 -0
- package/dest/client.d.ts +9 -15
- package/dest/client.d.ts.map +1 -1
- package/dest/client.js +14 -22
- package/dest/encoding.js +8 -8
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +134 -106
- package/dest/unbox.d.ts.map +1 -1
- package/dest/unbox.js +47 -45
- package/dest/utils.d.ts +61 -8
- package/dest/utils.d.ts.map +1 -1
- package/dest/utils.js +169 -19
- package/package.json +61 -10
- package/src/client.ts +13 -22
- package/src/encoding.ts +9 -9
- package/src/index.ts +167 -136
- package/src/unbox.ts +52 -49
- package/src/utils.ts +192 -25
- package/.eslintrc.cjs +0 -1
- package/.tsbuildinfo +0 -1
- package/dest/client.test.d.ts +0 -2
- package/dest/client.test.d.ts.map +0 -1
- package/dest/client.test.js +0 -23
- package/dest/test/utils.test.d.ts +0 -2
- package/dest/test/utils.test.d.ts.map +0 -1
- package/dest/test/utils.test.js +0 -104
- package/src/client.test.ts +0 -34
- package/src/test/utils.test.ts +0 -133
- package/tsconfig.json +0 -30
package/package.json
CHANGED
|
@@ -1,15 +1,47 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/cli",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"main": "./dest/index.js",
|
|
3
|
+
"version": "0.8.4",
|
|
5
4
|
"type": "module",
|
|
5
|
+
"main": "./dest/index.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"aztec-cli": "./dest/bin/index.js"
|
|
8
|
+
},
|
|
9
|
+
"typedocOptions": {
|
|
10
|
+
"entryPoints": [
|
|
11
|
+
"./src/index.ts"
|
|
12
|
+
],
|
|
13
|
+
"name": "Aztec CLI",
|
|
14
|
+
"tsconfig": "./tsconfig.json"
|
|
15
|
+
},
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "yarn clean && tsc -b",
|
|
18
|
+
"build:dev": "tsc -b --watch",
|
|
19
|
+
"clean": "rm -rf ./dest .tsbuildinfo",
|
|
20
|
+
"formatting": "run -T prettier --check ./src && run -T eslint ./src",
|
|
21
|
+
"formatting:fix": "run -T prettier -w ./src",
|
|
22
|
+
"test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules $(yarn bin jest) --passWithNoTests",
|
|
23
|
+
"start": "node --no-warnings ./dest/bin/index.js"
|
|
24
|
+
},
|
|
25
|
+
"inherits": [
|
|
26
|
+
"../package.common.json"
|
|
27
|
+
],
|
|
28
|
+
"jest": {
|
|
29
|
+
"preset": "ts-jest/presets/default-esm",
|
|
30
|
+
"moduleNameMapper": {
|
|
31
|
+
"^(\\.{1,2}/.*)\\.m?js$": "$1"
|
|
32
|
+
},
|
|
33
|
+
"testRegex": "./src/.*\\.test\\.(js|mjs|ts)$",
|
|
34
|
+
"rootDir": "./src"
|
|
35
|
+
},
|
|
6
36
|
"dependencies": {
|
|
7
|
-
"@aztec/aztec.js": "0.
|
|
8
|
-
"@aztec/ethereum": "0.
|
|
9
|
-
"@aztec/foundation": "0.
|
|
10
|
-
"@aztec/
|
|
11
|
-
"@aztec/noir-
|
|
12
|
-
"@aztec/
|
|
37
|
+
"@aztec/aztec.js": "0.8.4",
|
|
38
|
+
"@aztec/ethereum": "0.8.4",
|
|
39
|
+
"@aztec/foundation": "0.8.4",
|
|
40
|
+
"@aztec/l1-artifacts": "0.8.4",
|
|
41
|
+
"@aztec/noir-compiler": "0.8.4",
|
|
42
|
+
"@aztec/noir-contracts": "0.8.4",
|
|
43
|
+
"@aztec/types": "0.8.4",
|
|
44
|
+
"@libp2p/peer-id-factory": "^3.0.4",
|
|
13
45
|
"commander": "^9.0.0",
|
|
14
46
|
"jszip": "^3.10.1",
|
|
15
47
|
"lodash.startcase": "^4.4.0",
|
|
@@ -18,7 +50,26 @@
|
|
|
18
50
|
"tslib": "^2.4.0",
|
|
19
51
|
"viem": "^1.2.5"
|
|
20
52
|
},
|
|
21
|
-
"
|
|
22
|
-
"
|
|
53
|
+
"devDependencies": {
|
|
54
|
+
"@jest/globals": "^29.5.0",
|
|
55
|
+
"@rushstack/eslint-patch": "^1.1.4",
|
|
56
|
+
"@types/jest": "^29.5.0",
|
|
57
|
+
"@types/lodash.startcase": "^4.4.7",
|
|
58
|
+
"@types/node": "^18.7.23",
|
|
59
|
+
"@types/semver": "^7.5.2",
|
|
60
|
+
"jest": "^29.5.0",
|
|
61
|
+
"jest-mock-extended": "^3.0.5",
|
|
62
|
+
"ts-jest": "^29.1.0",
|
|
63
|
+
"ts-node": "^10.9.1",
|
|
64
|
+
"typescript": "^5.0.4"
|
|
65
|
+
},
|
|
66
|
+
"files": [
|
|
67
|
+
"dest",
|
|
68
|
+
"src",
|
|
69
|
+
"!*.test.*"
|
|
70
|
+
],
|
|
71
|
+
"types": "./dest/index.d.ts",
|
|
72
|
+
"engines": {
|
|
73
|
+
"node": ">=18"
|
|
23
74
|
}
|
|
24
75
|
}
|
package/src/client.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PXE, createPXEClient } from '@aztec/aztec.js';
|
|
2
2
|
import { DebugLogger } from '@aztec/foundation/log';
|
|
3
3
|
import { fileURLToPath } from '@aztec/foundation/url';
|
|
4
4
|
|
|
@@ -7,51 +7,42 @@ import { dirname, resolve } from 'path';
|
|
|
7
7
|
import { gtr, ltr, satisfies, valid } from 'semver';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
|
-
* Creates
|
|
11
|
-
*
|
|
12
|
-
* @
|
|
13
|
-
*/
|
|
14
|
-
export function createClient(rpcUrl: string) {
|
|
15
|
-
return createAztecRpcClient(rpcUrl);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Creates an Aztec RPC client with a given set of retries on non-server errors.
|
|
20
|
-
* Checks that the RPC server matches the expected version, and warns if not.
|
|
21
|
-
* @param rpcUrl - URL of the RPC server.
|
|
10
|
+
* Creates a PXE client with a given set of retries on non-server errors.
|
|
11
|
+
* Checks that PXE matches the expected version, and warns if not.
|
|
12
|
+
* @param rpcUrl - URL of the RPC server wrapping the PXE.
|
|
22
13
|
* @param logger - Debug logger to warn version incompatibilities.
|
|
23
|
-
* @returns
|
|
14
|
+
* @returns A PXE client.
|
|
24
15
|
*/
|
|
25
16
|
export async function createCompatibleClient(rpcUrl: string, logger: DebugLogger) {
|
|
26
|
-
const
|
|
17
|
+
const pxe = createPXEClient(rpcUrl);
|
|
27
18
|
const packageJsonPath = resolve(dirname(fileURLToPath(import.meta.url)), '../package.json');
|
|
28
19
|
const packageJsonContents = JSON.parse(readFileSync(packageJsonPath).toString());
|
|
29
20
|
const expectedVersionRange = packageJsonContents.version; // During sandbox, we'll expect exact matches
|
|
30
21
|
|
|
31
22
|
try {
|
|
32
|
-
await checkServerVersion(
|
|
23
|
+
await checkServerVersion(pxe, expectedVersionRange);
|
|
33
24
|
} catch (err) {
|
|
34
25
|
if (err instanceof VersionMismatchError) {
|
|
35
|
-
logger.
|
|
26
|
+
logger.warn(err.message);
|
|
36
27
|
} else {
|
|
37
28
|
throw err;
|
|
38
29
|
}
|
|
39
30
|
}
|
|
40
31
|
|
|
41
|
-
return
|
|
32
|
+
return pxe;
|
|
42
33
|
}
|
|
43
34
|
|
|
44
35
|
/** Mismatch between server and client versions. */
|
|
45
36
|
class VersionMismatchError extends Error {}
|
|
46
37
|
|
|
47
38
|
/**
|
|
48
|
-
* Checks that
|
|
49
|
-
* @param
|
|
39
|
+
* Checks that Private eXecution Environment (PXE) version matches the expected one by this CLI. Throws if not.
|
|
40
|
+
* @param pxe - PXE client.
|
|
50
41
|
* @param expectedVersionRange - Expected version by CLI.
|
|
51
42
|
*/
|
|
52
|
-
export async function checkServerVersion(
|
|
43
|
+
export async function checkServerVersion(pxe: PXE, expectedVersionRange: string) {
|
|
53
44
|
const serverName = 'Aztec Sandbox';
|
|
54
|
-
const { sandboxVersion } = await
|
|
45
|
+
const { sandboxVersion } = await pxe.getNodeInfo();
|
|
55
46
|
if (!sandboxVersion) {
|
|
56
47
|
throw new VersionMismatchError(`Couldn't determine ${serverName} version. You may run into issues.`);
|
|
57
48
|
}
|
package/src/encoding.ts
CHANGED
|
@@ -72,12 +72,12 @@ function encodeArg(arg: string, abiType: ABIType, name: string): any {
|
|
|
72
72
|
throw new Error(`Unable to parse arg ${arg} as struct`);
|
|
73
73
|
}
|
|
74
74
|
if (Array.isArray(obj)) throw Error(`Array passed for arg ${name}. Expected a struct.`);
|
|
75
|
-
const res =
|
|
75
|
+
const res: any = {};
|
|
76
76
|
for (const field of abiType.fields) {
|
|
77
77
|
// Remove field name from list as it's present
|
|
78
78
|
const arg = obj[field.name];
|
|
79
79
|
if (!arg) throw Error(`Expected field ${field.name} not found in struct ${name}.`);
|
|
80
|
-
res.
|
|
80
|
+
res[field.name] = encodeArg(obj[field.name], field.type, field.name);
|
|
81
81
|
}
|
|
82
82
|
return res;
|
|
83
83
|
}
|
|
@@ -91,13 +91,13 @@ function encodeArg(arg: string, abiType: ABIType, name: string): any {
|
|
|
91
91
|
export function encodeArgs(args: any[], params: ABIParameter[]) {
|
|
92
92
|
if (args.length !== params.length) {
|
|
93
93
|
throw new Error(
|
|
94
|
-
`Invalid
|
|
94
|
+
`Invalid args provided.\nExpected args: [${params
|
|
95
|
+
.map(param => param.name + ': ' + param.type.kind)
|
|
96
|
+
.join(', ')}]\nReceived args: ${args.join(', ')}`,
|
|
95
97
|
);
|
|
96
98
|
}
|
|
97
|
-
return args
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
})
|
|
102
|
-
.flat();
|
|
99
|
+
return args.map((arg: any, index) => {
|
|
100
|
+
const { type, name } = params[index];
|
|
101
|
+
return encodeArg(arg, type, name);
|
|
102
|
+
});
|
|
103
103
|
}
|