@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.
- package/dest/abi/abi.d.ts +2 -2
- package/dest/abi/abi.d.ts.map +1 -1
- package/dest/abi/abi.js +1 -1
- package/dest/abi/contract_artifact.d.ts.map +1 -1
- package/dest/abi/contract_artifact.js +21 -9
- package/dest/contract/artifact_hash.d.ts +5 -5
- package/dest/contract/artifact_hash.d.ts.map +1 -1
- package/dest/contract/artifact_hash.js +8 -8
- package/dest/contract/index.d.ts +1 -1
- package/dest/contract/index.d.ts.map +1 -1
- package/dest/contract/index.js +1 -1
- package/dest/contract/interfaces/contract_class.d.ts +23 -19
- package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
- package/dest/contract/interfaces/contract_class.js +4 -4
- package/dest/contract/private_function_membership_proof.d.ts +1 -1
- package/dest/contract/private_function_membership_proof.js +6 -6
- package/dest/contract/utility_function_membership_proof.d.ts +27 -0
- package/dest/contract/utility_function_membership_proof.d.ts.map +1 -0
- package/dest/contract/{unconstrained_function_membership_proof.js → utility_function_membership_proof.js} +13 -13
- package/dest/interfaces/pxe.d.ts +7 -8
- package/dest/interfaces/pxe.d.ts.map +1 -1
- package/dest/interfaces/pxe.js +1 -1
- package/dest/noir/index.d.ts +3 -1
- package/dest/noir/index.d.ts.map +1 -1
- package/dest/noir/index.js +1 -0
- package/dest/tests/factories.d.ts +2 -2
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +3 -3
- package/package.json +6 -6
- package/src/abi/abi.ts +2 -2
- package/src/abi/contract_artifact.ts +22 -8
- package/src/contract/artifact_hash.ts +9 -9
- package/src/contract/index.ts +1 -1
- package/src/contract/interfaces/contract_class.ts +21 -17
- package/src/contract/private_function_membership_proof.ts +6 -6
- package/src/contract/{unconstrained_function_membership_proof.ts → utility_function_membership_proof.ts} +18 -18
- package/src/interfaces/pxe.ts +8 -9
- package/src/noir/index.ts +2 -1
- package/src/tests/factories.ts +4 -4
- package/dest/contract/unconstrained_function_membership_proof.d.ts +0 -27
- package/dest/contract/unconstrained_function_membership_proof.d.ts.map +0 -1
package/dest/interfaces/pxe.d.ts
CHANGED
|
@@ -208,19 +208,18 @@ export interface PXE {
|
|
|
208
208
|
*/
|
|
209
209
|
getCurrentBaseFees(): Promise<GasFees>;
|
|
210
210
|
/**
|
|
211
|
-
* Simulate the execution of
|
|
212
|
-
* This is useful to inspect contract state, for example fetching a variable value or calling a getter function.
|
|
213
|
-
* The function takes function name and arguments as parameters, along with the contract address
|
|
214
|
-
* and optionally the sender's address.
|
|
211
|
+
* Simulate the execution of a contract utility function.
|
|
215
212
|
*
|
|
216
|
-
* @param functionName - The name of the function to be called
|
|
213
|
+
* @param functionName - The name of the utility contract function to be called.
|
|
217
214
|
* @param args - The arguments to be provided to the function.
|
|
218
215
|
* @param to - The address of the contract to be called.
|
|
216
|
+
* @param authwits - (Optional) The authentication witnesses required for the function call.
|
|
219
217
|
* @param from - (Optional) The msg sender to set for the call.
|
|
220
|
-
* @param scopes - (Optional) The accounts whose notes we can access in this call. Currently optional and will
|
|
221
|
-
*
|
|
218
|
+
* @param scopes - (Optional) The accounts whose notes we can access in this call. Currently optional and will
|
|
219
|
+
* default to all.
|
|
220
|
+
* @returns The result of the utility function call, structured based on the function ABI.
|
|
222
221
|
*/
|
|
223
|
-
|
|
222
|
+
simulateUtility(functionName: string, args: any[], to: AztecAddress, authwits?: AuthWitness[], from?: AztecAddress, scopes?: AztecAddress[]): Promise<AbiDecoded>;
|
|
224
223
|
/**
|
|
225
224
|
* Gets public logs based on the provided filter.
|
|
226
225
|
* @param filter - The filter to apply to the logs.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pxe.d.ts","sourceRoot":"","sources":["../../src/interfaces/pxe.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"pxe.d.ts","sourceRoot":"","sources":["../../src/interfaces/pxe.ts"],"names":[],"mappings":"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"}
|
package/dest/interfaces/pxe.js
CHANGED
|
@@ -91,7 +91,7 @@ export const PXESchema = {
|
|
|
91
91
|
z.undefined()
|
|
92
92
|
])),
|
|
93
93
|
getCurrentBaseFees: z.function().returns(GasFees.schema),
|
|
94
|
-
|
|
94
|
+
simulateUtility: z.function().args(z.string(), z.array(z.any()), schemas.AztecAddress, optional(z.array(AuthWitness.schema)), optional(schemas.AztecAddress), optional(z.array(schemas.AztecAddress))).returns(AbiDecodedSchema),
|
|
95
95
|
getPublicLogs: z.function().args(LogFilterSchema).returns(GetPublicLogsResponseSchema),
|
|
96
96
|
getContractClassLogs: z.function().args(LogFilterSchema).returns(GetContractClassLogsResponseSchema),
|
|
97
97
|
getBlockNumber: z.function().returns(z.number()),
|
package/dest/noir/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ABIParameter, ABIParameterVisibility, AbiErrorType, AbiType, AbiValue, DebugFileMap, DebugInfo } from '../abi/abi.js';
|
|
2
2
|
export declare const AZTEC_PRIVATE_ATTRIBUTE = "private";
|
|
3
3
|
export declare const AZTEC_PUBLIC_ATTRIBUTE = "public";
|
|
4
|
+
export declare const AZTEC_UTILITY_ATTRIBUTE = "utility";
|
|
4
5
|
export declare const AZTEC_INTERNAL_ATTRIBUTE = "internal";
|
|
5
6
|
export declare const AZTEC_INITIALIZER_ATTRIBUTE = "initializer";
|
|
6
7
|
export declare const AZTEC_VIEW_ATTRIBUTE = "view";
|
|
@@ -25,7 +26,7 @@ export interface NoirFunctionAbi {
|
|
|
25
26
|
/**
|
|
26
27
|
* The compilation result of an Aztec.nr function.
|
|
27
28
|
*/
|
|
28
|
-
|
|
29
|
+
interface NoirFunctionEntry {
|
|
29
30
|
/** The name of the function. */
|
|
30
31
|
name: string;
|
|
31
32
|
/** Whether the function is unconstrained. */
|
|
@@ -129,4 +130,5 @@ export declare function isNoirContractCompilationArtifacts(artifact: NoirCompila
|
|
|
129
130
|
* Check if it has Contract unique property
|
|
130
131
|
*/
|
|
131
132
|
export declare function isNoirProgramCompilationArtifacts(artifact: NoirCompilationResult): artifact is NoirProgramCompilationArtifacts;
|
|
133
|
+
export {};
|
|
132
134
|
//# sourceMappingURL=index.d.ts.map
|
package/dest/noir/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/noir/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,sBAAsB,EACtB,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,SAAS,EACV,MAAM,eAAe,CAAC;AAEvB,eAAO,MAAM,uBAAuB,YAAY,CAAC;AACjD,eAAO,MAAM,sBAAsB,WAAW,CAAC;AAC/C,eAAO,MAAM,wBAAwB,aAAa,CAAC;AACnD,eAAO,MAAM,2BAA2B,gBAAgB,CAAC;AACzD,eAAO,MAAM,oBAAoB,SAAS,CAAC;AAE3C,uCAAuC;AACvC,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,uCAAuC;IACvC,WAAW,EAAE;QACX;;WAEG;QACH,QAAQ,EAAE,OAAO,CAAC;QAClB;;WAEG;QACH,UAAU,EAAE,sBAAsB,CAAC;KACpC,CAAC;IACF,8CAA8C;IAC9C,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;CACpD;AAED;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/noir/index.ts"],"names":[],"mappings":"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"}
|
package/dest/noir/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export const AZTEC_PRIVATE_ATTRIBUTE = 'private';
|
|
2
2
|
export const AZTEC_PUBLIC_ATTRIBUTE = 'public';
|
|
3
|
+
export const AZTEC_UTILITY_ATTRIBUTE = 'utility';
|
|
3
4
|
export const AZTEC_INTERNAL_ATTRIBUTE = 'internal';
|
|
4
5
|
export const AZTEC_INITIALIZER_ATTRIBUTE = 'initializer';
|
|
5
6
|
export const AZTEC_VIEW_ATTRIBUTE = 'view';
|
|
@@ -13,7 +13,7 @@ import { AvmBytecodeCommitmentHint, AvmCircuitInputs, AvmContractClassHint, AvmC
|
|
|
13
13
|
import { PublicDataRead } from '../avm/public_data_read.js';
|
|
14
14
|
import { PublicDataWrite } from '../avm/public_data_write.js';
|
|
15
15
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
16
|
-
import { type ContractClassPublic, type ContractInstanceWithAddress, type ExecutablePrivateFunctionWithMembershipProof, type
|
|
16
|
+
import { type ContractClassPublic, type ContractInstanceWithAddress, type ExecutablePrivateFunctionWithMembershipProof, type UtilityFunctionWithMembershipProof } from '../contract/index.js';
|
|
17
17
|
import { Gas, GasFees, GasSettings } from '../gas/index.js';
|
|
18
18
|
import type { MerkleTreeReadOperations } from '../interfaces/merkle_tree_operations.js';
|
|
19
19
|
import { RollupValidationRequests } from '../kernel/hints/rollup_validation_requests.js';
|
|
@@ -343,7 +343,7 @@ export declare function makePrivateBaseStateDiffHints(seed?: number): PrivateBas
|
|
|
343
343
|
export declare function makePrivateBaseRollupInputs(seed?: number): PrivateBaseRollupInputs;
|
|
344
344
|
export declare function makePublicBaseRollupInputs(seed?: number): PublicBaseRollupInputs;
|
|
345
345
|
export declare function makeExecutablePrivateFunctionWithMembershipProof(seed?: number): ExecutablePrivateFunctionWithMembershipProof;
|
|
346
|
-
export declare function
|
|
346
|
+
export declare function makeUtilityFunctionWithMembershipProof(seed?: number): UtilityFunctionWithMembershipProof;
|
|
347
347
|
export declare function makeContractClassPublic(seed?: number, publicBytecode?: Buffer): Promise<ContractClassPublic>;
|
|
348
348
|
export declare function makeArray<T>(length: number, fn: (i: number) => T, offset?: number): T[];
|
|
349
349
|
export declare function makeArrayAsync<T>(length: number, fn: (i: number) => Promise<T>, offset?: number): Promise<Awaited<T>[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../src/tests/factories.ts"],"names":[],"mappings":";;AA2CA,OAAO,EAAE,KAAK,QAAQ,EAAgC,MAAM,yBAAyB,CAAC;AAGtF,OAAO,EAAE,gBAAgB,EAAsC,MAAM,0BAA0B,CAAC;AAChG,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,EAEL,yBAAyB,EACzB,gBAAgB,EAEhB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,EACjB,mCAAmC,EACnC,oCAAoC,EACpC,mBAAmB,EACnB,4BAA4B,EAC5B,qBAAqB,EACrB,oCAAoC,EACpC,qCAAqC,EACrC,SAAS,EAEV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EAChC,KAAK,4CAA4C,EAGjD,KAAK,
|
|
1
|
+
{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../src/tests/factories.ts"],"names":[],"mappings":"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"}
|
package/dest/tests/factories.js
CHANGED
|
@@ -682,11 +682,11 @@ export function makeExecutablePrivateFunctionWithMembershipProof(seed = 0) {
|
|
|
682
682
|
privateFunctionTreeLeafIndex: seed + 3,
|
|
683
683
|
artifactMetadataHash: fr(seed + 4),
|
|
684
684
|
functionMetadataHash: fr(seed + 5),
|
|
685
|
-
|
|
685
|
+
utilityFunctionsTreeRoot: fr(seed + 6),
|
|
686
686
|
vkHash: fr(seed + 7)
|
|
687
687
|
};
|
|
688
688
|
}
|
|
689
|
-
export function
|
|
689
|
+
export function makeUtilityFunctionWithMembershipProof(seed = 0) {
|
|
690
690
|
return {
|
|
691
691
|
selector: makeSelector(seed),
|
|
692
692
|
bytecode: makeBytes(100, seed + 1),
|
|
@@ -713,7 +713,7 @@ export async function makeContractClassPublic(seed = 0, publicBytecode) {
|
|
|
713
713
|
packedBytecode,
|
|
714
714
|
privateFunctionsRoot,
|
|
715
715
|
privateFunctions: [],
|
|
716
|
-
|
|
716
|
+
utilityFunctions: [],
|
|
717
717
|
version: 1
|
|
718
718
|
};
|
|
719
719
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/stdlib",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.84.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"inherits": [
|
|
6
6
|
"../package.common.json",
|
|
@@ -67,11 +67,11 @@
|
|
|
67
67
|
"test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@aztec/bb.js": "0.
|
|
71
|
-
"@aztec/blob-lib": "0.
|
|
72
|
-
"@aztec/constants": "0.
|
|
73
|
-
"@aztec/ethereum": "0.
|
|
74
|
-
"@aztec/foundation": "0.
|
|
70
|
+
"@aztec/bb.js": "0.84.0",
|
|
71
|
+
"@aztec/blob-lib": "0.84.0",
|
|
72
|
+
"@aztec/constants": "0.84.0",
|
|
73
|
+
"@aztec/ethereum": "0.84.0",
|
|
74
|
+
"@aztec/foundation": "0.84.0",
|
|
75
75
|
"@google-cloud/storage": "^7.15.0",
|
|
76
76
|
"lodash.chunk": "^4.2.0",
|
|
77
77
|
"lodash.isequal": "^4.5.0",
|
package/src/abi/abi.ts
CHANGED
|
@@ -165,7 +165,7 @@ const AbiErrorTypeSchema = z.union([
|
|
|
165
165
|
export enum FunctionType {
|
|
166
166
|
PRIVATE = 'private',
|
|
167
167
|
PUBLIC = 'public',
|
|
168
|
-
|
|
168
|
+
UTILITY = 'utility',
|
|
169
169
|
}
|
|
170
170
|
|
|
171
171
|
/** The abi entry of a function. */
|
|
@@ -339,7 +339,7 @@ export interface ContractArtifact {
|
|
|
339
339
|
/** The name of the contract. */
|
|
340
340
|
name: string;
|
|
341
341
|
|
|
342
|
-
/** The functions of the contract. Includes private and
|
|
342
|
+
/** The functions of the contract. Includes private and utility functions, plus the public dispatch function. */
|
|
343
343
|
functions: FunctionArtifact[];
|
|
344
344
|
|
|
345
345
|
/** The public functions of the contract, excluding dispatch. */
|
|
@@ -21,6 +21,7 @@ import {
|
|
|
21
21
|
AZTEC_INTERNAL_ATTRIBUTE,
|
|
22
22
|
AZTEC_PRIVATE_ATTRIBUTE,
|
|
23
23
|
AZTEC_PUBLIC_ATTRIBUTE,
|
|
24
|
+
AZTEC_UTILITY_ATTRIBUTE,
|
|
24
25
|
AZTEC_VIEW_ATTRIBUTE,
|
|
25
26
|
type NoirCompiledContract,
|
|
26
27
|
} from '../noir/index.js';
|
|
@@ -155,14 +156,14 @@ function generateFunctionAbi(fn: NoirCompiledContractFunction, contract: NoirCom
|
|
|
155
156
|
const isInternal = fn.custom_attributes.includes(AZTEC_INTERNAL_ATTRIBUTE);
|
|
156
157
|
const isStatic = fn.custom_attributes.includes(AZTEC_VIEW_ATTRIBUTE);
|
|
157
158
|
|
|
158
|
-
// If the function is not
|
|
159
|
+
// If the function is not a utility function, the first item is inputs or CallContext which we should omit
|
|
159
160
|
let parameters = fn.abi.parameters.map(generateFunctionParameter);
|
|
160
161
|
if (hasKernelFunctionInputs(parameters)) {
|
|
161
162
|
parameters = parameters.slice(1);
|
|
162
163
|
}
|
|
163
164
|
|
|
164
165
|
let returnTypes: AbiType[] = [];
|
|
165
|
-
if (functionType === FunctionType.
|
|
166
|
+
if (functionType === FunctionType.UTILITY) {
|
|
166
167
|
returnTypes = fn.abi.return_type ? [fn.abi.return_type.abi_type] : returnTypes;
|
|
167
168
|
} else {
|
|
168
169
|
const pathToFind = `${contract.name}::${fn.name}_abi`;
|
|
@@ -215,18 +216,31 @@ function generateFunctionArtifact(
|
|
|
215
216
|
}
|
|
216
217
|
|
|
217
218
|
function getFunctionType(fn: NoirCompiledContractFunction): FunctionType {
|
|
218
|
-
if (fn.custom_attributes.
|
|
219
|
+
if (fn.custom_attributes.some(attr => attr.endsWith(AZTEC_PRIVATE_ATTRIBUTE))) {
|
|
219
220
|
return FunctionType.PRIVATE;
|
|
220
|
-
} else if (fn.custom_attributes.
|
|
221
|
+
} else if (fn.custom_attributes.some(attr => attr.endsWith(AZTEC_PUBLIC_ATTRIBUTE))) {
|
|
221
222
|
return FunctionType.PUBLIC;
|
|
222
|
-
} else if (fn.
|
|
223
|
-
return FunctionType.
|
|
223
|
+
} else if (fn.custom_attributes.some(attr => attr.endsWith(AZTEC_UTILITY_ATTRIBUTE))) {
|
|
224
|
+
return FunctionType.UTILITY;
|
|
224
225
|
} else {
|
|
225
|
-
|
|
226
|
-
return FunctionType.PRIVATE;
|
|
226
|
+
throw new Error(`Invalid function type for a noir contract function ${fn.name}`);
|
|
227
227
|
}
|
|
228
228
|
}
|
|
229
229
|
|
|
230
|
+
// TODO(https://github.com/noir-lang/noir/issues/7912): Replace the above function with this one once the linked issue
|
|
231
|
+
// is fixed.
|
|
232
|
+
// function getFunctionType(fn: NoirCompiledContractFunction): FunctionType {
|
|
233
|
+
// if (fn.custom_attributes.includes(AZTEC_PRIVATE_ATTRIBUTE)) {
|
|
234
|
+
// return FunctionType.PRIVATE;
|
|
235
|
+
// } else if (fn.custom_attributes.includes(AZTEC_PUBLIC_ATTRIBUTE)) {
|
|
236
|
+
// return FunctionType.PUBLIC;
|
|
237
|
+
// } else if (fn.custom_attributes.includes(AZTEC_UTILITY_ATTRIBUTE)) {
|
|
238
|
+
// return FunctionType.UTILITY;
|
|
239
|
+
// } else {
|
|
240
|
+
// throw new Error(`Invalid function type for a noir contract function ${fn.name}`);
|
|
241
|
+
// }
|
|
242
|
+
// }
|
|
243
|
+
|
|
230
244
|
/**
|
|
231
245
|
* Returns true if the first parameter is kernel function inputs.
|
|
232
246
|
*
|
|
@@ -21,26 +21,26 @@ const sha256Fr = reduceFn(sha256, Fr);
|
|
|
21
21
|
* sha256(fn.selector, fn.metadata_hash, sha256(fn.bytecode))
|
|
22
22
|
* private_functions_artifact_tree_root = merkleize(private_functions_artifact_leaves)
|
|
23
23
|
*
|
|
24
|
-
*
|
|
24
|
+
* utility_functions_artifact_leaves = artifact.utility_functions.map fn =>
|
|
25
25
|
* sha256(fn.selector, fn.metadata_hash, sha256(fn.bytecode))
|
|
26
|
-
*
|
|
26
|
+
* utility_functions_artifact_tree_root = merkleize(utility_functions_artifact_leaves)
|
|
27
27
|
*
|
|
28
28
|
* version = 1
|
|
29
29
|
* artifact_hash = sha256(
|
|
30
30
|
* version,
|
|
31
31
|
* private_functions_artifact_tree_root,
|
|
32
|
-
*
|
|
32
|
+
* utility_functions_artifact_tree_root,
|
|
33
33
|
* artifact_metadata,
|
|
34
34
|
* )
|
|
35
35
|
* ```
|
|
36
36
|
* @param artifact - Artifact to calculate the hash for.
|
|
37
37
|
*/
|
|
38
38
|
export async function computeArtifactHash(
|
|
39
|
-
artifact: ContractArtifact | { privateFunctionRoot: Fr;
|
|
39
|
+
artifact: ContractArtifact | { privateFunctionRoot: Fr; utilityFunctionRoot: Fr; metadataHash: Fr },
|
|
40
40
|
): Promise<Fr> {
|
|
41
|
-
if ('privateFunctionRoot' in artifact && '
|
|
42
|
-
const { privateFunctionRoot,
|
|
43
|
-
const preimage = [privateFunctionRoot,
|
|
41
|
+
if ('privateFunctionRoot' in artifact && 'utilityFunctionRoot' in artifact && 'metadataHash' in artifact) {
|
|
42
|
+
const { privateFunctionRoot, utilityFunctionRoot, metadataHash } = artifact;
|
|
43
|
+
const preimage = [privateFunctionRoot, utilityFunctionRoot, metadataHash].map(x => x.toBuffer());
|
|
44
44
|
return sha256Fr(Buffer.concat([numToUInt8(VERSION), ...preimage]));
|
|
45
45
|
}
|
|
46
46
|
|
|
@@ -52,9 +52,9 @@ export async function computeArtifactHash(
|
|
|
52
52
|
|
|
53
53
|
export async function computeArtifactHashPreimage(artifact: ContractArtifact) {
|
|
54
54
|
const privateFunctionRoot = await computeArtifactFunctionTreeRoot(artifact, FunctionType.PRIVATE);
|
|
55
|
-
const
|
|
55
|
+
const utilityFunctionRoot = await computeArtifactFunctionTreeRoot(artifact, FunctionType.UTILITY);
|
|
56
56
|
const metadataHash = computeArtifactMetadataHash(artifact);
|
|
57
|
-
return { privateFunctionRoot,
|
|
57
|
+
return { privateFunctionRoot, utilityFunctionRoot, metadataHash };
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
export function computeArtifactMetadataHash(artifact: ContractArtifact) {
|
package/src/contract/index.ts
CHANGED
|
@@ -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 './
|
|
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';
|
|
@@ -15,7 +15,11 @@ const VERSION = 1 as const;
|
|
|
15
15
|
export interface ContractClass {
|
|
16
16
|
/** Version of the contract class. */
|
|
17
17
|
version: typeof VERSION;
|
|
18
|
-
/**
|
|
18
|
+
/**
|
|
19
|
+
* Hash of the contract artifact. The specification of this hash is not enforced by the protocol. Should include
|
|
20
|
+
* commitments to code of utility functions and compilation metadata. Intended to be used by clients to verify that
|
|
21
|
+
* an off-chain fetched artifact matches a registered class.
|
|
22
|
+
*/
|
|
19
23
|
artifactHash: Fr;
|
|
20
24
|
/** List of individual private functions, constructors included. */
|
|
21
25
|
privateFunctions: PrivateFunction[];
|
|
@@ -46,25 +50,25 @@ const ExecutablePrivateFunctionSchema = PrivateFunctionSchema.and(
|
|
|
46
50
|
z.object({ bytecode: schemas.Buffer }),
|
|
47
51
|
) satisfies ZodFor<ExecutablePrivateFunction>;
|
|
48
52
|
|
|
49
|
-
/**
|
|
50
|
-
export interface
|
|
53
|
+
/** Utility function definition. */
|
|
54
|
+
export interface UtilityFunction {
|
|
51
55
|
/** Selector of the function. Calculated as the hash of the method name and parameters. The specification of this is not enforced by the protocol. */
|
|
52
56
|
selector: FunctionSelector;
|
|
53
57
|
/** Brillig. */
|
|
54
58
|
bytecode: Buffer;
|
|
55
59
|
}
|
|
56
60
|
|
|
57
|
-
const
|
|
61
|
+
const UtilityFunctionSchema = z.object({
|
|
58
62
|
/** lala */
|
|
59
63
|
selector: FunctionSelector.schema,
|
|
60
64
|
bytecode: schemas.Buffer,
|
|
61
|
-
}) satisfies ZodFor<
|
|
65
|
+
}) satisfies ZodFor<UtilityFunction>;
|
|
62
66
|
|
|
63
67
|
/** Sibling paths and sibling commitments for proving membership of a private function within a contract class. */
|
|
64
68
|
export type PrivateFunctionMembershipProof = {
|
|
65
69
|
artifactMetadataHash: Fr;
|
|
66
70
|
functionMetadataHash: Fr;
|
|
67
|
-
|
|
71
|
+
utilityFunctionsTreeRoot: Fr;
|
|
68
72
|
privateFunctionTreeSiblingPath: Fr[];
|
|
69
73
|
privateFunctionTreeLeafIndex: number;
|
|
70
74
|
artifactTreeSiblingPath: Fr[];
|
|
@@ -74,18 +78,18 @@ export type PrivateFunctionMembershipProof = {
|
|
|
74
78
|
const PrivateFunctionMembershipProofSchema = z.object({
|
|
75
79
|
artifactMetadataHash: schemas.Fr,
|
|
76
80
|
functionMetadataHash: schemas.Fr,
|
|
77
|
-
|
|
81
|
+
utilityFunctionsTreeRoot: schemas.Fr,
|
|
78
82
|
privateFunctionTreeSiblingPath: z.array(schemas.Fr),
|
|
79
83
|
privateFunctionTreeLeafIndex: schemas.Integer,
|
|
80
84
|
artifactTreeSiblingPath: z.array(schemas.Fr),
|
|
81
85
|
artifactTreeLeafIndex: schemas.Integer,
|
|
82
86
|
}) satisfies ZodFor<PrivateFunctionMembershipProof>;
|
|
83
87
|
|
|
84
|
-
/** A private function with a
|
|
88
|
+
/** A private function with a membership proof. */
|
|
85
89
|
export type ExecutablePrivateFunctionWithMembershipProof = ExecutablePrivateFunction & PrivateFunctionMembershipProof;
|
|
86
90
|
|
|
87
|
-
/** Sibling paths and commitments for proving membership of
|
|
88
|
-
export type
|
|
91
|
+
/** Sibling paths and commitments for proving membership of a utility function within a contract class. */
|
|
92
|
+
export type UtilityFunctionMembershipProof = {
|
|
89
93
|
artifactMetadataHash: Fr;
|
|
90
94
|
functionMetadataHash: Fr;
|
|
91
95
|
privateFunctionsArtifactTreeRoot: Fr;
|
|
@@ -93,16 +97,16 @@ export type UnconstrainedFunctionMembershipProof = {
|
|
|
93
97
|
artifactTreeLeafIndex: number;
|
|
94
98
|
};
|
|
95
99
|
|
|
96
|
-
const
|
|
100
|
+
const UtilityFunctionMembershipProofSchema = z.object({
|
|
97
101
|
artifactMetadataHash: schemas.Fr,
|
|
98
102
|
functionMetadataHash: schemas.Fr,
|
|
99
103
|
privateFunctionsArtifactTreeRoot: schemas.Fr,
|
|
100
104
|
artifactTreeSiblingPath: z.array(schemas.Fr),
|
|
101
105
|
artifactTreeLeafIndex: schemas.Integer,
|
|
102
|
-
}) satisfies ZodFor<
|
|
106
|
+
}) satisfies ZodFor<UtilityFunctionMembershipProof>;
|
|
103
107
|
|
|
104
|
-
/**
|
|
105
|
-
export type
|
|
108
|
+
/** A utility function with a membership proof. */
|
|
109
|
+
export type UtilityFunctionWithMembershipProof = UtilityFunction & UtilityFunctionMembershipProof;
|
|
106
110
|
|
|
107
111
|
export const ContractClassSchema = z.object({
|
|
108
112
|
version: z.literal(VERSION),
|
|
@@ -128,10 +132,10 @@ export const ContractClassWithIdSchema = ContractClassSchema.extend({
|
|
|
128
132
|
id: schemas.Fr,
|
|
129
133
|
}) satisfies ZodFor<ContractClassWithId>;
|
|
130
134
|
|
|
131
|
-
/** A contract class with public bytecode information, and optional private and
|
|
135
|
+
/** A contract class with public bytecode information, and optional private and utility functions. */
|
|
132
136
|
export type ContractClassPublic = {
|
|
133
137
|
privateFunctions: ExecutablePrivateFunctionWithMembershipProof[];
|
|
134
|
-
|
|
138
|
+
utilityFunctions: UtilityFunctionWithMembershipProof[];
|
|
135
139
|
} & Pick<ContractClassCommitments, 'id' | 'privateFunctionsRoot'> &
|
|
136
140
|
Omit<ContractClass, 'privateFunctions'>;
|
|
137
141
|
|
|
@@ -143,7 +147,7 @@ export const ContractClassPublicSchema = z
|
|
|
143
147
|
id: schemas.Fr,
|
|
144
148
|
privateFunctionsRoot: schemas.Fr,
|
|
145
149
|
privateFunctions: z.array(ExecutablePrivateFunctionSchema.and(PrivateFunctionMembershipProofSchema)),
|
|
146
|
-
|
|
150
|
+
utilityFunctions: z.array(UtilityFunctionSchema.and(UtilityFunctionMembershipProofSchema)),
|
|
147
151
|
})
|
|
148
152
|
.and(ContractClassSchema.omit({ privateFunctions: true })) satisfies ZodFor<ContractClassPublic>;
|
|
149
153
|
|
|
@@ -51,7 +51,7 @@ export async function createPrivateFunctionMembershipProof(
|
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
// Compute preimage for the artifact hash
|
|
54
|
-
const {
|
|
54
|
+
const { utilityFunctionRoot: utilityFunctionsTreeRoot, metadataHash: artifactMetadataHash } =
|
|
55
55
|
await computeArtifactHashPreimage(artifact);
|
|
56
56
|
|
|
57
57
|
// We need two sibling paths because private function information is split across two trees:
|
|
@@ -74,7 +74,7 @@ export async function createPrivateFunctionMembershipProof(
|
|
|
74
74
|
functionLeaf: '0x' + functionLeaf.toString('hex'),
|
|
75
75
|
artifactMetadataHash,
|
|
76
76
|
privateFunctionsTreeRoot: '0x' + functionsTree.root.toString('hex'),
|
|
77
|
-
|
|
77
|
+
utilityFunctionsTreeRoot,
|
|
78
78
|
artifactFunctionTreeSiblingPath: artifactTreeSiblingPath.map(fr => fr.toString()).join(','),
|
|
79
79
|
privateFunctionTreeSiblingPath: functionsTreeSiblingPath.map(fr => fr.toString()).join(','),
|
|
80
80
|
});
|
|
@@ -84,7 +84,7 @@ export async function createPrivateFunctionMembershipProof(
|
|
|
84
84
|
artifactTreeLeafIndex,
|
|
85
85
|
artifactMetadataHash,
|
|
86
86
|
functionMetadataHash,
|
|
87
|
-
|
|
87
|
+
utilityFunctionsTreeRoot,
|
|
88
88
|
privateFunctionTreeSiblingPath: functionsTreeSiblingPath,
|
|
89
89
|
privateFunctionTreeLeafIndex: functionsTreeLeafIndex,
|
|
90
90
|
};
|
|
@@ -106,7 +106,7 @@ export async function createPrivateFunctionMembershipProof(
|
|
|
106
106
|
* // Compute artifact leaf and assert it belongs to the artifact
|
|
107
107
|
* artifact_function_leaf = sha256(selector, metadata_hash, sha256(bytecode))
|
|
108
108
|
* computed_artifact_private_function_tree_root = compute_root(artifact_function_leaf, artifact_function_tree_sibling_path)
|
|
109
|
-
* computed_artifact_hash = sha256(computed_artifact_private_function_tree_root,
|
|
109
|
+
* computed_artifact_hash = sha256(computed_artifact_private_function_tree_root, utility_functions_artifact_tree_root, artifact_metadata_hash)
|
|
110
110
|
* assert computed_artifact_hash == contract_class.artifact_hash
|
|
111
111
|
* ```
|
|
112
112
|
* @param fn - Function to check membership proof for.
|
|
@@ -147,7 +147,7 @@ export async function isValidPrivateFunctionMembershipProof(
|
|
|
147
147
|
const computedArtifactPrivateFunctionTreeRoot = Fr.fromBuffer(computedArtifactPrivateFunctionTreeRootBuffer);
|
|
148
148
|
const computedArtifactHash = await computeArtifactHash({
|
|
149
149
|
privateFunctionRoot: computedArtifactPrivateFunctionTreeRoot,
|
|
150
|
-
|
|
150
|
+
utilityFunctionRoot: fn.utilityFunctionsTreeRoot,
|
|
151
151
|
metadataHash: fn.artifactMetadataHash,
|
|
152
152
|
});
|
|
153
153
|
if (!contractClass.artifactHash.equals(computedArtifactHash)) {
|
|
@@ -156,7 +156,7 @@ export async function isValidPrivateFunctionMembershipProof(
|
|
|
156
156
|
computedArtifactHash,
|
|
157
157
|
computedFunctionArtifactHash: functionArtifactHash,
|
|
158
158
|
computedArtifactPrivateFunctionTreeRoot,
|
|
159
|
-
|
|
159
|
+
utilityFunctionRoot: fn.utilityFunctionsTreeRoot,
|
|
160
160
|
metadataHash: fn.artifactMetadataHash,
|
|
161
161
|
artifactFunctionTreeSiblingPath: fn.artifactTreeSiblingPath.map(fr => fr.toString()).join(','),
|
|
162
162
|
});
|
|
@@ -13,29 +13,29 @@ import {
|
|
|
13
13
|
} from './artifact_hash.js';
|
|
14
14
|
import type {
|
|
15
15
|
ContractClassPublic,
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
UtilityFunctionMembershipProof,
|
|
17
|
+
UtilityFunctionWithMembershipProof,
|
|
18
18
|
} from './interfaces/index.js';
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
|
-
* Creates a membership proof for
|
|
21
|
+
* Creates a membership proof for a utility function in a contract class, to be verified via `isValidUtilityFunctionMembershipProof`.
|
|
22
22
|
* @param selector - Selector of the function to create the proof for.
|
|
23
23
|
* @param artifact - Artifact of the contract class where the function is defined.
|
|
24
24
|
*/
|
|
25
|
-
export async function
|
|
25
|
+
export async function createUtilityFunctionMembershipProof(
|
|
26
26
|
selector: FunctionSelector,
|
|
27
27
|
artifact: ContractArtifact,
|
|
28
|
-
): Promise<
|
|
28
|
+
): Promise<UtilityFunctionMembershipProof> {
|
|
29
29
|
const log = createLogger('circuits:function_membership_proof');
|
|
30
30
|
|
|
31
31
|
// Locate function artifact
|
|
32
|
-
const
|
|
33
|
-
const
|
|
34
|
-
|
|
32
|
+
const utilityFunctions = artifact.functions.filter(fn => fn.functionType === FunctionType.UTILITY);
|
|
33
|
+
const utilityFunctionsAndSelectors = await Promise.all(
|
|
34
|
+
utilityFunctions.map(async fn => ({ fn, selector: await FunctionSelector.fromNameAndParameters(fn) })),
|
|
35
35
|
);
|
|
36
|
-
const fn =
|
|
36
|
+
const fn = utilityFunctionsAndSelectors.find(fnAndSelector => selector.equals(fnAndSelector.selector))?.fn;
|
|
37
37
|
if (!fn) {
|
|
38
|
-
throw new Error(`
|
|
38
|
+
throw new Error(`Utility function with selector ${selector.toString()} not found`);
|
|
39
39
|
}
|
|
40
40
|
// Compute preimage for the artifact hash
|
|
41
41
|
const { privateFunctionRoot: privateFunctionsArtifactTreeRoot, metadataHash: artifactMetadataHash } =
|
|
@@ -44,11 +44,11 @@ export async function createUnconstrainedFunctionMembershipProof(
|
|
|
44
44
|
// Compute the sibling path for the "artifact tree"
|
|
45
45
|
const functionMetadataHash = computeFunctionMetadataHash(fn);
|
|
46
46
|
const functionArtifactHash = await computeFunctionArtifactHash({ ...fn, functionMetadataHash });
|
|
47
|
-
const artifactTree = (await computeArtifactFunctionTree(artifact, FunctionType.
|
|
47
|
+
const artifactTree = (await computeArtifactFunctionTree(artifact, FunctionType.UTILITY))!;
|
|
48
48
|
const artifactTreeLeafIndex = artifactTree.getIndex(functionArtifactHash.toBuffer());
|
|
49
49
|
const artifactTreeSiblingPath = artifactTree.getSiblingPath(artifactTreeLeafIndex).map(Fr.fromBuffer);
|
|
50
50
|
|
|
51
|
-
log.debug(`Computed proof for
|
|
51
|
+
log.debug(`Computed proof for utility function with selector ${selector.toString()}`, {
|
|
52
52
|
functionArtifactHash,
|
|
53
53
|
functionMetadataHash,
|
|
54
54
|
artifactMetadataHash,
|
|
@@ -66,7 +66,7 @@ export async function createUnconstrainedFunctionMembershipProof(
|
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
/**
|
|
69
|
-
* Verifies that
|
|
69
|
+
* Verifies that a utility function with a membership proof as emitted by the ClassRegisterer contract is valid,
|
|
70
70
|
* as defined in the protocol specs at contract-deployment/classes:
|
|
71
71
|
*
|
|
72
72
|
* ```
|
|
@@ -75,15 +75,15 @@ export async function createUnconstrainedFunctionMembershipProof(
|
|
|
75
75
|
*
|
|
76
76
|
* // Compute artifact leaf and assert it belongs to the artifact
|
|
77
77
|
* artifact_function_leaf = sha256(selector, metadata_hash, sha256(bytecode))
|
|
78
|
-
*
|
|
79
|
-
* computed_artifact_hash = sha256(private_functions_artifact_tree_root,
|
|
78
|
+
* computed_artifact_utility_function_tree_root = compute_root(artifact_function_leaf, artifact_function_tree_sibling_path, artifact_function_tree_leaf_index)
|
|
79
|
+
* computed_artifact_hash = sha256(private_functions_artifact_tree_root, computed_artifact_utility_function_tree_root, artifact_metadata_hash)
|
|
80
80
|
* assert computed_artifact_hash == contract_class.artifact_hash
|
|
81
81
|
* ```
|
|
82
82
|
* @param fn - Function to check membership proof for.
|
|
83
83
|
* @param contractClass - In which contract class the function is expected to be.
|
|
84
84
|
*/
|
|
85
|
-
export async function
|
|
86
|
-
fn:
|
|
85
|
+
export async function isValidUtilityFunctionMembershipProof(
|
|
86
|
+
fn: UtilityFunctionWithMembershipProof,
|
|
87
87
|
contractClass: Pick<ContractClassPublic, 'artifactHash'>,
|
|
88
88
|
) {
|
|
89
89
|
const log = createLogger('circuits:function_membership_proof');
|
|
@@ -98,7 +98,7 @@ export async function isValidUnconstrainedFunctionMembershipProof(
|
|
|
98
98
|
const computedArtifactFunctionTreeRoot = Fr.fromBuffer(computedArtifactFunctionTreeRootBuffer);
|
|
99
99
|
const computedArtifactHash = await computeArtifactHash({
|
|
100
100
|
privateFunctionRoot: fn.privateFunctionsArtifactTreeRoot,
|
|
101
|
-
|
|
101
|
+
utilityFunctionRoot: computedArtifactFunctionTreeRoot,
|
|
102
102
|
metadataHash: fn.artifactMetadataHash,
|
|
103
103
|
});
|
|
104
104
|
if (!contractClass.artifactHash.equals(computedArtifactHash)) {
|