import type { BlockNumber } from '@aztec/foundation/branded-types'; import type { Fr } from '@aztec/foundation/curves/bn254'; import type { FunctionSelector } from '../../abi/index.js'; import type { AztecAddress } from '../../aztec-address/index.js'; import type { UInt64 } from '../../types/shared.js'; import type { ContractClassPublic } from './contract_class.js'; import type { ContractInstanceWithAddress } from './contract_instance.js'; export interface ContractDataSource { /** * Gets the number of the latest L2 block processed by the implementation. * @returns The number of the latest L2 block processed by the implementation. */ getBlockNumber(): Promise; /** * Returns the contract class for a given contract class id, or undefined if not found. * @param id - Contract class id. */ getContractClass(id: Fr): Promise; getBytecodeCommitment(id: Fr): Promise; /** * Returns a publicly deployed contract instance given its address. * @param address - Address of the deployed contract. * @param timestamp - Timestamp at which to retrieve the contract instance. If not provided, the latest block should * be used. * TODO(#15170): Fix the implementations ignoring the timestamp param and make timestamp required. */ getContract(address: AztecAddress, timestamp?: UInt64): Promise; /** * Returns the list of all class ids known. */ getContractClassIds(): Promise; /** Returns a function's name. It's only available if provided by calling `registerContractFunctionSignatures`. */ getDebugFunctionName(address: AztecAddress, selector: FunctionSelector): Promise; /** Registers a function names. Useful for debugging. */ registerContractFunctionSignatures(signatures: string[]): Promise; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfZGF0YV9zb3VyY2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250cmFjdC9pbnRlcmZhY2VzL2NvbnRyYWN0X2RhdGFfc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXpELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRCxPQUFPLEtBQUssRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTFFLE1BQU0sV0FBVyxrQkFBa0I7SUFDakM7OztPQUdHO0lBQ0gsY0FBYyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUV2Qzs7O09BR0c7SUFDSCxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUVuRSxxQkFBcUIsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUM7SUFFdkQ7Ozs7OztPQU1HO0lBQ0gsV0FBVyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxDQUFDLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQywyQkFBMkIsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUV6Rzs7T0FFRztJQUNILG1CQUFtQixJQUFJLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRXJDLGtIQUFrSDtJQUNsSCxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBRXJHLHdEQUF3RDtJQUN4RCxrQ0FBa0MsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0NBQ3pFIn0=