Skip to content

Commit 5748584

Browse files
committed
Adding configs and enabling new chains
1 parent a6a026f commit 5748584

File tree

5 files changed

+117
-59
lines changed

5 files changed

+117
-59
lines changed

bin/app.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -376,6 +376,14 @@ const jsonRpcProviders = {
376376
ALCHEMY_1: process.env.ALCHEMY_1!,
377377
WEB3_RPC_42161: process.env.WEB3_RPC_42161!,
378378
ALCHEMY_42161: process.env.ALCHEMY_42161!,
379+
WEB3_RPC_8453: process.env.WEB3_RPC_8453!,
380+
ALCHEMY_8453: process.env.ALCHEMY_8453!,
381+
WEB3_RPC_43114: process.env.WEB3_RPC_43114!,
382+
ALCHEMY_43114: process.env.ALCHEMY_43114!,
383+
WEB3_RPC_56: process.env.WEB3_RPC_56!,
384+
ALCHEMY_56: process.env.ALCHEMY_56!,
385+
WEB3_RPC_10: process.env.WEB3_RPC_10!,
386+
ALCHEMY_10: process.env.ALCHEMY_10!,
379387
ALCHEMY_QUERY_KEY: process.env.ALCHEMY_QUERY_KEY!,
380388
}
381389

lib/config/rpcProviderProdConfig.json

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,41 @@
1616
"providerInitialWeights": [1],
1717
"providerUrls": ["ALCHEMY_42161"],
1818
"providerNames": ["ALCHEMY"]
19+
},
20+
{
21+
"chainId": 8453,
22+
"useMultiProviderProb": 1,
23+
"latencyEvaluationSampleProb": 0,
24+
"healthCheckSampleProb": 0,
25+
"providerInitialWeights": [1],
26+
"providerUrls": ["ALCHEMY_8453"],
27+
"providerNames": ["ALCHEMY"]
28+
},
29+
{
30+
"chainId": 56,
31+
"useMultiProviderProb": 1,
32+
"latencyEvaluationSampleProb": 0,
33+
"healthCheckSampleProb": 0,
34+
"providerInitialWeights": [1],
35+
"providerUrls": ["ALCHEMY_56"],
36+
"providerNames": ["ALCHEMY"]
37+
},
38+
{
39+
"chainId": 10,
40+
"useMultiProviderProb": 1,
41+
"latencyEvaluationSampleProb": 0,
42+
"healthCheckSampleProb": 0,
43+
"providerInitialWeights": [1],
44+
"providerUrls": ["ALCHEMY_10"],
45+
"providerNames": ["ALCHEMY"]
46+
},
47+
{
48+
"chainId": 43114,
49+
"useMultiProviderProb": 1,
50+
"latencyEvaluationSampleProb": 0,
51+
"healthCheckSampleProb": 0,
52+
"providerInitialWeights": [1],
53+
"providerUrls": ["ALCHEMY_43114"],
54+
"providerNames": ["ALCHEMY"]
1955
}
2056
]

lib/cron/cache-config.ts

