@aztec/stdlib 0.83.1-nightly.20250404 → 0.84.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 (41) hide show
  1. package/dest/abi/abi.d.ts +2 -2
  2. package/dest/abi/abi.d.ts.map +1 -1
  3. package/dest/abi/abi.js +1 -1
  4. package/dest/abi/contract_artifact.d.ts.map +1 -1
  5. package/dest/abi/contract_artifact.js +21 -9
  6. package/dest/contract/artifact_hash.d.ts +5 -5
  7. package/dest/contract/artifact_hash.d.ts.map +1 -1
  8. package/dest/contract/artifact_hash.js +8 -8
  9. package/dest/contract/index.d.ts +1 -1
  10. package/dest/contract/index.d.ts.map +1 -1
  11. package/dest/contract/index.js +1 -1
  12. package/dest/contract/interfaces/contract_class.d.ts +23 -19
  13. package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
  14. package/dest/contract/interfaces/contract_class.js +4 -4
  15. package/dest/contract/private_function_membership_proof.d.ts +1 -1
  16. package/dest/contract/private_function_membership_proof.js +6 -6
  17. package/dest/contract/utility_function_membership_proof.d.ts +27 -0
  18. package/dest/contract/utility_function_membership_proof.d.ts.map +1 -0
  19. package/dest/contract/{unconstrained_function_membership_proof.js → utility_function_membership_proof.js} +13 -13
  20. package/dest/interfaces/pxe.d.ts +7 -8
  21. package/dest/interfaces/pxe.d.ts.map +1 -1
  22. package/dest/interfaces/pxe.js +1 -1
  23. package/dest/noir/index.d.ts +3 -1
  24. package/dest/noir/index.d.ts.map +1 -1
  25. package/dest/noir/index.js +1 -0
  26. package/dest/tests/factories.d.ts +2 -2
  27. package/dest/tests/factories.d.ts.map +1 -1
  28. package/dest/tests/factories.js +3 -3
  29. package/package.json +6 -6
  30. package/src/abi/abi.ts +2 -2
  31. package/src/abi/contract_artifact.ts +22 -8
  32. package/src/contract/artifact_hash.ts +9 -9
  33. package/src/contract/index.ts +1 -1
  34. package/src/contract/interfaces/contract_class.ts +21 -17
  35. package/src/contract/private_function_membership_proof.ts +6 -6
  36. package/src/contract/{unconstrained_function_membership_proof.ts → utility_function_membership_proof.ts} +18 -18
  37. package/src/interfaces/pxe.ts +8 -9
  38. package/src/noir/index.ts +2 -1
  39. package/src/tests/factories.ts +4 -4
  40. package/dest/contract/unconstrained_function_membership_proof.d.ts +0 -27
  41. package/dest/contract/unconstrained_function_membership_proof.d.ts.map +0 -1
