@@ -40,7 +40,7 @@ export type Subscription = {
40
40
} ;
41
41
42
42
export type Chain = {
43
- rpc : string ;
43
+ rpcs : string [ ] ;
44
44
name : string ;
45
45
id : ChainId ;
46
46
pricesFromTimestamp : number ;
@@ -49,15 +49,15 @@ export type Chain = {
49
49
maxGetLogsRange ?: number ;
50
50
} ;
51
51
52
- const rpcUrl = z . string ( ) . url ( ) ;
52
+ const rpcUrl = z . array ( z . string ( ) . url ( ) ) ;
53
53
54
54
const CHAINS : Chain [ ] = [
55
55
{
56
56
id : 1 ,
57
57
name : "mainnet" ,
58
- rpc : rpcUrl
59
- . default ( "https://mainnet.infura.io/v3/" )
60
- . parse ( process . env . MAINNET_RPC_URL ) ,
58
+ rpcs : rpcUrl
59
+ . default ( [ "https://mainnet.infura.io/v3/" ] )
60
+ . parse ( process . env . MAINNET_RPC_URLS ) ,
61
61
pricesFromTimestamp : Date . UTC ( 2022 , 11 , 1 , 0 , 0 , 0 ) ,
62
62
tokens : [
63
63
{
@@ -152,9 +152,9 @@ const CHAINS: Chain[] = [
152
152
{
153
153
id : 10 ,
154
154
name : "optimism" ,
155
- rpc : rpcUrl
156
- . default ( "https://optimism-rpc.publicnode.com" )
157
- . parse ( process . env . OPTIMISM_RPC_URL ) ,
155
+ rpcs : rpcUrl
156
+ . default ( [ "https://optimism-rpc.publicnode.com" ] )
157
+ . parse ( process . env . OPTIMISM_RPC_URLS ) ,
158
158
pricesFromTimestamp : Date . UTC ( 2022 , 11 , 1 , 0 , 0 , 0 ) ,
159
159
tokens : [
160
160
{
@@ -268,9 +268,9 @@ const CHAINS: Chain[] = [
268
268
{
269
269
id : 11155111 ,
270
270
name : "sepolia" ,
271
- rpc : rpcUrl
272
- . default ( "https://ethereum-sepolia.publicnode.com" )
273
- . parse ( process . env . SEPOLIA_RPC_URL ) ,
271
+ rpcs : rpcUrl
272
+ . default ( [ "https://ethereum-sepolia.publicnode.com" ] )
273
+ . parse ( process . env . SEPOLIA_RPC_URLS ) ,
274
274
pricesFromTimestamp : Date . UTC ( 2023 , 11 , 1 , 0 , 0 , 0 ) ,
275
275
tokens : [
276
276
{
@@ -372,9 +372,9 @@ const CHAINS: Chain[] = [
372
372
{
373
373
id : 250 ,
374
374
name : "fantom" ,
375
- rpc : rpcUrl
376
- . default ( "https://rpcapi.fantom.network" )
377
- . parse ( process . env . FANTOM_RPC_URL ) ,
375
+ rpcs : rpcUrl
376
+ . default ( [ "https://rpcapi.fantom.network" ] )
377
+ . parse ( process . env . FANTOM_RPC_URLS ) ,
378
378
pricesFromTimestamp : Date . UTC ( 2022 , 11 , 1 , 0 , 0 , 0 ) ,
379
379
tokens : [
380
380
{
@@ -471,9 +471,9 @@ const CHAINS: Chain[] = [
471
471
{
472
472
id : 58008 ,
473
473
name : "pgn-testnet" ,
474
- rpc : rpcUrl
475
- . default ( "https://sepolia.publicgoods.network" )
476
- . parse ( process . env . PGN_TESTNET_RPC_URL ) ,
474
+ rpcs : rpcUrl
475
+ . default ( [ "https://sepolia.publicgoods.network" ] )
476
+ . parse ( process . env . PGN_TESTNET_RPC_URLS ) ,
477
477
pricesFromTimestamp : Date . UTC ( 2023 , 5 , 2 , 0 , 0 , 0 ) ,
478
478
tokens : [
479
479
{
@@ -524,9 +524,9 @@ const CHAINS: Chain[] = [
524
524
{
525
525
id : 424 ,
526
526
name : "pgn-mainnet" ,
527
- rpc : rpcUrl
528
- . default ( "https://rpc.publicgoods.network" )
529
- . parse ( process . env . PGN_RPC_URL ) ,
527
+ rpcs : rpcUrl
528
+ . default ( [ "https://rpc.publicgoods.network" ] )
529
+ . parse ( process . env . PGN_RPC_URLS ) ,
530
530
pricesFromTimestamp : Date . UTC ( 2023 , 5 , 2 , 0 , 0 , 0 ) ,
531
531
tokens : [
532
532
{
@@ -602,9 +602,9 @@ const CHAINS: Chain[] = [
602
602
{
603
603
id : 42161 ,
604
604
name : "arbitrum" ,
605
- rpc : rpcUrl
606
- . default ( "https://arb-mainnet.g.alchemy.com/v2/" )
607
- . parse ( process . env . ARBITRUM_RPC_URL ) ,
605
+ rpcs : rpcUrl
606
+ . default ( [ "https://arb-mainnet.g.alchemy.com/v2/" ] )
607
+ . parse ( process . env . ARBITRUM_RPC_URLS ) ,
608
608
pricesFromTimestamp : Date . UTC ( 2023 , 7 , 1 , 0 , 0 , 0 ) ,
609
609
tokens : [
610
610
{
@@ -715,9 +715,9 @@ const CHAINS: Chain[] = [
715
715
{
716
716
id : 80001 ,
717
717
name : "polygon-mumbai" ,
718
- rpc : rpcUrl
719
- . default ( "https://rpc-mumbai.maticvigil.com/" )
720
- . parse ( process . env . POLYGON_MUMBAI_RPC_URL ) ,
718
+ rpcs : rpcUrl
719
+ . default ( [ "https://rpc-mumbai.maticvigil.com/" ] )
720
+ . parse ( process . env . POLYGON_MUMBAI_RPC_URLS ) ,
721
721
pricesFromTimestamp : Date . UTC ( 2023 , 8 , 19 , 0 , 0 , 0 ) ,
722
722
tokens : [
723
723
{
@@ -795,9 +795,9 @@ const CHAINS: Chain[] = [
795
795
{
796
796
id : 137 ,
797
797
name : "polygon" ,
798
- rpc : rpcUrl
799
- . default ( "https://polygon-rpc.com" )
800
- . parse ( process . env . POLYGON_RPC_URL ) ,
798
+ rpcs : rpcUrl
799
+ . default ( [ "https://polygon-rpc.com" ] )
800
+ . parse ( process . env . POLYGON_RPC_URLS ) ,
801
801
pricesFromTimestamp : Date . UTC ( 2023 , 8 , 19 , 0 , 0 , 0 ) ,
802
802
tokens : [
803
803
{
@@ -893,9 +893,9 @@ const CHAINS: Chain[] = [
893
893
{
894
894
id : 8453 ,
895
895
name : "base" ,
896
- rpc : rpcUrl
897
- . default ( "https://mainnet.base.org/" )
898
- . parse ( process . env . BASE_RPC_URL ) ,
896
+ rpcs : rpcUrl
897
+ . default ( [ "https://mainnet.base.org/" ] )
898
+ . parse ( process . env . BASE_RPC_URLS ) ,
899
899
pricesFromTimestamp : Date . UTC ( 2023 , 12 , 1 , 0 , 0 , 0 ) ,
900
900
tokens : [
901
901
{
@@ -973,9 +973,9 @@ const CHAINS: Chain[] = [
973
973
{
974
974
id : 324 ,
975
975
name : "zksync-era-mainnet" ,
976
- rpc : rpcUrl
977
- . default ( "https://mainnet.era.zksync.io" )
978
- . parse ( process . env . ZKSYNC_RPC_URL ) ,
976
+ rpcs : rpcUrl
977
+ . default ( [ "https://mainnet.era.zksync.io" ] )
978
+ . parse ( process . env . ZKSYNC_RPC_URLS ) ,
979
979
pricesFromTimestamp : Date . UTC ( 2023 , 12 , 1 , 0 , 0 , 0 ) ,
980
980
tokens : [
981
981
{
@@ -1088,9 +1088,9 @@ const CHAINS: Chain[] = [
1088
1088
{
1089
1089
id : 300 ,
1090
1090
name : "zksync-era-testnet" ,
1091
- rpc : rpcUrl
1092
- . default ( "https://sepolia.era.zksync.dev" )
1093
- . parse ( process . env . ZKSYNC_TESTNET_RPC_URL ) ,
1091
+ rpcs : rpcUrl
1092
+ . default ( [ "https://sepolia.era.zksync.dev" ] )
1093
+ . parse ( process . env . ZKSYNC_TESTNET_RPC_URLS ) ,
1094
1094
pricesFromTimestamp : Date . UTC ( 2023 , 12 , 1 , 0 , 0 , 0 ) ,
1095
1095
tokens : [
1096
1096
{
@@ -1128,9 +1128,9 @@ const CHAINS: Chain[] = [
1128
1128
{
1129
1129
id : 43114 ,
1130
1130
name : "avalanche" ,
1131
- rpc : rpcUrl
1132
- . default ( "https://rpc.ankr.com/avalanche" )
1133
- . parse ( process . env . AVALANCHE_RPC_URL ) ,
1131
+ rpcs : rpcUrl
1132
+ . default ( [ "https://rpc.ankr.com/avalanche" ] )
1133
+ . parse ( process . env . AVALANCHE_RPC_URLS ) ,
1134
1134
pricesFromTimestamp : Date . UTC ( 2023 , 8 , 19 , 0 , 0 , 0 ) ,
1135
1135
tokens : [
1136
1136
{
@@ -1208,9 +1208,9 @@ const CHAINS: Chain[] = [
1208
1208
{
1209
1209
id : 43113 ,
1210
1210
name : "avalanche-fuji" ,
1211
- rpc : rpcUrl
1212
- . default ( "https://avalanche-fuji-c-chain.publicnode.com" )
1213
- . parse ( process . env . AVALANCHE_FUJI_RPC_URL ) ,
1211
+ rpcs : rpcUrl
1212
+ . default ( [ "https://avalanche-fuji-c-chain.publicnode.com" ] )
1213
+ . parse ( process . env . AVALANCHE_FUJI_RPC_URLS ) ,
1214
1214
pricesFromTimestamp : Date . UTC ( 2023 , 8 , 19 , 0 , 0 , 0 ) ,
1215
1215
tokens : [
1216
1216
{
@@ -1278,9 +1278,9 @@ const CHAINS: Chain[] = [
1278
1278
{
1279
1279
id : 534351 ,
1280
1280
name : "scroll-sepolia" ,
1281
- rpc : rpcUrl
1282
- . default ( "https://sepolia-rpc.scroll.io" )
1283
- . parse ( process . env . SCROLL_SEPOLIA_RPC_URL ) ,
1281
+ rpcs : rpcUrl
1282
+ . default ( [ "https://sepolia-rpc.scroll.io" ] )
1283
+ . parse ( process . env . SCROLL_SEPOLIA_RPC_URLS ) ,
1284
1284
pricesFromTimestamp : Date . UTC ( 2024 , 0 , 1 , 0 , 0 , 0 ) ,
1285
1285
maxGetLogsRange : 2000 ,
1286
1286
tokens : [
@@ -1349,9 +1349,9 @@ const CHAINS: Chain[] = [
1349
1349
{
1350
1350
id : 534352 ,
1351
1351
name : "scroll" ,
1352
- rpc : rpcUrl
1353
- . default ( "https://rpc.scroll.io" )
1354
- . parse ( process . env . SCROLL_RPC_URL ) ,
1352
+ rpcs : rpcUrl
1353
+ . default ( [ "https://rpc.scroll.io" ] )
1354
+ . parse ( process . env . SCROLL_RPC_URLS ) ,
1355
1355
pricesFromTimestamp : Date . UTC ( 2024 , 0 , 1 , 0 , 0 , 0 ) ,
1356
1356
maxGetLogsRange : 9000 ,
1357
1357
tokens : [
@@ -1435,9 +1435,9 @@ const CHAINS: Chain[] = [
1435
1435
{
1436
1436
id : 713715 ,
1437
1437
name : "sei-devnet" ,
1438
- rpc : rpcUrl
1439
- . default ( "https://evm-rpc-arctic-1.sei-apis.com" )
1440
- . parse ( process . env . SEI_DEVNET_RPC_URL ) ,
1438
+ rpcs : rpcUrl
1439
+ . default ( [ "https://evm-rpc-arctic-1.sei-apis.com" ] )
1440
+ . parse ( process . env . SEI_DEVNET_RPC_URLS ) ,
1441
1441
pricesFromTimestamp : Date . UTC ( 2024 , 0 , 1 , 0 , 0 , 0 ) ,
1442
1442
tokens : [
1443
1443
{
@@ -1485,9 +1485,9 @@ const CHAINS: Chain[] = [
1485
1485
{
1486
1486
id : 1329 ,
1487
1487
name : "sei-mainnet" ,
1488
- rpc : rpcUrl
1489
- . default ( "https://evm-rpc.sei-apis.com" )
1490
- . parse ( process . env . SEI_MAINNET_RPC_URL ) ,
1488
+ rpcs : rpcUrl
1489
+ . default ( [ "https://evm-rpc.sei-apis.com" ] )
1490
+ . parse ( process . env . SEI_MAINNET_RPC_URLS ) ,
1491
1491
pricesFromTimestamp : Date . UTC ( 2024 , 0 , 1 , 0 , 0 , 0 ) ,
1492
1492
maxGetLogsRange : 10000 ,
1493
1493
tokens : [
@@ -1536,9 +1536,9 @@ const CHAINS: Chain[] = [
1536
1536
{
1537
1537
id : 42 ,
1538
1538
name : "lukso-mainnet" ,
1539
- rpc : rpcUrl
1540
- . default ( "https://42.rpc.thirdweb.com" )
1541
- . parse ( process . env . LUKSO_MAINNET_RPC_URL ) ,
1539
+ rpcs : rpcUrl
1540
+ . default ( [ "https://42.rpc.thirdweb.com" ] )
1541
+ . parse ( process . env . LUKSO_MAINNET_RPC_URLS ) ,
1542
1542
pricesFromTimestamp : Date . UTC ( 2024 , 0 , 1 , 0 , 0 , 0 ) ,
1543
1543
tokens : [
1544
1544
{
@@ -1586,9 +1586,9 @@ const CHAINS: Chain[] = [
1586
1586
{
1587
1587
id : 4201 ,
1588
1588
name : "lukso-testnet" ,
1589
- rpc : rpcUrl
1590
- . default ( "https://4201.rpc.thirdweb.com" )
1591
- . parse ( process . env . LUKSO_TESTNET_RPC_URL ) ,
1589
+ rpcs : rpcUrl
1590
+ . default ( [ "https://4201.rpc.thirdweb.com" ] )
1591
+ . parse ( process . env . LUKSO_TESTNET_RPC_URLS ) ,
1592
1592
pricesFromTimestamp : Date . UTC ( 2024 , 0 , 1 , 0 , 0 , 0 ) ,
1593
1593
tokens : [
1594
1594
{
@@ -1627,9 +1627,9 @@ const CHAINS: Chain[] = [
1627
1627
{
1628
1628
id : 42220 ,
1629
1629
name : "celo-mainnet" ,
1630
- rpc : rpcUrl
1631
- . default ( "https://forno.celo.org" )
1632
- . parse ( process . env . CELO_MAINNET_RPC_URL ) ,
1630
+ rpcs : rpcUrl
1631
+ . default ( [ "https://forno.celo.org" ] )
1632
+ . parse ( process . env . CELO_MAINNET_RPC_URLS ) ,
1633
1633
pricesFromTimestamp : Date . UTC ( 2024 , 0 , 1 , 0 , 0 , 0 ) ,
1634
1634
tokens : [
1635
1635
{
@@ -1686,9 +1686,9 @@ const CHAINS: Chain[] = [
1686
1686
{
1687
1687
id : 44787 ,
1688
1688
name : "celo-testnet" ,
1689
- rpc : rpcUrl
1690
- . default ( "https://alfajores-forno.celo-testnet.org" )
1691
- . parse ( process . env . CELO_TESTNET_RPC_URL ) ,
1689
+ rpcs : rpcUrl
1690
+ . default ( [ "https://alfajores-forno.celo-testnet.org" ] )
1691
+ . parse ( process . env . CELO_TESTNET_RPC_URLS ) ,
1692
1692
pricesFromTimestamp : Date . UTC ( 2024 , 0 , 1 , 0 , 0 , 0 ) ,
1693
1693
tokens : [
1694
1694
{
@@ -1727,9 +1727,9 @@ const CHAINS: Chain[] = [
1727
1727
{
1728
1728
id : 1088 ,
1729
1729
name : "metisAndromeda" ,
1730
- rpc : rpcUrl
1731
- . default ( "https://andromeda.metis.io/?owner=1088" )
1732
- . parse ( process . env . METIS_ANDROMEDA_RPC_URL ) ,
1730
+ rpcs : rpcUrl
1731
+ . default ( [ "https://andromeda.metis.io/?owner=1088" ] )
1732
+ . parse ( process . env . METIS_ANDROMEDA_RPC_URLS ) ,
1733
1733
pricesFromTimestamp : Date . UTC ( 2024 , 0 , 1 , 0 , 0 , 0 ) ,
1734
1734
tokens : [
1735
1735
{
0 commit comments