@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
TypeScript
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