@aztec/stdlib 0.79.0 → 0.81.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.
Files changed (121) hide show
  1. package/dest/abi/abi.d.ts +7 -5
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/abi.js +8 -3
  4. package/dest/abi/contract_artifact.d.ts +16 -1
  5. package/dest/abi/contract_artifact.d.ts.map +1 -1
  6. package/dest/abi/contract_artifact.js +72 -11
  7. package/dest/avm/avm.d.ts +173 -405
  8. package/dest/avm/avm.d.ts.map +1 -1
  9. package/dest/avm/avm.js +34 -27
  10. package/dest/avm/avm_proving_request.d.ts +84 -186
  11. package/dest/avm/avm_proving_request.d.ts.map +1 -1
  12. package/dest/avm/public_data_write.d.ts +1 -0
  13. package/dest/avm/public_data_write.d.ts.map +1 -1
  14. package/dest/avm/public_data_write.js +3 -0
  15. package/dest/block/body.d.ts +1 -0
  16. package/dest/block/body.d.ts.map +1 -1
  17. package/dest/block/body.js +3 -0
  18. package/dest/block/index.d.ts +1 -0
  19. package/dest/block/index.d.ts.map +1 -1
  20. package/dest/block/index.js +1 -0
  21. package/dest/block/l2_block.d.ts +2 -1
  22. package/dest/block/l2_block.d.ts.map +1 -1
  23. package/dest/block/l2_block.js +3 -0
  24. package/dest/block/l2_block_downloader/l2_block_stream.d.ts +3 -3
  25. package/dest/block/l2_block_downloader/l2_block_stream.d.ts.map +1 -1
  26. package/dest/block/l2_block_downloader/l2_block_stream.js +2 -2
  27. package/dest/block/l2_block_source.d.ts +3 -0
  28. package/dest/block/l2_block_source.d.ts.map +1 -1
  29. package/dest/block/published_l2_block.d.ts +89 -0
  30. package/dest/block/published_l2_block.d.ts.map +1 -0
  31. package/dest/block/published_l2_block.js +32 -0
  32. package/dest/contract/contract_class.d.ts.map +1 -1
  33. package/dest/contract/contract_class.js +2 -0
  34. package/dest/contract/contract_instance.d.ts +2 -2
  35. package/dest/contract/contract_instance.d.ts.map +1 -1
  36. package/dest/contract/contract_instance.js +3 -2
  37. package/dest/contract/interfaces/contract_data_source.d.ts +3 -9
  38. package/dest/contract/interfaces/contract_data_source.d.ts.map +1 -1
  39. package/dest/database-version/version_manager.js +1 -1
  40. package/dest/interfaces/archiver.d.ts.map +1 -1
  41. package/dest/interfaces/archiver.js +4 -3
  42. package/dest/interfaces/aztec-node.d.ts +1 -1
  43. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  44. package/dest/interfaces/aztec-node.js +2 -0
  45. package/dest/interfaces/proving-job.d.ts +106 -208
  46. package/dest/interfaces/proving-job.d.ts.map +1 -1
  47. package/dest/logs/contract_class_log.d.ts +1 -0
  48. package/dest/logs/contract_class_log.d.ts.map +1 -1
  49. package/dest/logs/contract_class_log.js +3 -0
  50. package/dest/logs/l1_payload/index.d.ts +1 -1
  51. package/dest/logs/l1_payload/index.d.ts.map +1 -1
  52. package/dest/logs/l1_payload/index.js +1 -1
  53. package/dest/logs/private_log.d.ts +2 -1
  54. package/dest/logs/private_log.d.ts.map +1 -1
  55. package/dest/logs/private_log.js +14 -3
  56. package/dest/logs/public_log.d.ts.map +1 -1
  57. package/dest/logs/public_log.js +4 -1
  58. package/dest/logs/tx_scoped_l2_log.d.ts +16 -28
  59. package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
  60. package/dest/logs/tx_scoped_l2_log.js +28 -19
  61. package/dest/note/extended_note.d.ts +10 -21
  62. package/dest/note/extended_note.d.ts.map +1 -1
  63. package/dest/note/extended_note.js +19 -28
  64. package/dest/note/notes_filter.d.ts +2 -2
  65. package/dest/note/notes_filter.d.ts.map +1 -1
  66. package/dest/note/notes_filter.js +1 -1
  67. package/dest/p2p/consensus_payload.d.ts +3 -1
  68. package/dest/p2p/consensus_payload.d.ts.map +1 -1
  69. package/dest/p2p/consensus_payload.js +3 -0
  70. package/dest/proofs/proof.d.ts +0 -1
  71. package/dest/proofs/proof.d.ts.map +1 -1
  72. package/dest/proofs/proof.js +2 -7
  73. package/dest/rollup/block_root_rollup.d.ts +1 -1
  74. package/dest/tests/factories.d.ts +3 -2
  75. package/dest/tests/factories.d.ts.map +1 -1
  76. package/dest/tests/factories.js +14 -8
  77. package/dest/tests/mocks.d.ts +2 -2
  78. package/dest/tests/mocks.d.ts.map +1 -1
  79. package/dest/tests/mocks.js +5 -5
  80. package/dest/trees/nullifier_membership_witness.d.ts +7 -7
  81. package/dest/trees/public_data_witness.d.ts +7 -7
  82. package/dest/tx/capsule.d.ts +2 -0
  83. package/dest/tx/capsule.d.ts.map +1 -1
  84. package/dest/tx/capsule.js +2 -0
  85. package/dest/tx/tx_effect.d.ts +1 -0
  86. package/dest/tx/tx_effect.d.ts.map +1 -1
  87. package/dest/tx/tx_effect.js +4 -1
  88. package/package.json +6 -6
  89. package/src/abi/abi.ts +16 -9
  90. package/src/abi/contract_artifact.ts +87 -10
  91. package/src/avm/avm.ts +42 -39
  92. package/src/avm/public_data_write.ts +4 -0
  93. package/src/block/body.ts +6 -0
  94. package/src/block/index.ts +1 -0
  95. package/src/block/l2_block.ts +4 -0
  96. package/src/block/l2_block_downloader/l2_block_stream.ts +5 -5
  97. package/src/block/l2_block_source.ts +4 -0
  98. package/src/block/published_l2_block.ts +45 -0
  99. package/src/contract/contract_class.ts +2 -0
  100. package/src/contract/contract_instance.ts +13 -5
  101. package/src/contract/interfaces/contract_data_source.ts +3 -10
  102. package/src/database-version/version_manager.ts +1 -1
  103. package/src/interfaces/archiver.ts +9 -6
  104. package/src/interfaces/aztec-node.ts +4 -1
  105. package/src/logs/contract_class_log.ts +8 -0
  106. package/src/logs/l1_payload/index.ts +1 -1
  107. package/src/logs/private_log.ts +13 -3
  108. package/src/logs/public_log.ts +11 -1
  109. package/src/logs/tx_scoped_l2_log.ts +28 -25
  110. package/src/note/extended_note.ts +17 -36
  111. package/src/note/notes_filter.ts +3 -3
  112. package/src/p2p/consensus_payload.ts +9 -0
  113. package/src/proofs/proof.ts +2 -8
  114. package/src/tests/factories.ts +15 -14
  115. package/src/tests/mocks.ts +5 -9
  116. package/src/tx/capsule.ts +2 -0
  117. package/src/tx/tx_effect.ts +23 -1
  118. package/dest/logs/l1_payload/l1_note_payload.d.ts +0 -82
  119. package/dest/logs/l1_payload/l1_note_payload.d.ts.map +0 -1
  120. package/dest/logs/l1_payload/l1_note_payload.js +0 -129
  121. package/src/logs/l1_payload/l1_note_payload.ts +0 -182
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,8 @@ 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[];
831
833
  export declare function parseDebugSymbols(debugSymbols: string): DebugInfo[];
