Skip to content

Commit

Permalink
Add static network for fallback providers
Browse files Browse the repository at this point in the history
  • Loading branch information
therealjmj committed Jun 9, 2023
1 parent 8b0f971 commit 418bb59
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 5 deletions.
4 changes: 2 additions & 2 deletions src/utils/fallback-provider.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { FallbackProvider, Networkish, WebSocketProvider } from 'ethers';
import { FallbackProvider, Network, WebSocketProvider } from 'ethers';
import { PollingJsonRpcProvider } from './polling-json-rpc-provider';

export type FallbackProviderJsonConfig = {
Expand All @@ -17,8 +17,8 @@ export type ProviderJson = {
export const createFallbackProviderFromJsonConfig = (
config: FallbackProviderJsonConfig,
): FallbackProvider => {
const network: Networkish = Number(config.chainId);
try {
const network = Network.from(Number(config.chainId));
const providers = config.providers.map(json => {
const isWebsocket = json.provider.startsWith('wss');
const provider = isWebsocket
Expand Down
9 changes: 6 additions & 3 deletions src/utils/polling-json-rpc-provider.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
import { JsonRpcProvider, JsonRpcApiProviderOptions, Networkish } from 'ethers';
import { JsonRpcProvider, JsonRpcApiProviderOptions, Network } from 'ethers';

/**
* Uses a setting in JsonRpcProvider to poll for events,
* rather than using sparsely-implemented eth_filter events.
*/
export class PollingJsonRpcProvider extends JsonRpcProvider {
constructor(url: string, network: Networkish, disableBatching = false) {
const options: JsonRpcApiProviderOptions = { polling: true };
constructor(url: string, network: Network, disableBatching = false) {
const options: JsonRpcApiProviderOptions = {
polling: true,
staticNetwork: network,
};
if (disableBatching) {
options.batchMaxCount = 1;
}
Expand Down

0 comments on commit 418bb59

Please sign in to comment.