@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.
@@ -1 +1 @@
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,iBAwBnF"}
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
- const fetch = makeFetch(retries, true);
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVksb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXRELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDbEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVwRCxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFFMUI7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBYztJQUN6QyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLE9BQU8sb0JBQW9CLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLHNCQUFzQixDQUFDLE1BQWMsRUFBRSxNQUFtQjtJQUM5RSxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDNUYsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLE1BQU0sb0JBQW9CLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUMsNkNBQTZDO0lBRXZHLElBQUk7UUFDRixNQUFNLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0tBQ3hEO0lBQUMsT0FBTyxHQUFHLEVBQUU7UUFDWixJQUFJLEdBQUcsWUFBWSxvQkFBb0IsRUFBRTtZQUN2QyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMzQjthQUFNO1lBQ0wsTUFBTSxHQUFHLENBQUM7U0FDWDtLQUNGO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELG1EQUFtRDtBQUNuRCxNQUFNLG9CQUFxQixTQUFRLEtBQUs7Q0FBRztBQUUzQzs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxHQUFhLEVBQUUsb0JBQTRCO0lBQ2xGLE1BQU0sVUFBVSxHQUFHLGVBQWUsQ0FBQztJQUNuQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDM0MsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNYLE1BQU0sSUFBSSxvQkFBb0IsQ0FBQyxzQkFBc0IsVUFBVSxvQ0FBb0MsQ0FBQyxDQUFDO0tBQ3RHO0lBQ0QsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQy9CLE1BQU0sSUFBSSxvQkFBb0IsQ0FBQyw2Q0FBNkMsVUFBVSxLQUFLLE9BQU8sSUFBSSxPQUFPLElBQUksQ0FBQyxDQUFDO0tBQ3BIO1NBQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsb0JBQW9CLENBQUMsRUFBRTtRQUNwRCxJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUUsb0JBQW9CLENBQUMsRUFBRTtZQUN0QyxNQUFNLElBQUksb0JBQW9CLENBQzVCLEdBQUcsVUFBVSx1QkFBdUIsT0FBTyxrREFBa0Qsb0JBQW9CLG9EQUFvRCxDQUN0SyxDQUFDO1NBQ0g7YUFBTSxJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUUsb0JBQW9CLENBQUMsRUFBRTtZQUM3QyxNQUFNLElBQUksb0JBQW9CLENBQzVCLEdBQUcsVUFBVSx1QkFBdUIsT0FBTyxrREFBa0Qsb0JBQW9CLDhCQUE4QixVQUFVLHNCQUFzQixDQUNoTCxDQUFDO1NBQ0g7YUFBTTtZQUNMLE1BQU0sSUFBSSxvQkFBb0IsQ0FDNUIsR0FBRyxVQUFVLHVCQUF1QixPQUFPLG1EQUFtRCxvQkFBb0IsSUFBSSxDQUN2SCxDQUFDO1NBQ0g7S0FDRjtBQUNILENBQUMifQ==
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVksb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLElBQUksQ0FBQztBQUNsQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRXBEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLE1BQWM7SUFDekMsT0FBTyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxzQkFBc0IsQ0FBQyxNQUFjLEVBQUUsTUFBbUI7SUFDOUUsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQzVGLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNqRixNQUFNLG9CQUFvQixHQUFHLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLDZDQUE2QztJQUV2RyxJQUFJO1FBQ0YsTUFBTSxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztLQUN4RDtJQUFDLE9BQU8sR0FBRyxFQUFFO1FBQ1osSUFBSSxHQUFHLFlBQVksb0JBQW9CLEVBQUU7WUFDdkMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDM0I7YUFBTTtZQUNMLE1BQU0sR0FBRyxDQUFDO1NBQ1g7S0FDRjtJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxtREFBbUQ7QUFDbkQsTUFBTSxvQkFBcUIsU0FBUSxLQUFLO0NBQUc7QUFFM0M7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsa0JBQWtCLENBQUMsR0FBYSxFQUFFLG9CQUE0QjtJQUNsRixNQUFNLFVBQVUsR0FBRyxlQUFlLENBQUM7SUFDbkMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzNDLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDWCxNQUFNLElBQUksb0JBQW9CLENBQUMsc0JBQXNCLFVBQVUsb0NBQW9DLENBQUMsQ0FBQztLQUN0RztJQUNELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUMvQixNQUFNLElBQUksb0JBQW9CLENBQUMsNkNBQTZDLFVBQVUsS0FBSyxPQUFPLElBQUksT0FBTyxJQUFJLENBQUMsQ0FBQztLQUNwSDtTQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLG9CQUFvQixDQUFDLEVBQUU7UUFDcEQsSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFLG9CQUFvQixDQUFDLEVBQUU7WUFDdEMsTUFBTSxJQUFJLG9CQUFvQixDQUM1QixHQUFHLFVBQVUsdUJBQXVCLE9BQU8sa0RBQWtELG9CQUFvQixvREFBb0QsQ0FDdEssQ0FBQztTQUNIO2FBQU0sSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFLG9CQUFvQixDQUFDLEVBQUU7WUFDN0MsTUFBTSxJQUFJLG9CQUFvQixDQUM1QixHQUFHLFVBQVUsdUJBQXVCLE9BQU8sa0RBQWtELG9CQUFvQiw4QkFBOEIsVUFBVSxzQkFBc0IsQ0FDaEwsQ0FBQztTQUNIO2FBQU07WUFDTCxNQUFNLElBQUksb0JBQW9CLENBQzVCLEdBQUcsVUFBVSx1QkFBdUIsT0FBTyxtREFBbUQsb0JBQW9CLElBQUksQ0FDdkgsQ0FBQztTQUNIO0tBQ0Y7QUFDSCxDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"unbox.d.ts","sourceRoot":"","sources":["../src/unbox.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAiQ9C;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,YAAY,EAAE,MAAM,EACpB,mBAAmB,EAAE,MAAM,EAC3B,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,KAAK,iBAqBX"}
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] + '_' + m[1]).toLowerCase();
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
- const files = await fs.readdir(directoryPath);
23
- return files.length > 0;
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('downloading from github:', repositoryFolderPath);
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 snakeCaseContractName = contractNameToFolder(contractName);
65
- log(`Downloaded '@aztex/boxes/${snakeCaseContractName}' to ${outputPath}`);
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/aztec-packages-v${tagVersion}.zip`;
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}-v${tagVersion}/`;
75
- const boxPath = `${repoDirectoryPrefix}${BOXES_PATH}/${snakeCaseContractName}`;
81
+ const repoDirectoryPrefix = `${GITHUB_REPO}-${tagName}`;
82
+ const boxPath = `${repoDirectoryPrefix}/${BOXES_PATH}/${kebabCaseContractName}`;
76
83
  await copyFolderFromGithub(data, boxPath, outputPath, log);
