@aztec/cli 0.7.2 → 0.7.3
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/.tsbuildinfo +1 -0
- package/dest/bin/index.d.ts +3 -0
- package/dest/bin/index.d.ts.map +1 -0
- package/dest/bin/index.js +17 -0
- package/dest/client.d.ts +23 -0
- package/dest/client.d.ts.map +1 -0
- package/dest/client.js +72 -0
- package/dest/client.test.d.ts +2 -0
- package/dest/client.test.d.ts.map +1 -0
- package/dest/client.test.js +23 -0
- package/dest/encoding.d.ts +15 -0
- package/dest/encoding.d.ts.map +1 -0
- package/dest/encoding.js +107 -0
- package/dest/index.d.ts +10 -0
- package/dest/index.d.ts.map +1 -0
- package/dest/index.js +408 -0
- package/dest/test/mocks.d.ts +3 -0
- package/dest/test/mocks.d.ts.map +1 -0
- package/dest/test/mocks.js +63 -0
- package/dest/test/utils.test.d.ts +2 -0
- package/dest/test/utils.test.d.ts.map +1 -0
- package/dest/test/utils.test.js +104 -0
- package/dest/unbox.d.ts +14 -0
- package/dest/unbox.d.ts.map +1 -0
- package/dest/unbox.js +247 -0
- package/dest/utils.d.ts +59 -0
- package/dest/utils.d.ts.map +1 -0
- package/dest/utils.js +117 -0
- package/package.json +7 -7
- package/Dockerfile +0 -15
package/dest/utils.js
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { AztecAddress } from '@aztec/aztec.js';
|
|
2
|
+
import { createEthereumChain, deployL1Contracts } from '@aztec/ethereum';
|
|
3
|
+
import fs from 'fs';
|
|
4
|
+
import { mnemonicToAccount, privateKeyToAccount } from 'viem/accounts';
|
|
5
|
+
import { encodeArgs } from './encoding.js';
|
|
6
|
+
export { createClient } from './client.js';
|
|
7
|
+
/**
|
|
8
|
+
* Helper to get an ABI function or throw error if it doesn't exist.
|
|
9
|
+
* @param abi - Contract's ABI in JSON format.
|
|
10
|
+
* @param fnName - Function name to be found.
|
|
11
|
+
* @returns The function's ABI.
|
|
12
|
+
*/
|
|
13
|
+
export function getAbiFunction(abi, fnName) {
|
|
14
|
+
const fn = abi.functions.find(({ name }) => name === fnName);
|
|
15
|
+
if (!fn) {
|
|
16
|
+
throw Error(`Function ${fnName} not found in contract ABI.`);
|
|
17
|
+
}
|
|
18
|
+
return fn;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Function to execute the 'deployRollupContracts' command.
|
|
22
|
+
* @param rpcUrl - The RPC URL of the ethereum node.
|
|
23
|
+
* @param apiKey - The api key of the ethereum node endpoint.
|
|
24
|
+
* @param privateKey - The private key to be used in contract deployment.
|
|
25
|
+
* @param mnemonic - The mnemonic to be used in contract deployment.
|
|
26
|
+
*/
|
|
27
|
+
export async function deployAztecContracts(rpcUrl, apiKey, privateKey, mnemonic, debugLogger) {
|
|
28
|
+
const account = !privateKey ? mnemonicToAccount(mnemonic) : privateKeyToAccount(`0x${privateKey}`);
|
|
29
|
+
const chain = createEthereumChain(rpcUrl, apiKey);
|
|
30
|
+
return await deployL1Contracts(chain.rpcUrl, account, chain.chainInfo, debugLogger);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Gets all contracts available in \@aztec/noir-contracts.
|
|
34
|
+
* @returns The contract ABIs.
|
|
35
|
+
*/
|
|
36
|
+
export async function getExampleContractArtifacts() {
|
|
37
|
+
const artifacts = await import('@aztec/noir-contracts/artifacts');
|
|
38
|
+
return artifacts;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Reads a file and converts it to an Aztec Contract ABI.
|
|
42
|
+
* @param fileDir - The directory of the compiled contract ABI.
|
|
43
|
+
* @returns The parsed ContractABI.
|
|
44
|
+
*/
|
|
45
|
+
export async function getContractAbi(fileDir, log) {
|
|
46
|
+
// first check if it's a noir-contracts example
|
|
47
|
+
let contents;
|
|
48
|
+
const artifacts = await getExampleContractArtifacts();
|
|
49
|
+
if (artifacts[fileDir]) {
|
|
50
|
+
return artifacts[fileDir];
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
contents = fs.readFileSync(fileDir, 'utf8');
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
throw Error(`Contract ${fileDir} not found`);
|
|
57
|
+
}
|
|
58
|
+
// if not found, try reading as path directly
|
|
59
|
+
let contractAbi;
|
|
60
|
+
try {
|
|
61
|
+
contractAbi = JSON.parse(contents);
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
log('Invalid file used. Please try again.');
|
|
65
|
+
throw err;
|
|
66
|
+
}
|
|
67
|
+
return contractAbi;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Utility to select a TX sender either from user input
|
|
71
|
+
* or from the first account that is found in an Aztec RPC instance.
|
|
72
|
+
* @param client - The Aztec RPC instance that will be checked for an account.
|
|
73
|
+
* @param _from - The user input.
|
|
74
|
+
* @returns An Aztec address. Will throw if one can't be found in either options.
|
|
75
|
+
*/
|
|
76
|
+
export async function getTxSender(client, _from) {
|
|
77
|
+
let from;
|
|
78
|
+
if (_from) {
|
|
79
|
+
try {
|
|
80
|
+
from = AztecAddress.fromString(_from);
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
throw new Error(`Invalid option 'from' passed: ${_from}`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
const accounts = await client.getAccounts();
|
|
88
|
+
if (!accounts.length) {
|
|
89
|
+
throw new Error('No accounts found in Aztec RPC instance.');
|
|
90
|
+
}
|
|
91
|
+
from = accounts[0].address;
|
|
92
|
+
}
|
|
93
|
+
return from;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Performs necessary checks, conversions & operations to call a contract fn from the CLI.
|
|
97
|
+
* @param contractFile - Directory of the compiled contract ABI.
|
|
98
|
+
* @param _contractAddress - Aztec Address of the contract.
|
|
99
|
+
* @param functionName - Name of the function to be called.
|
|
100
|
+
* @param _functionArgs - Arguments to call the function with.
|
|
101
|
+
* @param log - Logger instance that will output to the CLI
|
|
102
|
+
* @returns Formatted contract address, function arguments and caller's aztec address.
|
|
103
|
+
*/
|
|
104
|
+
export async function prepTx(contractFile, _contractAddress, functionName, _functionArgs, log) {
|
|
105
|
+
let contractAddress;
|
|
106
|
+
try {
|
|
107
|
+
contractAddress = AztecAddress.fromString(_contractAddress);
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
throw new Error(`Unable to parse contract address ${_contractAddress}.`);
|
|
111
|
+
}
|
|
112
|
+
const contractAbi = await getContractAbi(contractFile, log);
|
|
113
|
+
const functionAbi = getAbiFunction(contractAbi, functionName);
|
|
114
|
+
const functionArgs = encodeArgs(_functionArgs, functionAbi.parameters);
|
|
115
|
+
return { contractAddress, functionArgs, contractAbi };
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSXpFLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBUTNDOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxHQUFnQixFQUFFLE1BQWM7SUFDN0QsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUM7SUFDN0QsSUFBSSxDQUFDLEVBQUUsRUFBRTtRQUNQLE1BQU0sS0FBSyxDQUFDLFlBQVksTUFBTSw2QkFBNkIsQ0FBQyxDQUFDO0tBQzlEO0lBQ0QsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxvQkFBb0IsQ0FDeEMsTUFBYyxFQUNkLE1BQWMsRUFDZCxVQUFrQixFQUNsQixRQUFnQixFQUNoQixXQUF3QjtJQUV4QixNQUFNLE9BQU8sR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsUUFBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEtBQUssVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNwRyxNQUFNLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxN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
|
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/cli",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.3",
|
|
4
4
|
"main": "./dest/index.js",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"dependencies": {
|
|
7
|
-
"@aztec/aztec.js": "0.7.
|
|
8
|
-
"@aztec/ethereum": "0.7.
|
|
9
|
-
"@aztec/foundation": "0.7.
|
|
10
|
-
"@aztec/noir-compiler": "0.7.
|
|
11
|
-
"@aztec/noir-contracts": "0.7.
|
|
12
|
-
"@aztec/types": "0.7.
|
|
7
|
+
"@aztec/aztec.js": "0.7.3",
|
|
8
|
+
"@aztec/ethereum": "0.7.3",
|
|
9
|
+
"@aztec/foundation": "0.7.3",
|
|
10
|
+
"@aztec/noir-compiler": "0.7.3",
|
|
11
|
+
"@aztec/noir-contracts": "0.7.3",
|
|
12
|
+
"@aztec/types": "0.7.3",
|
|
13
13
|
"commander": "^9.0.0",
|
|
14
14
|
"jszip": "^3.10.1",
|
|
15
15
|
"lodash.startcase": "^4.4.0",
|
package/Dockerfile
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
FROM 278380418400.dkr.ecr.eu-west-2.amazonaws.com/yarn-project-base AS builder
|
|
2
|
-
|
|
3
|
-
COPY . .
|
|
4
|
-
|
|
5
|
-
WORKDIR /usr/src/yarn-project/cli
|
|
6
|
-
RUN yarn build && yarn formatting && yarn test
|
|
7
|
-
|
|
8
|
-
# Prune dev dependencies. See comment in base image.
|
|
9
|
-
RUN yarn cache clean
|
|
10
|
-
RUN yarn workspaces focus --production > /dev/null
|
|
11
|
-
|
|
12
|
-
FROM node:18-alpine
|
|
13
|
-
COPY --from=builder /usr/src/ /usr/src/
|
|
14
|
-
WORKDIR /usr/src/yarn-project/cli
|
|
15
|
-
ENTRYPOINT ["yarn", "start"]
|