ethers.js/packages/providers/lib/provider-fallback.d.ts
2022-04-17 04:31:42 -04:00

49 lines
2.0 KiB
TypeScript

import { AbstractProvider } from "./abstract-provider.js";
import { Network } from "./network.js";
import type { PerformActionRequest } from "./abstract-provider.js";
import type { Networkish } from "./network.js";
export interface FallbackProviderConfig {
provider: AbstractProvider;
stallTimeout?: number;
priority?: number;
weight?: number;
}
export interface FallbackProviderState extends Required<FallbackProviderConfig> {
blockNumber: number;
requests: number;
errorResponses: number;
lateResponses: number;
outOfSync: number;
unsupportedEvents: number;
rollingDuration: number;
score: number;
}
export declare type FallbackProviderOptions = {
quorum: number;
eventQuorum: number;
eventWorkers: number;
};
export declare class FallbackProvider extends AbstractProvider {
#private;
readonly quorum: number;
readonly eventQuorum: number;
readonly eventWorkers: number;
constructor(providers: Array<AbstractProvider | FallbackProviderConfig>, network?: Networkish);
get providerConfigs(): Array<FallbackProviderState>;
_detectNetwork(): Promise<Readonly<{
toJSON: () => any;
name: string;
chainId: bigint;
formatter: Readonly<import("./formatter.js").Formatter>;
readonly plugins: readonly import("./plugins-network.js").NetworkPlugin[];
attachPlugin: (plugin: import("./plugins-network.js").NetworkPlugin) => Network;
getPlugin: <T extends import("./plugins-network.js").NetworkPlugin = import("./plugins-network.js").NetworkPlugin>(name: string) => T | null;
getPlugins: <T_1 extends import("./plugins-network.js").NetworkPlugin = import("./plugins-network.js").NetworkPlugin>(basename: string) => T_1[];
clone: () => Network;
freeze: () => Readonly<any>;
isFrozen: () => boolean;
computeIntrinsicGas: (tx: import("@ethersproject/transaction").TransactionLike<string>) => number;
}>>;
_perform<T = any>(req: PerformActionRequest): Promise<T>;
}
//# sourceMappingURL=provider-fallback.d.ts.map