-
Notifications
You must be signed in to change notification settings - Fork 44
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Raises polling interval to 12s from 4s to reduce infura load. (#70)
* Refactor provider init and update polling. * Lower to 12s.
- Loading branch information
Showing
7 changed files
with
38 additions
and
90 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
import { providers } from 'ethers'; | ||
import Web3 from 'web3'; | ||
|
||
export function createProvider(ethNetworkUrl: string): providers.Web3Provider { | ||
if (ethNetworkUrl.includes('infura')) { | ||
const networkPrefix = ethNetworkUrl.split('infura')[0]; | ||
if (process && process.env) { | ||
const { INFURA_API_KEY } = process.env; | ||
if (!INFURA_API_KEY) { | ||
throw new Error('no infura key found!'); | ||
} | ||
ethNetworkUrl = `${networkPrefix}infura.io/ws/v3/${INFURA_API_KEY}`; | ||
} else { | ||
throw new Error('must use nodejs to connect to infura provider!'); | ||
} | ||
} | ||
const web3Provider = new Web3.providers.WebsocketProvider(ethNetworkUrl, { | ||
reconnect: { | ||
auto: true, | ||
delay: 5000, | ||
onTimeout: true, | ||
}, | ||
}); | ||
const provider = new providers.Web3Provider(web3Provider); | ||
// 12s minute polling interval (default is 4s) | ||
provider.pollingInterval = 12000; | ||
return provider; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters