@intuweb3/sdk
Version:
INTU SDK - Modern blockchain interaction toolkit
29 lines (28 loc) • 1.57 kB
TypeScript
import { ethers, providers } from "ethers";
interface ProviderConfig {
customRpcEndpoints?: Record<string, string>;
preferCustomRpc?: boolean;
allowMetaMaskFallback?: boolean;
}
declare class ReliableProviderManager {
private static instance;
private config;
private providerCache;
private constructor();
static getInstance(): ReliableProviderManager;
configure(config: ProviderConfig): void;
getReliableProvider(chainId: string | number, signer?: ethers.Signer): Promise<providers.Provider>;
getProviderForChainWithCustomRpc(chainId: string | number, customRpcUrl?: string, signer?: ethers.Signer): Promise<providers.Provider>;
private getNetworkName;
private isMetaMaskProvider;
getBestProvider(chainId: string | number, signer?: ethers.Signer): Promise<providers.Provider>;
clearCache(): void;
getRpcUrl(chainId: string | number): string;
}
export declare const reliableProviderManager: ReliableProviderManager;
export type { ProviderConfig };
export declare function getReliableProvider(chainId: string | number, signer?: ethers.Signer): Promise<providers.Provider>;
export declare function getBestProvider(chainId: string | number, signer?: ethers.Signer): Promise<providers.Provider>;
export declare function getProviderWithCustomRpc(chainId: string | number, customRpcUrl?: string, signer?: ethers.Signer): Promise<providers.Provider>;
export declare function configureProviderManager(config: ProviderConfig): void;
export declare function getRpcUrlWithCustomSupport(chainId: string | number): string;