import { PrefixedHexString } from 'ethereumjs-tx'; import PingResponse from '../PingResponse'; import RelayRequest from '../EIP712/RelayRequest'; import GsnTransactionDetails from './GsnTransactionDetails'; import RelayFailureInfo from './RelayFailureInfo'; import { RelayRegisteredEventInfo } from './RelayRegisteredEventInfo'; import { HttpProvider, IpcProvider, WebsocketProvider } from 'web3-core'; import { JsonRpcPayload, JsonRpcResponse } from 'web3-core-helpers'; export declare type Address = string; export declare type IntString = string; export declare type SemVerString = string; /** * For legacy reasons, to filter out the relay this filter has to throw. * TODO: make ping filtering sane! */ export declare type PingFilter = (pingResponse: PingResponse, gsnTransactionDetails: GsnTransactionDetails) => void; export declare type AsyncDataCallback = (relayRequest: RelayRequest) => Promise; export declare type RelayFilter = (registeredEventInfo: RelayRegisteredEventInfo) => boolean; export declare type AsyncScoreCalculator = (relay: RelayRegisteredEventInfo, txDetails: GsnTransactionDetails, failures: RelayFailureInfo[]) => Promise; export declare function notNull(value: TValue | null | undefined): value is TValue; /** * This is an intersection of NPM log levels and 'loglevel' library methods. */ export declare type NpmLogLevel = 'error' | 'warn' | 'info' | 'debug'; export declare type Web3Provider = HttpProvider | IpcProvider | WebsocketProvider; /** * The only thing that is guaranteed a Web3 provider or a similar object is a {@link send} method. */ export interface Web3ProviderBaseInterface { send: (payload: JsonRpcPayload, callback: (error: Error | null, result?: JsonRpcResponse) => void) => void; }