@aztec/cli 0.7.4 → 0.7.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/.tsbuildinfo +1 -1
- package/dest/client.d.ts.map +1 -1
- package/dest/client.js +2 -5
- package/dest/unbox.d.ts.map +1 -1
- package/dest/unbox.js +35 -27
- package/package.json +7 -7
- package/src/client.ts +1 -5
- package/src/unbox.ts +34 -27
package/dest/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAwB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAwB,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAOpD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,YAE1C;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,iBAwBnF"}
|
package/dest/client.js
CHANGED
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
import { createAztecRpcClient } from '@aztec/aztec.js';
|
|
2
|
-
import { makeFetch } from '@aztec/foundation/json-rpc/client';
|
|
3
2
|
import { fileURLToPath } from '@aztec/foundation/url';
|
|
4
3
|
import { readFileSync } from 'fs';
|
|
5
4
|
import { dirname, resolve } from 'path';
|
|
6
5
|
import { gtr, ltr, satisfies, valid } from 'semver';
|
|
7
|
-
const retries = [1, 1, 2];
|
|
8
6
|
/**
|
|
9
7
|
* Creates an Aztec RPC client with a given set of retries on non-server errors.
|
|
10
8
|
* @param rpcUrl - URL of the RPC server.
|
|
11
9
|
* @returns An RPC client.
|
|
12
10
|
*/
|
|
13
11
|
export function createClient(rpcUrl) {
|
|
14
|
-
|
|
15
|
-
return createAztecRpcClient(rpcUrl, fetch);
|
|
12
|
+
return createAztecRpcClient(rpcUrl);
|
|
16
13
|
}
|
|
17
14
|
/**
|
|
18
15
|
* Creates an Aztec RPC client with a given set of retries on non-server errors.
|
|
@@ -69,4 +66,4 @@ export async function checkServerVersion(rpc, expectedVersionRange) {
|
|
|
69
66
|
}
|
|
70
67
|
}
|
|
71
68
|
}
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVksb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLElBQUksQ0FBQztBQUNsQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRXBEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLE1BQWM7SUFDekMsT0FBTyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxzQkFBc0IsQ0FBQyxNQUFjLEVBQUUsTUFBbUI7SUFDOUUsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQzVGLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNqRixNQUFNLG9CQUFvQixHQUFHLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLDZDQUE2QztJQUV2RyxJQUFJO1FBQ0YsTUFBTSxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztLQUN4RDtJQUFDLE9BQU8sR0FBRyxFQUFFO1FBQ1osSUFBSSxHQUFHLFlBQVksb0JBQW9CLEVBQUU7WUFDdkMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDM0I7YUFBTTtZQUNMLE1BQU0sR0FBRyxDQUFDO1NBQ1g7S0FDRjtJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxtREFBbUQ7QUFDbkQsTUFBTSxvQkFBcUIsU0FBUSxLQUFLO0NBQUc7QUFFM0M7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsa0JBQWtCLENBQUMsR0FBYSxFQUFFLG9CQUE0QjtJQUNsRixNQUFNLFVBQVUsR0FBRyxlQUFlLENBQUM7SUFDbkMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzNDLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDWCxNQUFNLElBQUksb0JBQW9CLENBQUMsc0JBQXNCLFVBQVUsb0NBQW9DLENBQUMsQ0FBQztLQUN0RztJQUNELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUMvQixNQUFNLElBQUksb0JBQW9CLENBQUMsNkNBQTZDLFVBQVUsS0FBSyxPQUFPLElBQUksT0FBTyxJQUFJLENBQUMsQ0FBQztLQUNwSDtTQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLG9CQUFvQixDQUFDLEVBQUU7UUFDcEQsSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFLG9CQUFvQixDQUFDLEVBQUU7WUFDdEMsTUFBTSxJQUFJLG9CQUFvQixDQUM1QixHQUFHLFVBQVUsdUJBQXVCLE9BQU8sa0RBQWtELG9CQUFvQixvREFBb0QsQ0FDdEssQ0FBQztTQUNIO2FBQU0sSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFLG9CQUFvQixDQUFDLEVBQUU7WUFDN0MsTUFBTSxJQUFJLG9CQUFvQixDQUM1QixHQUFHLFVBQVUsdUJBQXVCLE9BQU8sa0RBQWtELG9CQUFvQiw4QkFBOEIsVUFBVSxzQkFBc0IsQ0FDaEwsQ0FBQztTQUNIO2FBQU07WUFDTCxNQUFNLElBQUksb0JBQW9CLENBQzVCLEdBQUcsVUFBVSx1QkFBdUIsT0FBTyxtREFBbUQsb0JBQW9CLElBQUksQ0FDdkgsQ0FBQztTQUNIO0tBQ0Y7QUFDSCxDQUFDIn0=
|
package/dest/unbox.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unbox.d.ts","sourceRoot":"","sources":["../src/unbox.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"unbox.d.ts","sourceRoot":"","sources":["../src/unbox.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAwQ9C;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,YAAY,EAAE,MAAM,EACpB,mBAAmB,EAAE,MAAM,EAC3B,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,KAAK,iBAqBX"}
|
package/dest/unbox.js
CHANGED
|
@@ -7,20 +7,26 @@ const GITHUB_REPO = 'aztec-packages';
|
|
|
7
7
|
const NOIR_CONTRACTS_PATH = 'yarn-project/noir-contracts/src/contracts';
|
|
8
8
|
const BOXES_PATH = 'yarn-project/boxes';
|
|
9
9
|
/**
|
|
10
|
-
* Converts a contract name in "upper camel case" to a folder name in snake case.
|
|
10
|
+
* Converts a contract name in "upper camel case" to a folder name in snake case or kebab case.
|
|
11
11
|
* @param contractName - The contract name.
|
|
12
12
|
* @returns The folder name.
|
|
13
13
|
* */
|
|
14
|
-
function contractNameToFolder(contractName) {
|
|
15
|
-
return contractName.replace(/[\w]([A-Z])/g, m => m[0]
|
|
14
|
+
function contractNameToFolder(contractName, separator = '-') {
|
|
15
|
+
return contractName.replace(/[\w]([A-Z])/g, m => `${m[0]}${separator}${m[1]}`).toLowerCase();
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* If the box contains the noir contract source code, we don't need to download it from github.
|
|
19
19
|
* Otherwise, we download the contract source code from the `noir-contracts` and `noir-libs` subpackages.
|
|
20
20
|
*/
|
|
21
21
|
async function isDirectoryNonEmpty(directoryPath) {
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
try {
|
|
23
|
+
const files = await fs.readdir(directoryPath);
|
|
24
|
+
return files.length > 0;
|
|
25
|
+
}
|
|
26
|
+
catch (e) {
|
|
27
|
+
// Directory does not exist.
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
24
30
|
}
|
|
25
31
|
/**
|
|
26
32
|
*
|
|
@@ -29,7 +35,7 @@ async function isDirectoryNonEmpty(directoryPath) {
|
|
|
29
35
|
* @param localOutputPath - local path to copy to
|
|
30
36
|
*/
|
|
31
37
|
async function copyFolderFromGithub(data, repositoryFolderPath, localOutputPath, log) {
|
|
32
|
-
log(
|
|
38
|
+
log(`Downloading from github: ${repositoryFolderPath}`);
|
|
33
39
|
const repositoryDirectories = Object.values(data.files).filter(file => {
|
|
34
40
|
return file.dir && file.name.startsWith(repositoryFolderPath);
|
|
35
41
|
});
|
|
@@ -59,46 +65,47 @@ async function copyFolderFromGithub(data, repositoryFolderPath, localOutputPath,
|
|
|
59
65
|
* @returns
|
|
60
66
|
*/
|
|
61
67
|
async function downloadContractAndBoxFromGithub(tagVersion, contractName, outputPath, log) {
|
|
68
|
+
const tagName = `aztec-packages-v${tagVersion}`;
|
|
62
69
|
// small string conversion, in the ABI the contract name looks like PrivateToken
|
|
63
70
|
// but in the repostory it looks like private_token
|
|
64
|
-
const
|
|
65
|
-
log(`
|
|
71
|
+
const kebabCaseContractName = contractNameToFolder(contractName, '-');
|
|
72
|
+
log(`Downloading @aztex/boxes/${kebabCaseContractName} to ${outputPath}...`);
|
|
66
73
|
// Step 1: Fetch the monorepo ZIP from GitHub, matching the CLI version
|
|
67
|
-
const url = `https://github.com/${GITHUB_OWNER}/${GITHUB_REPO}/archive/refs/tags
|
|
74
|
+
const url = `https://github.com/${GITHUB_OWNER}/${GITHUB_REPO}/archive/refs/tags/${tagName}.zip`;
|
|
68
75
|
const response = await fetch(url);
|
|
69
76
|
const buffer = await response.arrayBuffer();
|
|
70
77
|
const zip = new JSZip();
|
|
71
78
|
const data = await zip.loadAsync(buffer);
|
|
72
79
|
// Step 2: copy the '@aztec/boxes/{contract-name}' subpackage to the output directory
|
|
73
80
|
// this is currently only implemented for PrivateToken under 'boxes/private-token/'
|
|
74
|
-
const repoDirectoryPrefix = `${GITHUB_REPO}
|
|
75
|
-
const boxPath = `${repoDirectoryPrefix}
|
|
81
|
+
const repoDirectoryPrefix = `${GITHUB_REPO}-${tagName}`;
|
|
82
|
+
const boxPath = `${repoDirectoryPrefix}/${BOXES_PATH}/${kebabCaseContractName}`;
|
|
76
83
|
await copyFolderFromGithub(data, boxPath, outputPath, log);
|
|
77
|
-
const
|
|
84
|
+
const contractTargetDirectory = path.join(outputPath, 'src', 'contracts');
|
|
85
|
+
const boxContainsNoirSource = await isDirectoryNonEmpty(contractTargetDirectory);
|
|
78
86
|
if (boxContainsNoirSource) {
|
|
79
87
|
return;
|
|
80
88
|
}
|
|
81
89
|
// this remaining logic only kicks in if the box doesn't already have a src/contracts folder
|
|
82
90
|
// in which case we optimistically grab the noir source files from the
|
|
83
91
|
// noir-contracts and noir-libs subpackages and pray that the versions are compatible
|
|
92
|
+
log('Copying noir contracts...');
|
|
84
93
|
// source noir files for the contract are in this folder
|
|
85
|
-
const
|
|
94
|
+
const snakeCaseContractName = contractNameToFolder(contractName, '_');
|
|
95
|
+
const contractDirectoryPath = `${repoDirectoryPrefix}/${NOIR_CONTRACTS_PATH}/${snakeCaseContractName}_contract`;
|
|
86
96
|
// copy the noir contracts to the output directory under subdir /src/contracts/
|
|
87
|
-
const contractDirectoryPath = `${repoDirectoryPrefix}${contractFolder}/`;
|
|
88
97
|
const contractFiles = Object.values(data.files).filter(file => {
|
|
89
98
|
return !file.dir && file.name.startsWith(contractDirectoryPath);
|
|
90
99
|
});
|
|
91
|
-
const contractTargetDirectory = path.join(outputPath, 'src', 'contracts');
|
|
92
|
-
await fs.mkdir(contractTargetDirectory, { recursive: true });
|
|
93
100
|
// Nargo.toml file needs to be in the root of the contracts directory,
|
|
94
101
|
// and noir files in the src/ subdirectory
|
|
95
102
|
await fs.mkdir(path.join(contractTargetDirectory, 'src'), { recursive: true });
|
|
96
103
|
for (const file of contractFiles) {
|
|
97
|
-
const
|
|
98
|
-
|
|
104
|
+
const filename = file.name.replace(`${contractDirectoryPath}/`, '');
|
|
105
|
+
const targetPath = path.join(contractTargetDirectory, filename);
|
|
99
106
|
const content = await file.async('nodebuffer');
|
|
100
107
|
await fs.writeFile(targetPath, content);
|
|
101
|
-
log(`
|
|
108
|
+
log(` ✓ ${filename}`);
|
|
102
109
|
}
|
|
103
110
|
}
|
|
104
111
|
/**
|
|
@@ -111,7 +118,8 @@ async function downloadContractAndBoxFromGithub(tagVersion, contractName, output
|
|
|
111
118
|
*/
|
|
112
119
|
async function updatePackagingConfigurations(packageVersion, outputPath, log) {
|
|
113
120
|
await updatePackageJsonVersions(packageVersion, outputPath, log);
|
|
114
|
-
await updateTsConfig(outputPath, log);
|
|
121
|
+
await updateTsConfig('tsconfig.json', outputPath, log);
|
|
122
|
+
await updateTsConfig('tsconfig.dest.json', outputPath, log);
|
|
115
123
|
await updateNargoToml(packageVersion, outputPath, log);
|
|
116
124
|
}
|
|
117
125
|
/**
|
|
@@ -127,7 +135,7 @@ async function updateNargoToml(packageVersion, outputPath, log) {
|
|
|
127
135
|
const updatedLines = lines.map(line => line.replace(/tag="master"/g, `tag="v${packageVersion}"`));
|
|
128
136
|
const updatedContent = updatedLines.join('\n');
|
|
129
137
|
await fs.writeFile(nargoTomlPath, updatedContent);
|
|
130
|
-
log(`Updated Nargo.toml to point to local copy of noir-libs
|
|
138
|
+
log(`Updated Nargo.toml to point to local copy of noir-libs.`);
|
|
131
139
|
}
|
|
132
140
|
/**
|
|
133
141
|
* The `tsconfig.json` also needs to be updated to remove the "references" section, which
|
|
@@ -135,18 +143,18 @@ async function updateNargoToml(packageVersion, outputPath, log) {
|
|
|
135
143
|
* so we remove the entries to install the the workspace packages from npm.
|
|
136
144
|
* @param outputPath - directory we are unboxing to
|
|
137
145
|
*/
|
|
138
|
-
async function updateTsConfig(outputPath, log) {
|
|
146
|
+
async function updateTsConfig(filename, outputPath, log) {
|
|
139
147
|
try {
|
|
140
|
-
const tsconfigJsonPath = path.join(outputPath,
|
|
148
|
+
const tsconfigJsonPath = path.join(outputPath, filename);
|
|
141
149
|
const data = await fs.readFile(tsconfigJsonPath, 'utf8');
|
|
142
150
|
const config = JSON.parse(data);
|
|
143
151
|
delete config.references;
|
|
144
152
|
const updatedData = JSON.stringify(config, null, 2);
|
|
145
153
|
await fs.writeFile(tsconfigJsonPath, updatedData, 'utf8');
|
|
146
|
-
log(
|
|
154
|
+
log(`Updated ${filename}.`);
|
|
147
155
|
}
|
|
148
156
|
catch (error) {
|
|
149
|
-
log(
|
|
157
|
+
log(`Error updating ${filename}.`);
|
|
150
158
|
throw error;
|
|
151
159
|
}
|
|
152
160
|
}
|
|
@@ -188,7 +196,7 @@ async function updatePackageJsonVersions(packageVersion, outputPath, log) {
|
|
|
188
196
|
// Convert back to a string and write back to the package.json file
|
|
189
197
|
const updatedContent = JSON.stringify(packageData, null, 2);
|
|
190
198
|
await fs.writeFile(packageJsonPath, updatedContent);
|
|
191
|
-
log(`Updated package.json versions to ${packageVersion}`);
|
|
199
|
+
log(`Updated package.json versions to: ${packageVersion}`);
|
|
192
200
|
}
|
|
193
201
|
/**
|
|
194
202
|
*
|
|
@@ -244,4 +252,4 @@ export async function unboxContract(contractName, outputDirectoryName, packageVe
|
|
|
244
252
|
// as in the monorepo source files
|
|
245
253
|
await updatePackagingConfigurations(packageVersion, outputPath, log);
|
|
246
254
|
}
|
|
247
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5ib3guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdW5ib3gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsT0FBTyxFQUFFLFFBQVEsSUFBSSxFQUFFLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQztBQUMvQixPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUU3QixNQUFNLFlBQVksR0FBRyxlQUFlLENBQUM7QUFDckMsTUFBTSxXQUFXLEdBQUcsZ0JBQWdCLENBQUM7QUFDckMsTUFBTSxtQkFBbUIsR0FBRywyQ0FBMkMsQ0FBQztBQUN4RSxNQUFNLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQztBQUV4Qzs7OztLQUlLO0FBQ0wsU0FBUyxvQkFBb0IsQ0FBQyxZQUFvQjtJQUNoRCxPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUNwRixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsS0FBSyxVQUFVLG1CQUFtQixDQUFDLGFBQXFCO0lBQ3RELE1BQU0sS0FBSyxHQUFHLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM5QyxPQUFPLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQzFCLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILEtBQUssVUFBVSxvQkFBb0IsQ0FBQyxJQUFXLEVBQUUsb0JBQTRCLEVBQUUsZUFBdUIsRUFBRSxHQUFVO0lBQ2hILEdBQUcsQ0FBQywwQkFBMEIsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3RELE1BQU0scUJBQXFCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJ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
|
|
255
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5ib3guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdW5ib3gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsT0FBTyxFQUFFLFFBQVEsSUFBSSxFQUFFLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQztBQUMvQixPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUU3QixNQUFNLFlBQVksR0FBRyxlQUFlLENBQUM7QUFDckMsTUFBTSxXQUFXLEdBQUcsZ0JBQWdCLENBQUM7QUFDckMsTUFBTSxtQkFBbUIsR0FBRywyQ0FBMkMsQ0FBQztBQUN4RSxNQUFNLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQztBQUV4Qzs7OztLQUlLO0FBQ0wsU0FBUyxvQkFBb0IsQ0FBQyxZQUFvQixFQUFFLFNBQVMsR0FBRyxHQUFHO0lBQ2pFLE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUMvRixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsS0FBSyxVQUFVLG1CQUFtQixDQUFDLGFBQXFCO0lBQ3RELElBQUk7UUFDRixNQUFNLEtBQUssR0FBRyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDOUMsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztLQUN6QjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsNEJBQTRCO1FBQzVCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7QUFDSCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxLQUFLLFVBQVUsb0JBQW9CLENBQUMsSUFBVyxFQUFFLG9CQUE0QixFQUFFLGVB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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.5",
|
|
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.5",
|
|
8
|
+
"@aztec/ethereum": "0.7.5",
|
|
9
|
+
"@aztec/foundation": "0.7.5",
|
|
10
|
+
"@aztec/noir-compiler": "0.7.5",
|
|
11
|
+
"@aztec/noir-contracts": "0.7.5",
|
|
12
|
+
"@aztec/types": "0.7.5",
|
|
13
13
|
"commander": "^9.0.0",
|
|
14
14
|
"jszip": "^3.10.1",
|
|
15
15
|
"lodash.startcase": "^4.4.0",
|
package/src/client.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { AztecRPC, createAztecRpcClient } from '@aztec/aztec.js';
|
|
2
|
-
import { makeFetch } from '@aztec/foundation/json-rpc/client';
|
|
3
2
|
import { DebugLogger } from '@aztec/foundation/log';
|
|
4
3
|
import { fileURLToPath } from '@aztec/foundation/url';
|
|
5
4
|
|
|
@@ -7,16 +6,13 @@ import { readFileSync } from 'fs';
|
|
|
7
6
|
import { dirname, resolve } from 'path';
|
|
8
7
|
import { gtr, ltr, satisfies, valid } from 'semver';
|
|
9
8
|
|
|
10
|
-
const retries = [1, 1, 2];
|
|
11
|
-
|
|
12
9
|
/**
|
|
13
10
|
* Creates an Aztec RPC client with a given set of retries on non-server errors.
|
|
14
11
|
* @param rpcUrl - URL of the RPC server.
|
|
15
12
|
* @returns An RPC client.
|
|
16
13
|
*/
|
|
17
14
|
export function createClient(rpcUrl: string) {
|
|
18
|
-
|
|
19
|
-
return createAztecRpcClient(rpcUrl, fetch);
|
|
15
|
+
return createAztecRpcClient(rpcUrl);
|
|
20
16
|
}
|
|
21
17
|
|
|
22
18
|
/**
|
package/src/unbox.ts
CHANGED
|
@@ -20,12 +20,12 @@ const NOIR_CONTRACTS_PATH = 'yarn-project/noir-contracts/src/contracts';
|
|
|
20
20
|
const BOXES_PATH = 'yarn-project/boxes';
|
|
21
21
|
|
|
22
22
|
/**
|
|
23
|
-
* Converts a contract name in "upper camel case" to a folder name in snake case.
|
|
23
|
+
* Converts a contract name in "upper camel case" to a folder name in snake case or kebab case.
|
|
24
24
|
* @param contractName - The contract name.
|
|
25
25
|
* @returns The folder name.
|
|
26
26
|
* */
|
|
27
|
-
function contractNameToFolder(contractName: string): string {
|
|
28
|
-
return contractName.replace(/[\w]([A-Z])/g, m => m[0]
|
|
27
|
+
function contractNameToFolder(contractName: string, separator = '-'): string {
|
|
28
|
+
return contractName.replace(/[\w]([A-Z])/g, m => `${m[0]}${separator}${m[1]}`).toLowerCase();
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
/**
|
|
@@ -33,8 +33,13 @@ function contractNameToFolder(contractName: string): string {
|
|
|
33
33
|
* Otherwise, we download the contract source code from the `noir-contracts` and `noir-libs` subpackages.
|
|
34
34
|
*/
|
|
35
35
|
async function isDirectoryNonEmpty(directoryPath: string): Promise<boolean> {
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
try {
|
|
37
|
+
const files = await fs.readdir(directoryPath);
|
|
38
|
+
return files.length > 0;
|
|
39
|
+
} catch (e) {
|
|
40
|
+
// Directory does not exist.
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
38
43
|
}
|
|
39
44
|
|
|
40
45
|
/**
|
|
@@ -44,7 +49,7 @@ async function isDirectoryNonEmpty(directoryPath: string): Promise<boolean> {
|
|
|
44
49
|
* @param localOutputPath - local path to copy to
|
|
45
50
|
*/
|
|
46
51
|
async function copyFolderFromGithub(data: JSZip, repositoryFolderPath: string, localOutputPath: string, log: LogFn) {
|
|
47
|
-
log(
|
|
52
|
+
log(`Downloading from github: ${repositoryFolderPath}`);
|
|
48
53
|
const repositoryDirectories = Object.values(data.files).filter(file => {
|
|
49
54
|
return file.dir && file.name.startsWith(repositoryFolderPath);
|
|
50
55
|
});
|
|
@@ -83,13 +88,14 @@ async function downloadContractAndBoxFromGithub(
|
|
|
83
88
|
outputPath: string,
|
|
84
89
|
log: LogFn,
|
|
85
90
|
): Promise<void> {
|
|
91
|
+
const tagName = `aztec-packages-v${tagVersion}`;
|
|
86
92
|
// small string conversion, in the ABI the contract name looks like PrivateToken
|
|
87
93
|
// but in the repostory it looks like private_token
|
|
88
|
-
const snakeCaseContractName = contractNameToFolder(contractName);
|
|
89
94
|
|
|
90
|
-
|
|
95
|
+
const kebabCaseContractName = contractNameToFolder(contractName, '-');
|
|
96
|
+
log(`Downloading @aztex/boxes/${kebabCaseContractName} to ${outputPath}...`);
|
|
91
97
|
// Step 1: Fetch the monorepo ZIP from GitHub, matching the CLI version
|
|
92
|
-
const url = `https://github.com/${GITHUB_OWNER}/${GITHUB_REPO}/archive/refs/tags
|
|
98
|
+
const url = `https://github.com/${GITHUB_OWNER}/${GITHUB_REPO}/archive/refs/tags/${tagName}.zip`;
|
|
93
99
|
const response = await fetch(url);
|
|
94
100
|
const buffer = await response.arrayBuffer();
|
|
95
101
|
|
|
@@ -98,39 +104,39 @@ async function downloadContractAndBoxFromGithub(
|
|
|
98
104
|
|
|
99
105
|
// Step 2: copy the '@aztec/boxes/{contract-name}' subpackage to the output directory
|
|
100
106
|
// this is currently only implemented for PrivateToken under 'boxes/private-token/'
|
|
101
|
-
const repoDirectoryPrefix = `${GITHUB_REPO}
|
|
107
|
+
const repoDirectoryPrefix = `${GITHUB_REPO}-${tagName}`;
|
|
102
108
|
|
|
103
|
-
const boxPath = `${repoDirectoryPrefix}
|
|
109
|
+
const boxPath = `${repoDirectoryPrefix}/${BOXES_PATH}/${kebabCaseContractName}`;
|
|
104
110
|
await copyFolderFromGithub(data, boxPath, outputPath, log);
|
|
105
111
|
|
|
106
|
-
const
|
|
112
|
+
const contractTargetDirectory = path.join(outputPath, 'src', 'contracts');
|
|
113
|
+
const boxContainsNoirSource = await isDirectoryNonEmpty(contractTargetDirectory);
|
|
107
114
|
if (boxContainsNoirSource) {
|
|
108
115
|
return;
|
|
109
116
|
}
|
|
117
|
+
|
|
110
118
|
// this remaining logic only kicks in if the box doesn't already have a src/contracts folder
|
|
111
119
|
// in which case we optimistically grab the noir source files from the
|
|
112
120
|
// noir-contracts and noir-libs subpackages and pray that the versions are compatible
|
|
121
|
+
log('Copying noir contracts...');
|
|
113
122
|
|
|
114
123
|
// source noir files for the contract are in this folder
|
|
115
|
-
const
|
|
124
|
+
const snakeCaseContractName = contractNameToFolder(contractName, '_');
|
|
125
|
+
const contractDirectoryPath = `${repoDirectoryPrefix}/${NOIR_CONTRACTS_PATH}/${snakeCaseContractName}_contract`;
|
|
116
126
|
// copy the noir contracts to the output directory under subdir /src/contracts/
|
|
117
|
-
const contractDirectoryPath = `${repoDirectoryPrefix}${contractFolder}/`;
|
|
118
|
-
|
|
119
127
|
const contractFiles = Object.values(data.files).filter(file => {
|
|
120
128
|
return !file.dir && file.name.startsWith(contractDirectoryPath);
|
|
121
129
|
});
|
|
122
130
|
|
|
123
|
-
const contractTargetDirectory = path.join(outputPath, 'src', 'contracts');
|
|
124
|
-
await fs.mkdir(contractTargetDirectory, { recursive: true });
|
|
125
131
|
// Nargo.toml file needs to be in the root of the contracts directory,
|
|
126
132
|
// and noir files in the src/ subdirectory
|
|
127
133
|
await fs.mkdir(path.join(contractTargetDirectory, 'src'), { recursive: true });
|
|
128
134
|
for (const file of contractFiles) {
|
|
129
|
-
const
|
|
130
|
-
|
|
135
|
+
const filename = file.name.replace(`${contractDirectoryPath}/`, '');
|
|
136
|
+
const targetPath = path.join(contractTargetDirectory, filename);
|
|
131
137
|
const content = await file.async('nodebuffer');
|
|
132
138
|
await fs.writeFile(targetPath, content);
|
|
133
|
-
log(`
|
|
139
|
+
log(` ✓ ${filename}`);
|
|
134
140
|
}
|
|
135
141
|
}
|
|
136
142
|
/**
|
|
@@ -143,7 +149,8 @@ async function downloadContractAndBoxFromGithub(
|
|
|
143
149
|
*/
|
|
144
150
|
async function updatePackagingConfigurations(packageVersion: string, outputPath: string, log: LogFn): Promise<void> {
|
|
145
151
|
await updatePackageJsonVersions(packageVersion, outputPath, log);
|
|
146
|
-
await updateTsConfig(outputPath, log);
|
|
152
|
+
await updateTsConfig('tsconfig.json', outputPath, log);
|
|
153
|
+
await updateTsConfig('tsconfig.dest.json', outputPath, log);
|
|
147
154
|
await updateNargoToml(packageVersion, outputPath, log);
|
|
148
155
|
}
|
|
149
156
|
|
|
@@ -160,7 +167,7 @@ async function updateNargoToml(packageVersion: string, outputPath: string, log:
|
|
|
160
167
|
const updatedLines = lines.map(line => line.replace(/tag="master"/g, `tag="v${packageVersion}"`));
|
|
161
168
|
const updatedContent = updatedLines.join('\n');
|
|
162
169
|
await fs.writeFile(nargoTomlPath, updatedContent);
|
|
163
|
-
log(`Updated Nargo.toml to point to local copy of noir-libs
|
|
170
|
+
log(`Updated Nargo.toml to point to local copy of noir-libs.`);
|
|
164
171
|
}
|
|
165
172
|
|
|
166
173
|
/**
|
|
@@ -169,9 +176,9 @@ async function updateNargoToml(packageVersion: string, outputPath: string, log:
|
|
|
169
176
|
* so we remove the entries to install the the workspace packages from npm.
|
|
170
177
|
* @param outputPath - directory we are unboxing to
|
|
171
178
|
*/
|
|
172
|
-
async function updateTsConfig(outputPath: string, log: LogFn) {
|
|
179
|
+
async function updateTsConfig(filename: string, outputPath: string, log: LogFn) {
|
|
173
180
|
try {
|
|
174
|
-
const tsconfigJsonPath = path.join(outputPath,
|
|
181
|
+
const tsconfigJsonPath = path.join(outputPath, filename);
|
|
175
182
|
const data = await fs.readFile(tsconfigJsonPath, 'utf8');
|
|
176
183
|
const config = JSON.parse(data);
|
|
177
184
|
|
|
@@ -180,9 +187,9 @@ async function updateTsConfig(outputPath: string, log: LogFn) {
|
|
|
180
187
|
const updatedData = JSON.stringify(config, null, 2);
|
|
181
188
|
await fs.writeFile(tsconfigJsonPath, updatedData, 'utf8');
|
|
182
189
|
|
|
183
|
-
log(
|
|
190
|
+
log(`Updated ${filename}.`);
|
|
184
191
|
} catch (error) {
|
|
185
|
-
log(
|
|
192
|
+
log(`Error updating ${filename}.`);
|
|
186
193
|
throw error;
|
|
187
194
|
}
|
|
188
195
|
}
|
|
@@ -234,7 +241,7 @@ async function updatePackageJsonVersions(packageVersion: string, outputPath: str
|
|
|
234
241
|
const updatedContent = JSON.stringify(packageData, null, 2);
|
|
235
242
|
await fs.writeFile(packageJsonPath, updatedContent);
|
|
236
243
|
|
|
237
|
-
log(`Updated package.json versions to ${packageVersion}`);
|
|
244
|
+
log(`Updated package.json versions to: ${packageVersion}`);
|
|
238
245
|
}
|
|
239
246
|
|
|
240
247
|
/**
|