UNPKG

@tevm/actions

Version:

A typesafe library for writing forge scripts in typescript

92 lines 4.12 kB
import type { Filter } from '@tevm/utils'; import type { AnvilJsonRpcRequest } from '../anvil/AnvilJsonRpcRequest.js'; import type { TransactionParams } from '../common/TransactionParams.js'; import type { DebugJsonRpcRequest } from '../debug/DebugJsonRpcRequest.js'; import type { EthJsonRpcRequest } from '../eth/EthJsonRpcRequest.js'; import type { GetAccountResult } from '../GetAccount/GetAccountResult.js'; import type { TevmJsonRpcRequest } from '../TevmJsonRpcRequest.js'; import type { TevmJsonRpcBulkRequestHandler } from './TevmJsonRpcBulkRequestHandler.js'; /** * Options for the EIP1193 request handler * @see */ export interface EIP1193RequestOptions { retryDelay?: number; retryCount?: number; } export type TevmRequest = TevmJsonRpcRequest | EthJsonRpcRequest | AnvilJsonRpcRequest | DebugJsonRpcRequest; export type TevmEIP1193RequestFn<TParameters extends TevmRequest['params'] = TevmRequest['params']> = (args: { params: TParameters; method: TevmRequest['method']; }, options?: EIP1193RequestOptions) => Promise<unknown>; export interface RequestArguments { method: string; params?: readonly unknown[] | object; } export interface ProviderRpcError extends Error { code: number; data?: unknown; } export interface ProviderConnectInfo { chainId: string; } export interface ProviderMessage { type: string; data: unknown; } export interface EthSubscription extends ProviderMessage { type: 'eth_subscription'; data: { subscription: string; result: unknown; }; } export type ConnectListener = (connectInfo: ProviderConnectInfo) => void; export type DisconnectListener = (error: ProviderRpcError) => void; export type ChainChangedListener = (chainId: string) => void; export type AccountsChangedListener = (accounts: string[]) => void; export type MessageListener = (message: ProviderMessage) => void; export type NewBlockListener = (blockNumber: string) => void; export type PendingTxListener = (tx: TransactionParams) => void; export type PendingTxRevertedListener = (tx: TransactionParams) => void; export type PendingTxConfirmedListener = (tx: TransactionParams) => void; export type ErrorListener = (error: ProviderRpcError) => void; export type EventListener = (filter?: Filter) => void; export type AcountUpdatedListener = (account?: GetAccountResult) => void; export type DebugListener = (message: string) => void; type TODO = any; type TevmActionsApi = TODO; export interface TevmEIP1193Provider { request: TevmEIP1193RequestFn; on(event: 'connect', listener: ConnectListener): this; on(event: 'disconnect', listener: DisconnectListener): this; on(event: 'chainChanged', listener: ChainChangedListener): this; on(event: 'accountsChanged', listener: AccountsChangedListener): this; on(event: 'message', listener: MessageListener): this; on(event: 'newBlock', listener: NewBlockListener): this; on(event: 'pendingTx', listener: PendingTxListener): this; on(event: 'pendingTxReverted', listener: PendingTxRevertedListener): this; on(event: 'pendingTxConfirmed', listener: PendingTxConfirmedListener): this; on(event: 'error', listener: ErrorListener): this; on(event: 'event', listener: EventListener): this; on(event: 'accountUpdated', listener: AcountUpdatedListener): this; on(event: 'debug', listener: DebugListener): this; removeListener(event: 'connect', listener: ConnectListener): this; removeListener(event: 'disconnect', listener: DisconnectListener): this; removeListener(event: 'chainChanged', listener: ChainChangedListener): this; removeListener(event: 'accountsChanged', listener: AccountsChangedListener): this; removeListener(event: 'message', listener: MessageListener): this; } export type TevmClient = TevmEIP1193Provider & TevmActionsApi & { /** * Whether the provider is polling for block updates */ polling: boolean; /** * Frequency in MS to poll for block updates */ pollingInterval: number; requestBulk: TevmJsonRpcBulkRequestHandler; }; export {}; //# sourceMappingURL=EIP1193.d.ts.map