UNPKG

@tokamak-zk-evm/synthesizer

Version:

Tokamak zk-EVM Synthesizer - Processes Ethereum transactions into wire maps for Tokamak zk-SNARK proof generation

45 lines 1.59 kB
import type { CustomOpcode } from '../types.js'; import type { OpHandler } from './functions.js'; import type { AsyncDynamicGasHandler, SyncDynamicGasHandler } from './gas.js'; import type { Common } from '@synthesizer-libs/common'; export declare class Opcode { readonly code: number; readonly name: string; readonly fullName: string; readonly fee: number; readonly feeBigInt: bigint; readonly isAsync: boolean; readonly dynamicGas: boolean; readonly isInvalid: boolean; constructor({ code, name, fullName, fee, isAsync, dynamicGas, }: { code: number; name: string; fullName: string; fee: number; isAsync: boolean; dynamicGas: boolean; }); } export type OpcodeList = Map<number, Opcode>; type OpcodeContext = { dynamicGasHandlers: Map<number, AsyncDynamicGasHandler | SyncDynamicGasHandler>; handlers: Map<number, OpHandler>; opcodes: OpcodeList; opcodeMap: OpcodeMap; }; export type OpcodeMapEntry = { opcodeInfo: Opcode; opHandler: OpHandler; gasHandler: AsyncDynamicGasHandler | SyncDynamicGasHandler; }; export type OpcodeMap = OpcodeMapEntry[]; /** * Get suitable opcodes for the required hardfork. * * @param common {Common} Ethereumjs Common metadata object. * @param customOpcodes List with custom opcodes (see EVM `customOpcodes` option description). * @returns {OpcodeList} Opcodes dictionary object. */ export declare function getOpcodesForHF(common: Common, customOpcodes?: CustomOpcode[]): OpcodeContext; export {}; //# sourceMappingURL=codes.d.ts.map