@aztec/builder 0.71.0 → 0.73.0
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/contract-interface-gen/codegen.js +2 -2
- 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 +13 -9
- package/dest/index.js +2 -2
- package/package.json +3 -3
- package/src/contract-interface-gen/codegen.ts +1 -1
- package/src/contract-interface-gen/typescript.ts +30 -20
- package/src/index.ts +1 -1
|
@@ -46,7 +46,7 @@ async function generateFromNoirAbi(outputPath, noirAbiPath, opts = {}) {
|
|
|
46
46
|
// Prepend ./ for local import if the folder is the same
|
|
47
47
|
relativeArtifactPath = `./${relativeArtifactPath}`;
|
|
48
48
|
}
|
|
49
|
-
const tsWrapper = generateTypescriptContractInterface(aztecAbi, relativeArtifactPath);
|
|
49
|
+
const tsWrapper = await generateTypescriptContractInterface(aztecAbi, relativeArtifactPath);
|
|
50
50
|
const outputFilePath = `${outputPath}/${aztecAbi.name}.ts`;
|
|
51
51
|
await writeFile(outputFilePath, tsWrapper);
|
|
52
52
|
updateCache(fileName, aztecAbi.name, currentHash);
|
|
@@ -83,4 +83,4 @@ async function exists(filePath) {
|
|
|
83
83
|
return false;
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZWdlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC1pbnRlcmZhY2UtZ2VuL2NvZGVnZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXhELE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEYsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRXhCLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXRFLE1BQU0sYUFBYSxHQUFHLHFCQUFxQixDQUFDO0FBQzVDLElBQUksS0FBSyxHQUEyRCxFQUFFLENBQUM7QUFLdkU7O0dBRUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFlBQVksQ0FBQyxVQUFrQixFQUFFLGFBQXFCLEVBQUUsT0FBNEIsRUFBRTtJQUMxRyxNQUFNLFNBQVMsRUFBRSxDQUFDO0lBQ2xCLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNuQixNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUV4QyxJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBTSxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FDekYsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FDN0QsQ0FB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
|
|
@@ -5,5 +5,5 @@ import { type ContractArtifact } from '@aztec/foundation/abi';
|
|
|
5
5
|
* @param artifactImportPath - Optional path to import the artifact (if not set, will be required in the constructor).
|
|
6
6
|
* @returns The corresponding ts code.
|
|
7
7
|
*/
|
|
8
|
-
export declare function generateTypescriptContractInterface(input: ContractArtifact, artifactImportPath?: string): string
|
|
8
|
+
export declare function generateTypescriptContractInterface(input: ContractArtifact, artifactImportPath?: string): Promise<string>;
|
|
9
9
|
//# sourceMappingURL=typescript.d.ts.map
|
|
@@ -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,EAUtB,MAAM,uBAAuB,CAAC;AA4R/B;;;;;GAKG;AACH,wBAAsB,mCAAmC,CAAC,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,EAAE,MAAM,mBA+E7G"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { decodeFunctionSignature, getDefaultInitializer, isAztecAddressStruct, isEthAddressStruct, isFunctionSelectorStruct, isWrappedFieldStruct, } from '@aztec/foundation/abi';
|
|
1
|
+
import { EventSelector, decodeFunctionSignature, getDefaultInitializer, isAztecAddressStruct, isEthAddressStruct, isFunctionSelectorStruct, isU128Struct, isWrappedFieldStruct, } from '@aztec/foundation/abi';
|
|
2
2
|
/**
|
|
3
3
|
* Returns the corresponding typescript type for a given Noir type.
|
|
4
4
|
* @param type - The input Noir type.
|
|
@@ -26,6 +26,9 @@ function abiTypeToTypescript(type) {
|
|
|
26
26
|
if (isFunctionSelectorStruct(type)) {
|
|
27
27
|
return 'FunctionSelectorLike';
|
|
28
28
|
}
|
|
29
|
+
if (isU128Struct(type)) {
|
|
30
|
+
return 'U128Like';
|
|
31
|
+
}
|
|
29
32
|
if (isWrappedFieldStruct(type)) {
|
|
30
33
|
return 'WrappedFieldLike';
|
|
31
34
|
}
|
|
@@ -206,11 +209,11 @@ function generateNotesGetter(input) {
|
|
|
206
209
|
`;
|
|
207
210
|
}
|
|
208
211
|
// events is of type AbiType
|
|
209
|
-
function generateEvents(events) {
|
|
212
|
+
async function generateEvents(events) {
|
|
210
213
|
if (events === undefined) {
|
|
211
214
|
return { events: '', eventDefs: '' };
|
|
212
215
|
}
|
|
213
|
-
const eventsMetadata = events.map(event => {
|
|
216
|
+
const eventsMetadata = await Promise.all(events.map(async (event) => {
|
|
214
217
|
const eventName = event.path.split('::').at(-1);
|
|
215
218
|
const eventDefProps = event.fields.map((field) => `${field.name}: ${abiTypeToTypescript(field.type)}`);
|
|
216
219
|
const eventDef = `
|
|
@@ -222,10 +225,10 @@ function generateEvents(events) {
|
|
|
222
225
|
const eventType = `${eventName}: {abiType: AbiType, eventSelector: EventSelector, fieldNames: string[] }`;
|
|
223
226
|
// Reusing the decodeFunctionSignature
|
|
224
227
|
const eventSignature = decodeFunctionSignature(eventName, event.fields);
|
|
225
|
-
const eventSelector =
|
|
228
|
+
const eventSelector = await EventSelector.fromSignature(eventSignature);
|
|
226
229
|
const eventImpl = `${eventName}: {
|
|
227
230
|
abiType: ${JSON.stringify(event, null, 4)},
|
|
228
|
-
eventSelector: ${eventSelector},
|
|
231
|
+
eventSelector: EventSelector.fromString("${eventSelector}"),
|
|
229
232
|
fieldNames: [${fieldNames}],
|
|
230
233
|
}`;
|
|
231
234
|
return {
|
|
@@ -233,7 +236,7 @@ function generateEvents(events) {
|
|
|
233
236
|
eventType,
|
|
234
237
|
eventImpl,
|
|
235
238
|
};
|
|
236
|
-
});
|
|
239
|
+
}));
|
|
237
240
|
return {
|
|
238
241
|
eventDefs: eventsMetadata.map(({ eventDef }) => eventDef).join('\n'),
|
|
239
242
|
events: `
|
|
@@ -251,7 +254,7 @@ function generateEvents(events) {
|
|
|
251
254
|
* @param artifactImportPath - Optional path to import the artifact (if not set, will be required in the constructor).
|
|
252
255
|
* @returns The corresponding ts code.
|
|
253
256
|
*/
|
|
254
|
-
export function generateTypescriptContractInterface(input, artifactImportPath) {
|
|
257
|
+
export async function generateTypescriptContractInterface(input, artifactImportPath) {
|
|
255
258
|
const methods = input.functions
|
|
256
259
|
.filter(f => !f.isInternal)
|
|
257
260
|
.sort((a, b) => a.name.localeCompare(b.name))
|
|
@@ -263,7 +266,7 @@ export function generateTypescriptContractInterface(input, artifactImportPath) {
|
|
|
263
266
|
const artifactGetter = artifactImportPath && generateArtifactGetter(input.name);
|
|
264
267
|
const storageLayoutGetter = artifactImportPath && generateStorageLayoutGetter(input);
|
|
265
268
|
const notesGetter = artifactImportPath && generateNotesGetter(input);
|
|
266
|
-
const { eventDefs, events } = generateEvents(input.outputs.structs?.events);
|
|
269
|
+
const { eventDefs, events } = await generateEvents(input.outputs.structs?.events);
|
|
267
270
|
return `
|
|
268
271
|
/* Autogenerated file, do not edit! */
|
|
269
272
|
|
|
@@ -298,6 +301,7 @@ import {
|
|
|
298
301
|
PublicKeys,
|
|
299
302
|
type UnencryptedL2Log,
|
|
300
303
|
type Wallet,
|
|
304
|
+
type U128Like,
|
|
301
305
|
type WrappedFieldLike,
|
|
302
306
|
} from '@aztec/aztec.js';
|
|
303
307
|
${artifactStatement}
|
|
@@ -329,4 +333,4 @@ export class ${input.name}Contract extends ContractBase {
|
|
|
329
333
|
}
|
|
330
334
|
`;
|
|
331
335
|
}
|
|
332
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
336
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC1pbnRlcmZhY2UtZ2VuL3R5cGVzY3JpcHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlMLGFBQWEsRUFFYix1QkFBdUIsRUFDdkIscUJBQXFCLEVBQ3JCLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLFlBQVksRUFDWixvQkFBb0IsR0FDckIsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQjs7OztHQUlHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FBQyxJQUEwQjtJQUNyRCxRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsQixLQUFLLE9BQU87WUFDVixPQUFPLFdBQVcsQ0FBQztRQUNyQixLQUFLLFNBQVM7WUFDWixPQUFPLFNBQVMsQ0FBQztRQUNuQixLQUFLLFNBQVM7WUFDWixPQUFPLG1CQUFtQixDQUFDO1FBQzdCLEtBQUssUUFBUTtZQUNYLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLEtBQUssT0FBTztZQUNWLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMvQyxLQUFLLFFBQVE7WUFDWCxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLE9BQU8sZ0JBQWdCLENBQUM7WUFDMUIsQ0FBQztZQUNELElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsT0FBTyxrQkFBa0IsQ0FBQztZQUM1QixDQUFDO1lBQ0QsSUFBSSx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNuQyxPQUFPLHNCQUFzQixDQUFDO1lBQ2hDLENBQUM7WUFDRCxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN2QixPQUFPLFVBQVUsQ0FBQztZQUNwQixDQUFDO1lBQ0QsSUFBSSxvQkFBb0Is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
|
package/dest/index.js
CHANGED
|
@@ -4,7 +4,7 @@ export function injectCommands(program) {
|
|
|
4
4
|
.command('codegen')
|
|
5
5
|
.argument('<noir-abi-path>', 'Path to the Noir ABI or project dir.')
|
|
6
6
|
.option('-o, --outdir <path>', 'Output folder for the generated code.')
|
|
7
|
-
.option('--force', 'Force code generation even when the contract has not changed.')
|
|
7
|
+
.option('-f, --force', 'Force code generation even when the contract has not changed.')
|
|
8
8
|
.description('Validates and generates an Aztec Contract ABI from Noir ABI.')
|
|
9
9
|
.action(async (noirAbiPath, { outdir, force }) => {
|
|
10
10
|
const { generateCode } = await import('./contract-interface-gen/codegen.js');
|
|
@@ -12,4 +12,4 @@ export function injectCommands(program) {
|
|
|
12
12
|
});
|
|
13
13
|
return program;
|
|
14
14
|
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
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.73.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -67,8 +67,8 @@
|
|
|
67
67
|
]
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@aztec/foundation": "0.
|
|
71
|
-
"@aztec/types": "0.
|
|
70
|
+
"@aztec/foundation": "0.73.0",
|
|
71
|
+
"@aztec/types": "0.73.0",
|
|
72
72
|
"commander": "^12.1.0"
|
|
73
73
|
},
|
|
74
74
|
"devDependencies": {
|
|
@@ -60,7 +60,7 @@ async function generateFromNoirAbi(outputPath: string, noirAbiPath: string, opts
|
|
|
60
60
|
relativeArtifactPath = `./${relativeArtifactPath}`;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
const tsWrapper = generateTypescriptContractInterface(aztecAbi, relativeArtifactPath);
|
|
63
|
+
const tsWrapper = await generateTypescriptContractInterface(aztecAbi, relativeArtifactPath);
|
|
64
64
|
const outputFilePath = `${outputPath}/${aztecAbi.name}.ts`;
|
|
65
65
|
|
|
66
66
|
await writeFile(outputFilePath, tsWrapper);
|
|
@@ -2,12 +2,14 @@ import {
|
|
|
2
2
|
type ABIParameter,
|
|
3
3
|
type ABIVariable,
|
|
4
4
|
type ContractArtifact,
|
|
5
|
+
EventSelector,
|
|
5
6
|
type FunctionArtifact,
|
|
6
7
|
decodeFunctionSignature,
|
|
7
8
|
getDefaultInitializer,
|
|
8
9
|
isAztecAddressStruct,
|
|
9
10
|
isEthAddressStruct,
|
|
10
11
|
isFunctionSelectorStruct,
|
|
12
|
+
isU128Struct,
|
|
11
13
|
isWrappedFieldStruct,
|
|
12
14
|
} from '@aztec/foundation/abi';
|
|
13
15
|
|
|
@@ -38,6 +40,9 @@ function abiTypeToTypescript(type: ABIParameter['type']): string {
|
|
|
38
40
|
if (isFunctionSelectorStruct(type)) {
|
|
39
41
|
return 'FunctionSelectorLike';
|
|
40
42
|
}
|
|
43
|
+
if (isU128Struct(type)) {
|
|
44
|
+
return 'U128Like';
|
|
45
|
+
}
|
|
41
46
|
if (isWrappedFieldStruct(type)) {
|
|
42
47
|
return 'WrappedFieldLike';
|
|
43
48
|
}
|
|
@@ -241,38 +246,42 @@ function generateNotesGetter(input: ContractArtifact) {
|
|
|
241
246
|
}
|
|
242
247
|
|
|
243
248
|
// events is of type AbiType
|
|
244
|
-
function generateEvents(events: any[] | undefined) {
|
|
249
|
+
async function generateEvents(events: any[] | undefined) {
|
|
245
250
|
if (events === undefined) {
|
|
246
251
|
return { events: '', eventDefs: '' };
|
|
247
252
|
}
|
|
248
253
|
|
|
249
|
-
const eventsMetadata =
|
|
250
|
-
|
|
254
|
+
const eventsMetadata = await Promise.all(
|
|
255
|
+
events.map(async event => {
|
|
256
|
+
const eventName = event.path.split('::').at(-1);
|
|
251
257
|
|
|
252
|
-
|
|
253
|
-
|
|
258
|
+
const eventDefProps = event.fields.map(
|
|
259
|
+
(field: ABIVariable) => `${field.name}: ${abiTypeToTypescript(field.type)}`,
|
|
260
|
+
);
|
|
261
|
+
const eventDef = `
|
|
254
262
|
export type ${eventName} = {
|
|
255
263
|
${eventDefProps.join('\n')}
|
|
256
264
|
}
|
|
257
265
|
`;
|
|
258
266
|
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
267
|
+
const fieldNames = event.fields.map((field: any) => `"${field.name}"`);
|
|
268
|
+
const eventType = `${eventName}: {abiType: AbiType, eventSelector: EventSelector, fieldNames: string[] }`;
|
|
269
|
+
// Reusing the decodeFunctionSignature
|
|
270
|
+
const eventSignature = decodeFunctionSignature(eventName, event.fields);
|
|
271
|
+
const eventSelector = await EventSelector.fromSignature(eventSignature);
|
|
272
|
+
const eventImpl = `${eventName}: {
|
|
265
273
|
abiType: ${JSON.stringify(event, null, 4)},
|
|
266
|
-
eventSelector: ${eventSelector},
|
|
274
|
+
eventSelector: EventSelector.fromString("${eventSelector}"),
|
|
267
275
|
fieldNames: [${fieldNames}],
|
|
268
276
|
}`;
|
|
269
277
|
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
278
|
+
return {
|
|
279
|
+
eventDef,
|
|
280
|
+
eventType,
|
|
281
|
+
eventImpl,
|
|
282
|
+
};
|
|
283
|
+
}),
|
|
284
|
+
);
|
|
276
285
|
|
|
277
286
|
return {
|
|
278
287
|
eventDefs: eventsMetadata.map(({ eventDef }) => eventDef).join('\n'),
|
|
@@ -292,7 +301,7 @@ function generateEvents(events: any[] | undefined) {
|
|
|
292
301
|
* @param artifactImportPath - Optional path to import the artifact (if not set, will be required in the constructor).
|
|
293
302
|
* @returns The corresponding ts code.
|
|
294
303
|
*/
|
|
295
|
-
export function generateTypescriptContractInterface(input: ContractArtifact, artifactImportPath?: string) {
|
|
304
|
+
export async function generateTypescriptContractInterface(input: ContractArtifact, artifactImportPath?: string) {
|
|
296
305
|
const methods = input.functions
|
|
297
306
|
.filter(f => !f.isInternal)
|
|
298
307
|
.sort((a, b) => a.name.localeCompare(b.name))
|
|
@@ -304,7 +313,7 @@ export function generateTypescriptContractInterface(input: ContractArtifact, art
|
|
|
304
313
|
const artifactGetter = artifactImportPath && generateArtifactGetter(input.name);
|
|
305
314
|
const storageLayoutGetter = artifactImportPath && generateStorageLayoutGetter(input);
|
|
306
315
|
const notesGetter = artifactImportPath && generateNotesGetter(input);
|
|
307
|
-
const { eventDefs, events } = generateEvents(input.outputs.structs?.events);
|
|
316
|
+
const { eventDefs, events } = await generateEvents(input.outputs.structs?.events);
|
|
308
317
|
|
|
309
318
|
return `
|
|
310
319
|
/* Autogenerated file, do not edit! */
|
|
@@ -340,6 +349,7 @@ import {
|
|
|
340
349
|
PublicKeys,
|
|
341
350
|
type UnencryptedL2Log,
|
|
342
351
|
type Wallet,
|
|
352
|
+
type U128Like,
|
|
343
353
|
type WrappedFieldLike,
|
|
344
354
|
} from '@aztec/aztec.js';
|
|
345
355
|
${artifactStatement}
|
package/src/index.ts
CHANGED
|
@@ -6,7 +6,7 @@ export function injectCommands(program: Command) {
|
|
|
6
6
|
.command('codegen')
|
|
7
7
|
.argument('<noir-abi-path>', 'Path to the Noir ABI or project dir.')
|
|
8
8
|
.option('-o, --outdir <path>', 'Output folder for the generated code.')
|
|
9
|
-
.option('--force', 'Force code generation even when the contract has not changed.')
|
|
9
|
+
.option('-f, --force', 'Force code generation even when the contract has not changed.')
|
|
10
10
|
.description('Validates and generates an Aztec Contract ABI from Noir ABI.')
|
|
11
11
|
.action(async (noirAbiPath: string, { outdir, force }) => {
|
|
12
12
|
const { generateCode } = await import('./contract-interface-gen/codegen.js');
|