UNPKG

@ignored/statemanager

Version:
37 lines 1.64 kB
/// <reference types="node" /> import type { Proof } from './stateManager'; import type { Account, Address } from '@ignored/util'; /** * Storage values of an account */ export interface StorageDump { [key: string]: string; } export declare type AccountFields = Partial<Pick<Account, 'nonce' | 'balance' | 'storageRoot' | 'codeHash'>>; export interface StateAccess { accountExists(address: Address): Promise<boolean>; getAccount(address: Address): Promise<Account>; putAccount(address: Address, account: Account): Promise<void>; accountIsEmpty(address: Address): Promise<boolean>; deleteAccount(address: Address): Promise<void>; modifyAccountFields(address: Address, accountFields: AccountFields): Promise<void>; putContractCode(address: Address, value: Buffer): Promise<void>; getContractCode(address: Address): Promise<Buffer>; getContractStorage(address: Address, key: Buffer): Promise<Buffer>; putContractStorage(address: Address, key: Buffer, value: Buffer): Promise<void>; clearContractStorage(address: Address): Promise<void>; checkpoint(): Promise<void>; commit(): Promise<void>; revert(): Promise<void>; getStateRoot(): Promise<Buffer>; setStateRoot(stateRoot: Buffer): Promise<void>; getProof?(address: Address, storageSlots: Buffer[]): Promise<Proof>; verifyProof?(proof: Proof): Promise<boolean>; hasStateRoot(root: Buffer): Promise<boolean>; } export interface StateManager extends StateAccess { copy(): StateManager; flush(): Promise<void>; dumpStorage(address: Address): Promise<StorageDump>; } //# sourceMappingURL=interface.d.ts.map