@instadapp/avocado-base 0.0.0-dev.621c163 → 0.0.0-dev.637be1b
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/ChainLogo.vue +140 -0
- package/package.json +1 -1
- package/server/utils/index.ts +2 -0
- package/utils/formatter.ts +40 -6
- package/utils/network.ts +115 -64
- package/utils/utils.d.ts +19 -6
package/components/ChainLogo.vue
CHANGED
|
@@ -380,6 +380,146 @@
|
|
|
380
380
|
</defs>
|
|
381
381
|
</svg>
|
|
382
382
|
|
|
383
|
+
<svg
|
|
384
|
+
v-else-if="chain == 1313161554"
|
|
385
|
+
width="24"
|
|
386
|
+
height="24"
|
|
387
|
+
viewBox="0 0 24 24"
|
|
388
|
+
fill="none"
|
|
389
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
390
|
+
>
|
|
391
|
+
<rect
|
|
392
|
+
x="1"
|
|
393
|
+
y="1"
|
|
394
|
+
width="22"
|
|
395
|
+
height="22"
|
|
396
|
+
rx="11"
|
|
397
|
+
:fill="generateID('aurora', true)"
|
|
398
|
+
/>
|
|
399
|
+
<path
|
|
400
|
+
d="M11.9961 7.26624C12.4182 7.26624 12.8014 7.505 12.9902 7.88257L16.1114 14.1291C16.3835 14.6788 16.1614 15.3451 15.6116 15.6172C15.4561 15.6949 15.2894 15.7338 15.1173 15.7338H8.87486C8.26395 15.7338 7.76411 15.234 7.76411 14.6233C7.76411 14.4511 7.80299 14.279 7.88074 14.1291L11.0019 7.88257C11.1908 7.49944 11.574 7.26069 11.9961 7.26624ZM11.9961 6.5C11.2852 6.5 10.6354 6.89978 10.3188 7.53831L7.19763 13.7848C6.73667 14.7121 7.10877 15.8337 8.03624 16.3001C8.29727 16.4278 8.58607 16.5 8.87486 16.5H15.1228C16.1558 16.5 17 15.6616 17 14.6288C17 14.3401 16.9334 14.0514 16.8001 13.7904L13.6733 7.53831C13.3567 6.89978 12.707 6.5 11.9961 6.5Z"
|
|
401
|
+
fill="white"
|
|
402
|
+
/>
|
|
403
|
+
<rect
|
|
404
|
+
x="1"
|
|
405
|
+
y="1"
|
|
406
|
+
width="22"
|
|
407
|
+
height="22"
|
|
408
|
+
rx="11"
|
|
409
|
+
stroke="black"
|
|
410
|
+
stroke-width="2"
|
|
411
|
+
v-if="stroke"
|
|
412
|
+
:class="strokeClass"
|
|
413
|
+
/>
|
|
414
|
+
<defs>
|
|
415
|
+
<linearGradient
|
|
416
|
+
:id="generateID('aurora')"
|
|
417
|
+
x1="12"
|
|
418
|
+
y1="2"
|
|
419
|
+
x2="12"
|
|
420
|
+
y2="22"
|
|
421
|
+
gradientUnits="userSpaceOnUse"
|
|
422
|
+
>
|
|
423
|
+
<stop stop-color="#8EEF6B" />
|
|
424
|
+
<stop offset="1" stop-color="#70D44B" />
|
|
425
|
+
</linearGradient>
|
|
426
|
+
</defs>
|
|
427
|
+
</svg>
|
|
428
|
+
|
|
429
|
+
<svg
|
|
430
|
+
v-else-if="chain == 250"
|
|
431
|
+
width="24"
|
|
432
|
+
height="24"
|
|
433
|
+
viewBox="0 0 24 24"
|
|
434
|
+
fill="none"
|
|
435
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
436
|
+
>
|
|
437
|
+
<rect
|
|
438
|
+
x="1"
|
|
439
|
+
y="1"
|
|
440
|
+
width="22"
|
|
441
|
+
height="22"
|
|
442
|
+
rx="11"
|
|
443
|
+
:fill="generateID('fantom', true)"
|
|
444
|
+
/>
|
|
445
|
+
<path
|
|
446
|
+
fill-rule="evenodd"
|
|
447
|
+
clip-rule="evenodd"
|
|
448
|
+
d="M12.75 10.0625L15 8.75V11.375L12.75 10.0625ZM15 15.6875L12 17.4375L9 15.6875V12.625L12 14.375L15 12.625V15.6875ZM9 8.75L11.25 10.0625L9 11.375V8.75ZM12.375 10.6875L14.625 12L12.375 13.3125V10.6875ZM11.625 13.3125L9.375 12L11.625 10.6875V13.3125ZM14.625 8.125L12 9.625L9.375 8.125L12 6.5625L14.625 8.125ZM8.25 7.875V16.0625L12 18.1875L15.75 16.0625V7.875L12 5.75L8.25 7.875Z"
|
|
449
|
+
fill="white"
|
|
450
|
+
/>
|
|
451
|
+
<rect
|
|
452
|
+
x="1"
|
|
453
|
+
y="1"
|
|
454
|
+
width="22"
|
|
455
|
+
height="22"
|
|
456
|
+
rx="11"
|
|
457
|
+
stroke="black"
|
|
458
|
+
stroke-width="2"
|
|
459
|
+
v-if="stroke"
|
|
460
|
+
:class="strokeClass"
|
|
461
|
+
/>
|
|
462
|
+
<defs>
|
|
463
|
+
<linearGradient
|
|
464
|
+
:id="generateID('fantom')"
|
|
465
|
+
x1="12"
|
|
466
|
+
y1="2"
|
|
467
|
+
x2="12"
|
|
468
|
+
y2="22"
|
|
469
|
+
gradientUnits="userSpaceOnUse"
|
|
470
|
+
>
|
|
471
|
+
<stop stop-color="#51D3FF" />
|
|
472
|
+
<stop offset="1" stop-color="#13B5EC" />
|
|
473
|
+
</linearGradient>
|
|
474
|
+
</defs>
|
|
475
|
+
</svg>
|
|
476
|
+
|
|
477
|
+
<svg
|
|
478
|
+
v-else-if="chain == 634 || chain == 63400"
|
|
479
|
+
width="24"
|
|
480
|
+
height="24"
|
|
481
|
+
viewBox="0 0 24 24"
|
|
482
|
+
fill="none"
|
|
483
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
484
|
+
>
|
|
485
|
+
<rect
|
|
486
|
+
x="1"
|
|
487
|
+
y="1"
|
|
488
|
+
width="22"
|
|
489
|
+
height="22"
|
|
490
|
+
rx="11"
|
|
491
|
+
:fill="generateID('avo', true)"
|
|
492
|
+
/>
|
|
493
|
+
<path
|
|
494
|
+
d="M11.9999 17.4052C11.9999 17.7497 12.2787 18.0322 12.6197 17.997C15.6422 17.6854 18 15.1194 18 12C18 8.88061 15.6422 6.31462 12.6197 6.00299C12.2787 5.96765 11.9999 6.25038 11.9999 6.59486V8.25799C11.9999 8.60246 12.2806 8.87521 12.6167 8.94319C14.0353 9.2307 15.1035 10.4899 15.1035 12C15.1035 13.5101 14.0353 14.7693 12.6167 15.0569C12.2806 15.1248 11.9999 15.3978 11.9999 15.7421V17.4052ZM10.1378 7.12664C10.1378 6.70254 9.7247 6.4036 9.34642 6.59132C7.36369 7.57527 6 9.62756 6 12C6 14.3725 7.36369 16.4248 9.34642 17.4087C9.7247 17.5964 10.1378 17.2975 10.1378 16.8734V7.12685V7.12664Z"
|
|
495
|
+
fill="white"
|
|
496
|
+
/>
|
|
497
|
+
<rect
|
|
498
|
+
x="1"
|
|
499
|
+
y="1"
|
|
500
|
+
width="22"
|
|
501
|
+
height="22"
|
|
502
|
+
rx="11"
|
|
503
|
+
stroke="black"
|
|
504
|
+
stroke-width="2"
|
|
505
|
+
v-if="stroke"
|
|
506
|
+
:class="strokeClass"
|
|
507
|
+
/>
|
|
508
|
+
<defs>
|
|
509
|
+
<linearGradient
|
|
510
|
+
:id="generateID('avo')"
|
|
511
|
+
x1="12"
|
|
512
|
+
y1="2"
|
|
513
|
+
x2="12"
|
|
514
|
+
y2="22"
|
|
515
|
+
gradientUnits="userSpaceOnUse"
|
|
516
|
+
>
|
|
517
|
+
<stop stop-color="#6ED578" />
|
|
518
|
+
<stop offset="1" stop-color="#4CA054" />
|
|
519
|
+
</linearGradient>
|
|
520
|
+
</defs>
|
|
521
|
+
</svg>
|
|
522
|
+
|
|
383
523
|
<template v-else>
|
|
384
524
|
<svg
|
|
385
525
|
v-bind="$attrs"
|
package/package.json
CHANGED
package/server/utils/index.ts
CHANGED
package/utils/formatter.ts
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
export function formatPercent(
|
|
2
|
-
value
|
|
2
|
+
value?: number | string,
|
|
3
3
|
fractionDigits = 2,
|
|
4
4
|
maxValue = null
|
|
5
5
|
) {
|
|
6
|
-
if (isZero(value)) return "0.00%";
|
|
6
|
+
if (!value || isZero(value)) return "0.00%";
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
const valueAsNumber = toBN(value).toNumber();
|
|
9
|
+
|
|
10
|
+
if (maxValue && gt(times(valueAsNumber, "100"), maxValue))
|
|
11
|
+
return `>${maxValue}%`;
|
|
9
12
|
|
|
10
13
|
const formatter = new Intl.NumberFormat("en-US", {
|
|
11
14
|
style: "percent",
|
|
@@ -13,7 +16,7 @@ export function formatPercent(
|
|
|
13
16
|
maximumFractionDigits: fractionDigits,
|
|
14
17
|
});
|
|
15
18
|
|
|
16
|
-
return formatter.format(
|
|
19
|
+
return formatter.format(valueAsNumber);
|
|
17
20
|
}
|
|
18
21
|
|
|
19
22
|
export function shortenHash(hash: string, length: number = 4) {
|
|
@@ -42,10 +45,41 @@ export function signedNumber(numb: string | number) {
|
|
|
42
45
|
}).format(toBN(numb).toNumber());
|
|
43
46
|
}
|
|
44
47
|
|
|
45
|
-
|
|
48
|
+
function getFractionDigits(value: string | number) {
|
|
49
|
+
const absoluteValue = toBN(value).abs();
|
|
50
|
+
|
|
51
|
+
if (isZero(absoluteValue)) {
|
|
52
|
+
return 2;
|
|
53
|
+
} else if (lt(absoluteValue, 0.01)) {
|
|
54
|
+
return 6;
|
|
55
|
+
} else if (lt(absoluteValue, 1)) {
|
|
56
|
+
return 4;
|
|
57
|
+
} else if (lt(absoluteValue, 10000)) {
|
|
58
|
+
return 2;
|
|
59
|
+
} else {
|
|
60
|
+
return 0;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export function formatDecimal(
|
|
65
|
+
value: string | number,
|
|
66
|
+
fractionDigits = getFractionDigits(value)
|
|
67
|
+
) {
|
|
46
68
|
if (!value) {
|
|
47
69
|
value = "0";
|
|
48
70
|
}
|
|
71
|
+
let formatter;
|
|
72
|
+
if (lt(value, "0.0001") && gt(value, "0")) {
|
|
73
|
+
return "< 0.0001";
|
|
74
|
+
} else {
|
|
75
|
+
formatter = new Intl.NumberFormat("en-US", {
|
|
76
|
+
style: "decimal",
|
|
77
|
+
minimumFractionDigits: fractionDigits,
|
|
78
|
+
maximumFractionDigits: fractionDigits,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
const valueAsNumber = toBN(value).toNumber();
|
|
49
83
|
|
|
50
|
-
return
|
|
84
|
+
return formatter.format(valueAsNumber);
|
|
51
85
|
}
|
package/utils/network.ts
CHANGED
|
@@ -7,15 +7,16 @@ export const networks: Network[] = [
|
|
|
7
7
|
name: "Mainnet",
|
|
8
8
|
debankName: "eth",
|
|
9
9
|
ankrName: "eth",
|
|
10
|
+
zerionName: "ethereum",
|
|
10
11
|
chainId: 1,
|
|
12
|
+
explorerUrl: "https://etherscan.io",
|
|
13
|
+
get serverRpcUrl() {
|
|
14
|
+
return process.env?.MAINNET_RPC_URL || this.params.rpcUrls[0];
|
|
15
|
+
},
|
|
16
|
+
balanceResolverAddress: "0x5b7D61b389D12e1f5873d0cCEe7E675915AB5F43",
|
|
17
|
+
usdcAddress: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
|
|
11
18
|
params: {
|
|
12
19
|
rpcUrls: ["https://rpc.ankr.com/eth"],
|
|
13
|
-
explorerUrl: "https://etherscan.io",
|
|
14
|
-
get serverRpcUrl() {
|
|
15
|
-
return process.env?.MAINNET_RPC_URL || this.rpcUrls[0];
|
|
16
|
-
},
|
|
17
|
-
balanceResolverAddress: "0x5b7D61b389D12e1f5873d0cCEe7E675915AB5F43",
|
|
18
|
-
usdcAddress: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
|
|
19
20
|
nativeCurrency: {
|
|
20
21
|
name: "Ethereum",
|
|
21
22
|
symbol: "ETH",
|
|
@@ -27,7 +28,14 @@ export const networks: Network[] = [
|
|
|
27
28
|
name: "Polygon",
|
|
28
29
|
debankName: "matic",
|
|
29
30
|
ankrName: "polygon",
|
|
31
|
+
zerionName: "polygon",
|
|
30
32
|
chainId: 137,
|
|
33
|
+
balanceResolverAddress: "0x58632D23120b20650262b8A629a14e4F4043E0D9",
|
|
34
|
+
usdcAddress: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
|
|
35
|
+
explorerUrl: "https://polygonscan.com",
|
|
36
|
+
get serverRpcUrl() {
|
|
37
|
+
return process.env?.POLYGON_RPC_URL || this.params.rpcUrls[0];
|
|
38
|
+
},
|
|
31
39
|
params: {
|
|
32
40
|
chainName: "Matic(Polygon) Mainnet",
|
|
33
41
|
nativeCurrency: {
|
|
@@ -35,20 +43,21 @@ export const networks: Network[] = [
|
|
|
35
43
|
symbol: "MATIC",
|
|
36
44
|
decimals: 18,
|
|
37
45
|
},
|
|
38
|
-
balanceResolverAddress: "0x58632D23120b20650262b8A629a14e4F4043E0D9",
|
|
39
|
-
usdcAddress: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
|
|
40
46
|
rpcUrls: ["https://polygon-rpc.com"],
|
|
41
|
-
get serverRpcUrl() {
|
|
42
|
-
return process.env?.POLYGON_RPC_URL || this.rpcUrls[0];
|
|
43
|
-
},
|
|
44
|
-
explorerUrl: "https://polygonscan.com",
|
|
45
47
|
},
|
|
46
48
|
},
|
|
47
49
|
{
|
|
48
50
|
name: "Arbitrum",
|
|
49
51
|
debankName: "arb",
|
|
50
52
|
ankrName: "arbitrum",
|
|
53
|
+
zerionName: "arbitrum",
|
|
51
54
|
chainId: 42161,
|
|
55
|
+
usdcAddress: "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8",
|
|
56
|
+
balanceResolverAddress: "0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2",
|
|
57
|
+
explorerUrl: "https://arbiscan.io",
|
|
58
|
+
get serverRpcUrl() {
|
|
59
|
+
return process.env?.ARBITRUM_RPC_URL || this.params.rpcUrls[0];
|
|
60
|
+
},
|
|
52
61
|
params: {
|
|
53
62
|
chainName: "Arbitrum One",
|
|
54
63
|
nativeCurrency: {
|
|
@@ -56,20 +65,21 @@ export const networks: Network[] = [
|
|
|
56
65
|
symbol: "ETH",
|
|
57
66
|
decimals: 18,
|
|
58
67
|
},
|
|
59
|
-
usdcAddress: "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8",
|
|
60
|
-
balanceResolverAddress: "0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2",
|
|
61
|
-
get serverRpcUrl() {
|
|
62
|
-
return process.env?.ARBITRUM_RPC_URL || this.rpcUrls[0];
|
|
63
|
-
},
|
|
64
68
|
rpcUrls: ["https://arb1.arbitrum.io/rpc"],
|
|
65
|
-
explorerUrl: "https://arbiscan.io",
|
|
66
69
|
},
|
|
67
70
|
},
|
|
68
71
|
{
|
|
69
72
|
name: "Optimism",
|
|
70
73
|
debankName: "op",
|
|
71
74
|
ankrName: "optimism",
|
|
75
|
+
zerionName: "optimism",
|
|
72
76
|
chainId: 10,
|
|
77
|
+
usdcAddress: "0x7f5c764cbc14f9669b88837ca1490cca17c31607",
|
|
78
|
+
balanceResolverAddress: "0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2",
|
|
79
|
+
explorerUrl: "https://optimistic.etherscan.io",
|
|
80
|
+
get serverRpcUrl() {
|
|
81
|
+
return process.env?.OPTIMISM_RPC_URL || this.params.rpcUrls[0];
|
|
82
|
+
},
|
|
73
83
|
params: {
|
|
74
84
|
chainName: "Optimistic Ethereum",
|
|
75
85
|
nativeCurrency: {
|
|
@@ -77,50 +87,46 @@ export const networks: Network[] = [
|
|
|
77
87
|
symbol: "ETH",
|
|
78
88
|
decimals: 18,
|
|
79
89
|
},
|
|
80
|
-
|
|
81
|
-
balanceResolverAddress: "0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2",
|
|
82
|
-
get serverRpcUrl() {
|
|
83
|
-
return process.env?.OPTIMISM_RPC_URL || this.rpcUrls[0];
|
|
84
|
-
},
|
|
85
|
-
rpcUrls: ["https://mainnet.optimism.io"],
|
|
86
|
-
explorerUrl: "https://optimistic.etherscan.io",
|
|
90
|
+
rpcUrls: ["https://rpc.ankr.com/optimism"],
|
|
87
91
|
},
|
|
88
92
|
},
|
|
89
93
|
{
|
|
90
94
|
name: "Avalanche",
|
|
91
95
|
debankName: "avax",
|
|
92
96
|
ankrName: "avalanche",
|
|
97
|
+
zerionName: "avalanche",
|
|
93
98
|
chainId: 43114,
|
|
99
|
+
usdcAddress: "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e",
|
|
100
|
+
balanceResolverAddress: "0x63009f31D054E0ac9F321Cf0D642375236A4Bf1E",
|
|
101
|
+
explorerUrl: "https://snowtrace.io",
|
|
102
|
+
get serverRpcUrl() {
|
|
103
|
+
return process.env?.AVALANCHE_RPC_URL || this.params.rpcUrls[0];
|
|
104
|
+
},
|
|
94
105
|
params: {
|
|
95
106
|
chainName: "Avalanche Network",
|
|
96
|
-
get serverRpcUrl() {
|
|
97
|
-
return process.env?.AVALANCHE_RPC_URL || this.rpcUrls[0];
|
|
98
|
-
},
|
|
99
107
|
nativeCurrency: {
|
|
100
108
|
name: "Avalanche",
|
|
101
109
|
symbol: "AVAX",
|
|
102
110
|
decimals: 18,
|
|
103
111
|
},
|
|
104
|
-
usdcAddress: "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e",
|
|
105
|
-
balanceResolverAddress: "0x63009f31D054E0ac9F321Cf0D642375236A4Bf1E",
|
|
106
112
|
rpcUrls: ["https://api.avax.network/ext/bc/C/rpc"],
|
|
107
|
-
explorerUrl: "https://snowtrace.io",
|
|
108
113
|
},
|
|
109
114
|
},
|
|
110
115
|
{
|
|
111
116
|
name: "BSC",
|
|
112
117
|
debankName: "bsc",
|
|
113
118
|
ankrName: "bsc",
|
|
119
|
+
zerionName: "binance-smart-chain",
|
|
114
120
|
chainId: 56,
|
|
121
|
+
explorerUrl: "https://bscscan.com",
|
|
122
|
+
usdcAddress: "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d",
|
|
123
|
+
balanceResolverAddress: "0xb808cff38706e267067b0af427726aa099f69f89",
|
|
124
|
+
get serverRpcUrl() {
|
|
125
|
+
return process.env?.BSC_RPC_URL || this.params.rpcUrls[0];
|
|
126
|
+
},
|
|
115
127
|
params: {
|
|
116
128
|
chainName: "Binance Smart Chain",
|
|
117
|
-
explorerUrl: "https://bscscan.com",
|
|
118
129
|
rpcUrls: ["https://rpc.ankr.com/bsc"],
|
|
119
|
-
get serverRpcUrl() {
|
|
120
|
-
return process.env?.BSC_RPC_URL || this.rpcUrls[0];
|
|
121
|
-
},
|
|
122
|
-
usdcAddress: "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d",
|
|
123
|
-
balanceResolverAddress: "0xb808cff38706e267067b0af427726aa099f69f89",
|
|
124
130
|
nativeCurrency: {
|
|
125
131
|
name: "Binance Coin",
|
|
126
132
|
symbol: "BNB",
|
|
@@ -131,17 +137,17 @@ export const networks: Network[] = [
|
|
|
131
137
|
{
|
|
132
138
|
name: "Gnosis",
|
|
133
139
|
debankName: "xdai",
|
|
134
|
-
|
|
140
|
+
zerionName: "xdai",
|
|
135
141
|
chainId: 100,
|
|
142
|
+
balanceResolverAddress: "0xfaa244e276b1597f663975ed007ee4ff70d27849",
|
|
143
|
+
explorerUrl: "https://gnosisscan.io",
|
|
144
|
+
usdcAddress: "0xddafbb505ad214d7b80b1f830fccc89b60fb7a83",
|
|
145
|
+
get serverRpcUrl() {
|
|
146
|
+
return process.env?.GNOSIS_RPC_URL || this.params.rpcUrls[0];
|
|
147
|
+
},
|
|
136
148
|
params: {
|
|
137
149
|
chainName: "Gnosis Safe",
|
|
138
|
-
explorerUrl: "https://gnosisscan.io",
|
|
139
150
|
rpcUrls: ["https://rpc.ankr.com/gnosis"],
|
|
140
|
-
get serverRpcUrl() {
|
|
141
|
-
return process.env?.GNOSIS_RPC_URL || this.rpcUrls[0];
|
|
142
|
-
},
|
|
143
|
-
balanceResolverAddress: "0xfaa244e276b1597f663975ed007ee4ff70d27849",
|
|
144
|
-
usdcAddress: "0xddafbb505ad214d7b80b1f830fccc89b60fb7a83",
|
|
145
151
|
nativeCurrency: {
|
|
146
152
|
name: "xdaistable",
|
|
147
153
|
symbol: "xDAI",
|
|
@@ -152,15 +158,16 @@ export const networks: Network[] = [
|
|
|
152
158
|
{
|
|
153
159
|
name: "Polygon zkEVM",
|
|
154
160
|
chainId: 1101,
|
|
161
|
+
explorerUrl: "https://zkevm.polygonscan.com",
|
|
162
|
+
balanceResolverAddress: "0x48D1Fa5Ee6691a1E0B45d2B515650997BEA27a01",
|
|
163
|
+
usdcAddress: "0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035",
|
|
164
|
+
get serverRpcUrl() {
|
|
165
|
+
return process.env?.POLYGON_ZKEVM_RPC_URL || this.params.rpcUrls[0];
|
|
166
|
+
},
|
|
155
167
|
params: {
|
|
156
168
|
chainName: "polygon zkEVM",
|
|
157
|
-
explorerUrl: "https://zkevm.polygonscan.com",
|
|
158
169
|
rpcUrls: ["https://rpc.ankr.com/polygon_zkevm"],
|
|
159
|
-
|
|
160
|
-
return process.env?.POLYGON_ZKEVM_RPC_URL || this.rpcUrls[0];
|
|
161
|
-
},
|
|
162
|
-
balanceResolverAddress: "0x48D1Fa5Ee6691a1E0B45d2B515650997BEA27a01",
|
|
163
|
-
usdcAddress: "0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035",
|
|
170
|
+
|
|
164
171
|
nativeCurrency: {
|
|
165
172
|
name: "Ethereum",
|
|
166
173
|
symbol: "ETH",
|
|
@@ -168,10 +175,55 @@ export const networks: Network[] = [
|
|
|
168
175
|
},
|
|
169
176
|
},
|
|
170
177
|
},
|
|
178
|
+
// {
|
|
179
|
+
// name: "Aurora",
|
|
180
|
+
// chainId: 1313161554,
|
|
181
|
+
// zerionName: "aurora",
|
|
182
|
+
// explorerUrl: "https://explorer.mainnet.aurora.dev",
|
|
183
|
+
// get serverRpcUrl() {
|
|
184
|
+
// return process.env?.AURORA_RPC_URL || this.params.rpcUrls[0];
|
|
185
|
+
// },
|
|
186
|
+
// usdcAddress: "0xB12BFcA5A55806AaF64E99521918A4bf0fC40802",
|
|
187
|
+
// balanceResolverAddress: "0xdF19Da523DA64bBE82eE0E4DFf00d676A8386474",
|
|
188
|
+
// params: {
|
|
189
|
+
// rpcUrls: ["https://mainnet.aurora.dev"],
|
|
190
|
+
// chainName: "Aurora",
|
|
191
|
+
// nativeCurrency: {
|
|
192
|
+
// decimals: 18,
|
|
193
|
+
// name: "Aurora ETH",
|
|
194
|
+
// symbol: "AETH",
|
|
195
|
+
// },
|
|
196
|
+
// },
|
|
197
|
+
// },
|
|
198
|
+
{
|
|
199
|
+
name: "Fantom",
|
|
200
|
+
chainId: 250,
|
|
201
|
+
zerionName: "fantom",
|
|
202
|
+
explorerUrl: "https://ftmscan.com",
|
|
203
|
+
ankrName: "fantom",
|
|
204
|
+
get serverRpcUrl() {
|
|
205
|
+
return process.env?.FANTOM_RPC_URL || this.params.rpcUrls[0];
|
|
206
|
+
},
|
|
207
|
+
usdcAddress: "0x04068da6c83afcfa0e13ba15a6696662335d5b75",
|
|
208
|
+
balanceResolverAddress: "0x929376c77a2fb8152375a089a4fccf84ff481479",
|
|
209
|
+
params: {
|
|
210
|
+
rpcUrls: ["https://rpc.ankr.com/fantom"],
|
|
211
|
+
chainName: "Fantom",
|
|
212
|
+
nativeCurrency: {
|
|
213
|
+
name: "Fantom",
|
|
214
|
+
symbol: "FTM",
|
|
215
|
+
decimals: 18,
|
|
216
|
+
},
|
|
217
|
+
},
|
|
218
|
+
},
|
|
171
219
|
{
|
|
172
220
|
name: AVO_PROD_CHAIN_NAME,
|
|
173
221
|
chainId: AVO_PROD_CHAIN_ID,
|
|
174
222
|
isAvocado: true,
|
|
223
|
+
balanceResolverAddress: "",
|
|
224
|
+
usdcAddress: "",
|
|
225
|
+
serverRpcUrl: AVO_PROD_RPC_URL,
|
|
226
|
+
explorerUrl: AVO_PROD_EXPLORER_URL,
|
|
175
227
|
params: {
|
|
176
228
|
chainName: AVO_PROD_CHAIN_NAME,
|
|
177
229
|
nativeCurrency: {
|
|
@@ -180,17 +232,17 @@ export const networks: Network[] = [
|
|
|
180
232
|
decimals: 18,
|
|
181
233
|
},
|
|
182
234
|
iconUrls: ["https://avocado.instadapp.io/logo.svg"],
|
|
183
|
-
balanceResolverAddress: "",
|
|
184
|
-
usdcAddress: "",
|
|
185
|
-
serverRpcUrl: AVO_PROD_RPC_URL,
|
|
186
235
|
rpcUrls: [AVO_PROD_RPC_URL],
|
|
187
|
-
explorerUrl: AVO_PROD_EXPLORER_URL,
|
|
188
236
|
},
|
|
189
237
|
},
|
|
190
238
|
{
|
|
191
239
|
name: AVO_STAGING_CHAIN_NAME,
|
|
192
240
|
chainId: AVO_STAGING_CHAIN_ID,
|
|
241
|
+
serverRpcUrl: AVO_STAGING_RPC_URL,
|
|
242
|
+
explorerUrl: AVO_STAGING_EXPLORER_URL,
|
|
193
243
|
isAvocado: true,
|
|
244
|
+
balanceResolverAddress: "",
|
|
245
|
+
usdcAddress: "",
|
|
194
246
|
params: {
|
|
195
247
|
chainName: AVO_STAGING_CHAIN_NAME,
|
|
196
248
|
nativeCurrency: {
|
|
@@ -198,12 +250,8 @@ export const networks: Network[] = [
|
|
|
198
250
|
symbol: "USDC",
|
|
199
251
|
decimals: 18,
|
|
200
252
|
},
|
|
201
|
-
serverRpcUrl: AVO_STAGING_RPC_URL,
|
|
202
|
-
balanceResolverAddress: "",
|
|
203
|
-
usdcAddress: "",
|
|
204
253
|
iconUrls: ["https://avocado.instadapp.io/logo.svg"],
|
|
205
254
|
rpcUrls: [AVO_STAGING_RPC_URL],
|
|
206
|
-
explorerUrl: AVO_STAGING_EXPLORER_URL,
|
|
207
255
|
},
|
|
208
256
|
},
|
|
209
257
|
];
|
|
@@ -235,14 +283,17 @@ export const RPCMap = networks.reduce((acc, network) => {
|
|
|
235
283
|
|
|
236
284
|
export const networkIds = networks.map((network) => network.chainId);
|
|
237
285
|
|
|
238
|
-
const rpcInstances: Record<string, ethers.providers.
|
|
239
|
-
const serverRpcInstances: Record<
|
|
286
|
+
const rpcInstances: Record<string, ethers.providers.StaticJsonRpcProvider> = {};
|
|
287
|
+
const serverRpcInstances: Record<
|
|
288
|
+
string,
|
|
289
|
+
ethers.providers.StaticJsonRpcProvider
|
|
290
|
+
> = {};
|
|
240
291
|
|
|
241
292
|
export const getServerRpcProvider = (chainId: number | string) => {
|
|
242
293
|
if (!rpcInstances[chainId]) {
|
|
243
294
|
const network = networks.find((n) => n.chainId == chainId);
|
|
244
|
-
serverRpcInstances[chainId] = new ethers.providers.
|
|
245
|
-
network?.
|
|
295
|
+
serverRpcInstances[chainId] = new ethers.providers.StaticJsonRpcProvider(
|
|
296
|
+
network?.serverRpcUrl
|
|
246
297
|
);
|
|
247
298
|
}
|
|
248
299
|
|
|
@@ -251,7 +302,7 @@ export const getServerRpcProvider = (chainId: number | string) => {
|
|
|
251
302
|
|
|
252
303
|
export const getRpcProvider = (chainId: number | string) => {
|
|
253
304
|
if (!rpcInstances[chainId]) {
|
|
254
|
-
rpcInstances[chainId] = new ethers.providers.
|
|
305
|
+
rpcInstances[chainId] = new ethers.providers.StaticJsonRpcProvider(
|
|
255
306
|
getRpcURLByChainId(Number(chainId))
|
|
256
307
|
);
|
|
257
308
|
}
|
|
@@ -264,5 +315,5 @@ export const getExplorerUrl = (
|
|
|
264
315
|
suffix: `/${string}` = "/"
|
|
265
316
|
) => {
|
|
266
317
|
const network = getNetworkByChainId(chainId);
|
|
267
|
-
return `${network.
|
|
318
|
+
return `${network.explorerUrl}${suffix}`;
|
|
268
319
|
};
|
package/utils/utils.d.ts
CHANGED
|
@@ -1,4 +1,16 @@
|
|
|
1
|
-
type ChainId =
|
|
1
|
+
type ChainId =
|
|
2
|
+
| 1
|
|
3
|
+
| 137
|
|
4
|
+
| 42161
|
|
5
|
+
| 10
|
|
6
|
+
| 56
|
|
7
|
+
| 43114
|
|
8
|
+
| 100
|
|
9
|
+
| 1101
|
|
10
|
+
| 250
|
|
11
|
+
| 634
|
|
12
|
+
| 1313161554
|
|
13
|
+
| 63400;
|
|
2
14
|
|
|
3
15
|
type ISlackMessageType = "danger" | "error" | "success" | "banner";
|
|
4
16
|
|
|
@@ -6,16 +18,17 @@ interface Network {
|
|
|
6
18
|
name: string;
|
|
7
19
|
debankName?: string;
|
|
8
20
|
ankrName?: string;
|
|
21
|
+
zerionName?: string;
|
|
9
22
|
chainId: ChainId;
|
|
10
23
|
isAvocado?: boolean;
|
|
24
|
+
serverRpcUrl: string | undefined;
|
|
25
|
+
balanceResolverAddress?: string;
|
|
26
|
+
usdcAddress: string;
|
|
27
|
+
explorerUrl: string;
|
|
11
28
|
params: {
|
|
12
29
|
chainName?: string;
|
|
13
|
-
rpcUrls: string[];
|
|
14
|
-
serverRpcUrl: string | undefined;
|
|
15
|
-
balanceResolverAddress?: string;
|
|
16
|
-
usdcAddress: string;
|
|
17
|
-
explorerUrl: string;
|
|
18
30
|
iconUrls?: string[];
|
|
31
|
+
rpcUrls: string[];
|
|
19
32
|
nativeCurrency?: {
|
|
20
33
|
name: string;
|
|
21
34
|
symbol: string;
|