UNPKG

sevm

Version:

A Symbolic Ethereum Virtual Machine (EVM) bytecode decompiler & analyzer library & CLI

64 lines (63 loc) 1.94 kB
import { type Expr, type IInst, Tag } from '.'; export interface IStore { /** * Variables definition */ readonly variables: Map<bigint, Variable>; /** * mappings definition */ readonly mappings: { [location: string]: { name: string | undefined; structs: bigint[]; keys: Expr[][]; values: Expr[]; }; }; } /** * */ export declare class Variable { label: string | null; readonly types: Expr[]; readonly index: number; constructor(label: string | null, types: Expr[], index: number); } export declare class MappingStore implements IInst { readonly slot: Expr; readonly mappings: IStore['mappings']; readonly location: number; readonly items: Expr[]; readonly data: Expr; readonly structlocation?: bigint | undefined; readonly name = "MappingStore"; constructor(slot: Expr, mappings: IStore['mappings'], location: number, items: Expr[], data: Expr, structlocation?: bigint | undefined); eval(): MappingStore; } export declare class SStore { readonly slot: Expr; readonly data: Expr; readonly variable: Variable | undefined; readonly name = "SStore"; constructor(slot: Expr, data: Expr, variable: Variable | undefined); eval(): SStore; } export declare class MappingLoad extends Tag { readonly slot: Expr; readonly mappings: IStore['mappings']; readonly location: number; readonly items: Expr[]; readonly structlocation?: bigint | undefined; readonly tag = "MappingLoad"; constructor(slot: Expr, mappings: IStore['mappings'], location: number, items: Expr[], structlocation?: bigint | undefined); eval(): this; } export declare class SLoad extends Tag { readonly slot: Expr; readonly variable: Variable | undefined; readonly tag = "SLoad"; constructor(slot: Expr, variable: Variable | undefined); eval(): Expr; }