Lines changed: 55 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -5,27 +5,31 @@ import { ChainId } from '@uniswap/sdk-core'
55
export const v4SubgraphUrlOverride = (chainId: ChainId) => {
66
switch (chainId) {
77
case ChainId.SEPOLIA:
8-
return `https://subgraph.satsuma-prod.com/${process.env.ALCHEMY_QUERY_KEY}/bransfer/uniswap-v4-sepolia-test/api`
8+
return `https://subgraph.satsuma-prod.com/${process.env.ALCHEMY_QUERY_KEY}/bransfer/sepolia-v4/api`
99
case ChainId.ARBITRUM_ONE:
1010
return `https://subgraph.satsuma-prod.com/${process.env.ALCHEMY_QUERY_KEY}/bransfer/arbitrum-v4/api`
1111
case ChainId.BASE:
12-
return `https://subgraph.satsuma-prod.com/${process.env.ALCHEMY_QUERY_KEY}/bransfer/uniswap-v4-base/api`
12+
return `https://subgraph.satsuma-prod.com/${process.env.ALCHEMY_QUERY_KEY}/bransfer/base-v4/api`
1313
case ChainId.POLYGON:
14-
return `https://subgraph.satsuma-prod.com/${process.env.ALCHEMY_QUERY_KEY}/bransfer/uniswap-v4-polygon/api`
14+
return `https://subgraph.satsuma-prod.com/${process.env.ALCHEMY_QUERY_KEY}/bransfer/polygon-v4/api`
1515
case ChainId.WORLDCHAIN:
16-
return `https://subgraph.satsuma-prod.com/${process.env.ALCHEMY_QUERY_KEY}/bransfer/uniswap-v4-worldchain/api`
16+
return `https://subgraph.satsuma-prod.com/${process.env.ALCHEMY_QUERY_KEY}/bransfer/worldchain-v4/api`
1717
case ChainId.ZORA:
18-
return `https://subgraph.satsuma-prod.com/${process.env.ALCHEMY_QUERY_KEY}/bransfer/uniswap-v4-zora/api`
18+
return `https://subgraph.satsuma-prod.com/${process.env.ALCHEMY_QUERY_KEY}/bransfer/zora-v4/api`
1919
case ChainId.UNICHAIN:
20-
return `https://subgraph.satsuma-prod.com/${process.env.ALCHEMY_QUERY_KEY}/bransfer/uniswap-v4-unichain-mainnet/api`
20+
return `https://subgraph.satsuma-prod.com/${process.env.ALCHEMY_QUERY_KEY}/bransfer/unichain-v4/api`
2121
case ChainId.BNB:
22-
return `https://subgraph.satsuma-prod.com/${process.env.ALCHEMY_QUERY_KEY}/bransfer/uniswap-v4-bsc/api`
22+
return `https://subgraph.satsuma-prod.com/${process.env.ALCHEMY_QUERY_KEY}/bransfer/bsc-v4/api`
2323
case ChainId.BLAST:
24-
return `https://subgraph.satsuma-prod.com/${process.env.ALCHEMY_QUERY_KEY}/bransfer/uniswap-v4-blast/api`
24+
return `https://subgraph.satsuma-prod.com/${process.env.ALCHEMY_QUERY_KEY}/bransfer/blast-v4/api`
2525
case ChainId.MAINNET:
2626
return `https://subgraph.satsuma-prod.com/${process.env.ALCHEMY_QUERY_KEY}/bransfer/ethereum-v4/api`
2727
case ChainId.SONEIUM:
28-
return `https://subgraph.satsuma-prod.com/${process.env.ALCHEMY_QUERY_KEY}/bransfer/uniswap-v4-soneium-mainnet/api`
28+
return `https://subgraph.satsuma-prod.com/${process.env.ALCHEMY_QUERY_KEY}/bransfer/soneium-v4/api`
29+
case ChainId.AVALANCHE:
30+
return `https://subgraph.satsuma-prod.com/${process.env.ALCHEMY_QUERY_KEY}/bransfer/avalanche-v4/api`
31+
case ChainId.OPTIMISM:
32+
return `https://subgraph.satsuma-prod.com/${process.env.ALCHEMY_QUERY_KEY}/bransfer/optimism-v4/api`
2933
default:
3034
return undefined
3135
}
@@ -109,95 +113,95 @@ const v2UntrackedUsdThreshold = Number.MAX_VALUE // Pairs need at least 1K USD (
109113

110114
export const chainProtocols = [
111115
// V3.
116+
117+
118+
// V2.
119+
120+
121+
// V4
122+
112123
{
113-
protocol: Protocol.V3,
124+
protocol: Protocol.V4,
114125
chainId: ChainId.MAINNET,
115126
timeout: 90000,
116-
provider: new V3SubgraphProvider(
127+
provider: new V4SubgraphProvider(
117128
ChainId.MAINNET,
118129
3,
119130
90000,
120131
true,
121-
v3TrackedEthThreshold,
122-
v3UntrackedUsdThreshold,
123-
v3SubgraphUrlOverride(ChainId.MAINNET)
132+
v4TrackedEthThreshold,
133+
v4UntrackedUsdThreshold,
134+
v4SubgraphUrlOverride(ChainId.MAINNET)
124135
),
125136
},
126137
{
127-
protocol: Protocol.V3,
138+
protocol: Protocol.V4,
128139
chainId: ChainId.ARBITRUM_ONE,
129140
timeout: 90000,
130-
provider: new V3SubgraphProvider(
141+
provider: new V4SubgraphProvider(
131142
ChainId.ARBITRUM_ONE,
132-
5,
143+
3,
133144
90000,
134145
true,
135-
v3TrackedEthThreshold,
136-
v3UntrackedUsdThreshold,
137-
v3SubgraphUrlOverride(ChainId.ARBITRUM_ONE)
146+
v4TrackedEthThreshold,
147+
v4UntrackedUsdThreshold,
148+
v4SubgraphUrlOverride(ChainId.ARBITRUM_ONE)
138149
),
139150
},
140-
141-
// V2.
142151
{
143-
protocol: Protocol.V2,
144-
chainId: ChainId.MAINNET,
145-
timeout: 840000,
146-
provider: new V2SubgraphProvider(
147-
ChainId.MAINNET,
148-
5,
149-
900000,
152+
protocol: Protocol.V4,
153+
chainId: ChainId.BASE,
154+
timeout: 90000,
155+
provider: new V4SubgraphProvider(
156+
ChainId.BASE,
157+
3,
158+
90000,
150159
true,
151-
1000,
152-
v2TrackedEthThreshold,
153-
v2UntrackedUsdThreshold,
154-
v2SubgraphUrlOverride(ChainId.MAINNET)
155-
), // 1000 is the largest page size supported by thegraph
160+
v4TrackedEthThreshold,
161+
v4UntrackedUsdThreshold,
162+
v4SubgraphUrlOverride(ChainId.BASE)
163+
),
156164
},
157165
{
158-
protocol: Protocol.V2,
159-
chainId: ChainId.ARBITRUM_ONE,
166+
protocol: Protocol.V4,
167+
chainId: ChainId.BNB,
160168
timeout: 90000,
161-
provider: new V2SubgraphProvider(
162-
ChainId.ARBITRUM_ONE,
169+
provider: new V4SubgraphProvider(
170+
ChainId.BNB,
163171
3,
164172
90000,
165173
true,
166-
1000,
167-
v2TrackedEthThreshold,
168-
v2UntrackedUsdThreshold,
169-
v2SubgraphUrlOverride(ChainId.ARBITRUM_ONE)
174+
v4TrackedEthThreshold,
175+
v4UntrackedUsdThreshold,
176+
v4SubgraphUrlOverride(ChainId.BNB)
170177
),
171178
},
172-
173-
// V4
174-
175179
{
176180
protocol: Protocol.V4,
177-
chainId: ChainId.MAINNET,
181+
chainId: ChainId.OPTIMISM,
178182
timeout: 90000,
179183
provider: new V4SubgraphProvider(
180-
ChainId.MAINNET,
184+
ChainId.OPTIMISM,
181185
3,
182186
90000,
183187
true,
184188
v4TrackedEthThreshold,
185189
v4UntrackedUsdThreshold,
186-
v4SubgraphUrlOverride(ChainId.MAINNET)
190+
v4SubgraphUrlOverride(ChainId.OPTIMISM)
187191
),
188192
},
189193
{
190194
protocol: Protocol.V4,
191-
chainId: ChainId.ARBITRUM_ONE,
195+
chainId: ChainId.AVALANCHE,
192196
timeout: 90000,
193197
provider: new V4SubgraphProvider(
194-
ChainId.ARBITRUM_ONE,
198+
ChainId.AVALANCHE,
195199
3,
196200
90000,
197201
true,
198202
v4TrackedEthThreshold,
199203
v4UntrackedUsdThreshold,
200-
v4SubgraphUrlOverride(ChainId.ARBITRUM_ONE)
204+
v4SubgraphUrlOverride(ChainId.AVALANCHE)
201205
),
202206
},
203207
]

lib/handlers/injector-sor.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,12 @@ import { TENDERLY_NEW_ENDPOINT_ROLLOUT_PERCENT } from '../util/tenderlyNewEndpoi
9595

9696
export const SUPPORTED_CHAINS: ChainId[] = [
9797
ChainId.MAINNET,
98-
ChainId.ARBITRUM_ONE
98+
ChainId.ARBITRUM_ONE,
99+
ChainId.OPTIMISM,
100+
ChainId.BASE,
101+
ChainId.BNB,
102+
ChainId.OPTIMISM,
103+
ChainId.AVALANCHE
99104
]
100105
const DEFAULT_TOKEN_LIST = 'https://tokens.uniswap.org'
101106

@@ -340,6 +345,11 @@ export abstract class InjectorSOR<Router, QueryParams> extends Injector<
340345
let quoteProvider: IOnChainQuoteProvider | undefined = undefined
341346
switch (chainId) {
342347
case ChainId.MAINNET:
348+
case ChainId.ARBITRUM_ONE:
349+
case ChainId.OPTIMISM:
350+
case ChainId.AVALANCHE:
351+
case ChainId.BNB:
352+
case ChainId.BASE:
343353
default:
344354
const currentQuoteProvider = new OnChainQuoteProvider(
345355
chainId,

lib/rpc/utils.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,13 @@ export function generateProviderUrl(key: string, value: string): string {
4040

4141
// Alchemy
4242
case 'ALCHEMY_10': {
43-
return `https://opt-mainnet-fast.g.alchemy.com/v2/${value}`
43+
return `https://opt-mainnet.g.alchemy.com/v2/${value}`
4444
}
4545
case 'ALCHEMY_137': {
46-
return `https://polygon-mainnet-fast.g.alchemy.com/v2/${value}`
46+
return `https://polygon-mainnet.g.alchemy.com/v2/${value}`
4747
}
4848
case 'ALCHEMY_8453': {
49-
return `https://base-mainnet-fast.g.alchemy.com/v2/${value}`
49+
return `https://base-mainnet.g.alchemy.com/v2/${value}`
5050
}
5151
case 'ALCHEMY_11155111': {
5252
return `https://eth-sepolia.g.alchemy.com/v2/${value}`
@@ -57,11 +57,11 @@ export function generateProviderUrl(key: string, value: string): string {
5757
case 'ALCHEMY_1': {
5858
return `https://eth-mainnet.g.alchemy.com/v2/${value}`
5959
}
60-
case 'ALCHEMY_324': {
61-
return `https://zksync-mainnet.g.alchemy.com/v2/${value}`
60+
case 'ALCHEMY_56': {
61+
return `https://bnb-mainnet.g.alchemy.com/v2/${value}`
6262
}
63-
case 'ALCHEMY_1301': {
64-
return `https://unichain-sepolia.g.alchemy.com/v2/${value}`
63+
case 'ALCHEMY_43114': {
64+
return `https://avax-mainnet.g.alchemy.com/v2/${value}`
6565
}
6666
}
6767
throw new Error(`Unknown provider-chainId pair: ${key}`)

0 commit comments

Comments
 (0)