@@ -38,7 +38,7 @@ export type Subscription = {
38
38
} ;
39
39
40
40
export type Chain = {
41
- rpc : string ;
41
+ rpcs : string [ ] ;
42
42
name : string ;
43
43
id : ChainId ;
44
44
pricesFromTimestamp : number ;
@@ -47,15 +47,15 @@ export type Chain = {
47
47
maxGetLogsRange ?: number ;
48
48
} ;
49
49
50
- const rpcUrl = z . string ( ) . url ( ) ;
50
+ const rpcUrl = z . array ( z . string ( ) . url ( ) ) ;
51
51
52
52
const CHAINS : Chain [ ] = [
53
53
{
54
54
id : 1 ,
55
55
name : "mainnet" ,
56
- rpc : rpcUrl
57
- . default ( "https://mainnet.infura.io/v3/" )
58
- . parse ( process . env . MAINNET_RPC_URL ) ,
56
+ rpcs : rpcUrl
57
+ . default ( [ "https://mainnet.infura.io/v3/" ] )
58
+ . parse ( process . env . MAINNET_RPC_URLS ) ,
59
59
pricesFromTimestamp : Date . UTC ( 2022 , 11 , 1 , 0 , 0 , 0 ) ,
60
60
tokens : [
61
61
{
@@ -150,9 +150,9 @@ const CHAINS: Chain[] = [
150
150
{
151
151
id : 10 ,
152
152
name : "optimism" ,
153
- rpc : rpcUrl
154
- . default ( "https://optimism-rpc.publicnode.com" )
155
- . parse ( process . env . OPTIMISM_RPC_URL ) ,
153
+ rpcs : rpcUrl
154
+ . default ( [ "https://optimism-rpc.publicnode.com" ] )
155
+ . parse ( process . env . OPTIMISM_RPC_URLS ) ,
156
156
pricesFromTimestamp : Date . UTC ( 2022 , 11 , 1 , 0 , 0 , 0 ) ,
157
157
tokens : [
158
158
{
@@ -266,9 +266,9 @@ const CHAINS: Chain[] = [
266
266
{
267
267
id : 11155111 ,
268
268
name : "sepolia" ,
269
- rpc : rpcUrl
270
- . default ( "https://ethereum-sepolia.publicnode.com" )
271
- . parse ( process . env . SEPOLIA_RPC_URL ) ,
269
+ rpcs : rpcUrl
270
+ . default ( [ "https://ethereum-sepolia.publicnode.com" ] )
271
+ . parse ( process . env . SEPOLIA_RPC_URLS ) ,
272
272
pricesFromTimestamp : Date . UTC ( 2023 , 11 , 1 , 0 , 0 , 0 ) ,
273
273
tokens : [
274
274
{
@@ -370,9 +370,9 @@ const CHAINS: Chain[] = [
370
370
{
371
371
id : 250 ,
372
372
name : "fantom" ,
373
- rpc : rpcUrl
374
- . default ( "https://rpcapi.fantom.network" )
375
- . parse ( process . env . FANTOM_RPC_URL ) ,
373
+ rpcs : rpcUrl
374
+ . default ( [ "https://rpcapi.fantom.network" ] )
375
+ . parse ( process . env . FANTOM_RPC_URLS ) ,
376
376
pricesFromTimestamp : Date . UTC ( 2022 , 11 , 1 , 0 , 0 , 0 ) ,
377
377
tokens : [
378
378
{
@@ -469,9 +469,9 @@ const CHAINS: Chain[] = [
469
469
{
470
470
id : 58008 ,
471
471
name : "pgn-testnet" ,
472
- rpc : rpcUrl
473
- . default ( "https://sepolia.publicgoods.network" )
474
- . parse ( process . env . PGN_TESTNET_RPC_URL ) ,
472
+ rpcs : rpcUrl
473
+ . default ( [ "https://sepolia.publicgoods.network" ] )
474
+ . parse ( process . env . PGN_TESTNET_RPC_URLS ) ,
475
475
pricesFromTimestamp : Date . UTC ( 2023 , 5 , 2 , 0 , 0 , 0 ) ,
476
476
tokens : [
477
477
{
@@ -522,9 +522,9 @@ const CHAINS: Chain[] = [
522
522
{
523
523
id : 424 ,
524
524
name : "pgn-mainnet" ,
525
- rpc : rpcUrl
526
- . default ( "https://rpc.publicgoods.network" )
527
- . parse ( process . env . PGN_RPC_URL ) ,
525
+ rpcs : rpcUrl
526
+ . default ( [ "https://rpc.publicgoods.network" ] )
527
+ . parse ( process . env . PGN_RPC_URLS ) ,
528
528
pricesFromTimestamp : Date . UTC ( 2023 , 5 , 2 , 0 , 0 , 0 ) ,
529
529
tokens : [
530
530
{
@@ -600,9 +600,9 @@ const CHAINS: Chain[] = [
600
600
{
601
601
id : 42161 ,
602
602
name : "arbitrum" ,
603
- rpc : rpcUrl
604
- . default ( "https://arb-mainnet.g.alchemy.com/v2/" )
605
- . parse ( process . env . ARBITRUM_RPC_URL ) ,
603
+ rpcs : rpcUrl
604
+ . default ( [ "https://arb-mainnet.g.alchemy.com/v2/" ] )
605
+ . parse ( process . env . ARBITRUM_RPC_URLS ) ,
606
606
pricesFromTimestamp : Date . UTC ( 2023 , 7 , 1 , 0 , 0 , 0 ) ,
607
607
tokens : [
608
608
{
@@ -713,9 +713,9 @@ const CHAINS: Chain[] = [
713
713
{
714
714
id : 80001 ,
715
715
name : "polygon-mumbai" ,
716
- rpc : rpcUrl
717
- . default ( "https://rpc-mumbai.maticvigil.com/" )
718
- . parse ( process . env . POLYGON_MUMBAI_RPC_URL ) ,
716
+ rpcs : rpcUrl
717
+ . default ( [ "https://rpc-mumbai.maticvigil.com/" ] )
718
+ . parse ( process . env . POLYGON_MUMBAI_RPC_URLS ) ,
719
719
pricesFromTimestamp : Date . UTC ( 2023 , 8 , 19 , 0 , 0 , 0 ) ,
720
720
tokens : [
721
721
{
@@ -793,9 +793,9 @@ const CHAINS: Chain[] = [
793
793
{
794
794
id : 137 ,
795
795
name : "polygon" ,
796
- rpc : rpcUrl
797
- . default ( "https://polygon-rpc.com" )
798
- . parse ( process . env . POLYGON_RPC_URL ) ,
796
+ rpcs : rpcUrl
797
+ . default ( [ "https://polygon-rpc.com" ] )
798
+ . parse ( process . env . POLYGON_RPC_URLS ) ,
799
799
pricesFromTimestamp : Date . UTC ( 2023 , 8 , 19 , 0 , 0 , 0 ) ,
800
800
tokens : [
801
801
{
@@ -891,9 +891,9 @@ const CHAINS: Chain[] = [
891
891
{
892
892
id : 8453 ,
893
893
name : "base" ,
894
- rpc : rpcUrl
895
- . default ( "https://mainnet.base.org/" )
896
- . parse ( process . env . BASE_RPC_URL ) ,
894
+ rpcs : rpcUrl
895
+ . default ( [ "https://mainnet.base.org/" ] )
896
+ . parse ( process . env . BASE_RPC_URLS ) ,
897
897
pricesFromTimestamp : Date . UTC ( 2023 , 12 , 1 , 0 , 0 , 0 ) ,
898
898
tokens : [
899
899
{
@@ -971,9 +971,9 @@ const CHAINS: Chain[] = [
971
971
{
972
972
id : 324 ,
973
973
name : "zksync-era-mainnet" ,
974
- rpc : rpcUrl
975
- . default ( "https://mainnet.era.zksync.io" )
976
- . parse ( process . env . ZKSYNC_RPC_URL ) ,
974
+ rpcs : rpcUrl
975
+ . default ( [ "https://mainnet.era.zksync.io" ] )
976
+ . parse ( process . env . ZKSYNC_RPC_URLS ) ,
977
977
pricesFromTimestamp : Date . UTC ( 2023 , 12 , 1 , 0 , 0 , 0 ) ,
978
978
tokens : [
979
979
{
@@ -1086,9 +1086,9 @@ const CHAINS: Chain[] = [
1086
1086
{
1087
1087
id : 300 ,
1088
1088
name : "zksync-era-testnet" ,
1089
- rpc : rpcUrl
1090
- . default ( "https://sepolia.era.zksync.dev" )
1091
- . parse ( process . env . ZKSYNC_TESTNET_RPC_URL ) ,
1089
+ rpcs : rpcUrl
1090
+ . default ( [ "https://sepolia.era.zksync.dev" ] )
1091
+ . parse ( process . env . ZKSYNC_TESTNET_RPC_URLS ) ,
1092
1092
pricesFromTimestamp : Date . UTC ( 2023 , 12 , 1 , 0 , 0 , 0 ) ,
1093
1093
tokens : [
1094
1094
{
@@ -1126,9 +1126,9 @@ const CHAINS: Chain[] = [
1126
1126
{
1127
1127
id : 43114 ,
1128
1128
name : "avalanche" ,
1129
- rpc : rpcUrl
1130
- . default ( "https://rpc.ankr.com/avalanche" )
1131
- . parse ( process . env . AVALANCHE_RPC_URL ) ,
1129
+ rpcs : rpcUrl
1130
+ . default ( [ "https://rpc.ankr.com/avalanche" ] )
1131
+ . parse ( process . env . AVALANCHE_RPC_URLS ) ,
1132
1132
pricesFromTimestamp : Date . UTC ( 2023 , 8 , 19 , 0 , 0 , 0 ) ,
1133
1133
tokens : [
1134
1134
{
@@ -1206,9 +1206,9 @@ const CHAINS: Chain[] = [
1206
1206
{
1207
1207
id : 43113 ,
1208
1208
name : "avalanche-fuji" ,
1209
- rpc : rpcUrl
1210
- . default ( "https://avalanche-fuji-c-chain.publicnode.com" )
1211
- . parse ( process . env . AVALANCHE_FUJI_RPC_URL ) ,
1209
+ rpcs : rpcUrl
1210
+ . default ( [ "https://avalanche-fuji-c-chain.publicnode.com" ] )
1211
+ . parse ( process . env . AVALANCHE_FUJI_RPC_URLS ) ,
1212
1212
pricesFromTimestamp : Date . UTC ( 2023 , 8 , 19 , 0 , 0 , 0 ) ,
1213
1213
tokens : [
1214
1214
{
@@ -1276,9 +1276,9 @@ const CHAINS: Chain[] = [
1276
1276
{
1277
1277
id : 534351 ,
1278
1278
name : "scroll-sepolia" ,
1279
- rpc : rpcUrl
1280
- . default ( "https://sepolia-rpc.scroll.io" )
1281
- . parse ( process . env . SCROLL_SEPOLIA_RPC_URL ) ,
1279
+ rpcs : rpcUrl
1280
+ . default ( [ "https://sepolia-rpc.scroll.io" ] )
1281
+ . parse ( process . env . SCROLL_SEPOLIA_RPC_URLS ) ,
1282
1282
pricesFromTimestamp : Date . UTC ( 2024 , 0 , 1 , 0 , 0 , 0 ) ,
1283
1283
maxGetLogsRange : 2000 ,
1284
1284
tokens : [
@@ -1347,9 +1347,9 @@ const CHAINS: Chain[] = [
1347
1347
{
1348
1348
id : 534352 ,
1349
1349
name : "scroll" ,
1350
- rpc : rpcUrl
1351
- . default ( "https://rpc.scroll.io" )
1352
- . parse ( process . env . SCROLL_RPC_URL ) ,
1350
+ rpcs : rpcUrl
1351
+ . default ( [ "https://rpc.scroll.io" ] )
1352
+ . parse ( process . env . SCROLL_RPC_URLS ) ,
1353
1353
pricesFromTimestamp : Date . UTC ( 2024 , 0 , 1 , 0 , 0 , 0 ) ,
1354
1354
maxGetLogsRange : 9000 ,
1355
1355
tokens : [
@@ -1433,9 +1433,9 @@ const CHAINS: Chain[] = [
1433
1433
{
1434
1434
id : 713715 ,
1435
1435
name : "sei-devnet" ,
1436
- rpc : rpcUrl
1437
- . default ( "https://evm-rpc-arctic-1.sei-apis.com" )
1438
- . parse ( process . env . SEI_DEVNET_RPC_URL ) ,
1436
+ rpcs : rpcUrl
1437
+ . default ( [ "https://evm-rpc-arctic-1.sei-apis.com" ] )
1438
+ . parse ( process . env . SEI_DEVNET_RPC_URLS ) ,
1439
1439
pricesFromTimestamp : Date . UTC ( 2024 , 0 , 1 , 0 , 0 , 0 ) ,
1440
1440
tokens : [
1441
1441
{
@@ -1483,9 +1483,9 @@ const CHAINS: Chain[] = [
1483
1483
{
1484
1484
id : 1329 ,
1485
1485
name : "sei-mainnet" ,
1486
- rpc : rpcUrl
1487
- . default ( "https://evm-rpc.sei-apis.com" )
1488
- . parse ( process . env . SEI_MAINNET_RPC_URL ) ,
1486
+ rpcs : rpcUrl
1487
+ . default ( [ "https://evm-rpc.sei-apis.com" ] )
1488
+ . parse ( process . env . SEI_MAINNET_RPC_URLS ) ,
1489
1489
pricesFromTimestamp : Date . UTC ( 2024 , 0 , 1 , 0 , 0 , 0 ) ,
1490
1490
maxGetLogsRange : 10000 ,
1491
1491
tokens : [
@@ -1534,9 +1534,9 @@ const CHAINS: Chain[] = [
1534
1534
{
1535
1535
id : 42 ,
1536
1536
name : "lukso-mainnet" ,
1537
- rpc : rpcUrl
1538
- . default ( "https://42.rpc.thirdweb.com" )
1539
- . parse ( process . env . LUKSO_MAINNET_RPC_URL ) ,
1537
+ rpcs : rpcUrl
1538
+ . default ( [ "https://42.rpc.thirdweb.com" ] )
1539
+ . parse ( process . env . LUKSO_MAINNET_RPC_URLS ) ,
1540
1540
pricesFromTimestamp : Date . UTC ( 2024 , 0 , 1 , 0 , 0 , 0 ) ,
1541
1541
tokens : [
1542
1542
{
@@ -1584,9 +1584,9 @@ const CHAINS: Chain[] = [
1584
1584
{
1585
1585
id : 4201 ,
1586
1586
name : "lukso-testnet" ,
1587
- rpc : rpcUrl
1588
- . default ( "https://4201.rpc.thirdweb.com" )
1589
- . parse ( process . env . LUKSO_TESTNET_RPC_URL ) ,
1587
+ rpcs : rpcUrl
1588
+ . default ( [ "https://4201.rpc.thirdweb.com" ] )
1589
+ . parse ( process . env . LUKSO_TESTNET_RPC_URLS ) ,
1590
1590
pricesFromTimestamp : Date . UTC ( 2024 , 0 , 1 , 0 , 0 , 0 ) ,
1591
1591
tokens : [
1592
1592
{
@@ -1625,9 +1625,9 @@ const CHAINS: Chain[] = [
1625
1625
{
1626
1626
id : 42220 ,
1627
1627
name : "celo-mainnet" ,
1628
- rpc : rpcUrl
1629
- . default ( "https://forno.celo.org" )
1630
- . parse ( process . env . CELO_MAINNET_RPC_URL ) ,
1628
+ rpcs : rpcUrl
1629
+ . default ( [ "https://forno.celo.org" ] )
1630
+ . parse ( process . env . CELO_MAINNET_RPC_URLS ) ,
1631
1631
pricesFromTimestamp : Date . UTC ( 2024 , 0 , 1 , 0 , 0 , 0 ) ,
1632
1632
tokens : [
1633
1633
{
@@ -1684,9 +1684,9 @@ const CHAINS: Chain[] = [
1684
1684
{
1685
1685
id : 44787 ,
1686
1686
name : "celo-testnet" ,
1687
- rpc : rpcUrl
1688
- . default ( "https://alfajores-forno.celo-testnet.org" )
1689
- . parse ( process . env . CELO_TESTNET_RPC_URL ) ,
1687
+ rpcs : rpcUrl
1688
+ . default ( [ "https://alfajores-forno.celo-testnet.org" ] )
1689
+ . parse ( process . env . CELO_TESTNET_RPC_URLS ) ,
1690
1690
pricesFromTimestamp : Date . UTC ( 2024 , 0 , 1 , 0 , 0 , 0 ) ,
1691
1691
tokens : [
1692
1692
{
@@ -1725,9 +1725,9 @@ const CHAINS: Chain[] = [
1725
1725
{
1726
1726
id : 1088 ,
1727
1727
name : "metisAndromeda" ,
1728
- rpc : rpcUrl
1729
- . default ( "https://andromeda.metis.io/?owner=1088" )
1730
- . parse ( process . env . METIS_ANDROMEDA_RPC_URL ) ,
1728
+ rpcs : rpcUrl
1729
+ . default ( [ "https://andromeda.metis.io/?owner=1088" ] )
1730
+ . parse ( process . env . METIS_ANDROMEDA_RPC_URLS ) ,
1731
1731
pricesFromTimestamp : Date . UTC ( 2024 , 0 , 1 , 0 , 0 , 0 ) ,
1732
1732
tokens : [
1733
1733
{
0 commit comments