@aztec/builder 0.55.0 → 0.56.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../src/contract-interface-gen/typescript.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../src/contract-interface-gen/typescript.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,gBAAgB,EAQtB,MAAM,uBAAuB,CAAC;AA+S/B;;;;;GAKG;AACH,wBAAgB,mCAAmC,CAAC,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,EAAE,MAAM,UA6EvG"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getDefaultInitializer, isAztecAddressStruct, isEthAddressStruct, isFunctionSelectorStruct, isWrappedFieldStruct, } from '@aztec/foundation/abi';
|
|
1
|
+
import { decodeFunctionSignature, getDefaultInitializer, isAztecAddressStruct, isEthAddressStruct, isFunctionSelectorStruct, 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.
|
|
@@ -212,20 +212,21 @@ function generateEvents(events) {
|
|
|
212
212
|
}
|
|
213
213
|
const eventsMetadata = events.map(event => {
|
|
214
214
|
const eventName = event.path.split('::').at(-1);
|
|
215
|
-
const eventDefProps = event.fields.map((field) => `${field.name}:
|
|
215
|
+
const eventDefProps = event.fields.map((field) => `${field.name}: ${abiTypeToTypescript(field.type)}`);
|
|
216
216
|
const eventDef = `
|
|
217
217
|
export type ${eventName} = {
|
|
218
218
|
${eventDefProps.join('\n')}
|
|
219
219
|
}
|
|
220
220
|
`;
|
|
221
221
|
const fieldNames = event.fields.map((field) => `"${field.name}"`);
|
|
222
|
-
const eventType = `${eventName}: {decode: (payload: L1EventPayload | undefined) => ${eventName} | undefined, eventSelector: EventSelector, fieldNames: string[] }`;
|
|
222
|
+
const eventType = `${eventName}: {decode: (payload: L1EventPayload | UnencryptedL2Log | undefined) => ${eventName} | undefined, eventSelector: EventSelector, fieldNames: string[] }`;
|
|
223
|
+
// Reusing the decodeFunctionSignature
|
|
224
|
+
const eventSignature = decodeFunctionSignature(eventName, event.fields);
|
|
225
|
+
const eventSelector = `EventSelector.fromSignature('${eventSignature}')`;
|
|
223
226
|
const eventImpl = `${eventName}: {
|
|
224
|
-
decode: this.decodeEvent(${
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
eventSelector: EventSelector.fromSignature('${eventName}(${event.fields.map(() => 'Field').join(',')})'),
|
|
228
|
-
fieldNames: [${fieldNames}],
|
|
227
|
+
decode: this.decodeEvent(${eventSelector}, ${JSON.stringify(event, null, 4)}),
|
|
228
|
+
eventSelector: ${eventSelector},
|
|
229
|
+
fieldNames: [${fieldNames}],
|
|
229
230
|
}`;
|
|
230
231
|
return {
|
|
231
232
|
eventDef,
|
|
@@ -237,31 +238,32 @@ function generateEvents(events) {
|
|
|
237
238
|
eventDefs: eventsMetadata.map(({ eventDef }) => eventDef).join('\n'),
|
|
238
239
|
events: `
|
|
239
240
|
// Partial application is chosen is to avoid the duplication of so much codegen.
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
if (payload.event.items.length !== fieldsLength) {
|
|
249
|
-
throw new Error(
|
|
250
|
-
'Something is weird here, we have matching EventSelectors, but the actual payload has mismatched length',
|
|
251
|
-
);
|
|
252
|
-
}
|
|
241
|
+
private static decodeEvent<T>(
|
|
242
|
+
eventSelector: EventSelector,
|
|
243
|
+
eventType: AbiType,
|
|
244
|
+
): (payload: L1EventPayload | UnencryptedL2Log | undefined) => T | undefined {
|
|
245
|
+
return (payload: L1EventPayload | UnencryptedL2Log | undefined): T | undefined => {
|
|
246
|
+
if (payload === undefined) {
|
|
247
|
+
return undefined;
|
|
248
|
+
}
|
|
253
249
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
250
|
+
if (payload instanceof L1EventPayload) {
|
|
251
|
+
if (!eventSelector.equals(payload.eventTypeId)) {
|
|
252
|
+
return undefined;
|
|
253
|
+
}
|
|
254
|
+
return decodeFromAbi([eventType], payload.event.items) as T;
|
|
255
|
+
} else {
|
|
256
|
+
let items = [];
|
|
257
|
+
for (let i = 0; i < payload.data.length; i += 32) {
|
|
258
|
+
items.push(new Fr(payload.data.subarray(i, i + 32)));
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
return decodeFromAbi([eventType], items) as T;
|
|
262
|
+
}
|
|
263
|
+
};
|
|
264
|
+
}
|
|
263
265
|
|
|
264
|
-
|
|
266
|
+
public static get events(): { ${eventsMetadata.map(({ eventType }) => eventType).join(', ')} } {
|
|
265
267
|
return {
|
|
266
268
|
${eventsMetadata.map(({ eventImpl }) => eventImpl).join(',\n')}
|
|
267
269
|
};
|
|
@@ -293,6 +295,7 @@ export function generateTypescriptContractInterface(input, artifactImportPath) {
|
|
|
293
295
|
|
|
294
296
|
/* eslint-disable */
|
|
295
297
|
import {
|
|
298
|
+
type AbiType,
|
|
296
299
|
AztecAddress,
|
|
297
300
|
type AztecAddressLike,
|
|
298
301
|
CompleteAddress,
|
|
@@ -304,6 +307,7 @@ import {
|
|
|
304
307
|
type ContractMethod,
|
|
305
308
|
type ContractStorageLayout,
|
|
306
309
|
type ContractNotes,
|
|
310
|
+
decodeFromAbi,
|
|
307
311
|
DeployMethod,
|
|
308
312
|
EthAddress,
|
|
309
313
|
type EthAddressLike,
|
|
@@ -317,6 +321,7 @@ import {
|
|
|
317
321
|
NoteSelector,
|
|
318
322
|
Point,
|
|
319
323
|
type PublicKey,
|
|
324
|
+
type UnencryptedL2Log,
|
|
320
325
|
type Wallet,
|
|
321
326
|
type WrappedFieldLike,
|
|
322
327
|
} from '@aztec/aztec.js';
|
|
@@ -349,4 +354,4 @@ export class ${input.name}Contract extends ContractBase {
|
|
|
349
354
|
}
|
|
350
355
|
`;
|
|
351
356
|
}
|
|
352
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
357
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC1pbnRlcmZhY2UtZ2VuL3R5cGVzY3JpcHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUtMLHVCQUF1QixFQUN2QixxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQix3QkFBd0IsRUFDeEIsb0JBQW9CLEdBQ3JCLE1BQU0sdUJBQXVCLENBQUM7QUFFL0I7Ozs7R0FJRztBQUNILFNBQVMsbUJBQW1CLENBQUMsSUFBMEI7SUFDckQsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEIsS0FBSyxPQUFPO1lBQ1YsT0FBTyxXQUFXLENBQUM7UUFDckIsS0FBSyxTQUFTO1lBQ1osT0FBTyxTQUFTLENBQUM7UUFDbkIsS0FBSyxTQUFTO1lBQ1osT0FBTyxtQkFBbUIsQ0FBQztRQUM3QixLQUFLLFFBQVE7WUFDWCxPQUFPLFFBQVEsQ0FBQztRQUNsQixLQUFLLE9BQU87WUFDVixPQUFPLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDL0MsS0FBSyxRQUFRO1lBQ1gsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUM3QixPQUFPLGdCQUFnQixDQUFDO1lBQzFCLENBQUM7WUFDRCxJQUFJLG9CQUFvQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQy9CLE9BQU8sa0JBQWtCLENBQUM7WUFDNUIsQ0FBQztZQUNELElBQUksd0JBQXdCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDbkMsT0FBTyxzQkFBc0IsQ0FBQztZQUNoQyxDQUFDO1lBQ0QsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUMvQixPQUFPLGtCQUFrQixDQUFDO1lBQzVCLENBQUM7WUFDRCxPQUFPLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FB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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/builder",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.56.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -65,8 +65,8 @@
|
|
|
65
65
|
]
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {
|
|
68
|
-
"@aztec/foundation": "0.
|
|
69
|
-
"@aztec/types": "0.
|
|
68
|
+
"@aztec/foundation": "0.56.0",
|
|
69
|
+
"@aztec/types": "0.56.0",
|
|
70
70
|
"commander": "^12.1.0"
|
|
71
71
|
},
|
|
72
72
|
"devDependencies": {
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
type ABIParameter,
|
|
3
|
+
type ABIVariable,
|
|
3
4
|
type ContractArtifact,
|
|
4
5
|
type FunctionArtifact,
|
|
6
|
+
decodeFunctionSignature,
|
|
5
7
|
getDefaultInitializer,
|
|
6
8
|
isAztecAddressStruct,
|
|
7
9
|
isEthAddressStruct,
|
|
@@ -247,7 +249,7 @@ function generateEvents(events: any[] | undefined) {
|
|
|
247
249
|
const eventsMetadata = events.map(event => {
|
|
248
250
|
const eventName = event.path.split('::').at(-1);
|
|
249
251
|
|
|
250
|
-
const eventDefProps = event.fields.map((field:
|
|
252
|
+
const eventDefProps = event.fields.map((field: ABIVariable) => `${field.name}: ${abiTypeToTypescript(field.type)}`);
|
|
251
253
|
const eventDef = `
|
|
252
254
|
export type ${eventName} = {
|
|
253
255
|
${eventDefProps.join('\n')}
|
|
@@ -255,14 +257,14 @@ function generateEvents(events: any[] | undefined) {
|
|
|
255
257
|
`;
|
|
256
258
|
|
|
257
259
|
const fieldNames = event.fields.map((field: any) => `"${field.name}"`);
|
|
258
|
-
const eventType = `${eventName}: {decode: (payload: L1EventPayload | undefined) => ${eventName} | undefined, eventSelector: EventSelector, fieldNames: string[] }`;
|
|
259
|
-
|
|
260
|
+
const eventType = `${eventName}: {decode: (payload: L1EventPayload | UnencryptedL2Log | undefined) => ${eventName} | undefined, eventSelector: EventSelector, fieldNames: string[] }`;
|
|
261
|
+
// Reusing the decodeFunctionSignature
|
|
262
|
+
const eventSignature = decodeFunctionSignature(eventName, event.fields);
|
|
263
|
+
const eventSelector = `EventSelector.fromSignature('${eventSignature}')`;
|
|
260
264
|
const eventImpl = `${eventName}: {
|
|
261
|
-
decode: this.decodeEvent(${
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
eventSelector: EventSelector.fromSignature('${eventName}(${event.fields.map(() => 'Field').join(',')})'),
|
|
265
|
-
fieldNames: [${fieldNames}],
|
|
265
|
+
decode: this.decodeEvent(${eventSelector}, ${JSON.stringify(event, null, 4)}),
|
|
266
|
+
eventSelector: ${eventSelector},
|
|
267
|
+
fieldNames: [${fieldNames}],
|
|
266
268
|
}`;
|
|
267
269
|
|
|
268
270
|
return {
|
|
@@ -276,31 +278,32 @@ function generateEvents(events: any[] | undefined) {
|
|
|
276
278
|
eventDefs: eventsMetadata.map(({ eventDef }) => eventDef).join('\n'),
|
|
277
279
|
events: `
|
|
278
280
|
// Partial application is chosen is to avoid the duplication of so much codegen.
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
281
|
+
private static decodeEvent<T>(
|
|
282
|
+
eventSelector: EventSelector,
|
|
283
|
+
eventType: AbiType,
|
|
284
|
+
): (payload: L1EventPayload | UnencryptedL2Log | undefined) => T | undefined {
|
|
285
|
+
return (payload: L1EventPayload | UnencryptedL2Log | undefined): T | undefined => {
|
|
286
|
+
if (payload === undefined) {
|
|
287
|
+
return undefined;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
if (payload instanceof L1EventPayload) {
|
|
291
|
+
if (!eventSelector.equals(payload.eventTypeId)) {
|
|
292
|
+
return undefined;
|
|
293
|
+
}
|
|
294
|
+
return decodeFromAbi([eventType], payload.event.items) as T;
|
|
295
|
+
} else {
|
|
296
|
+
let items = [];
|
|
297
|
+
for (let i = 0; i < payload.data.length; i += 32) {
|
|
298
|
+
items.push(new Fr(payload.data.subarray(i, i + 32)));
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
return decodeFromAbi([eventType], items) as T;
|
|
302
|
+
}
|
|
303
|
+
};
|
|
304
|
+
}
|
|
302
305
|
|
|
303
|
-
|
|
306
|
+
public static get events(): { ${eventsMetadata.map(({ eventType }) => eventType).join(', ')} } {
|
|
304
307
|
return {
|
|
305
308
|
${eventsMetadata.map(({ eventImpl }) => eventImpl).join(',\n')}
|
|
306
309
|
};
|
|
@@ -334,6 +337,7 @@ export function generateTypescriptContractInterface(input: ContractArtifact, art
|
|
|
334
337
|
|
|
335
338
|
/* eslint-disable */
|
|
336
339
|
import {
|
|
340
|
+
type AbiType,
|
|
337
341
|
AztecAddress,
|
|
338
342
|
type AztecAddressLike,
|
|
339
343
|
CompleteAddress,
|
|
@@ -345,6 +349,7 @@ import {
|
|
|
345
349
|
type ContractMethod,
|
|
346
350
|
type ContractStorageLayout,
|
|
347
351
|
type ContractNotes,
|
|
352
|
+
decodeFromAbi,
|
|
348
353
|
DeployMethod,
|
|
349
354
|
EthAddress,
|
|
350
355
|
type EthAddressLike,
|
|
@@ -358,6 +363,7 @@ import {
|
|
|
358
363
|
NoteSelector,
|
|
359
364
|
Point,
|
|
360
365
|
type PublicKey,
|
|
366
|
+
type UnencryptedL2Log,
|
|
361
367
|
type Wallet,
|
|
362
368
|
type WrappedFieldLike,
|
|
363
369
|
} from '@aztec/aztec.js';
|