import { AuthCheck, WasmContainer } from "./wasm-container.js"; import { Address, LockType, Pointer } from '@aldea/core'; import { ExecutionResult } from "./execution-result.js"; import { StatementResult } from "./statement-result.js"; import { ExecContext } from "./tx-context/exec-context.js"; import { PkgData } from "./storage.js"; import { JigData } from "./memory/lower-value.js"; import { Option } from "./support/option.js"; import { WasmArg, WasmWord } from "./wasm-word.js"; import { ExecOpts } from "./export-opts.js"; export declare const MIN_FUND_AMOUNT = 100; export declare class DiscretCounter { private tag; private total; private count; private hydroSize; hydros: bigint; private maxHydros; constructor(tag: string, hydroSize: bigint, maxHydros: bigint); add(amount: bigint): void; clear(): number; inc(): void; } export declare class Measurements { movedData: DiscretCounter; wasmExecuted: DiscretCounter; numContainers: DiscretCounter; numSigs: DiscretCounter; originChecks: DiscretCounter; newJigs: DiscretCounter; deploys: DiscretCounter; constructor(opts: ExecOpts); clear(): number; } declare class TxExecution { execContext: ExecContext; private jigs; private wasms; private readonly stack; deployments: PkgData[]; statements: StatementResult[]; private fundAmount; private affectedJigs; private nextOrigin; private opts; private measurements; constructor(context: ExecContext, opts: ExecOpts); finalize(): ExecutionResult; /** * Opcodes */ fund(coinIdx: number): StatementResult; call(jigIdx: number, methodIdx: number, argsBuf: Uint8Array): StatementResult; load(outputId: Uint8Array): StatementResult; loadByOrigin(originBytes: Uint8Array): StatementResult; instantiate(statementIndex: number, classIdx: number, argsBuf: Uint8Array): StatementResult; exec(wasmIdx: number, fnIdx: number, argsBuf: Uint8Array): StatementResult; sign(_sig: Uint8Array, _pubKey: Uint8Array): StatementResult; signTo(_sig: Uint8Array, _pubKey: Uint8Array): StatementResult; private hydrate; private translateAndLowerArgs; private lowerArgs; private performMethodCall; createNextOrigin(): Pointer; stmtAt(index: number): StatementResult; private lockJigToUser; private jigAt; lockJig(jigIndex: number, address: Address): StatementResult; deploy(entryPoint: string[], sources: Map): Promise; private assertContainer; import(modId: Uint8Array): StatementResult; signedBy(addr: Address): boolean; execLength(): number; private marKJigAsAffected; getJigData(p: Pointer): Option; private assertJig; private liftArgs; stackFromTop(n: number): Option; onDataMoved(size: number): void; vmJigInit(from: WasmContainer): WasmArg; vmJigLink(from: WasmContainer, jigPtr: WasmWord, rtId: number): WasmArg; vmCallMethod(from: WasmContainer, targetPtr: WasmWord, methodNamePtr: WasmWord, argsPtr: WasmWord): WasmArg; vmGetProp(from: WasmContainer, originPtr: WasmWord, propNamePtr: WasmWord): WasmArg; vmJigLock(from: WasmContainer, targetOriginPtr: WasmWord, lockType: LockType, argsPtr: WasmWord): void; vmConstructorLocal(from: WasmContainer, clsNamePtr: WasmWord, argsPtr: WasmWord): WasmWord; vmCallFunction(from: WasmContainer, pkgIdPtr: WasmWord, fnNamePtr: WasmWord, argsBufPtr: WasmWord): WasmArg; vmConstructorRemote(from: WasmContainer, pkgIdStrPtr: WasmWord, namePtr: WasmWord, argBufPtr: WasmWord): WasmArg; vmCallerTypeCheck(from: WasmContainer, rtIdToCheck: number, exact: boolean): boolean; vmCallerOutputCheck(): boolean; vmCallerOutput(from: WasmContainer): WasmWord; vmCallerOutputVal(from: WasmContainer, keyPtr: WasmWord): WasmWord; vmJigAuthCheck(from: WasmContainer, targetOriginPtr: WasmWord, check: AuthCheck): boolean; vmMeter(gasUsed: bigint): void; } export { TxExecution };