@instadapp/avocado-base 0.0.0-dev.24c65ca → 0.0.0-dev.2588b9b
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/package.json +1 -1
- package/utils/formatter.ts +40 -6
- package/utils/network.ts +37 -25
- package/utils/utils.d.ts +1 -0
package/package.json
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,6 +7,7 @@ export const networks: Network[] = [
|
|
|
7
7
|
name: "Mainnet",
|
|
8
8
|
debankName: "eth",
|
|
9
9
|
ankrName: "eth",
|
|
10
|
+
zerionName: "ethereum",
|
|
10
11
|
chainId: 1,
|
|
11
12
|
explorerUrl: "https://etherscan.io",
|
|
12
13
|
get serverRpcUrl() {
|
|
@@ -27,6 +28,7 @@ export const networks: Network[] = [
|
|
|
27
28
|
name: "Polygon",
|
|
28
29
|
debankName: "matic",
|
|
29
30
|
ankrName: "polygon",
|
|
31
|
+
zerionName: "polygon",
|
|
30
32
|
chainId: 137,
|
|
31
33
|
balanceResolverAddress: "0x58632D23120b20650262b8A629a14e4F4043E0D9",
|
|
32
34
|
usdcAddress: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
|
|
@@ -48,6 +50,7 @@ export const networks: Network[] = [
|
|
|
48
50
|
name: "Arbitrum",
|
|
49
51
|
debankName: "arb",
|
|
50
52
|
ankrName: "arbitrum",
|
|
53
|
+
zerionName: "arbitrum",
|
|
51
54
|
chainId: 42161,
|
|
52
55
|
usdcAddress: "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8",
|
|
53
56
|
balanceResolverAddress: "0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2",
|
|
@@ -69,6 +72,7 @@ export const networks: Network[] = [
|
|
|
69
72
|
name: "Optimism",
|
|
70
73
|
debankName: "op",
|
|
71
74
|
ankrName: "optimism",
|
|
75
|
+
zerionName: "optimism",
|
|
72
76
|
chainId: 10,
|
|
73
77
|
usdcAddress: "0x7f5c764cbc14f9669b88837ca1490cca17c31607",
|
|
74
78
|
balanceResolverAddress: "0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2",
|
|
@@ -83,13 +87,14 @@ export const networks: Network[] = [
|
|
|
83
87
|
symbol: "ETH",
|
|
84
88
|
decimals: 18,
|
|
85
89
|
},
|
|
86
|
-
rpcUrls: ["https://
|
|
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,
|
|
94
99
|
usdcAddress: "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e",
|
|
95
100
|
balanceResolverAddress: "0x63009f31D054E0ac9F321Cf0D642375236A4Bf1E",
|
|
@@ -111,6 +116,7 @@ export const networks: Network[] = [
|
|
|
111
116
|
name: "BSC",
|
|
112
117
|
debankName: "bsc",
|
|
113
118
|
ankrName: "bsc",
|
|
119
|
+
zerionName: "binance-smart-chain",
|
|
114
120
|
chainId: 56,
|
|
115
121
|
explorerUrl: "https://bscscan.com",
|
|
116
122
|
usdcAddress: "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d",
|
|
@@ -131,7 +137,7 @@ export const networks: Network[] = [
|
|
|
131
137
|
{
|
|
132
138
|
name: "Gnosis",
|
|
133
139
|
debankName: "xdai",
|
|
134
|
-
|
|
140
|
+
zerionName: "xdai",
|
|
135
141
|
chainId: 100,
|
|
136
142
|
balanceResolverAddress: "0xfaa244e276b1597f663975ed007ee4ff70d27849",
|
|
137
143
|
explorerUrl: "https://gnosisscan.io",
|
|
@@ -169,29 +175,32 @@ export const networks: Network[] = [
|
|
|
169
175
|
},
|
|
170
176
|
},
|
|
171
177
|
},
|
|
172
|
-
{
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
},
|
|
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
|
+
// },
|
|
191
198
|
{
|
|
192
199
|
name: "Fantom",
|
|
193
200
|
chainId: 250,
|
|
201
|
+
zerionName: "fantom",
|
|
194
202
|
explorerUrl: "https://ftmscan.com",
|
|
203
|
+
ankrName: "fantom",
|
|
195
204
|
get serverRpcUrl() {
|
|
196
205
|
return process.env?.FANTOM_RPC_URL || this.params.rpcUrls[0];
|
|
197
206
|
},
|
|
@@ -274,13 +283,16 @@ export const RPCMap = networks.reduce((acc, network) => {
|
|
|
274
283
|
|
|
275
284
|
export const networkIds = networks.map((network) => network.chainId);
|
|
276
285
|
|
|
277
|
-
const rpcInstances: Record<string, ethers.providers.
|
|
278
|
-
const serverRpcInstances: Record<
|
|
286
|
+
const rpcInstances: Record<string, ethers.providers.StaticJsonRpcProvider> = {};
|
|
287
|
+
const serverRpcInstances: Record<
|
|
288
|
+
string,
|
|
289
|
+
ethers.providers.StaticJsonRpcProvider
|
|
290
|
+
> = {};
|
|
279
291
|
|
|
280
292
|
export const getServerRpcProvider = (chainId: number | string) => {
|
|
281
293
|
if (!rpcInstances[chainId]) {
|
|
282
294
|
const network = networks.find((n) => n.chainId == chainId);
|
|
283
|
-
serverRpcInstances[chainId] = new ethers.providers.
|
|
295
|
+
serverRpcInstances[chainId] = new ethers.providers.StaticJsonRpcProvider(
|
|
284
296
|
network?.serverRpcUrl
|
|
285
297
|
);
|
|
286
298
|
}
|
|
@@ -290,7 +302,7 @@ export const getServerRpcProvider = (chainId: number | string) => {
|
|
|
290
302
|
|
|
291
303
|
export const getRpcProvider = (chainId: number | string) => {
|
|
292
304
|
if (!rpcInstances[chainId]) {
|
|
293
|
-
rpcInstances[chainId] = new ethers.providers.
|
|
305
|
+
rpcInstances[chainId] = new ethers.providers.StaticJsonRpcProvider(
|
|
294
306
|
getRpcURLByChainId(Number(chainId))
|
|
295
307
|
);
|
|
296
308
|
}
|