832
834
  /**
833
835
  * Gets the debug metadata of a given function from the contract artifact
@@ -843,12 +845,12 @@ export declare function getFunctionDebugMetadata(contractArtifact: ContractArtif
843
845
  * @param contractArtifact - The contract artifact.
844
846
  * @returns An initializer function, or none if there are no functions flagged as initializers in the contract.
845
847
  */
846
- export declare function getDefaultInitializer(contractArtifact: ContractArtifact): FunctionArtifact | undefined;
848
+ export declare function getDefaultInitializer(contractArtifact: ContractArtifact): FunctionAbi | undefined;
847
849
  /**
848
850
  * Returns an initializer from the contract.
849
851
  * @param initializerNameOrArtifact - The name of the constructor, or the artifact of the constructor, or undefined
850
852
  * to pick the default initializer.
851
853
  */
852
- 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;
853
855
  export {};
854
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,9 @@ 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
+ }
216
219
  export function parseDebugSymbols(debugSymbols) {
217
220
  return JSON.parse(inflate(Buffer.from(debugSymbols, 'base64'), {
218
221
  to: 'string',
@@ -255,7 +258,8 @@ export function parseDebugSymbols(debugSymbols) {
255
258
  * @param contractArtifact - The contract artifact.
256
259
  * @returns An initializer function, or none if there are no functions flagged as initializers in the contract.
257
260
  */ export function getDefaultInitializer(contractArtifact) {
258
- const initializers = contractArtifact.functions.filter((f)=>f.isInitializer);
261
+ const functionAbis = getAllFunctionAbis(contractArtifact);
262
+ const initializers = functionAbis.filter((f)=>f.isInitializer);
259
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];
260
264
  }
261
265
  /**
@@ -264,7 +268,8 @@ export function parseDebugSymbols(debugSymbols) {
264
268
  * to pick the default initializer.
265
269
  */ export function getInitializer(contract, initializerNameOrArtifact) {
266
270
  if (typeof initializerNameOrArtifact === 'string') {
267
- const found = contract.functions.find((f)=>f.name === initializerNameOrArtifact);
271
+ const functionAbis = getAllFunctionAbis(contract);
272
+ const found = functionAbis.find((f)=>f.name === initializerNameOrArtifact);
268
273
  if (!found) {
269
274
  throw new Error(`Constructor method ${initializerNameOrArtifact} not found in contract artifact`);
270
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;AA+DD,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,22 @@ 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
+ }
66
+ }
67
+ if (!Array.isArray(maybeContractArtifact.nonDispatchPublicFunctions)) {
68
+ return false;
69
+ }
70
+ for (const fn of maybeContractArtifact.nonDispatchPublicFunctions){
71
+ if (typeof fn.name !== 'string') {
72
+ return false;
73
+ }
74
+ if (typeof fn.functionType !== 'string') {
75
+ return false;
76
+ }
52
77
  }
53
78
  return true;
54
79
  }
@@ -67,11 +92,17 @@ import { AZTEC_INITIALIZER_ATTRIBUTE, AZTEC_INTERNAL_ATTRIBUTE, AZTEC_PRIVATE_AT
67
92
  };
68
93
  }
69
94
  /**
70
- * Generates a function build artifact.
95
+ * Returns true if we should retain bytecode
96
+ */ export function retainBytecode(input) {
97
+ const functionType = input.functionType ?? getFunctionType(input);
98
+ return functionType !== FunctionType.PUBLIC || input.name == 'public_dispatch';
99
+ }
100
+ /**
101
+ * Generates a function abi.
71
102
  * @param fn - Noir function entry.
72
103
  * @param contract - Parent contract.
73
- * @returns Function artifact.
74
- */ function generateFunctionArtifact(fn, contract) {
104
+ * @returns Function abi.
105
+ */ function generateFunctionAbi(fn, contract) {
75
106
  if (fn.custom_attributes === undefined) {
76
107
  throw new Error(`No custom attributes found for contract function ${fn.name}. Try rebuilding the contract with the latest nargo version.`);
77
108
  }
@@ -112,12 +143,23 @@ import { AZTEC_INITIALIZER_ATTRIBUTE, AZTEC_INTERNAL_ATTRIBUTE, AZTEC_PRIVATE_AT
112
143
  isInitializer: fn.custom_attributes.includes(AZTEC_INITIALIZER_ATTRIBUTE),
113
144
  parameters,
114
145
  returnTypes,
115
- bytecode: fn.bytecode,
116
- debugSymbols: fn.debug_symbols,
117
146
  errorTypes: fn.abi.error_types,
118
147
  ...fn.assert_messages ? {
119
148
  assertMessages: fn.assert_messages
120
- } : undefined,
149
+ } : undefined
150
+ };
151
+ }
152
+ /**
153
+ * Generates a function build artifact.
154
+ * @param fn - Noir function entry.
155
+ * @param contract - Parent contract.
156
+ * @returns Function artifact.
157
+ */ function generateFunctionArtifact(fn, contract) {
158
+ const abi = generateFunctionAbi(fn, contract);
159
+ return {
160
+ ...abi,
161
+ bytecode: fn.bytecode,
162
+ debugSymbols: fn.debug_symbols,
121
163
  ...fn.verification_key ? {
122
164
  verificationKey: fn.verification_key
123
165
  } : undefined
@@ -212,20 +254,39 @@ function getFunctionType(fn) {
212
254
  }
213
255
  /**
214
256
  * Given a Nargo output generates an Aztec-compatible contract artifact.
257
+ * Does not include public bytecode, apart from the public_dispatch function.
258
+ * @param compiled - Noir build output.
259
+ * @returns Aztec contract build artifact.
260
+ */ function generateContractArtifact(contract) {
261
+ try {
262
+ return ContractArtifactSchema.parse({
263
+ name: contract.name,
264
+ functions: contract.functions.filter((f)=>retainBytecode(f)).map((f)=>generateFunctionArtifact(f, contract)),
265
+ nonDispatchPublicFunctions: contract.functions.filter((f)=>!retainBytecode(f)).map((f)=>generateFunctionAbi(f, contract)),
266
+ outputs: contract.outputs,
267
+ storageLayout: getStorageLayout(contract),
268
+ notes: getNoteTypes(contract),
269
+ fileMap: contract.file_map
270
+ });
271
+ } catch (err) {
272
+ throw new Error(`Could not generate contract artifact for ${contract.name}: ${err}`);
273
+ }
274
+ }
275
+ /**
276
+ * Given a Nargo output generates an Aztec-compatible contract artifact.
277
+ * Retains all public bytecode.
215
278
  * @param compiled - Noir build output.
216
279
  * @returns Aztec contract build artifact.
217
- */ function generateContractArtifact(contract, aztecNrVersion) {
280
+ */ function generateContractArtifactForPublic(contract) {
218
281
  try {
219
282
  return ContractArtifactSchema.parse({
220
283
  name: contract.name,
221
284
  functions: contract.functions.map((f)=>generateFunctionArtifact(f, contract)),
285
+ nonDispatchPublicFunctions: contract.functions.filter((f)=>!retainBytecode(f)).map((f)=>generateFunctionAbi(f, contract)),
222
286
  outputs: contract.outputs,
223
287
  storageLayout: getStorageLayout(contract),
224
288
  notes: getNoteTypes(contract),
225
- fileMap: contract.file_map,
226
- ...aztecNrVersion ? {
227
- aztecNrVersion
228
- } : {}
289
+ fileMap: contract.file_map
229
290
  });
230
291
  } catch (err) {
231
292
  throw new Error(`Could not generate contract artifact for ${contract.name}: ${err}`);