import { Web3Client } from '../clients/Web3Client'; import { EoAccount } from '../models/TAccount'; import { TEth } from '../models/TEth'; import { RpcTypes } from '../rpc/Rpc'; import { DeepPartial } from '../utils/types'; import { IConfigData } from '../config/interface/IConfigData'; /** * Submits transaction to Flashbots network * * The signed raw transactions could be generated by Contract Classes with `$signed()` getter: e.g.: * * ```ts * let foo = new ERC20(); * let tx = await foo.$signed().transfer(from, to); * ``` */ export declare class FlashbotsProvider { account: EoAccount; config: IConfigData['flashbots']['']; private client; private rpc; protected constructor(account: EoAccount, config: IConfigData['flashbots'][''], client: Web3Client); sendMevBundle(bundle: DeepPartial): Promise<{ bundleHash: TEth.Hex; uuid: string; block: `0x${string}`; }>; simMevBundle(bundle: DeepPartial): Promise<{ success: boolean; stateBlock: string; mevGasPrice: string; profit: string; refundableValue: string; gasUsed: string; logs: { [key: string]: any; }[]; uuid: string; block: `0x${string}`; }>; sendBundle(bundle: DeepPartial): Promise<{ bundleHash: TEth.Hex; bundleGasPrice: bigint; coinbaseDiff: bigint; ethSentToCoinbase: bigint; gasFees: bigint; stateBlockNumber: number; totalGasUsed: number; results: any[]; uuid: string; block: `0x${string}`; }>; callBundle(bundle: DeepPartial): Promise<{ bundleHash: TEth.Hex; bundleGasPrice: bigint; coinbaseDiff: bigint; ethSentToCoinbase: bigint; gasFees: bigint; stateBlockNumber: number; totalGasUsed: number; results: any[]; uuid: string; block: `0x${string}`; }>; sendPrivateTransaction(bundle: DeepPartial): Promise; getBundleStats(bundle: { bundleHash: TEth.Hex; blockNumber: number | TEth.Hex; }): Promise<{ isHighPriority: boolean; isSimulated: boolean; simulatedAt: string; receivedAt: string; consideredByBuildersAt: { pubkey: string; timestamp: string; }[]; sealedByBuildersAt: { pubkey: string; timestamp: string; }[]; }>; cancelBundle(uuid: string): Promise; private prepareMevBundle; private prepareBundle; static create(client: Web3Client, account: EoAccount): Promise; }