77
- const boxContainsNoirSource = await isDirectoryNonEmpty(`${outputPath}/src/contracts`);
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 contractFolder = `${NOIR_CONTRACTS_PATH}/${snakeCaseContractName}_contract`;
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 targetPath = path.join(contractTargetDirectory, file.name.replace(contractDirectoryPath, ''));
98
- log(`Copying ${file.name} to ${targetPath}`);
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(`Copied ${file.name} to ${targetPath}`);
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, 'tsconfig.json');
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('tsconfig.json has been updated');
154
+ log(`Updated ${filename}.`);
147
155
  }
148
156
  catch (error) {
149
- log('Error updating tsconfig.json:', error);
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.4",
3
+ "version": "0.7.5",
4
4
  "main": "./dest/index.js",
5
5
  "type": "module",
6
6
  "dependencies": {
7
- "@aztec/aztec.js": "0.7.4",
8
- "@aztec/ethereum": "0.7.4",
9
- "@aztec/foundation": "0.7.4",
10
- "@aztec/noir-compiler": "0.7.4",
11
- "@aztec/noir-contracts": "0.7.4",
12
- "@aztec/types": "0.7.4",
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
- const fetch = makeFetch(retries, true);
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] + '_' + m[1]).toLowerCase();
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
- const files = await fs.readdir(directoryPath);
37
- return files.length > 0;
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('downloading from github:', repositoryFolderPath);
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
- log(`Downloaded '@aztex/boxes/${snakeCaseContractName}' to ${outputPath}`);
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/aztec-packages-v${tagVersion}.zip`;
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}-v${tagVersion}/`;
107
+ const repoDirectoryPrefix = `${GITHUB_REPO}-${tagName}`;
102
108
 
103
- const boxPath = `${repoDirectoryPrefix}${BOXES_PATH}/${snakeCaseContractName}`;
109
+ const boxPath = `${repoDirectoryPrefix}/${BOXES_PATH}/${kebabCaseContractName}`;
104
110
  await copyFolderFromGithub(data, boxPath, outputPath, log);
105
111
 
106
- const boxContainsNoirSource = await isDirectoryNonEmpty(`${outputPath}/src/contracts`);
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 contractFolder = `${NOIR_CONTRACTS_PATH}/${snakeCaseContractName}_contract`;
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 targetPath = path.join(contractTargetDirectory, file.name.replace(contractDirectoryPath, ''));
130
- log(`Copying ${file.name} to ${targetPath}`);
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(`Copied ${file.name} to ${targetPath}`);
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, 'tsconfig.json');
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('tsconfig.json has been updated');
190
+ log(`Updated ${filename}.`);
184
191
  } catch (error) {
185
- log('Error updating tsconfig.json:', error);
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
  /**