import type { Fr } from '@aztec/foundation/curves/bn254'; import type { OpcodeLocation } from '../abi/abi.js'; import { FunctionSelector } from '../abi/function_selector.js'; import { AztecAddress } from '../aztec-address/index.js'; import { type ZodFor } from '../schemas/index.js'; /** * Address and selector of a function that failed during simulation. */ export interface FailingFunction { /** * The address of the contract that failed. */ contractAddress: AztecAddress; /** * The name of the contract that failed. */ contractName?: string; /** * The selector of the function that failed. */ functionSelector?: FunctionSelector; /** * The name of the function that failed. */ functionName?: string; } /** * A pointer to a failing section of the noir source code. */ export interface SourceCodeLocation { /** * The path to the source file. */ filePath: string; /** * The line number of the call. */ line: number; /** * The column number of the call. */ column: number; /** * The source code of the file. */ fileSource: string; /** * The source code text of the failed constraint. */ locationText: string; } /** * A stack of noir source code locations. */ export type NoirCallStack = SourceCodeLocation[] | OpcodeLocation[]; /** * Checks if a call stack is unresolved. */ export declare function isNoirCallStackUnresolved(callStack: NoirCallStack): callStack is OpcodeLocation[]; /** * An error during the simulation of a function call. */ export declare class SimulationError extends Error { private originalMessage; private functionErrorStack; revertData: Fr[]; private noirErrorStack?; private aztecContext; constructor(originalMessage: string, functionErrorStack: FailingFunction[], revertData?: Fr[], noirErrorStack?: NoirCallStack | undefined, options?: ErrorOptions); getMessage(): string; getOriginalMessage(): string; setOriginalMessage(message: string): void; /** * Enriches the error with the name of a contract that failed. * @param contractAddress - The address of the contract * @param contractName - The corresponding name */ enrichWithContractName(contractAddress: AztecAddress, contractName: string): void; /** * Enriches the error with the name of a function that failed. * @param contractAddress - The address of the contract * @param functionSelector - The selector of the function * @param functionName - The corresponding name */ enrichWithFunctionName(contractAddress: AztecAddress, functionSelector: FunctionSelector, functionName: string): void; getStack(): string; /** * The aztec function stack that failed during simulation. */ getCallStack(): FailingFunction[]; /** * Returns the noir call stack inside the first function that failed during simulation. * @returns The noir call stack. */ getNoirCallStack(): NoirCallStack; /** * Sets the noir call stack. * @param callStack - The noir call stack. */ setNoirCallStack(callStack: NoirCallStack): void; setAztecContext(context: string): void; toJSON(): { originalMessage: string; functionErrorStack: FailingFunction[]; noirErrorStack: NoirCallStack | undefined; revertData: `0x${string}`[]; }; static get schema(): ZodFor; static random(): Promise; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltdWxhdGlvbl9lcnJvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Vycm9ycy9zaW11bGF0aW9uX2Vycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSXpELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFxQixNQUFNLHFCQUFxQixDQUFDO0FBRXJFOztHQUVHO0FBQ0gsTUFBTSxXQUFXLGVBQWU7SUFDOUI7O09BRUc7SUFDSCxlQUFlLEVBQUUsWUFBWSxDQUFDO0lBQzlCOztPQUVHO0lBQ0gsWUFBWSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3RCOztPQUVHO0lBQ0gsZ0JBQWdCLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQztJQUNwQzs7T0FFRztJQUNILFlBQVksQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUN2QjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxXQUFXLGtCQUFrQjtJQUNqQzs7T0FFRztJQUNILFFBQVEsRUFBRSxNQUFNLENBQUM7SUFDakI7O09BRUc7SUFDSCxJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQ2I7O09BRUc7SUFDSCxNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2Y7O09BRUc7SUFDSCxVQUFVLEVBQUUsTUFBTSxDQUFDO0lBQ25COztPQUVHO0lBQ0gsWUFBWSxFQUFFLE1BQU0sQ0FBQztDQUN0QjtBQVVEOztHQUVHO0FBQ0gsTUFBTSxNQUFNLGFBQWEsR0FBRyxrQkFBa0IsRUFBRSxHQUFHLGNBQWMsRUFBRSxDQUFDO0FBSXBFOztHQUVHO0FBQ0gsd0JBQWdCLHlCQUF5QixDQUFDLFNBQVMsRUFBRSxhQUFhLEdBQUcsU0FBUyxJQUFJLGNBQWMsRUFBRSxDQUVqRztBQUVEOztHQUVHO0FBQ0gscUJBQWEsZUFBZ0IsU0FBUSxLQUFLO0lBSXRDLE9BQU8sQ0FBQyxlQUFlO0lBQ3ZCLE9BQU8sQ0FBQyxrQkFBa0I7SUFDbkIsVUFBVSxFQUFFLEVBQUUsRUFBRTtJQUN2QixPQUFPLENBQUMsY0FBYyxDQUFDO0lBTnpCLE9BQU8sQ0FBQyxZQUFZLENBQWM7SUFFbEMsWUFDVSxlQUFlLEVBQUUsTUFBTSxFQUN2QixrQkFBa0IsRUFBRSxlQUFlLEVBQUUsRUFDdEMsVUFBVSxHQUFFLEVBQUUsRUFBTyxFQUNwQixjQUFjLENBQUMsMkJBQWUsRUFDdEMsT0FBTyxDQUFDLEVBQUUsWUFBWSxFQXFDdkI7SUFFRCxVQUFVLFdBT1Q7SUFFRCxrQkFBa0IsV0FFakI7SUFFRCxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsTUFBTSxRQUVqQztJQUVEOzs7O09BSUc7SUFDSCxzQkFBc0IsQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLFFBTXpFO0lBRUQ7Ozs7O09BS0c7SUFDSCxzQkFBc0IsQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxNQUFNLFFBVTdHO0lBRUQsUUFBUSxXQW1CUDtJQUVEOztPQUVHO0lBQ0gsWUFBWSxJQUFJLGVBQWUsRUFBRSxDQUVoQztJQUVEOzs7T0FHRztJQUNILGdCQUFnQixJQUFJLGFBQWEsQ0FFaEM7SUFFRDs7O09BR0c7SUFDSCxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsYUFBYSxRQUV4QztJQUVELGVBQWUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxRQUU5QjtJQUVELE1BQU07Ozs7O01BT0w7SUFFRCxNQUFNLEtBQUssTUFBTSxJQUFJLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FtQjNDO0lBRUQsT0FBYSxNQUFNLDZCQUlsQjtDQUNGIn0=