@aztec/builder 0.76.4-devnet-test-rc3 → 0.77.0-testnet-ignition.17
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/dest/bin/cli.js +2 -3
- package/dest/contract-interface-gen/codegen.js +17 -15
- package/dest/contract-interface-gen/typescript.d.ts +1 -1
- package/dest/contract-interface-gen/typescript.d.ts.map +1 -1
- package/dest/contract-interface-gen/typescript.js +35 -55
- package/dest/index.d.ts +1 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +4 -9
- package/package.json +5 -5
- package/src/contract-interface-gen/codegen.ts +1 -1
- package/src/contract-interface-gen/typescript.ts +1 -6
- package/src/index.ts +1 -1
package/dest/bin/cli.js
CHANGED
|
@@ -3,7 +3,7 @@ import { createConsoleLogger } from '@aztec/foundation/log';
|
|
|
3
3
|
import { Command } from 'commander';
|
|
4
4
|
import { injectCommands as injectBuilderCommands } from '../index.js';
|
|
5
5
|
const log = createConsoleLogger('aztec:builder');
|
|
6
|
-
const main = async ()
|
|
6
|
+
const main = async ()=>{
|
|
7
7
|
const program = new Command('aztec-builder');
|
|
8
8
|
injectBuilderCommands(program);
|
|
9
9
|
await program.parseAsync(process.argv);
|
|
@@ -11,9 +11,8 @@ const main = async () => {
|
|
|
11
11
|
// it without success and I think it doesn't make sense to invest more time in this.
|
|
12
12
|
process.exit(0);
|
|
13
13
|
};
|
|
14
|
-
main().catch(err
|
|
14
|
+
main().catch((err)=>{
|
|
15
15
|
log(`Error running command`);
|
|
16
16
|
log(err);
|
|
17
17
|
process.exit(1);
|
|
18
18
|
});
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jpbi9jbGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFcEMsT0FBTyxFQUFFLGNBQWMsSUFBSSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV0RSxNQUFNLEdBQUcsR0FBRyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUVqRCxNQUFNLElBQUksR0FBRyxLQUFLLElBQUksRUFBRTtJQUN0QixNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUU3QyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQixNQUFNLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLG9IQUFvSDtJQUNwSCxvRkFBb0Y7SUFDcEYsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRixJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7SUFDakIsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDN0IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ1QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDLENBQUMsQ0FBQyJ9
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
/* eslint-disable no-console */
|
|
2
|
-
import { loadContractArtifact } from '@aztec/types/abi';
|
|
1
|
+
/* eslint-disable no-console */ import { loadContractArtifact } from '@aztec/stdlib/abi';
|
|
3
2
|
import crypto from 'crypto';
|
|
4
3
|
import { access, mkdir, readFile, readdir, stat, writeFile } from 'fs/promises';
|
|
5
4
|
import path from 'path';
|
|
@@ -8,19 +7,20 @@ const cacheFilePath = './codegenCache.json';
|
|
|
8
7
|
let cache = {};
|
|
9
8
|
/**
|
|
10
9
|
* Generates Noir interface or Typescript interface for a folder or single file from a Noir compilation artifact.
|
|
11
|
-
*/
|
|
12
|
-
export async function generateCode(outputPath, fileOrDirPath, opts = {}) {
|
|
10
|
+
*/ export async function generateCode(outputPath, fileOrDirPath, opts = {}) {
|
|
13
11
|
await readCache();
|
|
14
12
|
const results = [];
|
|
15
13
|
const stats = await stat(fileOrDirPath);
|
|
16
14
|
if (stats.isDirectory()) {
|
|
17
|
-
const files = (await readdir(fileOrDirPath, {
|
|
18
|
-
|
|
15
|
+
const files = (await readdir(fileOrDirPath, {
|
|
16
|
+
recursive: true,
|
|
17
|
+
encoding: 'utf-8'
|
|
18
|
+
})).filter((file)=>file.endsWith('.json') && !file.startsWith('debug_'));
|
|
19
|
+
for (const file of files){
|
|
19
20
|
const fullPath = path.join(fileOrDirPath, file);
|
|
20
21
|
results.push(await generateFromNoirAbi(outputPath, fullPath, opts));
|
|
21
22
|
}
|
|
22
|
-
}
|
|
23
|
-
else if (stats.isFile()) {
|
|
23
|
+
} else if (stats.isFile()) {
|
|
24
24
|
results.push(await generateFromNoirAbi(outputPath, fileOrDirPath, opts));
|
|
25
25
|
}
|
|
26
26
|
await writeCache();
|
|
@@ -28,8 +28,7 @@ export async function generateCode(outputPath, fileOrDirPath, opts = {}) {
|
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
30
|
* Generates Noir interface or Typescript interface for a single file Noir compilation artifact.
|
|
31
|
-
*/
|
|
32
|
-
async function generateFromNoirAbi(outputPath, noirAbiPath, opts = {}) {
|
|
31
|
+
*/ async function generateFromNoirAbi(outputPath, noirAbiPath, opts = {}) {
|
|
33
32
|
const fileName = path.basename(noirAbiPath);
|
|
34
33
|
const currentHash = await generateFileHash(noirAbiPath);
|
|
35
34
|
const cachedInstance = isCacheValid(fileName, currentHash);
|
|
@@ -40,7 +39,9 @@ async function generateFromNoirAbi(outputPath, noirAbiPath, opts = {}) {
|
|
|
40
39
|
const file = await readFile(noirAbiPath, 'utf8');
|
|
41
40
|
const contract = JSON.parse(file);
|
|
42
41
|
const aztecAbi = loadContractArtifact(contract);
|
|
43
|
-
await mkdir(outputPath, {
|
|
42
|
+
await mkdir(outputPath, {
|
|
43
|
+
recursive: true
|
|
44
|
+
});
|
|
44
45
|
let relativeArtifactPath = path.relative(outputPath, noirAbiPath);
|
|
45
46
|
if (relativeArtifactPath === path.basename(noirAbiPath)) {
|
|
46
47
|
// Prepend ./ for local import if the folder is the same
|
|
@@ -72,15 +73,16 @@ function isCacheValid(contractName, currentHash) {
|
|
|
72
73
|
return cache[contractName]?.hash === currentHash && cache[contractName];
|
|
73
74
|
}
|
|
74
75
|
function updateCache(fileName, contractName, hash) {
|
|
75
|
-
cache[fileName] = {
|
|
76
|
+
cache[fileName] = {
|
|
77
|
+
contractName,
|
|
78
|
+
hash
|
|
79
|
+
};
|
|
76
80
|
}
|
|
77
81
|
async function exists(filePath) {
|
|
78
82
|
try {
|
|
79
83
|
await access(filePath);
|
|
80
84
|
return true;
|
|
81
|
-
}
|
|
82
|
-
catch {
|
|
85
|
+
} catch {
|
|
83
86
|
return false;
|
|
84
87
|
}
|
|
85
88
|
}
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWdlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC1pbnRlcmZhY2UtZ2VuL2NvZGVnZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXhELE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEYsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRXhCLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXRFLE1BQU0sYUFBYSxHQUFHLHFCQUFxQixDQUFDO0FBQzVDLElBQUksS0FBSyxHQUEyRCxFQUFFLENBQUM7QUFLdkU7O0dBRUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFlBQVksQ0FBQyxVQUFrQixFQUFFLGFBQXFCLEVBQUUsT0FBNEIsRUFBRTtJQUMxRyxNQUFNLFNBQVMsRUFBRSxDQUFDO0lBQ2xCLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNuQixNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUV4QyxJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBTSxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FDekYsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FDN0QsQ0FB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../src/contract-interface-gen/typescript.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,gBAAgB,
|
|
1
|
+
{"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../src/contract-interface-gen/typescript.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,gBAAgB,EAStB,MAAM,mBAAmB,CAAC;AAyR3B;;;;;GAKG;AACH,wBAAsB,mCAAmC,CAAC,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,EAAE,MAAM,mBA8E7G"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { EventSelector, decodeFunctionSignature, getDefaultInitializer, isAztecAddressStruct, isEthAddressStruct, isFunctionSelectorStruct,
|
|
1
|
+
import { EventSelector, decodeFunctionSignature, getDefaultInitializer, isAztecAddressStruct, isEthAddressStruct, isFunctionSelectorStruct, isWrappedFieldStruct } from '@aztec/stdlib/abi';
|
|
2
2
|
/**
|
|
3
3
|
* Returns the corresponding typescript type for a given Noir type.
|
|
4
4
|
* @param type - The input Noir type.
|
|
5
5
|
* @returns An equivalent typescript type.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
switch (type.kind) {
|
|
6
|
+
*/ function abiTypeToTypescript(type) {
|
|
7
|
+
switch(type.kind){
|
|
9
8
|
case 'field':
|
|
10
9
|
return 'FieldLike';
|
|
11
10
|
case 'boolean':
|
|
@@ -26,13 +25,10 @@ function abiTypeToTypescript(type) {
|
|
|
26
25
|
if (isFunctionSelectorStruct(type)) {
|
|
27
26
|
return 'FunctionSelectorLike';
|
|
28
27
|
}
|
|
29
|
-
if (isU128Struct(type)) {
|
|
30
|
-
return 'U128Like';
|
|
31
|
-
}
|
|
32
28
|
if (isWrappedFieldStruct(type)) {
|
|
33
29
|
return 'WrappedFieldLike';
|
|
34
30
|
}
|
|
35
|
-
return `{ ${type.fields.map(f
|
|
31
|
+
return `{ ${type.fields.map((f)=>`${f.name}: ${abiTypeToTypescript(f.type)}`).join(', ')} }`;
|
|
36
32
|
default:
|
|
37
33
|
throw new Error(`Unknown type ${type}`);
|
|
38
34
|
}
|
|
@@ -41,27 +37,24 @@ function abiTypeToTypescript(type) {
|
|
|
41
37
|
* Generates the typescript code to represent a Noir parameter.
|
|
42
38
|
* @param param - A Noir parameter with name and type.
|
|
43
39
|
* @returns The corresponding ts code.
|
|
44
|
-
*/
|
|
45
|
-
function generateParameter(param) {
|
|
40
|
+
*/ function generateParameter(param) {
|
|
46
41
|
return `${param.name}: ${abiTypeToTypescript(param.type)}`;
|
|
47
42
|
}
|
|
48
43
|
/**
|
|
49
44
|
* Generates the typescript code to represent a Noir function as a type.
|
|
50
45
|
* @param param - A Noir function.
|
|
51
46
|
* @returns The corresponding ts code.
|
|
52
|
-
*/
|
|
53
|
-
function generateMethod(entry) {
|
|
47
|
+
*/ function generateMethod(entry) {
|
|
54
48
|
const args = entry.parameters.map(generateParameter).join(', ');
|
|
55
49
|
return `
|
|
56
|
-
/** ${entry.name}(${entry.parameters.map(p
|
|
50
|
+
/** ${entry.name}(${entry.parameters.map((p)=>`${p.name}: ${p.type.kind}`).join(', ')}) */
|
|
57
51
|
${entry.name}: ((${args}) => ContractFunctionInteraction) & Pick<ContractMethod, 'selector'>;`;
|
|
58
52
|
}
|
|
59
53
|
/**
|
|
60
54
|
* Generates a deploy method for this contract.
|
|
61
55
|
* @param input - Build artifact of the contract.
|
|
62
56
|
* @returns A type-safe deploy method in ts.
|
|
63
|
-
*/
|
|
64
|
-
function generateDeploy(input) {
|
|
57
|
+
*/ function generateDeploy(input) {
|
|
65
58
|
const ctor = getDefaultInitializer(input);
|
|
66
59
|
const args = (ctor?.parameters ?? []).map(generateParameter).join(', ');
|
|
67
60
|
const contractName = `${input.name}Contract`;
|
|
@@ -104,8 +97,7 @@ function generateDeploy(input) {
|
|
|
104
97
|
* @param name - Name of the contract to derive the ABI name from.
|
|
105
98
|
* @returns A constructor method.
|
|
106
99
|
* @remarks The constructor is private because we want to force the user to use the create method.
|
|
107
|
-
*/
|
|
108
|
-
function generateConstructor(name) {
|
|
100
|
+
*/ function generateConstructor(name) {
|
|
109
101
|
return `
|
|
110
102
|
private constructor(
|
|
111
103
|
instance: ContractInstanceWithAddress,
|
|
@@ -120,8 +112,7 @@ function generateConstructor(name) {
|
|
|
120
112
|
* @param name - Name of the contract to derive the ABI name from.
|
|
121
113
|
* @returns An at method.
|
|
122
114
|
* @remarks We don't use constructor directly because of the async `wallet.getContractData` call.
|
|
123
|
-
*/
|
|
124
|
-
function generateAt(name) {
|
|
115
|
+
*/ function generateAt(name) {
|
|
125
116
|
return `
|
|
126
117
|
/**
|
|
127
118
|
* Creates a contract instance.
|
|
@@ -139,8 +130,7 @@ function generateAt(name) {
|
|
|
139
130
|
/**
|
|
140
131
|
* Generates a static getter for the contract's artifact.
|
|
141
132
|
* @param name - Name of the contract used to derive name of the artifact import.
|
|
142
|
-
*/
|
|
143
|
-
function generateArtifactGetter(name) {
|
|
133
|
+
*/ function generateArtifactGetter(name) {
|
|
144
134
|
const artifactName = `${name}ContractArtifact`;
|
|
145
135
|
return `
|
|
146
136
|
/**
|
|
@@ -156,29 +146,25 @@ function generateArtifactGetter(name) {
|
|
|
156
146
|
* @param name - Name of the contract.
|
|
157
147
|
* @param artifactImportPath - Path to load the ABI from.
|
|
158
148
|
* @returns Code.
|
|
159
|
-
*/
|
|
160
|
-
function generateAbiStatement(name, artifactImportPath) {
|
|
149
|
+
*/ function generateAbiStatement(name, artifactImportPath) {
|
|
161
150
|
const stmts = [
|
|
162
151
|
`import ${name}ContractArtifactJson from '${artifactImportPath}' assert { type: 'json' };`,
|
|
163
|
-
`export const ${name}ContractArtifact = loadContractArtifact(${name}ContractArtifactJson as NoirCompiledContract)
|
|
152
|
+
`export const ${name}ContractArtifact = loadContractArtifact(${name}ContractArtifactJson as NoirCompiledContract);`
|
|
164
153
|
];
|
|
165
154
|
return stmts.join('\n');
|
|
166
155
|
}
|
|
167
156
|
/**
|
|
168
157
|
* Generates a getter for the contract's storage layout.
|
|
169
158
|
* @param input - The contract artifact.
|
|
170
|
-
*/
|
|
171
|
-
function generateStorageLayoutGetter(input) {
|
|
159
|
+
*/ function generateStorageLayoutGetter(input) {
|
|
172
160
|
const entries = Object.entries(input.storageLayout);
|
|
173
161
|
if (entries.length === 0) {
|
|
174
162
|
return '';
|
|
175
163
|
}
|
|
176
|
-
const storageFieldsUnionType = entries.map(([name])
|
|
177
|
-
const layout = entries
|
|
178
|
-
.map(([name, { slot }]) => `${name}: {
|
|
164
|
+
const storageFieldsUnionType = entries.map(([name])=>`'${name}'`).join(' | ');
|
|
165
|
+
const layout = entries.map(([name, { slot }])=>`${name}: {
|
|
179
166
|
slot: new Fr(${slot.toBigInt()}n),
|
|
180
|
-
}`)
|
|
181
|
-
.join(',\n');
|
|
167
|
+
}`).join(',\n');
|
|
182
168
|
return `public static get storage(): ContractStorageLayout<${storageFieldsUnionType}> {
|
|
183
169
|
return {
|
|
184
170
|
${layout}
|
|
@@ -189,18 +175,15 @@ function generateStorageLayoutGetter(input) {
|
|
|
189
175
|
/**
|
|
190
176
|
* Generates a getter for the contract notes
|
|
191
177
|
* @param input - The contract artifact.
|
|
192
|
-
*/
|
|
193
|
-
function generateNotesGetter(input) {
|
|
178
|
+
*/ function generateNotesGetter(input) {
|
|
194
179
|
const entries = Object.entries(input.notes);
|
|
195
180
|
if (entries.length === 0) {
|
|
196
181
|
return '';
|
|
197
182
|
}
|
|
198
|
-
const notesUnionType = entries.map(([name])
|
|
199
|
-
const noteMetadata = entries
|
|
200
|
-
.map(([name, { id }]) => `${name}: {
|
|
183
|
+
const notesUnionType = entries.map(([name])=>`'${name}'`).join(' | ');
|
|
184
|
+
const noteMetadata = entries.map(([name, { id }])=>`${name}: {
|
|
201
185
|
id: new NoteSelector(${id.value}),
|
|
202
|
-
}`)
|
|
203
|
-
.join(',\n');
|
|
186
|
+
}`).join(',\n');
|
|
204
187
|
return `public static get notes(): ContractNotes<${notesUnionType}> {
|
|
205
188
|
return {
|
|
206
189
|
${noteMetadata}
|
|
@@ -211,17 +194,20 @@ function generateNotesGetter(input) {
|
|
|
211
194
|
// events is of type AbiType
|
|
212
195
|
async function generateEvents(events) {
|
|
213
196
|
if (events === undefined) {
|
|
214
|
-
return {
|
|
197
|
+
return {
|
|
198
|
+
events: '',
|
|
199
|
+
eventDefs: ''
|
|
200
|
+
};
|
|
215
201
|
}
|
|
216
|
-
const eventsMetadata = await Promise.all(events.map(async (event)
|
|
202
|
+
const eventsMetadata = await Promise.all(events.map(async (event)=>{
|
|
217
203
|
const eventName = event.path.split('::').at(-1);
|
|
218
|
-
const eventDefProps = event.fields.map((field)
|
|
204
|
+
const eventDefProps = event.fields.map((field)=>`${field.name}: ${abiTypeToTypescript(field.type)}`);
|
|
219
205
|
const eventDef = `
|
|
220
206
|
export type ${eventName} = {
|
|
221
207
|
${eventDefProps.join('\n')}
|
|
222
208
|
}
|
|
223
209
|
`;
|
|
224
|
-
const fieldNames = event.fields.map((field)
|
|
210
|
+
const fieldNames = event.fields.map((field)=>`"${field.name}"`);
|
|
225
211
|
const eventType = `${eventName}: {abiType: AbiType, eventSelector: EventSelector, fieldNames: string[] }`;
|
|
226
212
|
// Reusing the decodeFunctionSignature
|
|
227
213
|
const eventSignature = decodeFunctionSignature(eventName, event.fields);
|
|
@@ -234,18 +220,18 @@ async function generateEvents(events) {
|
|
|
234
220
|
return {
|
|
235
221
|
eventDef,
|
|
236
222
|
eventType,
|
|
237
|
-
eventImpl
|
|
223
|
+
eventImpl
|
|
238
224
|
};
|
|
239
225
|
}));
|
|
240
226
|
return {
|
|
241
|
-
eventDefs: eventsMetadata.map(({ eventDef })
|
|
227
|
+
eventDefs: eventsMetadata.map(({ eventDef })=>eventDef).join('\n'),
|
|
242
228
|
events: `
|
|
243
|
-
public static get events(): { ${eventsMetadata.map(({ eventType })
|
|
229
|
+
public static get events(): { ${eventsMetadata.map(({ eventType })=>eventType).join(', ')} } {
|
|
244
230
|
return {
|
|
245
|
-
${eventsMetadata.map(({ eventImpl })
|
|
231
|
+
${eventsMetadata.map(({ eventImpl })=>eventImpl).join(',\n')}
|
|
246
232
|
};
|
|
247
233
|
}
|
|
248
|
-
|
|
234
|
+
`
|
|
249
235
|
};
|
|
250
236
|
}
|
|
251
237
|
/**
|
|
@@ -253,12 +239,8 @@ async function generateEvents(events) {
|
|
|
253
239
|
* @param input - The compiled Noir artifact.
|
|
254
240
|
* @param artifactImportPath - Optional path to import the artifact (if not set, will be required in the constructor).
|
|
255
241
|
* @returns The corresponding ts code.
|
|
256
|
-
*/
|
|
257
|
-
|
|
258
|
-
const methods = input.functions
|
|
259
|
-
.filter(f => !f.isInternal)
|
|
260
|
-
.sort((a, b) => a.name.localeCompare(b.name))
|
|
261
|
-
.map(generateMethod);
|
|
242
|
+
*/ export async function generateTypescriptContractInterface(input, artifactImportPath) {
|
|
243
|
+
const methods = input.functions.filter((f)=>!f.isInternal).sort((a, b)=>a.name.localeCompare(b.name)).map(generateMethod);
|
|
262
244
|
const deploy = artifactImportPath && generateDeploy(input);
|
|
263
245
|
const ctor = artifactImportPath && generateConstructor(input.name);
|
|
264
246
|
const at = artifactImportPath && generateAt(input.name);
|
|
@@ -299,7 +281,6 @@ import {
|
|
|
299
281
|
Point,
|
|
300
282
|
type PublicKey,
|
|
301
283
|
PublicKeys,
|
|
302
|
-
type UnencryptedL2Log,
|
|
303
284
|
type Wallet,
|
|
304
285
|
type U128Like,
|
|
305
286
|
type WrappedFieldLike,
|
|
@@ -333,4 +314,3 @@ export class ${input.name}Contract extends ContractBase {
|
|
|
333
314
|
}
|
|
334
315
|
`;
|
|
335
316
|
}
|
|
336
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC1pbnRlcmZhY2UtZ2VuL3R5cGVzY3JpcHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlMLGFBQWEsRUFFYix1QkFBdUIsRUFDdkIscUJBQXFCLEVBQ3JCLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLFlBQVksRUFDWixvQkFBb0IsR0FDckIsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQjs7OztHQUlHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FBQyxJQUEwQjtJQUNyRCxRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsQixLQUFLLE9BQU87WUFDVixPQUFPLFdBQVcsQ0FBQztRQUNyQixLQUFLLFNBQVM7WUFDWixPQUFPLFNBQVMsQ0FBQztRQUNuQixLQUFLLFNBQVM7WUFDWixPQUFPLG1CQUFtQixDQUFDO1FBQzdCLEtBQUssUUFBUTtZQUNYLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLEtBQUssT0FBTztZQUNWLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMvQyxLQUFLLFFBQVE7WUFDWCxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLE9BQU8sZ0JBQWdCLENBQUM7WUFDMUIsQ0FBQztZQUNELElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsT0FBTyxrQkFBa0IsQ0FBQztZQUM1QixDQUFDO1lBQ0QsSUFBSSx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNuQyxPQUFPLHNCQUFzQixDQUFDO1lBQ2hDLENBQUM7WUFDRCxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN2QixPQUFPLFVBQVUsQ0FBQztZQUNwQixDQUFDO1lBQ0QsSUFBSSxvQkFBb0Is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
|
package/dest/index.d.ts
CHANGED
package/dest/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,WAY9C"}
|
package/dest/index.js
CHANGED
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
import { dirname } from 'path';
|
|
2
2
|
export function injectCommands(program) {
|
|
3
|
-
program
|
|
4
|
-
.command('codegen')
|
|
5
|
-
.argument('<noir-abi-path>', 'Path to the Noir ABI or project dir.')
|
|
6
|
-
.option('-o, --outdir <path>', 'Output folder for the generated code.')
|
|
7
|
-
.option('-f, --force', 'Force code generation even when the contract has not changed.')
|
|
8
|
-
.description('Validates and generates an Aztec Contract ABI from Noir ABI.')
|
|
9
|
-
.action(async (noirAbiPath, { outdir, force }) => {
|
|
3
|
+
program.command('codegen').argument('<noir-abi-path>', 'Path to the Noir ABI or project dir.').option('-o, --outdir <path>', 'Output folder for the generated code.').option('-f, --force', 'Force code generation even when the contract has not changed.').description('Validates and generates an Aztec Contract ABI from Noir ABI.').action(async (noirAbiPath, { outdir, force })=>{
|
|
10
4
|
const { generateCode } = await import('./contract-interface-gen/codegen.js');
|
|
11
|
-
await generateCode(outdir || dirname(noirAbiPath), noirAbiPath, {
|
|
5
|
+
await generateCode(outdir || dirname(noirAbiPath), noirAbiPath, {
|
|
6
|
+
force
|
|
7
|
+
});
|
|
12
8
|
});
|
|
13
9
|
return program;
|
|
14
10
|
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQWdCO0lBQzdDLE9BQU87U0FDSixPQUFPLENBQUMsU0FBUyxDQUFDO1NBQ2xCLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxzQ0FBc0MsQ0FBQztTQUNuRSxNQUFNLENBQUMscUJBQXFCLEVBQUUsdUNBQXVDLENBQUM7U0FDdEUsTUFBTSxDQUFDLGFBQWEsRUFBRSwrREFBK0QsQ0FBQztTQUN0RixXQUFXLENBQUMsOERBQThELENBQUM7U0FDM0UsTUFBTSxDQUFDLEtBQUssRUFBRSxXQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7UUFDdkQsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLHFDQUFxQyxDQUFDLENBQUM7UUFDN0UsTUFBTSxZQUFZLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/builder",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.77.0-testnet-ignition.17",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"clean": "rm -rf ./dest .tsbuildinfo",
|
|
24
24
|
"formatting": "run -T prettier --check ./src && run -T eslint ./src",
|
|
25
25
|
"formatting:fix": "run -T eslint --fix ./src && run -T prettier -w ./src",
|
|
26
|
-
"test": "
|
|
26
|
+
"test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
|
|
27
27
|
},
|
|
28
28
|
"inherits": [
|
|
29
29
|
"../package.common.json"
|
|
@@ -61,14 +61,14 @@
|
|
|
61
61
|
"reporters": [
|
|
62
62
|
"default"
|
|
63
63
|
],
|
|
64
|
-
"testTimeout":
|
|
64
|
+
"testTimeout": 120000,
|
|
65
65
|
"setupFiles": [
|
|
66
66
|
"../../foundation/src/jest/setup.mjs"
|
|
67
67
|
]
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@aztec/foundation": "0.
|
|
71
|
-
"@aztec/
|
|
70
|
+
"@aztec/foundation": "0.77.0-testnet-ignition.17",
|
|
71
|
+
"@aztec/stdlib": "0.77.0-testnet-ignition.17",
|
|
72
72
|
"commander": "^12.1.0"
|
|
73
73
|
},
|
|
74
74
|
"devDependencies": {
|
|
@@ -9,9 +9,8 @@ import {
|
|
|
9
9
|
isAztecAddressStruct,
|
|
10
10
|
isEthAddressStruct,
|
|
11
11
|
isFunctionSelectorStruct,
|
|
12
|
-
isU128Struct,
|
|
13
12
|
isWrappedFieldStruct,
|
|
14
|
-
} from '@aztec/
|
|
13
|
+
} from '@aztec/stdlib/abi';
|
|
15
14
|
|
|
16
15
|
/**
|
|
17
16
|
* Returns the corresponding typescript type for a given Noir type.
|
|
@@ -40,9 +39,6 @@ function abiTypeToTypescript(type: ABIParameter['type']): string {
|
|
|
40
39
|
if (isFunctionSelectorStruct(type)) {
|
|
41
40
|
return 'FunctionSelectorLike';
|
|
42
41
|
}
|
|
43
|
-
if (isU128Struct(type)) {
|
|
44
|
-
return 'U128Like';
|
|
45
|
-
}
|
|
46
42
|
if (isWrappedFieldStruct(type)) {
|
|
47
43
|
return 'WrappedFieldLike';
|
|
48
44
|
}
|
|
@@ -347,7 +343,6 @@ import {
|
|
|
347
343
|
Point,
|
|
348
344
|
type PublicKey,
|
|
349
345
|
PublicKeys,
|
|
350
|
-
type UnencryptedL2Log,
|
|
351
346
|
type Wallet,
|
|
352
347
|
type U128Like,
|
|
353
348
|
type WrappedFieldLike,
|
package/src/index.ts
CHANGED