import { Address, Hash, Quantity, HexData } from './primitives'; import { Tag, RpcTransactionRequest, FilterRequest, RpcLogObject, RpcTransactionResponse, RpcBlockResponse, RpcTransactionReceipt, RpcRichBlockResponse } from './model'; import { TestChainOptions } from './TestChainOptions'; import { SnapshotObject } from './vm/storage/SnapshotObject'; import { DethLogger } from './debugger/Logger/DethLogger'; /** * TestChain wraps TestVM and provides an API suitable for use by a provider. * It is separate from the provider so that there can be many provider instances * using the same TestChain instance. */ export declare class TestChain { private logger; private tvm; options: SnapshotObject; constructor(logger: DethLogger, options?: Partial); init(): Promise; makeSnapshot(): number; revertToSnapshot(id: number): void; skewClock(delta: number): void; startAutoMining(): void; stopAutoMining(): void; mineBlock(): Promise; getBlockNumber(): Promise; getGasPrice(): Quantity; getBalance(address: Address, blockTag: Quantity | Tag): Promise; getTransactionCount(address: Address, blockTag: Quantity | Tag): Promise; getCode(address: Address, blockTag: Quantity | Tag): Promise; getStorageAt(address: Address, position: Quantity, blockTag: Quantity | Tag): Promise; sendTransaction(signedTransaction: HexData): Promise; call(transactionRequest: RpcTransactionRequest, blockTag: Quantity | Tag): Promise; estimateGas(transactionRequest: RpcTransactionRequest): Promise; getBlock(blockTagOrHash: Quantity | Tag | Hash, includeTransactions: boolean): Promise; getTransaction(transactionHash: Hash): RpcTransactionResponse; getTransactionReceipt(transactionHash: Hash): RpcTransactionReceipt | undefined; getLogs(filter: FilterRequest): Promise; private parseTx; }