package/dest/abi/abi.d.ts CHANGED
@@ -127,7 +127,7 @@ export type AbiErrorType = {
127
127
  export declare enum FunctionType {
128
128
  PRIVATE = "private",
129
129
  PUBLIC = "public",
130
- UNCONSTRAINED = "unconstrained"
130
+ UTILITY = "utility"
131
131
  }
132
132
  /** The abi entry of a function. */
133
133
  export interface FunctionAbi {
@@ -812,7 +812,7 @@ export type FieldLayout = {
812
812
  export interface ContractArtifact {
813
813
  /** The name of the contract. */
814
814
  name: string;
815
- /** The functions of the contract. Includes private and unconstrained functions, plus the public dispatch function. */
815
+ /** The functions of the contract. Includes private and utility functions, plus the public dispatch function. */
816
816
  functions: FunctionArtifact[];
817
817
  /** The public functions of the contract, excluding dispatch. */
818
818
  nonDispatchPublicFunctions: FunctionAbi[];
@@ -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
@@ -99,7 +99,7 @@ const AbiErrorTypeSchema = z.union([
99
99
  /** Aztec.nr function types. */ export var FunctionType = /*#__PURE__*/ function(FunctionType) {
100
100
  FunctionType["PRIVATE"] = "private";
101
101
  FunctionType["PUBLIC"] = "public";
102
- FunctionType["UNCONSTRAINED"] = "unconstrained";
102
+ FunctionType["UTILITY"] = "utility";
103
103
  return FunctionType;
104
104
  }({});
105
105
  export const FunctionAbiSchema = z.object({
@@ -1 +1 @@
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"}
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,EAOL,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"}
@@ -1,6 +1,6 @@
1
1
  import { jsonParseWithSchema, jsonStringify } from '@aztec/foundation/json-rpc';
2
2
  import { ContractArtifactSchema, FunctionType } from '../abi/index.js';
3
- import { AZTEC_INITIALIZER_ATTRIBUTE, AZTEC_INTERNAL_ATTRIBUTE, AZTEC_PRIVATE_ATTRIBUTE, AZTEC_PUBLIC_ATTRIBUTE, AZTEC_VIEW_ATTRIBUTE } from '../noir/index.js';
3
+ import { AZTEC_INITIALIZER_ATTRIBUTE, AZTEC_INTERNAL_ATTRIBUTE, AZTEC_PRIVATE_ATTRIBUTE, AZTEC_PUBLIC_ATTRIBUTE, AZTEC_UTILITY_ATTRIBUTE, AZTEC_VIEW_ATTRIBUTE } from '../noir/index.js';
4
4
  /**
5
5
  * Serializes a contract artifact to a buffer for storage.
6
6
  * @param artifact - Artifact to serialize.
@@ -109,13 +109,13 @@ import { AZTEC_INITIALIZER_ATTRIBUTE, AZTEC_INTERNAL_ATTRIBUTE, AZTEC_PRIVATE_AT
109
109
  const functionType = getFunctionType(fn);
110
110
  const isInternal = fn.custom_attributes.includes(AZTEC_INTERNAL_ATTRIBUTE);
111
111
  const isStatic = fn.custom_attributes.includes(AZTEC_VIEW_ATTRIBUTE);
112
- // If the function is not unconstrained, the first item is inputs or CallContext which we should omit
112
+ // If the function is not a utility function, the first item is inputs or CallContext which we should omit
113
113
  let parameters = fn.abi.parameters.map(generateFunctionParameter);
114
114
  if (hasKernelFunctionInputs(parameters)) {
115
115
  parameters = parameters.slice(1);
116
116
  }
117
117
  let returnTypes = [];
118
- if (functionType === FunctionType.UNCONSTRAINED) {
118
+ if (functionType === FunctionType.UTILITY) {
119
119
  returnTypes = fn.abi.return_type ? [
120
120
  fn.abi.return_type.abi_type
121
121
  ] : returnTypes;
@@ -166,17 +166,29 @@ import { AZTEC_INITIALIZER_ATTRIBUTE, AZTEC_INTERNAL_ATTRIBUTE, AZTEC_PRIVATE_AT
166
166
  };
167
167
  }
168
168
  function getFunctionType(fn) {
169
- if (fn.custom_attributes.includes(AZTEC_PRIVATE_ATTRIBUTE)) {
169
+ if (fn.custom_attributes.some((attr)=>attr.endsWith(AZTEC_PRIVATE_ATTRIBUTE))) {
170
170
  return FunctionType.PRIVATE;
171
- } else if (fn.custom_attributes.includes(AZTEC_PUBLIC_ATTRIBUTE)) {
171
+ } else if (fn.custom_attributes.some((attr)=>attr.endsWith(AZTEC_PUBLIC_ATTRIBUTE))) {
172
172
  return FunctionType.PUBLIC;
173
- } else if (fn.is_unconstrained) {
174
- return FunctionType.UNCONSTRAINED;
173
+ } else if (fn.custom_attributes.some((attr)=>attr.endsWith(AZTEC_UTILITY_ATTRIBUTE))) {
174
+ return FunctionType.UTILITY;
175
175
  } else {
176
- // Default to a private function (see simple_macro_example_expanded for an example of this behavior)
177
- return FunctionType.PRIVATE;
176
+ throw new Error(`Invalid function type for a noir contract function ${fn.name}`);
178
177
  }
179
178
  }
179
+ // TODO(https://github.com/noir-lang/noir/issues/7912): Replace the above function with this one once the linked issue
180
+ // is fixed.
181
+ // function getFunctionType(fn: NoirCompiledContractFunction): FunctionType {
182
+ // if (fn.custom_attributes.includes(AZTEC_PRIVATE_ATTRIBUTE)) {
183
+ // return FunctionType.PRIVATE;
184
+ // } else if (fn.custom_attributes.includes(AZTEC_PUBLIC_ATTRIBUTE)) {
185
+ // return FunctionType.PUBLIC;
186
+ // } else if (fn.custom_attributes.includes(AZTEC_UTILITY_ATTRIBUTE)) {
187
+ // return FunctionType.UTILITY;
188
+ // } else {
189
+ // throw new Error(`Invalid function type for a noir contract function ${fn.name}`);
190
+ // }
191
+ // }
180
192
  /**
181
193
  * Returns true if the first parameter is kernel function inputs.
182
194
  *
@@ -11,15 +11,15 @@ import { type ContractArtifact, type FunctionArtifact, FunctionSelector, Functio
11
11
  * sha256(fn.selector, fn.metadata_hash, sha256(fn.bytecode))
12
12
  * private_functions_artifact_tree_root = merkleize(private_functions_artifact_leaves)
13
13
  *
14
- * unconstrained_functions_artifact_leaves = artifact.unconstrained_functions.map fn =>
14
+ * utility_functions_artifact_leaves = artifact.utility_functions.map fn =>
15
15
  * sha256(fn.selector, fn.metadata_hash, sha256(fn.bytecode))
16
- * unconstrained_functions_artifact_tree_root = merkleize(unconstrained_functions_artifact_leaves)
16
+ * utility_functions_artifact_tree_root = merkleize(utility_functions_artifact_leaves)
17
17
  *
18
18
  * version = 1
19
19
  * artifact_hash = sha256(
20
20
  * version,
21
21
  * private_functions_artifact_tree_root,
22
- * unconstrained_functions_artifact_tree_root,
22
+ * utility_functions_artifact_tree_root,
23
23
  * artifact_metadata,
24
24
  * )
25
25
  * ```
@@ -27,12 +27,12 @@ import { type ContractArtifact, type FunctionArtifact, FunctionSelector, Functio
27
27
  */
28
28
  export declare function computeArtifactHash(artifact: ContractArtifact | {
29
29
  privateFunctionRoot: Fr;
30
- unconstrainedFunctionRoot: Fr;
30
+ utilityFunctionRoot: Fr;
31
31
  metadataHash: Fr;
32
32
  }): Promise<Fr>;
33
33
  export declare function computeArtifactHashPreimage(artifact: ContractArtifact): Promise<{
34
34
  privateFunctionRoot: Fr;
35
- unconstrainedFunctionRoot: Fr;
35
+ utilityFunctionRoot: Fr;
36
36
  metadataHash: Fr;
37
37
  }>;
38
38
  export declare function computeArtifactMetadataHash(artifact: ContractArtifact): Fr;
@@ -1 +1 @@
1
- {"version":3,"file":"artifact_hash.d.ts","sourceRoot":"","sources":["../../src/contract/artifact_hash.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,EAAE,EAAY,MAAM,0BAA0B,CAAC;AAGxD,OAAO,EAAE,UAAU,EAAwB,MAAM,yBAAyB,CAAC;AAE3E,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAS/G;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,gBAAgB,GAAG;IAAE,mBAAmB,EAAE,EAAE,CAAC;IAAC,yBAAyB,EAAE,EAAE,CAAC;IAAC,YAAY,EAAE,EAAE,CAAA;CAAE,GACxG,OAAO,CAAC,EAAE,CAAC,CAWb;AAED,wBAAsB,2BAA2B,CAAC,QAAQ,EAAE,gBAAgB;;;;GAK3E;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,gBAAgB,MAErE;AAED,wBAAsB,+BAA+B,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,YAAY,eAGrG;AAED,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CASjC;AAYD,wBAAsB,2BAA2B,CAC/C,EAAE,EACE,gBAAgB,GAChB,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,GAAG;IAAE,oBAAoB,EAAE,EAAE,CAAC;IAAC,QAAQ,EAAE,gBAAgB,CAAA;CAAE,CAAC,eAOpG;AAED,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,gBAAgB,MAE/D;AAMD,wBAAgB,2BAA2B,QAC9B,MAAM,KAAK,MAAM,qBAC7B"}
1
+ {"version":3,"file":"artifact_hash.d.ts","sourceRoot":"","sources":["../../src/contract/artifact_hash.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,EAAE,EAAY,MAAM,0BAA0B,CAAC;AAGxD,OAAO,EAAE,UAAU,EAAwB,MAAM,yBAAyB,CAAC;AAE3E,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAS/G;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,gBAAgB,GAAG;IAAE,mBAAmB,EAAE,EAAE,CAAC;IAAC,mBAAmB,EAAE,EAAE,CAAC;IAAC,YAAY,EAAE,EAAE,CAAA;CAAE,GAClG,OAAO,CAAC,EAAE,CAAC,CAWb;AAED,wBAAsB,2BAA2B,CAAC,QAAQ,EAAE,gBAAgB;;;;GAK3E;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,gBAAgB,MAErE;AAED,wBAAsB,+BAA+B,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,YAAY,eAGrG;AAED,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CASjC;AAYD,wBAAsB,2BAA2B,CAC/C,EAAE,EACE,gBAAgB,GAChB,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,GAAG;IAAE,oBAAoB,EAAE,EAAE,CAAC;IAAC,QAAQ,EAAE,gBAAgB,CAAA;CAAE,CAAC,eAOpG;AAED,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,gBAAgB,MAE/D;AAMD,wBAAgB,2BAA2B,QAC9B,MAAM,KAAK,MAAM,qBAC7B"}
@@ -17,25 +17,25 @@ const sha256Fr = reduceFn(sha256, Fr);
17
17
  * sha256(fn.selector, fn.metadata_hash, sha256(fn.bytecode))
18
18
  * private_functions_artifact_tree_root = merkleize(private_functions_artifact_leaves)
19
19
  *
20
- * unconstrained_functions_artifact_leaves = artifact.unconstrained_functions.map fn =>
20
+ * utility_functions_artifact_leaves = artifact.utility_functions.map fn =>
21
21
  * sha256(fn.selector, fn.metadata_hash, sha256(fn.bytecode))
22
- * unconstrained_functions_artifact_tree_root = merkleize(unconstrained_functions_artifact_leaves)
22
+ * utility_functions_artifact_tree_root = merkleize(utility_functions_artifact_leaves)
23
23
  *
24
24
  * version = 1
25
25
  * artifact_hash = sha256(
26
26
  * version,
27
27
  * private_functions_artifact_tree_root,
28
- * unconstrained_functions_artifact_tree_root,
28
+ * utility_functions_artifact_tree_root,
29
29
  * artifact_metadata,
30
30
  * )
31
31
  * ```
32
32
  * @param artifact - Artifact to calculate the hash for.
33
33
  */ export async function computeArtifactHash(artifact) {
34
- if ('privateFunctionRoot' in artifact && 'unconstrainedFunctionRoot' in artifact && 'metadataHash' in artifact) {
35
- const { privateFunctionRoot, unconstrainedFunctionRoot, metadataHash } = artifact;
34
+ if ('privateFunctionRoot' in artifact && 'utilityFunctionRoot' in artifact && 'metadataHash' in artifact) {
35
+ const { privateFunctionRoot, utilityFunctionRoot, metadataHash } = artifact;
36
36
  const preimage = [
37
37
  privateFunctionRoot,
38
- unconstrainedFunctionRoot,
38
+ utilityFunctionRoot,
39
39
  metadataHash
40
40
  ].map((x)=>x.toBuffer());
41
41
  return sha256Fr(Buffer.concat([
@@ -53,11 +53,11 @@ const sha256Fr = reduceFn(sha256, Fr);
53
53
  }
54
54
  export async function computeArtifactHashPreimage(artifact) {
55
55
  const privateFunctionRoot = await computeArtifactFunctionTreeRoot(artifact, FunctionType.PRIVATE);
56
- const unconstrainedFunctionRoot = await computeArtifactFunctionTreeRoot(artifact, FunctionType.UNCONSTRAINED);
56
+ const utilityFunctionRoot = await computeArtifactFunctionTreeRoot(artifact, FunctionType.UTILITY);
57
57
  const metadataHash = computeArtifactMetadataHash(artifact);
58
58
  return {
59
59
  privateFunctionRoot,
60
- unconstrainedFunctionRoot,
60
+ utilityFunctionRoot,
61
61
  metadataHash
62
62
  };
63
63
  }
@@ -6,7 +6,7 @@ export * from './contract_instance.js';
6
6
  export * from './contract_instance_update.js';
7
7
  export * from './private_function.js';
8
8
  export * from './private_function_membership_proof.js';
9
- export * from './unconstrained_function_membership_proof.js';
9
+ export * from './utility_function_membership_proof.js';
10
10
  export * from './interfaces/index.js';
11
11
  export * from './contract_function_dao.js';
12
12
  export * from './partial_address.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contract/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wCAAwC,CAAC;AACvD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contract/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
@@ -6,7 +6,7 @@ export * from './contract_instance.js';
6
6
  export * from './contract_instance_update.js';
7
7
  export * from './private_function.js';
8
8
  export * from './private_function_membership_proof.js';
9
- export * from './unconstrained_function_membership_proof.js';
9
+ export * from './utility_function_membership_proof.js';
10
10
  export * from './interfaces/index.js';
11
11
  export * from './contract_function_dao.js';
12
12
  export * from './partial_address.js';
@@ -13,7 +13,11 @@ declare const VERSION: 1;
13
13
  export interface ContractClass {
14
14
  /** Version of the contract class. */
15
15
  version: typeof VERSION;
16
- /** Hash of the contract artifact. The specification of this hash is not enforced by the protocol. Should include commitments to unconstrained code and compilation metadata. Intended to be used by clients to verify that an off-chain fetched artifact matches a registered class. */
16
+ /**
17
+ * Hash of the contract artifact. The specification of this hash is not enforced by the protocol. Should include
18
+ * commitments to code of utility functions and compilation metadata. Intended to be used by clients to verify that
19
+ * an off-chain fetched artifact matches a registered class.
20
+ */
17
21
  artifactHash: Fr;
18
22
  /** List of individual private functions, constructors included. */
19
23
  privateFunctions: PrivateFunction[];
@@ -32,8 +36,8 @@ export interface ExecutablePrivateFunction extends PrivateFunction {
32
36
  /** ACIR and Brillig bytecode */
33
37
  bytecode: Buffer;
34
38
  }
35
- /** Unconstrained function definition. */
36
- export interface UnconstrainedFunction {
39
+ /** Utility function definition. */
40
+ export interface UtilityFunction {
37
41
  /** Selector of the function. Calculated as the hash of the method name and parameters. The specification of this is not enforced by the protocol. */
38
42
  selector: FunctionSelector;
39
43
  /** Brillig. */
@@ -43,24 +47,24 @@ export interface UnconstrainedFunction {
43
47
  export type PrivateFunctionMembershipProof = {
44
48
  artifactMetadataHash: Fr;
45
49
  functionMetadataHash: Fr;
46
- unconstrainedFunctionsArtifactTreeRoot: Fr;
50
+ utilityFunctionsTreeRoot: Fr;
47
51
  privateFunctionTreeSiblingPath: Fr[];
48
52
  privateFunctionTreeLeafIndex: number;
49
53
  artifactTreeSiblingPath: Fr[];
50
54
  artifactTreeLeafIndex: number;
51
55
  };
52
- /** A private function with a memebership proof. */
56
+ /** A private function with a membership proof. */
53
57
  export type ExecutablePrivateFunctionWithMembershipProof = ExecutablePrivateFunction & PrivateFunctionMembershipProof;
54
- /** Sibling paths and commitments for proving membership of an unconstrained function within a contract class. */
55
- export type UnconstrainedFunctionMembershipProof = {
58
+ /** Sibling paths and commitments for proving membership of a utility function within a contract class. */
59
+ export type UtilityFunctionMembershipProof = {
56
60
  artifactMetadataHash: Fr;
57
61
  functionMetadataHash: Fr;
58
62
  privateFunctionsArtifactTreeRoot: Fr;
59
63
  artifactTreeSiblingPath: Fr[];
60
64
  artifactTreeLeafIndex: number;
61
65
  };
62
- /** An unconstrained function with a membership proof. */
63
- export type UnconstrainedFunctionWithMembershipProof = UnconstrainedFunction & UnconstrainedFunctionMembershipProof;
66
+ /** A utility function with a membership proof. */
67
+ export type UtilityFunctionWithMembershipProof = UtilityFunction & UtilityFunctionMembershipProof;
64
68
  export declare const ContractClassSchema: z.ZodObject<{
65
69
  version: z.ZodLiteral<1>;
66
70
  artifactHash: z.ZodType<Fr, any, string>;
@@ -168,10 +172,10 @@ export declare const ContractClassWithIdSchema: z.ZodObject<z.objectUtil.extendS
168
172
  selector?: any;
169
173
  }[];
170
174
  }>;
171
- /** A contract class with public bytecode information, and optional private and unconstrained. */
175
+ /** A contract class with public bytecode information, and optional private and utility functions. */
172
176
  export type ContractClassPublic = {
173
177
  privateFunctions: ExecutablePrivateFunctionWithMembershipProof[];
174
- unconstrainedFunctions: UnconstrainedFunctionWithMembershipProof[];
178
+ utilityFunctions: UtilityFunctionWithMembershipProof[];
175
179
  } & Pick<ContractClassCommitments, 'id' | 'privateFunctionsRoot'> & Omit<ContractClass, 'privateFunctions'>;
176
180
  export type ContractClassPublicWithCommitment = ContractClassPublic & Pick<ContractClassCommitments, 'publicBytecodeCommitment'>;
177
181
  export declare const ContractClassPublicSchema: z.ZodIntersection<z.ZodObject<{
@@ -210,7 +214,7 @@ export declare const ContractClassPublicSchema: z.ZodIntersection<z.ZodObject<{
210
214
  }>>, z.ZodObject<{
211
215
  artifactMetadataHash: z.ZodType<Fr, any, string>;
212
216
  functionMetadataHash: z.ZodType<Fr, any, string>;
213
- unconstrainedFunctionsArtifactTreeRoot: z.ZodType<Fr, any, string>;
217
+ utilityFunctionsTreeRoot: z.ZodType<Fr, any, string>;
214
218
  privateFunctionTreeSiblingPath: z.ZodArray<z.ZodType<Fr, any, string>, "many">;
215
219
  privateFunctionTreeLeafIndex: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
216
220
  artifactTreeSiblingPath: z.ZodArray<z.ZodType<Fr, any, string>, "many">;
@@ -218,7 +222,7 @@ export declare const ContractClassPublicSchema: z.ZodIntersection<z.ZodObject<{
218
222
  }, "strip", z.ZodTypeAny, {
219
223
  functionMetadataHash: Fr;
220
224
  artifactMetadataHash: Fr;
221
- unconstrainedFunctionsArtifactTreeRoot: Fr;
225
+ utilityFunctionsTreeRoot: Fr;
222
226
  privateFunctionTreeSiblingPath: Fr[];
223
227
  privateFunctionTreeLeafIndex: number;
224
228
  artifactTreeSiblingPath: Fr[];
@@ -226,13 +230,13 @@ export declare const ContractClassPublicSchema: z.ZodIntersection<z.ZodObject<{
226
230
  }, {
227
231
  functionMetadataHash: string;
228
232
  artifactMetadataHash: string;
229
- unconstrainedFunctionsArtifactTreeRoot: string;
233
+ utilityFunctionsTreeRoot: string;
230
234
  privateFunctionTreeSiblingPath: string[];
231
235
  privateFunctionTreeLeafIndex: string | number | bigint;
232
236
  artifactTreeSiblingPath: string[];
233
237
  artifactTreeLeafIndex: string | number | bigint;
234
238
  }>>, "many">;
235
- unconstrainedFunctions: z.ZodArray<z.ZodIntersection<z.ZodObject<{
239
+ utilityFunctions: z.ZodArray<z.ZodIntersection<z.ZodObject<{
236
240
  /** lala */
237
241
  selector: ZodFor<FunctionSelector>;
238
242
  bytecode: z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, Buffer, string>, z.ZodEffects<z.ZodObject<{
@@ -287,13 +291,13 @@ export declare const ContractClassPublicSchema: z.ZodIntersection<z.ZodObject<{
287
291
  } & {
288
292
  functionMetadataHash: Fr;
289
293
  artifactMetadataHash: Fr;
290
- unconstrainedFunctionsArtifactTreeRoot: Fr;
294
+ utilityFunctionsTreeRoot: Fr;
291
295
  privateFunctionTreeSiblingPath: Fr[];
292
296
  privateFunctionTreeLeafIndex: number;
293
297
  artifactTreeSiblingPath: Fr[];
294
298
  artifactTreeLeafIndex: number;
295
299
  })[];
296
- unconstrainedFunctions: ({
300
+ utilityFunctions: ({
297
301
  bytecode: Buffer;
298
302
  selector: FunctionSelector;
299
303
  } & {
@@ -317,13 +321,13 @@ export declare const ContractClassPublicSchema: z.ZodIntersection<z.ZodObject<{
317
321
  } & {
318
322
  functionMetadataHash: string;
319
323
  artifactMetadataHash: string;
320
- unconstrainedFunctionsArtifactTreeRoot: string;
324
+ utilityFunctionsTreeRoot: string;
321
325
  privateFunctionTreeSiblingPath: string[];
322
326
  privateFunctionTreeLeafIndex: string | number | bigint;
323
327
  artifactTreeSiblingPath: string[];
324
328
  artifactTreeLeafIndex: string | number | bigint;
325
329
  })[];
326
- unconstrainedFunctions: ({
330
+ utilityFunctions: ({
327
331
  bytecode: string | {
328
332
  type: "Buffer";
329
333
  data: number[];
@@ -1 +1 @@
1
- {"version":3,"file":"contract_class.d.ts","sourceRoot":"","sources":["../../../src/contract/interfaces/contract_class.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract_class.d.ts","sourceRoot":"","sources":["../../../src/contract/interfaces/contract_class.ts"],"names":[],"mappings":"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"}
@@ -9,20 +9,20 @@ const PrivateFunctionSchema = z.object({
9
9
  const ExecutablePrivateFunctionSchema = PrivateFunctionSchema.and(z.object({
10
10
  bytecode: schemas.Buffer
11
11
  }));
12
- const UnconstrainedFunctionSchema = z.object({
12
+ const UtilityFunctionSchema = z.object({
13
13
  /** lala */ selector: FunctionSelector.schema,
14
14
  bytecode: schemas.Buffer
15
15
  });
16
16
  const PrivateFunctionMembershipProofSchema = z.object({
17
17
  artifactMetadataHash: schemas.Fr,
18
18
  functionMetadataHash: schemas.Fr,
19
- unconstrainedFunctionsArtifactTreeRoot: schemas.Fr,
19
+ utilityFunctionsTreeRoot: schemas.Fr,
20
20
  privateFunctionTreeSiblingPath: z.array(schemas.Fr),
21
21
  privateFunctionTreeLeafIndex: schemas.Integer,
22
22
  artifactTreeSiblingPath: z.array(schemas.Fr),
23
23
  artifactTreeLeafIndex: schemas.Integer
24
24
  });
25
- const UnconstrainedFunctionMembershipProofSchema = z.object({
25
+ const UtilityFunctionMembershipProofSchema = z.object({
26
26
  artifactMetadataHash: schemas.Fr,
27
27
  functionMetadataHash: schemas.Fr,
28
28
  privateFunctionsArtifactTreeRoot: schemas.Fr,
@@ -42,7 +42,7 @@ export const ContractClassPublicSchema = z.object({
42
42
  id: schemas.Fr,
43
43
  privateFunctionsRoot: schemas.Fr,
44
44
  privateFunctions: z.array(ExecutablePrivateFunctionSchema.and(PrivateFunctionMembershipProofSchema)),
45
- unconstrainedFunctions: z.array(UnconstrainedFunctionSchema.and(UnconstrainedFunctionMembershipProofSchema))
45
+ utilityFunctions: z.array(UtilityFunctionSchema.and(UtilityFunctionMembershipProofSchema))
46
46
  }).and(ContractClassSchema.omit({
47
47
  privateFunctions: true
48
48
  }));
@@ -22,7 +22,7 @@ export declare function createPrivateFunctionMembershipProof(selector: FunctionS
22
22
  * // Compute artifact leaf and assert it belongs to the artifact
23
23
  * artifact_function_leaf = sha256(selector, metadata_hash, sha256(bytecode))
24
24
  * computed_artifact_private_function_tree_root = compute_root(artifact_function_leaf, artifact_function_tree_sibling_path)
25
- * computed_artifact_hash = sha256(computed_artifact_private_function_tree_root, unconstrained_functions_artifact_tree_root, artifact_metadata_hash)
25
+ * computed_artifact_hash = sha256(computed_artifact_private_function_tree_root, utility_functions_artifact_tree_root, artifact_metadata_hash)
26
26
  * assert computed_artifact_hash == contract_class.artifact_hash
27
27
  * ```
28
28
  * @param fn - Function to check membership proof for.
@@ -25,7 +25,7 @@ import { computePrivateFunctionLeaf, computePrivateFunctionsTree } from './priva
25
25
  throw new Error(`Private function with selector ${selector.toString()} not found`);
26
26
  }
27
27
  // Compute preimage for the artifact hash
28
- const { unconstrainedFunctionRoot: unconstrainedFunctionsArtifactTreeRoot, metadataHash: artifactMetadataHash } = await computeArtifactHashPreimage(artifact);
28
+ const { utilityFunctionRoot: utilityFunctionsTreeRoot, metadataHash: artifactMetadataHash } = await computeArtifactHashPreimage(artifact);
29
29
  // We need two sibling paths because private function information is split across two trees:
30
30
  // The "private function tree" captures the selectors and verification keys, and is used in the kernel circuit for verifying the proof generated by the app circuit.
31
31
  const functionLeaf = await computePrivateFunctionLeaf(privateFunction);
@@ -47,7 +47,7 @@ import { computePrivateFunctionLeaf, computePrivateFunctionsTree } from './priva
47
47
  functionLeaf: '0x' + functionLeaf.toString('hex'),
48
48
  artifactMetadataHash,
49
49
  privateFunctionsTreeRoot: '0x' + functionsTree.root.toString('hex'),
50
- unconstrainedFunctionsArtifactTreeRoot,
50
+ utilityFunctionsTreeRoot,
51
51
  artifactFunctionTreeSiblingPath: artifactTreeSiblingPath.map((fr)=>fr.toString()).join(','),
52
52
  privateFunctionTreeSiblingPath: functionsTreeSiblingPath.map((fr)=>fr.toString()).join(',')
53
53
  });
@@ -56,7 +56,7 @@ import { computePrivateFunctionLeaf, computePrivateFunctionsTree } from './priva
56
56
  artifactTreeLeafIndex,
57
57
  artifactMetadataHash,
58
58
  functionMetadataHash,
59
- unconstrainedFunctionsArtifactTreeRoot,
59
+ utilityFunctionsTreeRoot,
60
60
  privateFunctionTreeSiblingPath: functionsTreeSiblingPath,
61
61
  privateFunctionTreeLeafIndex: functionsTreeLeafIndex
62
62
  };
@@ -77,7 +77,7 @@ import { computePrivateFunctionLeaf, computePrivateFunctionsTree } from './priva
77
77
  * // Compute artifact leaf and assert it belongs to the artifact
78
78
  * artifact_function_leaf = sha256(selector, metadata_hash, sha256(bytecode))
79
79
  * computed_artifact_private_function_tree_root = compute_root(artifact_function_leaf, artifact_function_tree_sibling_path)
80
- * computed_artifact_hash = sha256(computed_artifact_private_function_tree_root, unconstrained_functions_artifact_tree_root, artifact_metadata_hash)
80
+ * computed_artifact_hash = sha256(computed_artifact_private_function_tree_root, utility_functions_artifact_tree_root, artifact_metadata_hash)
81
81
  * assert computed_artifact_hash == contract_class.artifact_hash
82
82
  * ```
83
83
  * @param fn - Function to check membership proof for.
@@ -105,7 +105,7 @@ import { computePrivateFunctionLeaf, computePrivateFunctionsTree } from './priva
105
105
  const computedArtifactPrivateFunctionTreeRoot = Fr.fromBuffer(computedArtifactPrivateFunctionTreeRootBuffer);
106
106
  const computedArtifactHash = await computeArtifactHash({
107
107
  privateFunctionRoot: computedArtifactPrivateFunctionTreeRoot,
108
- unconstrainedFunctionRoot: fn.unconstrainedFunctionsArtifactTreeRoot,
108
+ utilityFunctionRoot: fn.utilityFunctionsTreeRoot,
109
109
  metadataHash: fn.artifactMetadataHash
110
110
  });
111
111
  if (!contractClass.artifactHash.equals(computedArtifactHash)) {
@@ -114,7 +114,7 @@ import { computePrivateFunctionLeaf, computePrivateFunctionsTree } from './priva
114
114
  computedArtifactHash,
115
115
  computedFunctionArtifactHash: functionArtifactHash,
116
116
  computedArtifactPrivateFunctionTreeRoot,
117
- unconstrainedFunctionRoot: fn.unconstrainedFunctionsArtifactTreeRoot,
117
+ utilityFunctionRoot: fn.utilityFunctionsTreeRoot,
118
118
  metadataHash: fn.artifactMetadataHash,
119
119
  artifactFunctionTreeSiblingPath: fn.artifactTreeSiblingPath.map((fr)=>fr.toString()).join(',')
120
120
  });
@@ -0,0 +1,27 @@
1
+ import { type ContractArtifact, FunctionSelector } from '../abi/index.js';
2
+ import type { ContractClassPublic, UtilityFunctionMembershipProof, UtilityFunctionWithMembershipProof } from './interfaces/index.js';
3
+ /**
4
+ * Creates a membership proof for a utility function in a contract class, to be verified via `isValidUtilityFunctionMembershipProof`.
5
+ * @param selector - Selector of the function to create the proof for.
6
+ * @param artifact - Artifact of the contract class where the function is defined.
7
+ */
8
+ export declare function createUtilityFunctionMembershipProof(selector: FunctionSelector, artifact: ContractArtifact): Promise<UtilityFunctionMembershipProof>;
9
+ /**
10
+ * Verifies that a utility function with a membership proof as emitted by the ClassRegisterer contract is valid,
11
+ * as defined in the protocol specs at contract-deployment/classes:
12
+ *
13
+ * ```
14
+ * // Load contract class from local db
15
+ * contract_class = db.get_contract_class(contract_class_id)
16
+ *
17
+ * // Compute artifact leaf and assert it belongs to the artifact
18
+ * artifact_function_leaf = sha256(selector, metadata_hash, sha256(bytecode))
19
+ * computed_artifact_utility_function_tree_root = compute_root(artifact_function_leaf, artifact_function_tree_sibling_path, artifact_function_tree_leaf_index)
20
+ * computed_artifact_hash = sha256(private_functions_artifact_tree_root, computed_artifact_utility_function_tree_root, artifact_metadata_hash)
21
+ * assert computed_artifact_hash == contract_class.artifact_hash
22
+ * ```
23
+ * @param fn - Function to check membership proof for.
24
+ * @param contractClass - In which contract class the function is expected to be.
25
+ */
26
+ export declare function isValidUtilityFunctionMembershipProof(fn: UtilityFunctionWithMembershipProof, contractClass: Pick<ContractClassPublic, 'artifactHash'>): Promise<boolean>;
27
+ //# sourceMappingURL=utility_function_membership_proof.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utility_function_membership_proof.d.ts","sourceRoot":"","sources":["../../src/contract/utility_function_membership_proof.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,gBAAgB,EAAE,gBAAgB,EAAgB,MAAM,iBAAiB,CAAC;AASxF,OAAO,KAAK,EACV,mBAAmB,EACnB,8BAA8B,EAC9B,kCAAkC,EACnC,MAAM,uBAAuB,CAAC;AAE/B;;;;GAIG;AACH,wBAAsB,oCAAoC,CACxD,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,8BAA8B,CAAC,CAsCzC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,qCAAqC,CACzD,EAAE,EAAE,kCAAkC,EACtC,aAAa,EAAE,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC,oBA+BzD"}
@@ -4,20 +4,20 @@ import { computeRootFromSiblingPath } from '@aztec/foundation/trees';
4
4
  import { FunctionSelector, FunctionType } from '../abi/index.js';
5
5
  import { computeArtifactFunctionTree, computeArtifactHash, computeArtifactHashPreimage, computeFunctionArtifactHash, computeFunctionMetadataHash, getArtifactMerkleTreeHasher } from './artifact_hash.js';
6
6
  /**
7
- * Creates a membership proof for an unconstrained function in a contract class, to be verified via `isValidUnconstrainedFunctionMembershipProof`.
7
+ * Creates a membership proof for a utility function in a contract class, to be verified via `isValidUtilityFunctionMembershipProof`.
8
8
  * @param selector - Selector of the function to create the proof for.
9
9
  * @param artifact - Artifact of the contract class where the function is defined.
10
- */ export async function createUnconstrainedFunctionMembershipProof(selector, artifact) {
10
+ */ export async function createUtilityFunctionMembershipProof(selector, artifact) {
11
11
  const log = createLogger('circuits:function_membership_proof');
12
12
  // Locate function artifact
13
- const uncontrainedFunctions = artifact.functions.filter((fn)=>fn.functionType === FunctionType.UNCONSTRAINED);
14
- const unconstrainedFunctionsAndSelectors = await Promise.all(uncontrainedFunctions.map(async (fn)=>({
13
+ const utilityFunctions = artifact.functions.filter((fn)=>fn.functionType === FunctionType.UTILITY);
14
+ const utilityFunctionsAndSelectors = await Promise.all(utilityFunctions.map(async (fn)=>({
15
15
  fn,
16
16
  selector: await FunctionSelector.fromNameAndParameters(fn)
17
17
  })));
18
- const fn = unconstrainedFunctionsAndSelectors.find((fnAndSelector)=>selector.equals(fnAndSelector.selector))?.fn;
18
+ const fn = utilityFunctionsAndSelectors.find((fnAndSelector)=>selector.equals(fnAndSelector.selector))?.fn;
19
19
  if (!fn) {
20
- throw new Error(`Unconstrained function with selector ${selector.toString()} not found`);
20
+ throw new Error(`Utility function with selector ${selector.toString()} not found`);
21
21
  }
22
22
  // Compute preimage for the artifact hash
23
23
  const { privateFunctionRoot: privateFunctionsArtifactTreeRoot, metadataHash: artifactMetadataHash } = await computeArtifactHashPreimage(artifact);
@@ -27,10 +27,10 @@ import { computeArtifactFunctionTree, computeArtifactHash, computeArtifactHashPr
27
27
  ...fn,
28
28
  functionMetadataHash
29
29
  });
30
- const artifactTree = await computeArtifactFunctionTree(artifact, FunctionType.UNCONSTRAINED);
30
+ const artifactTree = await computeArtifactFunctionTree(artifact, FunctionType.UTILITY);
31
31
  const artifactTreeLeafIndex = artifactTree.getIndex(functionArtifactHash.toBuffer());
32
32
  const artifactTreeSiblingPath = artifactTree.getSiblingPath(artifactTreeLeafIndex).map(Fr.fromBuffer);
33
- log.debug(`Computed proof for unconstrained function with selector ${selector.toString()}`, {
33
+ log.debug(`Computed proof for utility function with selector ${selector.toString()}`, {
34
34
  functionArtifactHash,
35
35
  functionMetadataHash,
36
36
  artifactMetadataHash,
@@ -46,7 +46,7 @@ import { computeArtifactFunctionTree, computeArtifactHash, computeArtifactHashPr
46
46
  };
47
47
  }
48
48
  /**
49
- * Verifies that an unconstrained function with a membership proof as emitted by the ClassRegisterer contract is valid,
49
+ * Verifies that a utility function with a membership proof as emitted by the ClassRegisterer contract is valid,
50
50
  * as defined in the protocol specs at contract-deployment/classes:
51
51
  *
52
52
  * ```
@@ -55,20 +55,20 @@ import { computeArtifactFunctionTree, computeArtifactHash, computeArtifactHashPr
55
55
  *
56
56
  * // Compute artifact leaf and assert it belongs to the artifact
57
57
  * artifact_function_leaf = sha256(selector, metadata_hash, sha256(bytecode))
58
- * computed_artifact_unconstrained_function_tree_root = compute_root(artifact_function_leaf, artifact_function_tree_sibling_path, artifact_function_tree_leaf_index)
59
- * computed_artifact_hash = sha256(private_functions_artifact_tree_root, computed_artifact_unconstrained_function_tree_root, artifact_metadata_hash)
58
+ * computed_artifact_utility_function_tree_root = compute_root(artifact_function_leaf, artifact_function_tree_sibling_path, artifact_function_tree_leaf_index)
59
+ * computed_artifact_hash = sha256(private_functions_artifact_tree_root, computed_artifact_utility_function_tree_root, artifact_metadata_hash)
60
60
  * assert computed_artifact_hash == contract_class.artifact_hash
61
61
  * ```
62
62
  * @param fn - Function to check membership proof for.
63
63
  * @param contractClass - In which contract class the function is expected to be.
64
- */ export async function isValidUnconstrainedFunctionMembershipProof(fn, contractClass) {
64
+ */ export async function isValidUtilityFunctionMembershipProof(fn, contractClass) {
65
65
  const log = createLogger('circuits:function_membership_proof');
66
66
  const functionArtifactHash = await computeFunctionArtifactHash(fn);
67
67
  const computedArtifactFunctionTreeRootBuffer = await computeRootFromSiblingPath(functionArtifactHash.toBuffer(), fn.artifactTreeSiblingPath.map((fr)=>fr.toBuffer()), fn.artifactTreeLeafIndex, getArtifactMerkleTreeHasher());
68
68
  const computedArtifactFunctionTreeRoot = Fr.fromBuffer(computedArtifactFunctionTreeRootBuffer);
69
69
  const computedArtifactHash = await computeArtifactHash({
70
70
  privateFunctionRoot: fn.privateFunctionsArtifactTreeRoot,
71
- unconstrainedFunctionRoot: computedArtifactFunctionTreeRoot,
71
+ utilityFunctionRoot: computedArtifactFunctionTreeRoot,
72
72
  metadataHash: fn.artifactMetadataHash
73
73
  });
74
74
  if (!contractClass.artifactHash.equals(computedArtifactHash)) {