-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathproviders.ts
61 lines (57 loc) · 1.98 KB
/
providers.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import type { NetworkName } from '@ragetrade/sdk'
import { chainIds } from '@ragetrade/sdk'
import type { ethers } from 'ethers'
import { ArchiveCacheProvider } from './archive-cache-provider'
import { ENV } from './env'
import { RetryProvider } from './retry-provider'
export const arbmain = new RetryProvider(
// "https://arb1.arbitrum.io/rpc"
'https://arb-mainnet.g.alchemy.com/v2/' + ENV.ALCHEMY_KEY
// process.env.QUICKNODE_URL
// "https://rpc.ankr.com/arbitrum"
)
export const arbtest = new RetryProvider(
// "https://rinkeby.arbitrum.io/rpc"
'https://arb-rinkeby.g.alchemy.com/v2/' + ENV.ALCHEMY_KEY
)
export const arbgoerli = new RetryProvider(
'https://arb-goerli.g.alchemy.com/v2/' + ENV.ALCHEMY_KEY
)
export const mainnetfork = new RetryProvider('https://internal-rpc.rage.trade')
// sdk.getProvider("arbgoerli");
export function getProvider(networkName: NetworkName): ethers.providers.Provider {
switch (networkName) {
case 'arbmain':
return arbmain
case 'arbgoerli':
return arbgoerli
case 'mainnetfork':
return mainnetfork
default:
throw new Error(`Provider not available for the network: ${networkName}`)
}
}
// This is separate from the above function because the aggregate apis make a lot of requests
export function getProviderAggregate(networkName: NetworkName): ArchiveCacheProvider {
switch (networkName) {
case 'arbmain':
return new ArchiveCacheProvider(
'https://arb-mainnet.g.alchemy.com/v2/' + ENV.ALCHEMY_KEY_AGGREGATE,
chainIds.arbmain
)
case 'mainnetfork':
return new ArchiveCacheProvider(
'https://internal-rpc.rage.trade',
31337,
56878000,
getProviderAggregate('arbmain')
)
case 'arbgoerli':
return new ArchiveCacheProvider(
'https://arb-goerli.g.alchemy.com/v2/' + ENV.ALCHEMY_KEY_AGGREGATE,
chainIds.arbgoerli
)
default:
throw new Error(`Aggregate provider not available for the network: ${networkName}`)
}
}