import { Fr } from '@aztec/foundation/curves/bn254'; import { MerkleTree } from '@aztec/foundation/trees'; import { type ContractArtifact, type FunctionArtifact, FunctionSelector, FunctionType } from '../abi/index.js'; /** * Returns the artifact hash of a given compiled contract artifact. * * ``` * private_functions_artifact_leaves = artifact.private_functions.map fn => * sha256(fn.selector, fn.metadata_hash, sha256(fn.bytecode)) * private_functions_artifact_tree_root = merkleize(private_functions_artifact_leaves) * * utility_functions_artifact_leaves = artifact.utility_functions.map fn => * sha256(fn.selector, fn.metadata_hash, sha256(fn.bytecode)) * utility_functions_artifact_tree_root = merkleize(utility_functions_artifact_leaves) * * version = 1 * artifact_hash = sha256( * version, * private_functions_artifact_tree_root, * utility_functions_artifact_tree_root, * artifact_metadata, * ) * ``` * @param artifact - Artifact to calculate the hash for. */ export declare function computeArtifactHash(artifact: ContractArtifact | { privateFunctionRoot: Fr; utilityFunctionRoot: Fr; metadataHash: Fr; }): Promise; export declare function computeArtifactHashPreimage(artifact: ContractArtifact): Promise<{ privateFunctionRoot: Fr; utilityFunctionRoot: Fr; metadataHash: Fr; }>; export declare function computeArtifactMetadataHash(artifact: ContractArtifact): Fr; export declare function computeArtifactFunctionTreeRoot(artifact: ContractArtifact, fnType: FunctionType): Promise; export declare function computeArtifactFunctionTree(artifact: ContractArtifact, fnType: FunctionType): Promise; export declare function computeFunctionArtifactHash(fn: FunctionArtifact | (Pick & { functionMetadataHash: Fr; selector: FunctionSelector; })): Promise; export declare function computeFunctionMetadataHash(fn: FunctionArtifact): Fr; export declare function getArtifactMerkleTreeHasher(): (l: Buffer, r: Buffer) => Promise>; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWZhY3RfaGFzaC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0L2FydGlmYWN0X2hhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEVBQUUsRUFBWSxNQUFNLGdDQUFnQyxDQUFDO0FBRzlELE9BQU8sRUFBRSxVQUFVLEVBQXdCLE1BQU0seUJBQXlCLENBQUM7QUFJM0UsT0FBTyxFQUFFLEtBQUssZ0JBQWdCLEVBQUUsS0FBSyxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQVMvRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBQ0gsd0JBQXNCLG1CQUFtQixDQUN2QyxRQUFRLEVBQUUsZ0JBQWdCLEdBQUc7SUFBRSxtQkFBbUIsRUFBRSxFQUFFLENBQUM7SUFBQyxtQkFBbUIsRUFBRSxFQUFFLENBQUM7SUFBQyxZQUFZLEVBQUUsRUFBRSxDQUFBO0NBQUUsR0FDbEcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQVdiO0FBRUQsd0JBQXNCLDJCQUEyQixDQUFDLFFBQVEsRUFBRSxnQkFBZ0I7Ozs7R0FLM0U7QUFFRCx3QkFBZ0IsMkJBQTJCLENBQUMsUUFBUSxFQUFFLGdCQUFnQixNQUVyRTtBQUVELHdCQUFzQiwrQkFBK0IsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLFlBQVksZUFHckc7QUFFRCx3QkFBc0IsMkJBQTJCLENBQy9DLFFBQVEsRUFBRSxnQkFBZ0IsRUFDMUIsTUFBTSxFQUFFLFlBQVksR0FDbkIsT0FBTyxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsQ0FTakM7QUFZRCx3QkFBc0IsMkJBQTJCLENBQy9DLEVBQUUsRUFDRSxnQkFBZ0IsR0FDaEIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLEdBQUc7SUFBRSxvQkFBb0IsRUFBRSxFQUFFLENBQUM7SUFBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUE7Q0FBRSxDQUFDLGVBT3BHO0FBRUQsd0JBQWdCLDJCQUEyQixDQUFDLEVBQUUsRUFBRSxnQkFBZ0IsTUFFL0Q7QUFNRCx3QkFBZ0IsMkJBQTJCLDZGQUUxQyJ9