@aztec/stdlib 0.78.1 → 0.80.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/abi/abi.d.ts CHANGED
@@ -808,10 +808,10 @@ export type FieldLayout = {
808
808
  export interface ContractArtifact {
809
809
  /** The name of the contract. */
810
810
  name: string;
811
- /** The version of compiler used to create this artifact */
812
- aztecNrVersion?: string;
813
- /** The functions of the contract. */
811
+ /** The functions of the contract. Includes private and unconstrained functions, plus the public dispatch function. */
814
812
  functions: FunctionArtifact[];
813
+ /** The public functions of the contract, excluding dispatch. */
814
+ nonDispatchPublicFunctions: FunctionAbi[];
815
815
  /** The outputs of the contract. */
816
816
  outputs: {
817
817
  structs: Record<string, AbiType[]>;
@@ -828,6 +828,9 @@ export declare const ContractArtifactSchema: ZodFor<ContractArtifact>;
828
828
  export declare function getFunctionArtifactByName(artifact: ContractArtifact, functionName: string): FunctionArtifact;
829
829
  /** Gets a function artifact including debug metadata given its name or selector. */
830
830
  export declare function getFunctionArtifact(artifact: ContractArtifact, functionNameOrSelector: string | FunctionSelector): Promise<FunctionArtifact>;
831
+ /** Gets all function abis */
832
+ export declare function getAllFunctionAbis(artifact: ContractArtifact): FunctionAbi[];
833
+ export declare function parseDebugSymbols(debugSymbols: string): DebugInfo[];
831
834
  /**
832
835
  * Gets the debug metadata of a given function from the contract artifact
833
836
  * @param artifact - The contract build artifact
@@ -842,12 +845,12 @@ export declare function getFunctionDebugMetadata(contractArtifact: ContractArtif
842
845
  * @param contractArtifact - The contract artifact.
843
846
  * @returns An initializer function, or none if there are no functions flagged as initializers in the contract.
844
847
  */
845
- export declare function getDefaultInitializer(contractArtifact: ContractArtifact): FunctionArtifact | undefined;
848
+ export declare function getDefaultInitializer(contractArtifact: ContractArtifact): FunctionAbi | undefined;
846
849
  /**
847
850
  * Returns an initializer from the contract.
848
851
  * @param initializerNameOrArtifact - The name of the constructor, or the artifact of the constructor, or undefined
849
852
  * to pick the default initializer.
850
853
  */
851
- export declare function getInitializer(contract: ContractArtifact, initializerNameOrArtifact: string | undefined | FunctionArtifact): FunctionArtifact | undefined;
854
+ export declare function getInitializer(contract: ContractArtifact, initializerNameOrArtifact: string | undefined | FunctionArtifact): FunctionAbi | undefined;
852
855
  export {};
853
856
  //# sourceMappingURL=abi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../../src/abi/abi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../../src/abi/abi.ts"],"names":[],"mappings":"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"}
package/dest/abi/abi.js CHANGED
@@ -156,8 +156,8 @@ export const ContractNoteSchema = z.object({
156
156
  });
157
157
  export const ContractArtifactSchema = z.object({
158
158
  name: z.string(),
159
- aztecNrVersion: z.string().optional(),
160
159
  functions: z.array(FunctionArtifactSchema),
160
+ nonDispatchPublicFunctions: z.array(FunctionAbiSchema),
161
161
  outputs: z.object({
162
162
  structs: z.record(z.array(AbiTypeSchema)).transform((structs)=>{
163
163
  for (const [key, value] of Object.entries(structs)){
@@ -213,6 +213,15 @@ export function getFunctionArtifactByName(artifact, functionName) {
213
213
  debug: debugMetadata
214
214
  };
215
215
  }
216
+ /** Gets all function abis */ export function getAllFunctionAbis(artifact) {
217
+ return artifact.functions.map((f)=>f).concat(artifact.nonDispatchPublicFunctions || []);
218
+ }
219
+ export function parseDebugSymbols(debugSymbols) {
220
+ return JSON.parse(inflate(Buffer.from(debugSymbols, 'base64'), {
221
+ to: 'string',
222
+ raw: true
223
+ })).debug_infos;
224
+ }
216
225
  /**
217
226
  * Gets the debug metadata of a given function from the contract artifact
218
227
  * @param artifact - The contract build artifact
@@ -222,15 +231,12 @@ export function getFunctionArtifactByName(artifact, functionName) {
222
231
  try {
223
232
  if (functionArtifact.debugSymbols && contractArtifact.fileMap) {
224
233
  // TODO(https://github.com/AztecProtocol/aztec-packages/issues/10546) investigate why debugMetadata is so big for some tests.
225
- const programDebugSymbols = JSON.parse(inflate(Buffer.from(functionArtifact.debugSymbols, 'base64'), {
226
- to: 'string',
227
- raw: true
228
- }));
234
+ const programDebugSymbols = parseDebugSymbols(functionArtifact.debugSymbols);
229
235
  // TODO(https://github.com/AztecProtocol/aztec-packages/issues/5813)
230
236
  // We only support handling debug info for the contract function entry point.
231
237
  // So for now we simply index into the first debug info.
232
238
  return {
233
- debugSymbols: programDebugSymbols.debug_infos[0],
239
+ debugSymbols: programDebugSymbols[0],
234
240
  files: contractArtifact.fileMap
235
241
  };
236
242
  }
@@ -252,7 +258,8 @@ export function getFunctionArtifactByName(artifact, functionName) {
252
258
  * @param contractArtifact - The contract artifact.
253
259
  * @returns An initializer function, or none if there are no functions flagged as initializers in the contract.
254
260
  */ export function getDefaultInitializer(contractArtifact) {
255
- const initializers = contractArtifact.functions.filter((f)=>f.isInitializer);
261
+ const functionAbis = getAllFunctionAbis(contractArtifact);
262
+ const initializers = functionAbis.filter((f)=>f.isInitializer);
256
263
  return initializers.length > 1 ? initializers.find((f)=>f.name === 'constructor') ?? initializers.find((f)=>f.name === 'initializer') ?? initializers.find((f)=>f.parameters?.length === 0) ?? initializers.find((f)=>f.functionType === "private") ?? initializers[0] : initializers[0];
257
264
  }
258
265
  /**
@@ -261,7 +268,8 @@ export function getFunctionArtifactByName(artifact, functionName) {
261
268
  * to pick the default initializer.
262
269
  */ export function getInitializer(contract, initializerNameOrArtifact) {
263
270
  if (typeof initializerNameOrArtifact === 'string') {
264
- const found = contract.functions.find((f)=>f.name === initializerNameOrArtifact);
271
+ const functionAbis = getAllFunctionAbis(contract);
272
+ const found = functionAbis.find((f)=>f.name === initializerNameOrArtifact);
265
273
  if (!found) {
266
274
  throw new Error(`Constructor method ${initializerNameOrArtifact} not found in contract artifact`);
267
275
  } else if (!found.isInitializer) {
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
2
  /// <reference types="node" resolution-mode="require"/>
3
- import { type ContractArtifact } from '../abi/index.js';
3
+ import { type ContractArtifact, type FunctionArtifact } from '../abi/index.js';
4
4
  import { type NoirCompiledContract } from '../noir/index.js';
5
5
  /**
6
6
  * Serializes a contract artifact to a buffer for storage.
@@ -16,8 +16,23 @@ export declare function contractArtifactToBuffer(artifact: ContractArtifact): Bu
16
16
  export declare function contractArtifactFromBuffer(buffer: Buffer): Promise<ContractArtifact>;
17
17
  /**
18
18
  * Gets nargo build output and returns a valid contract artifact instance.
19
+ * Does not include public bytecode, apart from the public_dispatch function.
19
20
  * @param input - Input object as generated by nargo compile.
20
21
  * @returns A valid contract artifact instance.
21
22
  */
22
23
  export declare function loadContractArtifact(input: NoirCompiledContract): ContractArtifact;
24
+ /**
25
+ * Gets nargo build output and returns a valid contract artifact instance.
26
+ * Differs from loadContractArtifact() by retaining all bytecode.
27
+ * @param input - Input object as generated by nargo compile.
28
+ * @returns A valid contract artifact instance.
29
+ */
30
+ export declare function loadContractArtifactForPublic(input: NoirCompiledContract): ContractArtifact;
31
+ /** Function from a noir contract compilation artifact */
32
+ type NoirCompiledContractFunction = NoirCompiledContract['functions'][number];
33
+ /**
34
+ * Returns true if we should retain bytecode
35
+ */
36
+ export declare function retainBytecode(input: NoirCompiledContractFunction | FunctionArtifact): boolean;
37
+ export {};
23
38
  //# sourceMappingURL=contract_artifact.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract_artifact.d.ts","sourceRoot":"","sources":["../../src/abi/contract_artifact.ts"],"names":[],"mappings":";;AAEA,OAAO,EAKL,KAAK,gBAAgB,EAStB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAML,KAAK,oBAAoB,EAC1B,MAAM,kBAAkB,CAAC;AAE1B;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAE3E;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAEpF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,oBAAoB,GAAG,gBAAgB,CAKlF"}
1
+ {"version":3,"file":"contract_artifact.d.ts","sourceRoot":"","sources":["../../src/abi/contract_artifact.ts"],"names":[],"mappings":";;AAEA,OAAO,EAKL,KAAK,gBAAgB,EAKrB,KAAK,gBAAgB,EAKtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAML,KAAK,oBAAoB,EAC1B,MAAM,kBAAkB,CAAC;AAE1B;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAE3E;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAEpF;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,oBAAoB,GAAG,gBAAgB,CAKlF;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,oBAAoB,GAAG,gBAAgB,CAE3F;AAoDD,yDAAyD;AACzD,KAAK,4BAA4B,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9E;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,4BAA4B,GAAG,gBAAgB,GAAG,OAAO,CAI9F"}
@@ -17,6 +17,7 @@ import { AZTEC_INITIALIZER_ATTRIBUTE, AZTEC_INTERNAL_ATTRIBUTE, AZTEC_PRIVATE_AT
17
17
  }
18
18
  /**
19
19
  * Gets nargo build output and returns a valid contract artifact instance.
20
+ * Does not include public bytecode, apart from the public_dispatch function.
20
21
  * @param input - Input object as generated by nargo compile.
21
22
  * @returns A valid contract artifact instance.
22
23
  */ export function loadContractArtifact(input) {
@@ -25,6 +26,14 @@ import { AZTEC_INITIALIZER_ATTRIBUTE, AZTEC_INTERNAL_ATTRIBUTE, AZTEC_PRIVATE_AT
25
26
  }
26
27
  return generateContractArtifact(input);
27
28
  }
29
+ /**
30
+ * Gets nargo build output and returns a valid contract artifact instance.
31
+ * Differs from loadContractArtifact() by retaining all bytecode.
32
+ * @param input - Input object as generated by nargo compile.
33
+ * @returns A valid contract artifact instance.
34
+ */ export function loadContractArtifactForPublic(input) {
35
+ return generateContractArtifactForPublic(input);
36
+ }
28
37
  /**
29
38
  * Checks if the given input looks like a valid ContractArtifact. The check is not exhaustive,
30
39
  * and it's just meant to differentiate between nargo raw build artifacts and the ones
@@ -49,6 +58,11 @@ import { AZTEC_INITIALIZER_ATTRIBUTE, AZTEC_INTERNAL_ATTRIBUTE, AZTEC_PRIVATE_AT
49
58
  if (typeof fn.functionType !== 'string') {
50
59
  return false;
51
60
  }
61
+ if (!retainBytecode(fn) && fn.bytecode.length) {
62
+ // We want to remove the bytecode of public fns (apart from the dispatch fn) to save space
63
+ // If the input is private-only, we don't need to use generateContractArtifact() below
64
+ return false;
65
+ }
52
66
  }
53
67
  return true;
54
68
  }
@@ -67,11 +81,17 @@ import { AZTEC_INITIALIZER_ATTRIBUTE, AZTEC_INTERNAL_ATTRIBUTE, AZTEC_PRIVATE_AT
67
81
  };
68
82
  }
69
83
  /**
70
- * Generates a function build artifact.
84
+ * Returns true if we should retain bytecode
85
+ */ export function retainBytecode(input) {
86
+ const functionType = input.functionType ?? getFunctionType(input);
87
+ return functionType !== FunctionType.PUBLIC || input.name == 'public_dispatch';
88
+ }
89
+ /**
90
+ * Generates a function abi.
71
91
  * @param fn - Noir function entry.
72
92
  * @param contract - Parent contract.
73
- * @returns Function artifact.
74
- */ function generateFunctionArtifact(fn, contract) {
93
+ * @returns Function abi.
94
+ */ function generateFunctionAbi(fn, contract) {
75
95
  if (fn.custom_attributes === undefined) {
76
96
  throw new Error(`No custom attributes found for contract function ${fn.name}. Try rebuilding the contract with the latest nargo version.`);
77
97
  }
@@ -112,12 +132,23 @@ import { AZTEC_INITIALIZER_ATTRIBUTE, AZTEC_INTERNAL_ATTRIBUTE, AZTEC_PRIVATE_AT
112
132
  isInitializer: fn.custom_attributes.includes(AZTEC_INITIALIZER_ATTRIBUTE),
113
133
  parameters,
114
134
  returnTypes,
115
- bytecode: fn.bytecode,
116
- debugSymbols: fn.debug_symbols,
117
135
  errorTypes: fn.abi.error_types,
118
136
  ...fn.assert_messages ? {
119
137
  assertMessages: fn.assert_messages
120
- } : undefined,
138
+ } : undefined
139
+ };
140
+ }
141
+ /**
142
+ * Generates a function build artifact.
143
+ * @param fn - Noir function entry.
144
+ * @param contract - Parent contract.
145
+ * @returns Function artifact.
146
+ */ function generateFunctionArtifact(fn, contract) {
147
+ const abi = generateFunctionAbi(fn, contract);
148
+ return {
149
+ ...abi,
150
+ bytecode: fn.bytecode,
151
+ debugSymbols: fn.debug_symbols,
121
152
  ...fn.verification_key ? {
122
153
  verificationKey: fn.verification_key
123
154
  } : undefined
@@ -212,20 +243,39 @@ function getFunctionType(fn) {
212
243
  }
213
244
  /**
214
245
  * Given a Nargo output generates an Aztec-compatible contract artifact.
246
+ * Does not include public bytecode, apart from the public_dispatch function.
247
+ * @param compiled - Noir build output.
248
+ * @returns Aztec contract build artifact.
249
+ */ function generateContractArtifact(contract) {
250
+ try {
251
+ return ContractArtifactSchema.parse({
252
+ name: contract.name,
253
+ functions: contract.functions.filter((f)=>retainBytecode(f)).map((f)=>generateFunctionArtifact(f, contract)),
254
+ nonDispatchPublicFunctions: contract.functions.filter((f)=>!retainBytecode(f)).map((f)=>generateFunctionAbi(f, contract)),
255
+ outputs: contract.outputs,
256
+ storageLayout: getStorageLayout(contract),
257
+ notes: getNoteTypes(contract),
258
+ fileMap: contract.file_map
259
+ });
260
+ } catch (err) {
261
+ throw new Error(`Could not generate contract artifact for ${contract.name}: ${err}`);
262
+ }
263
+ }
264
+ /**
265
+ * Given a Nargo output generates an Aztec-compatible contract artifact.
266
+ * Retains all public bytecode.
215
267
  * @param compiled - Noir build output.
216
268
  * @returns Aztec contract build artifact.
217
- */ function generateContractArtifact(contract, aztecNrVersion) {
269
+ */ function generateContractArtifactForPublic(contract) {
218
270
  try {
219
271
  return ContractArtifactSchema.parse({
220
272
  name: contract.name,
221
273
  functions: contract.functions.map((f)=>generateFunctionArtifact(f, contract)),
274
+ nonDispatchPublicFunctions: contract.functions.filter((f)=>!retainBytecode(f)).map((f)=>generateFunctionAbi(f, contract)),
222
275
  outputs: contract.outputs,
223
276
  storageLayout: getStorageLayout(contract),
224
277
  notes: getNoteTypes(contract),
225
- fileMap: contract.file_map,
226
- ...aztecNrVersion ? {
227
- aztecNrVersion
228
- } : {}
278
+ fileMap: contract.file_map
229
279
  });
230
280
  } catch (err) {
231
281
  throw new Error(`Could not generate contract artifact for ${contract.name}: ${err}`);
@@ -1 +1 @@
1
- {"version":3,"file":"contract_class.d.ts","sourceRoot":"","sources":["../../src/contract/contract_class.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAkC,MAAM,iBAAiB,CAAC;AAG/G,OAAO,EAAE,KAAK,uBAAuB,EAAsC,MAAM,wBAAwB,CAAC;AAC1G,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAkB,MAAM,uBAAuB,CAAC;AAEhG,oDAAoD;AACpD,KAAK,wBAAwB,GAAG,gBAAgB,GAAG;IAAE,YAAY,EAAE,EAAE,CAAA;CAAE,CAAC;AAKxE,oEAAoE;AACpE,wBAAsB,4BAA4B,CAChD,QAAQ,EAAE,gBAAgB,GAAG,wBAAwB,GACpD,OAAO,CAAC,mBAAmB,GAAG,uBAAuB,CAAC,CA0CxD;AAED,wBAAsB,2CAA2C,CAC/D,CAAC,EAAE,gBAAgB,GAClB,OAAO,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,CAKpD;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,CAAC,EAAE,gBAAgB,eAKnE"}
1
+ {"version":3,"file":"contract_class.d.ts","sourceRoot":"","sources":["../../src/contract/contract_class.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAkC,MAAM,iBAAiB,CAAC;AAG/G,OAAO,EAAE,KAAK,uBAAuB,EAAsC,MAAM,wBAAwB,CAAC;AAC1G,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAkB,MAAM,uBAAuB,CAAC;AAEhG,oDAAoD;AACpD,KAAK,wBAAwB,GAAG,gBAAgB,GAAG;IAAE,YAAY,EAAE,EAAE,CAAA;CAAE,CAAC;AAKxE,oEAAoE;AACpE,wBAAsB,4BAA4B,CAChD,QAAQ,EAAE,gBAAgB,GAAG,wBAAwB,GACpD,OAAO,CAAC,mBAAmB,GAAG,uBAAuB,CAAC,CA4CxD;AAED,wBAAsB,2CAA2C,CAC/D,CAAC,EAAE,gBAAgB,GAClB,OAAO,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,CAKpD;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,CAAC,EAAE,gBAAgB,eAKnE"}
@@ -9,6 +9,8 @@ const cmpFunctionArtifacts = (a, b)=>a.selector.toField().cmp(b.selector.toField
9
9
  /** Creates a ContractClass from a contract compilation artifact. */ export async function getContractClassFromArtifact(artifact) {
10
10
  const artifactHash = 'artifactHash' in artifact ? artifact.artifactHash : await computeArtifactHash(artifact);
11
11
  const publicFunctions = artifact.functions.filter((f)=>f.functionType === FunctionType.PUBLIC);
12
+ // TODO(#8985): ContractArtifact.functions should ensure that the below only contains the public dispatch function
13
+ // So we can likely remove this and just use the below to assign the dispatch.
12
14
  const artifactPublicFunctions = await Promise.all(publicFunctions.map(async (f)=>({
13
15
  selector: await FunctionSelector.fromNameAndParameters(f.name, f.parameters),
14
16
  bytecode: f.bytecode
@@ -3,7 +3,7 @@
3
3
  import { Fr } from '@aztec/foundation/fields';
4
4
  import { BufferReader } from '@aztec/foundation/serialize';
5
5
  import type { FieldsOf } from '@aztec/foundation/types';
6
- import { type ContractArtifact, type FunctionArtifact } from '../abi/index.js';
6
+ import { type ContractArtifact, type FunctionAbi } from '../abi/index.js';
7
7
  import { AztecAddress } from '../aztec-address/index.js';
8
8
  import { PublicKeys } from '../keys/public_keys.js';
9
9
  import type { ContractInstance, ContractInstanceWithAddress } from './interfaces/contract_instance.js';
@@ -30,7 +30,7 @@ export declare class SerializableContractInstance {
30
30
  * @returns - The contract instance
31
31
  */
32
32
  export declare function getContractInstanceFromDeployParams(artifact: ContractArtifact, opts: {
33
- constructorArtifact?: FunctionArtifact | string;
33
+ constructorArtifact?: FunctionAbi | string;
34
34
  constructorArgs?: any[];
35
35
  skipArgsDecoding?: boolean;
36
36
  salt?: Fr;
@@ -1 +1 @@
1
- {"version":3,"file":"contract_instance.d.ts","sourceRoot":"","sources":["../../src/contract/contract_instance.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAiC,MAAM,6BAA6B,CAAC;AAC1F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAA2C,MAAM,iBAAiB,CAAC;AACxH,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAMpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAIvG,qBAAa,4BAA4B;IACvC,SAAgB,OAAO,IAAW;IAClC,SAAgB,IAAI,EAAE,EAAE,CAAC;IACzB,SAAgB,QAAQ,EAAE,YAAY,CAAC;IACvC,SAAgB,sBAAsB,EAAE,EAAE,CAAC;IAC3C,SAAgB,uBAAuB,EAAE,EAAE,CAAC;IAC5C,SAAgB,kBAAkB,EAAE,EAAE,CAAC;IACvC,SAAgB,UAAU,EAAE,UAAU,CAAC;gBAE3B,QAAQ,EAAE,gBAAgB;IAY/B,QAAQ;IAYf,+DAA+D;IAC/D,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,2BAA2B;IAI/D,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,YAAY;WAa1C,MAAM,CAAC,IAAI,GAAE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAM;IAalE,MAAM,CAAC,OAAO;CAWf;AAED;;;;;GAKG;AACH,wBAAsB,mCAAmC,CACvD,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE;IACJ,mBAAmB,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAAC;IAChD,eAAe,CAAC,EAAE,GAAG,EAAE,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,IAAI,CAAC,EAAE,EAAE,CAAC;IACV,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB,GACA,OAAO,CAAC,2BAA2B,CAAC,CA0BtC"}
1
+ {"version":3,"file":"contract_instance.d.ts","sourceRoot":"","sources":["../../src/contract/contract_instance.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAiC,MAAM,6BAA6B,CAAC;AAC1F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAKjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAMpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAIvG,qBAAa,4BAA4B;IACvC,SAAgB,OAAO,IAAW;IAClC,SAAgB,IAAI,EAAE,EAAE,CAAC;IACzB,SAAgB,QAAQ,EAAE,YAAY,CAAC;IACvC,SAAgB,sBAAsB,EAAE,EAAE,CAAC;IAC3C,SAAgB,uBAAuB,EAAE,EAAE,CAAC;IAC5C,SAAgB,kBAAkB,EAAE,EAAE,CAAC;IACvC,SAAgB,UAAU,EAAE,UAAU,CAAC;gBAE3B,QAAQ,EAAE,gBAAgB;IAY/B,QAAQ;IAYf,+DAA+D;IAC/D,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,2BAA2B;IAI/D,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,YAAY;WAa1C,MAAM,CAAC,IAAI,GAAE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAM;IAalE,MAAM,CAAC,OAAO;CAWf;AAED;;;;;GAKG;AACH,wBAAsB,mCAAmC,CACvD,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE;IACJ,mBAAmB,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC3C,eAAe,CAAC,EAAE,GAAG,EAAE,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,IAAI,CAAC,EAAE,EAAE,CAAC;IACV,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB,GACA,OAAO,CAAC,2BAA2B,CAAC,CA0BtC"}
@@ -1,6 +1,6 @@
1
1
  import { Fr } from '@aztec/foundation/fields';
2
2
  import { BufferReader, numToUInt8, serializeToBuffer } from '@aztec/foundation/serialize';
3
- import { FunctionSelector, getDefaultInitializer } from '../abi/index.js';
3
+ import { FunctionSelector, getAllFunctionAbis, getDefaultInitializer } from '../abi/index.js';
4
4
  import { AztecAddress } from '../aztec-address/index.js';
5
5
  import { getContractClassFromArtifact } from '../contract/contract_class.js';
6
6
  import { PublicKeys } from '../keys/public_keys.js';
@@ -99,11 +99,12 @@ export class SerializableContractInstance {
99
99
  }
100
100
  function getConstructorArtifact(artifact, requestedConstructorArtifact) {
101
101
  if (typeof requestedConstructorArtifact === 'string') {
102
- const found = artifact.functions.find((fn)=>fn.name === requestedConstructorArtifact);
102
+ const found = getAllFunctionAbis(artifact).find((fn)=>fn.name === requestedConstructorArtifact);
103
103
  if (!found) {
104
104
  throw new Error(`No constructor found with name ${requestedConstructorArtifact}`);
105
105
  }
106
106
  return found;
107
107
  }
108
+ // TODO: shouldn't we check that requestedConstructorArtifact exists on artifact before returning?
108
109
  return requestedConstructorArtifact ?? getDefaultInitializer(artifact);
109
110
  }
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
2
  /// <reference types="node" resolution-mode="require"/>
3
- import type { WitnessMap } from '@noir-lang/acvm_js';
3
+ import type { WitnessMap } from '@aztec/noir-acvm_js';
4
4
  import type { PrivateKernelCircuitPublicInputs, PrivateKernelInitCircuitPrivateInputs, PrivateKernelInnerCircuitPrivateInputs, PrivateKernelResetCircuitPrivateInputs, PrivateKernelSimulateOutput, PrivateKernelTailCircuitPrivateInputs, PrivateKernelTailCircuitPublicInputs } from '../kernel/index.js';
5
5
  import type { ClientIvcProof } from '../proofs/client_ivc_proof.js';
6
6
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"private_kernel_prover.d.ts","sourceRoot":"","sources":["../../src/interfaces/private_kernel_prover.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,KAAK,EACV,gCAAgC,EAChC,qCAAqC,EACrC,sCAAsC,EACtC,sCAAsC,EACtC,2BAA2B,EAC3B,qCAAqC,EACrC,oCAAoC,EACrC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEpE;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,kBAAkB,CAChB,uBAAuB,EAAE,qCAAqC,GAC7D,OAAO,CAAC,2BAA2B,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAE1E;;;;;OAKG;IACH,YAAY,CACV,uBAAuB,EAAE,qCAAqC,GAC7D,OAAO,CAAC,2BAA2B,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAE1E;;;;;OAKG;IACH,mBAAmB,CACjB,wBAAwB,EAAE,sCAAsC,GAC/D,OAAO,CAAC,2BAA2B,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAE1E;;;;;OAKG;IACH,aAAa,CACX,wBAAwB,EAAE,sCAAsC,GAC/D,OAAO,CAAC,2BAA2B,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAE1E;;;;;OAKG;IACH,mBAAmB,CACjB,wBAAwB,EAAE,sCAAsC,GAC/D,OAAO,CAAC,2BAA2B,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAE1E;;;;;OAKG;IACH,aAAa,CACX,wBAAwB,EAAE,sCAAsC,GAC/D,OAAO,CAAC,2BAA2B,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAE1E;;;;;OAKG;IACH,kBAAkB,CAChB,uBAAuB,EAAE,qCAAqC,GAC7D,OAAO,CAAC,2BAA2B,CAAC,oCAAoC,CAAC,CAAC,CAAC;IAE9E;;;;;OAKG;IACH,YAAY,CACV,uBAAuB,EAAE,qCAAqC,GAC7D,OAAO,CAAC,2BAA2B,CAAC,oCAAoC,CAAC,CAAC,CAAC;IAE9E;;;;OAIG;IACH,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAE3F;;;;;OAKG;IACH,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACpF"}
1
+ {"version":3,"file":"private_kernel_prover.d.ts","sourceRoot":"","sources":["../../src/interfaces/private_kernel_prover.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,KAAK,EACV,gCAAgC,EAChC,qCAAqC,EACrC,sCAAsC,EACtC,sCAAsC,EACtC,2BAA2B,EAC3B,qCAAqC,EACrC,oCAAoC,EACrC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEpE;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,kBAAkB,CAChB,uBAAuB,EAAE,qCAAqC,GAC7D,OAAO,CAAC,2BAA2B,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAE1E;;;;;OAKG;IACH,YAAY,CACV,uBAAuB,EAAE,qCAAqC,GAC7D,OAAO,CAAC,2BAA2B,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAE1E;;;;;OAKG;IACH,mBAAmB,CACjB,wBAAwB,EAAE,sCAAsC,GAC/D,OAAO,CAAC,2BAA2B,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAE1E;;;;;OAKG;IACH,aAAa,CACX,wBAAwB,EAAE,sCAAsC,GAC/D,OAAO,CAAC,2BAA2B,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAE1E;;;;;OAKG;IACH,mBAAmB,CACjB,wBAAwB,EAAE,sCAAsC,GAC/D,OAAO,CAAC,2BAA2B,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAE1E;;;;;OAKG;IACH,aAAa,CACX,wBAAwB,EAAE,sCAAsC,GAC/D,OAAO,CAAC,2BAA2B,CAAC,gCAAgC,CAAC,CAAC,CAAC;IAE1E;;;;;OAKG;IACH,kBAAkB,CAChB,uBAAuB,EAAE,qCAAqC,GAC7D,OAAO,CAAC,2BAA2B,CAAC,oCAAoC,CAAC,CAAC,CAAC;IAE9E;;;;;OAKG;IACH,YAAY,CACV,uBAAuB,EAAE,qCAAqC,GAC7D,OAAO,CAAC,2BAA2B,CAAC,oCAAoC,CAAC,CAAC,CAAC;IAE9E;;;;OAIG;IACH,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAE3F;;;;;OAKG;IACH,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACpF"}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
2
  /// <reference types="node" resolution-mode="require"/>
3
- import type { WitnessMap } from '@noir-lang/acvm_js';
3
+ import type { WitnessMap } from '@aztec/noir-acvm_js';
4
4
  import type { ClientIvcProof } from '../proofs/client_ivc_proof.js';
5
5
  import type { VerificationKeyAsFields } from '../vks/verification_key.js';
6
6
  import type { PrivateKernelCircuitPublicInputs } from './private_kernel_circuit_public_inputs.js';
@@ -1 +1 @@
1
- {"version":3,"file":"private_kernel_simulated_output.d.ts","sourceRoot":"","sources":["../../src/kernel/private_kernel_simulated_output.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAC;AAClG,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAC;AAClG,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,gDAAgD,CAAC;AAE3G;;;GAGG;AACH,MAAM,MAAM,2BAA2B,CACrC,gBAAgB,SAAS,gCAAgC,GAAG,oCAAoC,IAC9F;IACF,mEAAmE;IACnE,YAAY,EAAE,gBAAgB,CAAC;IAE/B,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC,eAAe,EAAE,uBAAuB,CAAC;IAEzC,aAAa,EAAE,UAAU,CAAC;IAE1B,QAAQ,EAAE,MAAM,CAAC;IAEjB,aAAa,CAAC,EAAE,gCAAgC,CAAC;CAClD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,eAAe,EAAE,uBAAuB,CAAC;CAC1C,CAAC"}
1
+ {"version":3,"file":"private_kernel_simulated_output.d.ts","sourceRoot":"","sources":["../../src/kernel/private_kernel_simulated_output.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAC;AAClG,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAC;AAClG,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,gDAAgD,CAAC;AAE3G;;;GAGG;AACH,MAAM,MAAM,2BAA2B,CACrC,gBAAgB,SAAS,gCAAgC,GAAG,oCAAoC,IAC9F;IACF,mEAAmE;IACnE,YAAY,EAAE,gBAAgB,CAAC;IAE/B,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC,eAAe,EAAE,uBAAuB,CAAC;IAEzC,aAAa,EAAE,UAAU,CAAC;IAE1B,QAAQ,EAAE,MAAM,CAAC;IAEjB,aAAa,CAAC,EAAE,gCAAgC,CAAC;CAClD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,eAAe,EAAE,uBAAuB,CAAC;CAC1C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../src/tests/mocks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAe,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAIzD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAWxE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EACL,WAAW,EAGX,0BAA0B,EAC1B,sBAAsB,EAEtB,EAAE,EACH,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAiC,MAAM,uBAAuB,CAAC;AAE1F,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,eAAO,MAAM,YAAY,QAAO,MAAyB,CAAC;AAE1D,eAAO,MAAM,kBAAkB,wEAO5B,QAAQ,YAAY,CAAC,0BASvB,CAAC;AAEF,eAAO,MAAM,gBAAgB,+EAQ1B,QAAQ,UAAU,CAAC,wBAUrB,CAAC;AAEF,eAAO,MAAM,8BAA8B,iMA8C1C,CAAC;AAEF,eAAO,MAAM,0BAA0B,oDAEtC,CAAC;AAEF,eAAO,MAAM,MAAM,+JAQd;IACD,uCAAuC,CAAC,EAAE,MAAM,CAAC;IACjD,oCAAoC,CAAC,EAAE,MAAM,CAAC;IAC9C,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC,gBAsDF,CAAC;AAEF,eAAO,MAAM,eAAe,gCAC2E,CAAC;AAExG,eAAO,MAAM,eAAe,gDAgB3B,CAAC;AAEF,eAAO,MAAM,sBAAsB,QAAO,gBAUxC,CAAC;AAEH,eAAO,MAAM,iCAAiC,UACtC;IAAE,eAAe,CAAC,EAAE,EAAE,CAAA;CAAE,YACpB,YAAY,KACrB,QAAQ,2BAA2B,CAUrC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;EAIlC,CAAC;AAEF,MAAM,WAAW,2BAA2B;IAC1C,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,EAAE,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAyBD,eAAO,MAAM,iBAAiB,aAAoB,2BAA2B,KAAG,QAAQ,aAAa,CAGpG,CAAC;AAGF,eAAO,MAAM,oBAAoB,aAAoB,2BAA2B,KAAG,QAAQ,gBAAgB,CAG1G,CAAC"}
1
+ {"version":3,"file":"mocks.d.ts","sourceRoot":"","sources":["../../src/tests/mocks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAe,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAIzD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAWxE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EACL,WAAW,EAGX,0BAA0B,EAC1B,sBAAsB,EAEtB,EAAE,EACH,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAiC,MAAM,uBAAuB,CAAC;AAE1F,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,eAAO,MAAM,YAAY,QAAO,MAAyB,CAAC;AAE1D,eAAO,MAAM,kBAAkB,wEAO5B,QAAQ,YAAY,CAAC,0BASvB,CAAC;AAEF,eAAO,MAAM,gBAAgB,+EAQ1B,QAAQ,UAAU,CAAC,wBAUrB,CAAC;AAEF,eAAO,MAAM,8BAA8B,iMA8C1C,CAAC;AAEF,eAAO,MAAM,0BAA0B,oDAEtC,CAAC;AAEF,eAAO,MAAM,MAAM,+JAQd;IACD,uCAAuC,CAAC,EAAE,MAAM,CAAC;IACjD,oCAAoC,CAAC,EAAE,MAAM,CAAC;IAC9C,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC,gBAsDF,CAAC;AAEF,eAAO,MAAM,eAAe,gCAC2E,CAAC;AAExG,eAAO,MAAM,eAAe,gDAgB3B,CAAC;AAEF,eAAO,MAAM,sBAAsB,QAAO,gBAWxC,CAAC;AAEH,eAAO,MAAM,iCAAiC,UACtC;IAAE,eAAe,CAAC,EAAE,EAAE,CAAA;CAAE,YACpB,YAAY,KACrB,QAAQ,2BAA2B,CAUrC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;EAIlC,CAAC;AAEF,MAAM,WAAW,2BAA2B;IAC1C,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,EAAE,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAyBD,eAAO,MAAM,iBAAiB,aAAoB,2BAA2B,KAAG,QAAQ,aAAa,CAGpG,CAAC;AAGF,eAAO,MAAM,oBAAoB,aAAoB,2BAA2B,KAAG,QAAQ,gBAAgB,CAG1G,CAAC"}
@@ -122,6 +122,7 @@ export const mockSimulatedTx = async (seed = 1)=>{
122
122
  export const randomContractArtifact = ()=>({
123
123
  name: randomBytes(4).toString('hex'),
124
124
  functions: [],
125
+ nonDispatchPublicFunctions: [],
125
126
  outputs: {
126
127
  structs: {},
127
128
  globals: {}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/stdlib",
3
- "version": "0.78.1",
3
+ "version": "0.80.0",
4
4
  "type": "module",
5
5
  "inherits": [
6
6
  "../package.common.json",
@@ -66,11 +66,11 @@
66
66
  "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
67
67
  },
68
68
  "dependencies": {
69
- "@aztec/bb.js": "0.78.1",
70
- "@aztec/blob-lib": "0.78.1",
71
- "@aztec/constants": "0.78.1",
72
- "@aztec/ethereum": "0.78.1",
73
- "@aztec/foundation": "0.78.1",
69
+ "@aztec/bb.js": "0.80.0",
70
+ "@aztec/blob-lib": "0.80.0",
71
+ "@aztec/constants": "0.80.0",
72
+ "@aztec/ethereum": "0.80.0",
73
+ "@aztec/foundation": "0.80.0",
74
74
  "lodash.chunk": "^4.2.0",
75
75
  "lodash.isequal": "^4.5.0",
76
76
  "lodash.omit": "^4.5.0",
@@ -78,7 +78,7 @@
78
78
  "msgpackr": "^1.11.2",
79
79
  "pako": "^2.1.0",
80
80
  "tslib": "^2.4.0",
81
- "viem": "^2.23.5",
81
+ "viem": "2.23.7",
82
82
  "zod": "^3.23.8"
83
83
  },
84
84
  "devDependencies": {
package/src/abi/abi.ts CHANGED
@@ -334,12 +334,12 @@ export interface ContractArtifact {
334
334
  /** The name of the contract. */
335
335
  name: string;
336
336
 
337
- /** The version of compiler used to create this artifact */
338
- aztecNrVersion?: string;
339
-
340
- /** The functions of the contract. */
337
+ /** The functions of the contract. Includes private and unconstrained functions, plus the public dispatch function. */
341
338
  functions: FunctionArtifact[];
342
339
 
340
+ /** The public functions of the contract, excluding dispatch. */
341
+ nonDispatchPublicFunctions: FunctionAbi[];
342
+
343
343
  /** The outputs of the contract. */
344
344
  outputs: {
345
345
  structs: Record<string, AbiType[]>;
@@ -358,8 +358,8 @@ export interface ContractArtifact {
358
358
 
359
359
  export const ContractArtifactSchema: ZodFor<ContractArtifact> = z.object({
360
360
  name: z.string(),
361
- aztecNrVersion: z.string().optional(),
362
361
  functions: z.array(FunctionArtifactSchema),
362
+ nonDispatchPublicFunctions: z.array(FunctionAbiSchema),
363
363
  outputs: z.object({
364
364
  structs: z.record(z.array(AbiTypeSchema)).transform(structs => {
365
365
  for (const [key, value] of Object.entries(structs)) {
@@ -419,6 +419,15 @@ export async function getFunctionArtifact(
419
419
  return { ...functionArtifact, debug: debugMetadata };
420
420
  }
421
421
 
422
+ /** Gets all function abis */
423
+ export function getAllFunctionAbis(artifact: ContractArtifact): FunctionAbi[] {
424
+ return artifact.functions.map(f => f as FunctionAbi).concat(artifact.nonDispatchPublicFunctions || []);
425
+ }
426
+
427
+ export function parseDebugSymbols(debugSymbols: string): DebugInfo[] {
428
+ return JSON.parse(inflate(Buffer.from(debugSymbols, 'base64'), { to: 'string', raw: true })).debug_infos;
429
+ }
430
+
422
431
  /**
423
432
  * Gets the debug metadata of a given function from the contract artifact
424
433
  * @param artifact - The contract build artifact
@@ -432,14 +441,12 @@ export function getFunctionDebugMetadata(
432
441
  try {
433
442
  if (functionArtifact.debugSymbols && contractArtifact.fileMap) {
434
443
  // TODO(https://github.com/AztecProtocol/aztec-packages/issues/10546) investigate why debugMetadata is so big for some tests.
435
- const programDebugSymbols = JSON.parse(
436
- inflate(Buffer.from(functionArtifact.debugSymbols, 'base64'), { to: 'string', raw: true }),
437
- );
444
+ const programDebugSymbols = parseDebugSymbols(functionArtifact.debugSymbols);
438
445
  // TODO(https://github.com/AztecProtocol/aztec-packages/issues/5813)
439
446
  // We only support handling debug info for the contract function entry point.
440
447
  // So for now we simply index into the first debug info.
441
448
  return {
442
- debugSymbols: programDebugSymbols.debug_infos[0],
449
+ debugSymbols: programDebugSymbols[0],
443
450
  files: contractArtifact.fileMap,
444
451
  };
445
452
  }
@@ -465,8 +472,9 @@ export function getFunctionDebugMetadata(
465
472
  * @param contractArtifact - The contract artifact.
466
473
  * @returns An initializer function, or none if there are no functions flagged as initializers in the contract.
467
474
  */
468
- export function getDefaultInitializer(contractArtifact: ContractArtifact): FunctionArtifact | undefined {
469
- const initializers = contractArtifact.functions.filter(f => f.isInitializer);
475
+ export function getDefaultInitializer(contractArtifact: ContractArtifact): FunctionAbi | undefined {
476
+ const functionAbis = getAllFunctionAbis(contractArtifact);
477
+ const initializers = functionAbis.filter(f => f.isInitializer);
470
478
  return initializers.length > 1
471
479
  ? initializers.find(f => f.name === 'constructor') ??
472
480
  initializers.find(f => f.name === 'initializer') ??
@@ -484,9 +492,10 @@ export function getDefaultInitializer(contractArtifact: ContractArtifact): Funct
484
492
  export function getInitializer(
485
493
  contract: ContractArtifact,
486
494
  initializerNameOrArtifact: string | undefined | FunctionArtifact,
487
- ): FunctionArtifact | undefined {
495
+ ): FunctionAbi | undefined {
488
496
  if (typeof initializerNameOrArtifact === 'string') {
489
- const found = contract.functions.find(f => f.name === initializerNameOrArtifact);
497
+ const functionAbis = getAllFunctionAbis(contract);
498
+ const found = functionAbis.find(f => f.name === initializerNameOrArtifact);
490
499
  if (!found) {
491
500
  throw new Error(`Constructor method ${initializerNameOrArtifact} not found in contract artifact`);
492
501
  } else if (!found.isInitializer) {
@@ -9,6 +9,7 @@ import {
9
9
  ContractArtifactSchema,
10
10
  type ContractNote,
11
11
  type FieldLayout,
12
+ type FunctionAbi,
12
13
  type FunctionArtifact,
13
14
  FunctionType,
14
15
  type IntegerValue,
@@ -44,6 +45,7 @@ export function contractArtifactFromBuffer(buffer: Buffer): Promise<ContractArti
44
45
 
45
46
  /**
46
47
  * Gets nargo build output and returns a valid contract artifact instance.
48
+ * Does not include public bytecode, apart from the public_dispatch function.
47
49
  * @param input - Input object as generated by nargo compile.
48
50
  * @returns A valid contract artifact instance.
49
51
  */
@@ -54,6 +56,16 @@ export function loadContractArtifact(input: NoirCompiledContract): ContractArtif
54
56
  return generateContractArtifact(input);
55
57
  }
56
58
 
59
+ /**
60
+ * Gets nargo build output and returns a valid contract artifact instance.
61
+ * Differs from loadContractArtifact() by retaining all bytecode.
62
+ * @param input - Input object as generated by nargo compile.
63
+ * @returns A valid contract artifact instance.
64
+ */
65
+ export function loadContractArtifactForPublic(input: NoirCompiledContract): ContractArtifact {
66
+ return generateContractArtifactForPublic(input);
67
+ }
68
+
57
69
  /**
58
70
  * Checks if the given input looks like a valid ContractArtifact. The check is not exhaustive,
59
71
  * and it's just meant to differentiate between nargo raw build artifacts and the ones
@@ -79,6 +91,11 @@ function isContractArtifact(input: any): input is ContractArtifact {
79
91
  if (typeof fn.functionType !== 'string') {
80
92
  return false;
81
93
  }
94
+ if (!retainBytecode(fn) && fn.bytecode.length) {
95
+ // We want to remove the bytecode of public fns (apart from the dispatch fn) to save space
96
+ // If the input is private-only, we don't need to use generateContractArtifact() below
97
+ return false;
98
+ }
82
99
  }
83
100
  return true;
84
101
  }
@@ -103,15 +120,21 @@ function generateFunctionParameter(param: NoirCompiledContractFunctionParameter)
103
120
  type NoirCompiledContractFunction = NoirCompiledContract['functions'][number];
104
121
 
105
122
  /**
106
- * Generates a function build artifact.
123
+ * Returns true if we should retain bytecode
124
+ */
125
+ export function retainBytecode(input: NoirCompiledContractFunction | FunctionArtifact): boolean {
126
+ const functionType =
127
+ (input as FunctionArtifact).functionType ?? getFunctionType(input as NoirCompiledContractFunction);
128
+ return functionType !== FunctionType.PUBLIC || input.name == 'public_dispatch';
129
+ }
130
+
131
+ /**
132
+ * Generates a function abi.
107
133
  * @param fn - Noir function entry.
108
134
  * @param contract - Parent contract.
109
- * @returns Function artifact.
135
+ * @returns Function abi.
110
136
  */
111
- function generateFunctionArtifact(
112
- fn: NoirCompiledContractFunction,
113
- contract: NoirCompiledContract,
114
- ): Omit<FunctionArtifact, 'bytecode'> & { bytecode: string } {
137
+ function generateFunctionAbi(fn: NoirCompiledContractFunction, contract: NoirCompiledContract): FunctionAbi {
115
138
  if (fn.custom_attributes === undefined) {
116
139
  throw new Error(
117
140
  `No custom attributes found for contract function ${fn.name}. Try rebuilding the contract with the latest nargo version.`,
@@ -156,10 +179,26 @@ function generateFunctionArtifact(
156
179
  isInitializer: fn.custom_attributes.includes(AZTEC_INITIALIZER_ATTRIBUTE),
157
180
  parameters,
158
181
  returnTypes,
159
- bytecode: fn.bytecode,
160
- debugSymbols: fn.debug_symbols,
161
182
  errorTypes: fn.abi.error_types,
162
183
  ...(fn.assert_messages ? { assertMessages: fn.assert_messages } : undefined),
184
+ };
185
+ }
186
+
187
+ /**
188
+ * Generates a function build artifact.
189
+ * @param fn - Noir function entry.
190
+ * @param contract - Parent contract.
191
+ * @returns Function artifact.
192
+ */
193
+ function generateFunctionArtifact(
194
+ fn: NoirCompiledContractFunction,
195
+ contract: NoirCompiledContract,
196
+ ): Omit<FunctionArtifact, 'bytecode'> & { bytecode: string } {
197
+ const abi = generateFunctionAbi(fn, contract);
198
+ return {
199
+ ...abi,
200
+ bytecode: fn.bytecode,
201
+ debugSymbols: fn.debug_symbols,
163
202
  ...(fn.verification_key ? { verificationKey: fn.verification_key } : undefined),
164
203
  };
165
204
  }
@@ -274,19 +313,46 @@ function getNoteTypes(input: NoirCompiledContract) {
274
313
 
275
314
  /**
276
315
  * Given a Nargo output generates an Aztec-compatible contract artifact.
316
+ * Does not include public bytecode, apart from the public_dispatch function.
317
+ * @param compiled - Noir build output.
318
+ * @returns Aztec contract build artifact.
319
+ */
320
+ function generateContractArtifact(contract: NoirCompiledContract): ContractArtifact {
321
+ try {
322
+ return ContractArtifactSchema.parse({
323
+ name: contract.name,
324
+ functions: contract.functions.filter(f => retainBytecode(f)).map(f => generateFunctionArtifact(f, contract)),
325
+ nonDispatchPublicFunctions: contract.functions
326
+ .filter(f => !retainBytecode(f))
327
+ .map(f => generateFunctionAbi(f, contract)),
328
+ outputs: contract.outputs,
329
+ storageLayout: getStorageLayout(contract),
330
+ notes: getNoteTypes(contract),
331
+ fileMap: contract.file_map,
332
+ });
333
+ } catch (err) {
334
+ throw new Error(`Could not generate contract artifact for ${contract.name}: ${err}`);
335
+ }
336
+ }
337
+
338
+ /**
339
+ * Given a Nargo output generates an Aztec-compatible contract artifact.
340
+ * Retains all public bytecode.
277
341
  * @param compiled - Noir build output.
278
342
  * @returns Aztec contract build artifact.
279
343
  */
280
- function generateContractArtifact(contract: NoirCompiledContract, aztecNrVersion?: string): ContractArtifact {
344
+ function generateContractArtifactForPublic(contract: NoirCompiledContract): ContractArtifact {
281
345
  try {
282
346
  return ContractArtifactSchema.parse({
283
347
  name: contract.name,
284
348
  functions: contract.functions.map(f => generateFunctionArtifact(f, contract)),
349
+ nonDispatchPublicFunctions: contract.functions
350
+ .filter(f => !retainBytecode(f))
351
+ .map(f => generateFunctionAbi(f, contract)),
285
352
  outputs: contract.outputs,
286
353
  storageLayout: getStorageLayout(contract),
287
354
  notes: getNoteTypes(contract),
288
355
  fileMap: contract.file_map,
289
- ...(aztecNrVersion ? { aztecNrVersion } : {}),
290
356
  });
291
357
  } catch (err) {
292
358
  throw new Error(`Could not generate contract artifact for ${contract.name}: ${err}`);
@@ -20,6 +20,8 @@ export async function getContractClassFromArtifact(
20
20
  ): Promise<ContractClassWithId & ContractClassIdPreimage> {
21
21
  const artifactHash = 'artifactHash' in artifact ? artifact.artifactHash : await computeArtifactHash(artifact);
22
22
  const publicFunctions = artifact.functions.filter(f => f.functionType === FunctionType.PUBLIC);
23
+ // TODO(#8985): ContractArtifact.functions should ensure that the below only contains the public dispatch function
24
+ // So we can likely remove this and just use the below to assign the dispatch.
23
25
  const artifactPublicFunctions: ContractClass['publicFunctions'] = await Promise.all(
24
26
  publicFunctions.map(async f => ({
25
27
  selector: await FunctionSelector.fromNameAndParameters(f.name, f.parameters),
@@ -2,7 +2,14 @@ import { Fr } from '@aztec/foundation/fields';
2
2
  import { BufferReader, numToUInt8, serializeToBuffer } from '@aztec/foundation/serialize';
3
3
  import type { FieldsOf } from '@aztec/foundation/types';
4
4
 
5
- import { type ContractArtifact, type FunctionArtifact, FunctionSelector, getDefaultInitializer } from '../abi/index.js';
5
+ import {
6
+ type ContractArtifact,
7
+ type FunctionAbi,
8
+ type FunctionArtifact,
9
+ FunctionSelector,
10
+ getAllFunctionAbis,
11
+ getDefaultInitializer,
12
+ } from '../abi/index.js';
6
13
  import { AztecAddress } from '../aztec-address/index.js';
7
14
  import { getContractClassFromArtifact } from '../contract/contract_class.js';
8
15
  import { PublicKeys } from '../keys/public_keys.js';
@@ -101,7 +108,7 @@ export class SerializableContractInstance {
101
108
  export async function getContractInstanceFromDeployParams(
102
109
  artifact: ContractArtifact,
103
110
  opts: {
104
- constructorArtifact?: FunctionArtifact | string;
111
+ constructorArtifact?: FunctionAbi | string;
105
112
  constructorArgs?: any[];
106
113
  skipArgsDecoding?: boolean;
107
114
  salt?: Fr;
@@ -138,14 +145,15 @@ export async function getContractInstanceFromDeployParams(
138
145
 
139
146
  function getConstructorArtifact(
140
147
  artifact: ContractArtifact,
141
- requestedConstructorArtifact: FunctionArtifact | string | undefined,
142
- ): FunctionArtifact | undefined {
148
+ requestedConstructorArtifact: FunctionArtifact | FunctionAbi | string | undefined,
149
+ ): FunctionAbi | undefined {
143
150
  if (typeof requestedConstructorArtifact === 'string') {
144
- const found = artifact.functions.find(fn => fn.name === requestedConstructorArtifact);
151
+ const found = getAllFunctionAbis(artifact).find(fn => fn.name === requestedConstructorArtifact);
145
152
  if (!found) {
146
153
  throw new Error(`No constructor found with name ${requestedConstructorArtifact}`);
147
154
  }
148
155
  return found;
149
156
  }
157
+ // TODO: shouldn't we check that requestedConstructorArtifact exists on artifact before returning?
150
158
  return requestedConstructorArtifact ?? getDefaultInitializer(artifact);
151
159
  }
@@ -1,4 +1,4 @@
1
- import type { WitnessMap } from '@noir-lang/acvm_js';
1
+ import type { WitnessMap } from '@aztec/noir-acvm_js';
2
2
 
3
3
  import type {
4
4
  PrivateKernelCircuitPublicInputs,
@@ -1,4 +1,4 @@
1
- import type { WitnessMap } from '@noir-lang/acvm_js';
1
+ import type { WitnessMap } from '@aztec/noir-acvm_js';
2
2
 
3
3
  import type { ClientIvcProof } from '../proofs/client_ivc_proof.js';
4
4
  import type { VerificationKeyAsFields } from '../vks/verification_key.js';
@@ -228,6 +228,7 @@ export const mockSimulatedTx = async (seed = 1) => {
228
228
  export const randomContractArtifact = (): ContractArtifact => ({
229
229
  name: randomBytes(4).toString('hex'),
230
230
  functions: [],
231
+ nonDispatchPublicFunctions: [],
231
232
  outputs: {
232
233
  structs: {},
233
234
  globals: {},