@aztec/cli 0.7.10 → 0.8.5
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.d.ts.map +1 -1
- package/dest/encoding.js +4 -2
- 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 +40 -11
- 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 +3 -1
- package/src/index.ts +167 -136
- package/src/unbox.ts +45 -10
- 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/dest/test/utils.test.js
DELETED
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { AztecAddress, Fr } from '@aztec/aztec.js';
|
|
2
|
-
import { CompleteAddress } from '@aztec/types';
|
|
3
|
-
import { mock } from 'jest-mock-extended';
|
|
4
|
-
import { encodeArgs } from '../encoding.js';
|
|
5
|
-
import { getTxSender } from '../utils.js';
|
|
6
|
-
import { mockContractAbi } from './mocks.js';
|
|
7
|
-
describe('CLI Utils', () => {
|
|
8
|
-
let client;
|
|
9
|
-
// test values
|
|
10
|
-
const addr1 = AztecAddress.random();
|
|
11
|
-
const addr2 = AztecAddress.random();
|
|
12
|
-
const addr3 = AztecAddress.random();
|
|
13
|
-
const fieldArray = [addr1.toString(), addr2.toString(), addr3.toString()];
|
|
14
|
-
const num = 33;
|
|
15
|
-
const field = Fr.random();
|
|
16
|
-
const struct = {
|
|
17
|
-
subField1: field.toString(),
|
|
18
|
-
subField2: 'true',
|
|
19
|
-
};
|
|
20
|
-
beforeEach(() => {
|
|
21
|
-
client = mock();
|
|
22
|
-
});
|
|
23
|
-
it('Gets a txSender correctly or throw error', async () => {
|
|
24
|
-
// returns a parsed Aztec Address
|
|
25
|
-
const aztecAddress = AztecAddress.random();
|
|
26
|
-
const result = await getTxSender(client, aztecAddress.toString());
|
|
27
|
-
expect(client.getRegisteredAccounts).toHaveBeenCalledTimes(0);
|
|
28
|
-
expect(result).toEqual(aztecAddress);
|
|
29
|
-
// returns an address found in the aztec client
|
|
30
|
-
const completeAddress = await CompleteAddress.random();
|
|
31
|
-
client.getRegisteredAccounts.mockResolvedValueOnce([completeAddress]);
|
|
32
|
-
const resultWithoutString = await getTxSender(client);
|
|
33
|
-
expect(client.getRegisteredAccounts).toHaveBeenCalled();
|
|
34
|
-
expect(resultWithoutString).toEqual(completeAddress.address);
|
|
35
|
-
// throws when invalid parameter passed
|
|
36
|
-
const errorAddr = 'foo';
|
|
37
|
-
await expect((async () => {
|
|
38
|
-
await getTxSender(client, errorAddr);
|
|
39
|
-
})()).rejects.toThrow(`Invalid option 'from' passed: ${errorAddr}`);
|
|
40
|
-
// Throws error when no string is passed & no accounts found in RPC
|
|
41
|
-
client.getRegisteredAccounts.mockResolvedValueOnce([]);
|
|
42
|
-
await expect((async () => {
|
|
43
|
-
await getTxSender(client);
|
|
44
|
-
})()).rejects.toThrow('No accounts found in Aztec RPC instance.');
|
|
45
|
-
});
|
|
46
|
-
it('Encodes args correctly', () => {
|
|
47
|
-
const args = [addr1.toString(), 'false', num.toString(), `${JSON.stringify(fieldArray)}`, JSON.stringify(struct)];
|
|
48
|
-
const result = encodeArgs(args, mockContractAbi.functions[1].parameters);
|
|
49
|
-
const exp = [
|
|
50
|
-
addr1.toBigInt(),
|
|
51
|
-
false,
|
|
52
|
-
33n,
|
|
53
|
-
[addr1.toBigInt(), addr2.toBigInt(), addr3.toBigInt()],
|
|
54
|
-
{
|
|
55
|
-
subField1: field.toBigInt(),
|
|
56
|
-
subField2: true,
|
|
57
|
-
},
|
|
58
|
-
];
|
|
59
|
-
expect(result).toEqual(exp);
|
|
60
|
-
});
|
|
61
|
-
it('Errors on invalid inputs', () => {
|
|
62
|
-
// invalid number of args
|
|
63
|
-
const args1 = [field.toString(), 'false'];
|
|
64
|
-
expect(() => encodeArgs(args1, mockContractAbi.functions[1].parameters)).toThrow('Invalid number of args provided. Expected: 5, received: 2');
|
|
65
|
-
// invalid array length
|
|
66
|
-
const invalidArray = fieldArray.concat([Fr.random().toString()]);
|
|
67
|
-
const args2 = [
|
|
68
|
-
addr1.toString(),
|
|
69
|
-
'false',
|
|
70
|
-
num.toString(),
|
|
71
|
-
`${JSON.stringify(invalidArray)}`,
|
|
72
|
-
JSON.stringify(struct),
|
|
73
|
-
];
|
|
74
|
-
expect(() => encodeArgs(args2, mockContractAbi.functions[1].parameters)).toThrow('Invalid array length passed for arrayParam. Expected 3, received 4.');
|
|
75
|
-
// invalid struct
|
|
76
|
-
const invalidStruct = {
|
|
77
|
-
subField1: Fr.random().toString(),
|
|
78
|
-
};
|
|
79
|
-
const args3 = [
|
|
80
|
-
addr1.toString(),
|
|
81
|
-
'false',
|
|
82
|
-
num.toString(),
|
|
83
|
-
`${JSON.stringify(fieldArray)}`,
|
|
84
|
-
JSON.stringify(invalidStruct),
|
|
85
|
-
];
|
|
86
|
-
expect(() => encodeArgs(args3, mockContractAbi.functions[1].parameters)).toThrow('Expected field subField2 not found in struct structParam.');
|
|
87
|
-
// invalid bool
|
|
88
|
-
const args4 = [
|
|
89
|
-
addr1.toString(),
|
|
90
|
-
'foo',
|
|
91
|
-
num.toString(),
|
|
92
|
-
`${JSON.stringify(fieldArray)}`,
|
|
93
|
-
JSON.stringify(invalidStruct),
|
|
94
|
-
];
|
|
95
|
-
expect(() => encodeArgs(args4, mockContractAbi.functions[1].parameters)).toThrow('Invalid boolean value passed for boolParam: foo.');
|
|
96
|
-
// invalid field
|
|
97
|
-
const args5 = ['foo', 'false', num.toString(), `${JSON.stringify(fieldArray)}`, JSON.stringify(invalidStruct)];
|
|
98
|
-
expect(() => encodeArgs(args5, mockContractAbi.functions[1].parameters)).toThrow('Invalid value passed for fieldParam. Could not parse foo as a field.');
|
|
99
|
-
// invalid int
|
|
100
|
-
const args6 = [addr1.toString(), 'false', 'foo', `${JSON.stringify(fieldArray)}`, JSON.stringify(invalidStruct)];
|
|
101
|
-
expect(() => encodeArgs(args6, mockContractAbi.functions[1].parameters)).toThrow('Invalid value passed for integerParam. Could not parse foo as an integer.');
|
|
102
|
-
});
|
|
103
|
-
});
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0L3V0aWxzLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQVksZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpELE9BQU8sRUFBYSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTdDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFO0lBQ3pCLElBQUksTUFBMkIsQ0FBQztJQUVoQyxjQUFjO0lBQ2QsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3BDLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNwQyxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDcEMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQztJQUNmLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUMxQixNQUFNLE1BQU0sR0FBRztRQUNiLFNBQVMsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFO1FBQzNCLFNBQVMsRUFBRSxNQUFNO0tBQ2xCLENBQUM7SUFDRixVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsTUFBTSxHQUFHLElBQUks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
|
package/src/client.test.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { AztecRPC, NodeInfo } from '@aztec/types';
|
|
2
|
-
|
|
3
|
-
import { MockProxy, mock } from 'jest-mock-extended';
|
|
4
|
-
|
|
5
|
-
import { checkServerVersion } from './client.js';
|
|
6
|
-
|
|
7
|
-
describe('client', () => {
|
|
8
|
-
describe('checkServerVersion', () => {
|
|
9
|
-
let rpc: MockProxy<AztecRPC>;
|
|
10
|
-
|
|
11
|
-
beforeEach(() => {
|
|
12
|
-
rpc = mock<AztecRPC>();
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
it('checks versions match', async () => {
|
|
16
|
-
rpc.getNodeInfo.mockResolvedValue({ sandboxVersion: '0.1.0-alpha47' } as NodeInfo);
|
|
17
|
-
await checkServerVersion(rpc, '0.1.0-alpha47');
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
it('reports mismatch on older rpc version', async () => {
|
|
21
|
-
rpc.getNodeInfo.mockResolvedValue({ sandboxVersion: '0.1.0-alpha47' } as NodeInfo);
|
|
22
|
-
await expect(checkServerVersion(rpc, '0.1.0-alpha48')).rejects.toThrowError(
|
|
23
|
-
/is older than the expected by this CLI/,
|
|
24
|
-
);
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
it('reports mismatch on newer rpc version', async () => {
|
|
28
|
-
rpc.getNodeInfo.mockResolvedValue({ sandboxVersion: '0.1.0-alpha48' } as NodeInfo);
|
|
29
|
-
await expect(checkServerVersion(rpc, '0.1.0-alpha47')).rejects.toThrowError(
|
|
30
|
-
/is newer than the expected by this CLI/,
|
|
31
|
-
);
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
});
|
package/src/test/utils.test.ts
DELETED
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import { AztecAddress, Fr } from '@aztec/aztec.js';
|
|
2
|
-
import { AztecRPC, CompleteAddress } from '@aztec/types';
|
|
3
|
-
|
|
4
|
-
import { MockProxy, mock } from 'jest-mock-extended';
|
|
5
|
-
|
|
6
|
-
import { encodeArgs } from '../encoding.js';
|
|
7
|
-
import { getTxSender } from '../utils.js';
|
|
8
|
-
import { mockContractAbi } from './mocks.js';
|
|
9
|
-
|
|
10
|
-
describe('CLI Utils', () => {
|
|
11
|
-
let client: MockProxy<AztecRPC>;
|
|
12
|
-
|
|
13
|
-
// test values
|
|
14
|
-
const addr1 = AztecAddress.random();
|
|
15
|
-
const addr2 = AztecAddress.random();
|
|
16
|
-
const addr3 = AztecAddress.random();
|
|
17
|
-
const fieldArray = [addr1.toString(), addr2.toString(), addr3.toString()];
|
|
18
|
-
const num = 33;
|
|
19
|
-
const field = Fr.random();
|
|
20
|
-
const struct = {
|
|
21
|
-
subField1: field.toString(),
|
|
22
|
-
subField2: 'true',
|
|
23
|
-
};
|
|
24
|
-
beforeEach(() => {
|
|
25
|
-
client = mock<AztecRPC>();
|
|
26
|
-
});
|
|
27
|
-
it('Gets a txSender correctly or throw error', async () => {
|
|
28
|
-
// returns a parsed Aztec Address
|
|
29
|
-
const aztecAddress = AztecAddress.random();
|
|
30
|
-
const result = await getTxSender(client, aztecAddress.toString());
|
|
31
|
-
expect(client.getRegisteredAccounts).toHaveBeenCalledTimes(0);
|
|
32
|
-
expect(result).toEqual(aztecAddress);
|
|
33
|
-
|
|
34
|
-
// returns an address found in the aztec client
|
|
35
|
-
const completeAddress = await CompleteAddress.random();
|
|
36
|
-
client.getRegisteredAccounts.mockResolvedValueOnce([completeAddress]);
|
|
37
|
-
const resultWithoutString = await getTxSender(client);
|
|
38
|
-
expect(client.getRegisteredAccounts).toHaveBeenCalled();
|
|
39
|
-
expect(resultWithoutString).toEqual(completeAddress.address);
|
|
40
|
-
|
|
41
|
-
// throws when invalid parameter passed
|
|
42
|
-
const errorAddr = 'foo';
|
|
43
|
-
await expect(
|
|
44
|
-
(async () => {
|
|
45
|
-
await getTxSender(client, errorAddr);
|
|
46
|
-
})(),
|
|
47
|
-
).rejects.toThrow(`Invalid option 'from' passed: ${errorAddr}`);
|
|
48
|
-
|
|
49
|
-
// Throws error when no string is passed & no accounts found in RPC
|
|
50
|
-
client.getRegisteredAccounts.mockResolvedValueOnce([]);
|
|
51
|
-
await expect(
|
|
52
|
-
(async () => {
|
|
53
|
-
await getTxSender(client);
|
|
54
|
-
})(),
|
|
55
|
-
).rejects.toThrow('No accounts found in Aztec RPC instance.');
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
it('Encodes args correctly', () => {
|
|
59
|
-
const args = [addr1.toString(), 'false', num.toString(), `${JSON.stringify(fieldArray)}`, JSON.stringify(struct)];
|
|
60
|
-
const result = encodeArgs(args, mockContractAbi.functions[1].parameters);
|
|
61
|
-
const exp = [
|
|
62
|
-
addr1.toBigInt(),
|
|
63
|
-
false,
|
|
64
|
-
33n,
|
|
65
|
-
[addr1.toBigInt(), addr2.toBigInt(), addr3.toBigInt()],
|
|
66
|
-
{
|
|
67
|
-
subField1: field.toBigInt(),
|
|
68
|
-
subField2: true,
|
|
69
|
-
},
|
|
70
|
-
];
|
|
71
|
-
expect(result).toEqual(exp);
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
it('Errors on invalid inputs', () => {
|
|
75
|
-
// invalid number of args
|
|
76
|
-
const args1 = [field.toString(), 'false'];
|
|
77
|
-
expect(() => encodeArgs(args1, mockContractAbi.functions[1].parameters)).toThrow(
|
|
78
|
-
'Invalid number of args provided. Expected: 5, received: 2',
|
|
79
|
-
);
|
|
80
|
-
|
|
81
|
-
// invalid array length
|
|
82
|
-
const invalidArray = fieldArray.concat([Fr.random().toString()]);
|
|
83
|
-
const args2 = [
|
|
84
|
-
addr1.toString(),
|
|
85
|
-
'false',
|
|
86
|
-
num.toString(),
|
|
87
|
-
`${JSON.stringify(invalidArray)}`,
|
|
88
|
-
JSON.stringify(struct),
|
|
89
|
-
];
|
|
90
|
-
expect(() => encodeArgs(args2, mockContractAbi.functions[1].parameters)).toThrow(
|
|
91
|
-
'Invalid array length passed for arrayParam. Expected 3, received 4.',
|
|
92
|
-
);
|
|
93
|
-
|
|
94
|
-
// invalid struct
|
|
95
|
-
const invalidStruct = {
|
|
96
|
-
subField1: Fr.random().toString(),
|
|
97
|
-
};
|
|
98
|
-
const args3 = [
|
|
99
|
-
addr1.toString(),
|
|
100
|
-
'false',
|
|
101
|
-
num.toString(),
|
|
102
|
-
`${JSON.stringify(fieldArray)}`,
|
|
103
|
-
JSON.stringify(invalidStruct),
|
|
104
|
-
];
|
|
105
|
-
expect(() => encodeArgs(args3, mockContractAbi.functions[1].parameters)).toThrow(
|
|
106
|
-
'Expected field subField2 not found in struct structParam.',
|
|
107
|
-
);
|
|
108
|
-
|
|
109
|
-
// invalid bool
|
|
110
|
-
const args4 = [
|
|
111
|
-
addr1.toString(),
|
|
112
|
-
'foo',
|
|
113
|
-
num.toString(),
|
|
114
|
-
`${JSON.stringify(fieldArray)}`,
|
|
115
|
-
JSON.stringify(invalidStruct),
|
|
116
|
-
];
|
|
117
|
-
expect(() => encodeArgs(args4, mockContractAbi.functions[1].parameters)).toThrow(
|
|
118
|
-
'Invalid boolean value passed for boolParam: foo.',
|
|
119
|
-
);
|
|
120
|
-
|
|
121
|
-
// invalid field
|
|
122
|
-
const args5 = ['foo', 'false', num.toString(), `${JSON.stringify(fieldArray)}`, JSON.stringify(invalidStruct)];
|
|
123
|
-
expect(() => encodeArgs(args5, mockContractAbi.functions[1].parameters)).toThrow(
|
|
124
|
-
'Invalid value passed for fieldParam. Could not parse foo as a field.',
|
|
125
|
-
);
|
|
126
|
-
|
|
127
|
-
// invalid int
|
|
128
|
-
const args6 = [addr1.toString(), 'false', 'foo', `${JSON.stringify(fieldArray)}`, JSON.stringify(invalidStruct)];
|
|
129
|
-
expect(() => encodeArgs(args6, mockContractAbi.functions[1].parameters)).toThrow(
|
|
130
|
-
'Invalid value passed for integerParam. Could not parse foo as an integer.',
|
|
131
|
-
);
|
|
132
|
-
});
|
|
133
|
-
});
|
package/tsconfig.json
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "..",
|
|
3
|
-
"compilerOptions": {
|
|
4
|
-
"outDir": "dest",
|
|
5
|
-
"rootDir": "src",
|
|
6
|
-
"tsBuildInfoFile": ".tsbuildinfo"
|
|
7
|
-
},
|
|
8
|
-
"references": [
|
|
9
|
-
{
|
|
10
|
-
"path": "../aztec.js"
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
"path": "../ethereum"
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
"path": "../foundation"
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
"path": "../noir-compiler"
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
"path": "../noir-contracts"
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
"path": "../types"
|
|
26
|
-
}
|
|
27
|
-
],
|
|
28
|
-
"include": ["src"],
|
|
29
|
-
"exclude": ["contracts"]
|
|
30
|
-
}
|