@instadapp/avocado-base 0.0.0-dev.e2f5814 → 0.0.0-dev.e698742
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/abi/multisigForwarder.json +697 -0
- package/assets/images/icons/info-2.svg +12 -0
- package/components/ActionMetadata.vue +4 -5
- package/components/AuthorityAvatar.vue +38 -0
- package/components/ChainLogo.vue +14 -556
- package/components/CopyClipboard.vue +64 -0
- package/components/metadata/Bridge.vue +26 -6
- package/components/metadata/CrossTransfer.vue +5 -1
- package/components/metadata/GasTopup.vue +7 -1
- package/components/metadata/Permit2.vue +6 -1
- package/components/metadata/Signers.vue +62 -0
- package/components/metadata/Swap.vue +9 -2
- package/components/metadata/Transfer.vue +5 -1
- package/contracts/MultisigForwarder.ts +859 -0
- package/contracts/factories/MultisigForwarder__factory.ts +721 -0
- package/contracts/factories/index.ts +1 -0
- package/contracts/index.ts +2 -0
- package/package.json +5 -3
- package/utils/formatter.ts +1 -4
- package/utils/helper.ts +2 -1
- package/utils/metadata.ts +10 -17
- package/utils/network.ts +121 -80
- package/utils/services.ts +8 -1
- package/utils/utils.d.ts +2 -0
package/contracts/index.ts
CHANGED
|
@@ -6,9 +6,11 @@ export type { BalanceResolver } from "./BalanceResolver";
|
|
|
6
6
|
export type { Erc20 } from "./Erc20";
|
|
7
7
|
export type { Forwarder } from "./Forwarder";
|
|
8
8
|
export type { GaslessWallet } from "./GaslessWallet";
|
|
9
|
+
export type { MultisigForwarder } from "./MultisigForwarder";
|
|
9
10
|
export * as factories from "./factories";
|
|
10
11
|
export { AvoFactoryProxy__factory } from "./factories/AvoFactoryProxy__factory";
|
|
11
12
|
export { BalanceResolver__factory } from "./factories/BalanceResolver__factory";
|
|
12
13
|
export { Erc20__factory } from "./factories/Erc20__factory";
|
|
13
14
|
export { Forwarder__factory } from "./factories/Forwarder__factory";
|
|
14
15
|
export { GaslessWallet__factory } from "./factories/GaslessWallet__factory";
|
|
16
|
+
export { MultisigForwarder__factory } from "./factories/MultisigForwarder__factory";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@instadapp/avocado-base",
|
|
3
|
-
"version": "0.0.0-dev.
|
|
3
|
+
"version": "0.0.0-dev.e698742",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./nuxt.config.ts",
|
|
6
6
|
"types": "global.d.ts",
|
|
@@ -20,11 +20,13 @@
|
|
|
20
20
|
"nuxt-svgo": "^3.1.0",
|
|
21
21
|
"rimraf": "^3.0.2",
|
|
22
22
|
"typechain": "^8.1.1",
|
|
23
|
-
"unplugin-vue-components": "^0.25.1"
|
|
23
|
+
"unplugin-vue-components": "^0.25.1",
|
|
24
|
+
"vue-tippy": "^6.0.0"
|
|
24
25
|
},
|
|
25
26
|
"dependencies": {
|
|
26
27
|
"@vueuse/nuxt": "^10.2.0",
|
|
27
28
|
"bignumber.js": "^9.1.1",
|
|
28
|
-
"ethers": "^5.7.2"
|
|
29
|
+
"ethers": "^5.7.2",
|
|
30
|
+
"xxhashjs": "^0.2.2"
|
|
29
31
|
}
|
|
30
32
|
}
|
package/utils/formatter.ts
CHANGED
|
@@ -71,11 +71,8 @@ export function formatDecimal(value: string | number, fractionDigits?: number) {
|
|
|
71
71
|
const num = toBN(value);
|
|
72
72
|
let decimals;
|
|
73
73
|
|
|
74
|
-
if (num.lt(
|
|
74
|
+
if (num.lt(1)) {
|
|
75
75
|
decimals = 4;
|
|
76
|
-
}
|
|
77
|
-
else if (num.lt(1)) {
|
|
78
|
-
decimals = 8;
|
|
79
76
|
} else if (num.lt(10)) {
|
|
80
77
|
decimals = 6;
|
|
81
78
|
} else if (num.lt(100)) {
|
package/utils/helper.ts
CHANGED
package/utils/metadata.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ethers, utils } from "ethers";
|
|
2
|
-
import { Forwarder__factory } from "../contracts";
|
|
2
|
+
import { Forwarder__factory, MultisigForwarder__factory } from "../contracts";
|
|
3
|
+
import { toBN } from "./bignumber";
|
|
3
4
|
|
|
4
5
|
export const MetadataEnums = {
|
|
5
6
|
"transfer": "transfer",
|
|
@@ -346,8 +347,10 @@ export const decodeMetadata = (metadata: string) => {
|
|
|
346
347
|
}
|
|
347
348
|
};
|
|
348
349
|
|
|
350
|
+
const iface = Forwarder__factory.createInterface();
|
|
351
|
+
const ifaceMultisig = MultisigForwarder__factory.createInterface();
|
|
352
|
+
|
|
349
353
|
const getMetadataFromData = (data: string) => {
|
|
350
|
-
const iface = Forwarder__factory.createInterface();
|
|
351
354
|
let metadata = "0x";
|
|
352
355
|
|
|
353
356
|
if (data.startsWith("0x18e7f485")) {
|
|
@@ -367,28 +370,18 @@ const getMetadataFromData = (data: string) => {
|
|
|
367
370
|
} else {
|
|
368
371
|
metadata = executeDataV2.params_.metadata;
|
|
369
372
|
}
|
|
370
|
-
} else if (data.startsWith("0x85114d53")) {
|
|
371
|
-
const executeDataV3 = iface.decodeFunctionData("executeV3", data);
|
|
372
|
-
if (
|
|
373
|
-
executeDataV3.params_.metadata === "0x" ||
|
|
374
|
-
!executeDataV3.params_.metadata
|
|
375
|
-
) {
|
|
376
|
-
return null;
|
|
377
|
-
} else {
|
|
378
|
-
metadata = executeDataV3.params_.metadata;
|
|
379
|
-
}
|
|
380
373
|
} else {
|
|
381
|
-
const
|
|
382
|
-
"
|
|
374
|
+
const executeDataMultisig = ifaceMultisig.decodeFunctionData(
|
|
375
|
+
"executeV1",
|
|
383
376
|
data
|
|
384
377
|
);
|
|
385
378
|
if (
|
|
386
|
-
|
|
387
|
-
!
|
|
379
|
+
executeDataMultisig.params_.metadata === "0x" ||
|
|
380
|
+
!executeDataMultisig.params_.metadata
|
|
388
381
|
) {
|
|
389
382
|
return null;
|
|
390
383
|
} else {
|
|
391
|
-
metadata =
|
|
384
|
+
metadata = executeDataMultisig.params_.metadata;
|
|
392
385
|
}
|
|
393
386
|
}
|
|
394
387
|
|
package/utils/network.ts
CHANGED
|
@@ -1,30 +1,20 @@
|
|
|
1
1
|
import { ethers } from "ethers";
|
|
2
|
+
import {
|
|
3
|
+
AVO_PROD_CHAIN_NAME,
|
|
4
|
+
AVO_PROD_CHAIN_ID,
|
|
5
|
+
AVO_PROD_RPC_URL,
|
|
6
|
+
AVO_PROD_EXPLORER_URL,
|
|
7
|
+
AVO_STAGING_CHAIN_NAME,
|
|
8
|
+
AVO_STAGING_CHAIN_ID,
|
|
9
|
+
AVO_STAGING_RPC_URL,
|
|
10
|
+
AVO_STAGING_EXPLORER_URL,
|
|
11
|
+
} from './avocado'
|
|
2
12
|
|
|
3
|
-
export const bridgeDisabledNetworks = [
|
|
13
|
+
export const bridgeDisabledNetworks = [];
|
|
14
|
+
|
|
15
|
+
export const networksSimulationNotSupported = [1313161554, 1101]
|
|
4
16
|
|
|
5
17
|
export const networks: Network[] = [
|
|
6
|
-
{
|
|
7
|
-
name: "Ethereum",
|
|
8
|
-
debankName: "eth",
|
|
9
|
-
ankrName: "eth",
|
|
10
|
-
zerionName: "ethereum",
|
|
11
|
-
chainId: 1,
|
|
12
|
-
explorerUrl: "https://etherscan.io",
|
|
13
|
-
color: "#5D5FEF",
|
|
14
|
-
get serverRpcUrl() {
|
|
15
|
-
return process.env?.MAINNET_RPC_URL || this.params.rpcUrls[0];
|
|
16
|
-
},
|
|
17
|
-
balanceResolverAddress: "0x5b7D61b389D12e1f5873d0cCEe7E675915AB5F43",
|
|
18
|
-
usdcAddress: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
|
|
19
|
-
params: {
|
|
20
|
-
rpcUrls: ["https://rpc.ankr.com/eth"],
|
|
21
|
-
nativeCurrency: {
|
|
22
|
-
name: "Ethereum",
|
|
23
|
-
symbol: "ETH",
|
|
24
|
-
decimals: 18,
|
|
25
|
-
},
|
|
26
|
-
},
|
|
27
|
-
},
|
|
28
18
|
{
|
|
29
19
|
name: "Polygon",
|
|
30
20
|
debankName: "matic",
|
|
@@ -35,6 +25,7 @@ export const networks: Network[] = [
|
|
|
35
25
|
balanceResolverAddress: "0x58632D23120b20650262b8A629a14e4F4043E0D9",
|
|
36
26
|
usdcAddress: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
|
|
37
27
|
explorerUrl: "https://polygonscan.com",
|
|
28
|
+
apiURL: 'https://api.polygonscan.com',
|
|
38
29
|
get serverRpcUrl() {
|
|
39
30
|
return process.env?.POLYGON_RPC_URL || this.params.rpcUrls[0];
|
|
40
31
|
},
|
|
@@ -58,6 +49,7 @@ export const networks: Network[] = [
|
|
|
58
49
|
usdcAddress: "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8",
|
|
59
50
|
balanceResolverAddress: "0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2",
|
|
60
51
|
explorerUrl: "https://arbiscan.io",
|
|
52
|
+
apiURL: 'https://api.arbiscan.io',
|
|
61
53
|
get serverRpcUrl() {
|
|
62
54
|
return process.env?.ARBITRUM_RPC_URL || this.params.rpcUrls[0];
|
|
63
55
|
},
|
|
@@ -71,6 +63,50 @@ export const networks: Network[] = [
|
|
|
71
63
|
rpcUrls: ["https://arb1.arbitrum.io/rpc"],
|
|
72
64
|
},
|
|
73
65
|
},
|
|
66
|
+
{
|
|
67
|
+
name: "Ethereum",
|
|
68
|
+
debankName: "eth",
|
|
69
|
+
ankrName: "eth",
|
|
70
|
+
zerionName: "ethereum",
|
|
71
|
+
chainId: 1,
|
|
72
|
+
explorerUrl: "https://etherscan.io",
|
|
73
|
+
apiURL: 'https://api.etherscan.io',
|
|
74
|
+
color: "#5D5FEF",
|
|
75
|
+
get serverRpcUrl() {
|
|
76
|
+
return process.env?.MAINNET_RPC_URL || this.params.rpcUrls[0];
|
|
77
|
+
},
|
|
78
|
+
balanceResolverAddress: "0x5b7D61b389D12e1f5873d0cCEe7E675915AB5F43",
|
|
79
|
+
usdcAddress: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
|
|
80
|
+
params: {
|
|
81
|
+
rpcUrls: ["https://rpc.ankr.com/eth"],
|
|
82
|
+
nativeCurrency: {
|
|
83
|
+
name: "Ethereum",
|
|
84
|
+
symbol: "ETH",
|
|
85
|
+
decimals: 18,
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
name: 'Base',
|
|
91
|
+
chainId: 8453,
|
|
92
|
+
color: '#1E2024',
|
|
93
|
+
explorerUrl: 'https://basescan.org',
|
|
94
|
+
apiURL: 'https://api.basescan.org',
|
|
95
|
+
get serverRpcUrl() {
|
|
96
|
+
return process.env?.BASE_RPC_URL || this.params.rpcUrls[0];
|
|
97
|
+
},
|
|
98
|
+
usdcAddress: '0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA',
|
|
99
|
+
balanceResolverAddress: '0x23c8EAb8a4373dD16b0947Ebe8bf76Ff7A49d13C',
|
|
100
|
+
params: {
|
|
101
|
+
rpcUrls: ['https://rpc.ankr.com/base'],
|
|
102
|
+
chainName: "Base",
|
|
103
|
+
nativeCurrency: {
|
|
104
|
+
name: "Ethereum",
|
|
105
|
+
symbol: "ETH",
|
|
106
|
+
decimals: 18,
|
|
107
|
+
},
|
|
108
|
+
}
|
|
109
|
+
},
|
|
74
110
|
{
|
|
75
111
|
name: "Optimism",
|
|
76
112
|
debankName: "op",
|
|
@@ -78,6 +114,7 @@ export const networks: Network[] = [
|
|
|
78
114
|
zerionName: "optimism",
|
|
79
115
|
color: "#FF0420",
|
|
80
116
|
chainId: 10,
|
|
117
|
+
apiURL: 'https://api-optimistic.etherscan.io',
|
|
81
118
|
usdcAddress: "0x7f5c764cbc14f9669b88837ca1490cca17c31607",
|
|
82
119
|
balanceResolverAddress: "0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2",
|
|
83
120
|
explorerUrl: "https://optimistic.etherscan.io",
|
|
@@ -95,26 +132,24 @@ export const networks: Network[] = [
|
|
|
95
132
|
},
|
|
96
133
|
},
|
|
97
134
|
{
|
|
98
|
-
name: "
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
usdcAddress: "
|
|
105
|
-
balanceResolverAddress: "0x63009f31D054E0ac9F321Cf0D642375236A4Bf1E",
|
|
106
|
-
explorerUrl: "https://snowtrace.io",
|
|
135
|
+
name: "Polygon zkEVM",
|
|
136
|
+
chainId: 1101,
|
|
137
|
+
color: "#8544f6",
|
|
138
|
+
explorerUrl: "https://zkevm.polygonscan.com",
|
|
139
|
+
apiURL: 'https://api-zkevm.polygonscan.com',
|
|
140
|
+
balanceResolverAddress: "0x48D1Fa5Ee6691a1E0B45d2B515650997BEA27a01",
|
|
141
|
+
usdcAddress: "0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035",
|
|
107
142
|
get serverRpcUrl() {
|
|
108
|
-
return process.env?.
|
|
143
|
+
return process.env?.POLYGON_ZKEVM_RPC_URL || this.params.rpcUrls[0];
|
|
109
144
|
},
|
|
110
145
|
params: {
|
|
111
|
-
chainName: "
|
|
146
|
+
chainName: "polygon zkEVM",
|
|
147
|
+
rpcUrls: ["https://zkevm-rpc.com"],
|
|
112
148
|
nativeCurrency: {
|
|
113
|
-
name: "
|
|
114
|
-
symbol: "
|
|
149
|
+
name: "Ethereum",
|
|
150
|
+
symbol: "ETH",
|
|
115
151
|
decimals: 18,
|
|
116
152
|
},
|
|
117
|
-
rpcUrls: ["https://rpc.ankr.com/avalanche"],
|
|
118
153
|
},
|
|
119
154
|
},
|
|
120
155
|
{
|
|
@@ -125,6 +160,7 @@ export const networks: Network[] = [
|
|
|
125
160
|
color: "#F3BA2F",
|
|
126
161
|
chainId: 56,
|
|
127
162
|
explorerUrl: "https://bscscan.com",
|
|
163
|
+
apiURL: 'https://api.bscscan.com',
|
|
128
164
|
usdcAddress: "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d",
|
|
129
165
|
balanceResolverAddress: "0xb808cff38706e267067b0af427726aa099f69f89",
|
|
130
166
|
get serverRpcUrl() {
|
|
@@ -140,6 +176,52 @@ export const networks: Network[] = [
|
|
|
140
176
|
},
|
|
141
177
|
},
|
|
142
178
|
},
|
|
179
|
+
{
|
|
180
|
+
name: "Avalanche",
|
|
181
|
+
debankName: "avax",
|
|
182
|
+
ankrName: "avalanche",
|
|
183
|
+
zerionName: "avalanche",
|
|
184
|
+
color: "#EB5757",
|
|
185
|
+
chainId: 43114,
|
|
186
|
+
usdcAddress: "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e",
|
|
187
|
+
balanceResolverAddress: "0x63009f31D054E0ac9F321Cf0D642375236A4Bf1E",
|
|
188
|
+
explorerUrl: "https://snowtrace.io",
|
|
189
|
+
apiURL: 'https://api.snowtrace.io',
|
|
190
|
+
get serverRpcUrl() {
|
|
191
|
+
return process.env?.AVALANCHE_RPC_URL || this.params.rpcUrls[0];
|
|
192
|
+
},
|
|
193
|
+
params: {
|
|
194
|
+
chainName: "Avalanche Network",
|
|
195
|
+
nativeCurrency: {
|
|
196
|
+
name: "Avalanche",
|
|
197
|
+
symbol: "AVAX",
|
|
198
|
+
decimals: 18,
|
|
199
|
+
},
|
|
200
|
+
rpcUrls: ["https://rpc.ankr.com/avalanche"],
|
|
201
|
+
},
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
name: "Fantom",
|
|
205
|
+
chainId: 250,
|
|
206
|
+
zerionName: "fantom",
|
|
207
|
+
explorerUrl: "https://ftmscan.com",
|
|
208
|
+
ankrName: "fantom",
|
|
209
|
+
color: "#1969ff",
|
|
210
|
+
get serverRpcUrl() {
|
|
211
|
+
return process.env?.FANTOM_RPC_URL || this.params.rpcUrls[0];
|
|
212
|
+
},
|
|
213
|
+
usdcAddress: "0x04068da6c83afcfa0e13ba15a6696662335d5b75",
|
|
214
|
+
balanceResolverAddress: "0x929376c77a2fb8152375a089a4fccf84ff481479",
|
|
215
|
+
params: {
|
|
216
|
+
rpcUrls: ["https://rpc.ankr.com/fantom"],
|
|
217
|
+
chainName: "Fantom",
|
|
218
|
+
nativeCurrency: {
|
|
219
|
+
name: "Fantom",
|
|
220
|
+
symbol: "FTM",
|
|
221
|
+
decimals: 18,
|
|
222
|
+
},
|
|
223
|
+
},
|
|
224
|
+
},
|
|
143
225
|
{
|
|
144
226
|
name: "Gnosis",
|
|
145
227
|
debankName: "xdai",
|
|
@@ -148,6 +230,7 @@ export const networks: Network[] = [
|
|
|
148
230
|
chainId: 100,
|
|
149
231
|
balanceResolverAddress: "0xfaa244e276b1597f663975ed007ee4ff70d27849",
|
|
150
232
|
explorerUrl: "https://gnosisscan.io",
|
|
233
|
+
apiURL:'https://api.gnosisscan.io',
|
|
151
234
|
usdcAddress: "0xddafbb505ad214d7b80b1f830fccc89b60fb7a83",
|
|
152
235
|
get serverRpcUrl() {
|
|
153
236
|
return process.env?.GNOSIS_RPC_URL || this.params.rpcUrls[0];
|
|
@@ -162,27 +245,6 @@ export const networks: Network[] = [
|
|
|
162
245
|
},
|
|
163
246
|
},
|
|
164
247
|
},
|
|
165
|
-
{
|
|
166
|
-
name: "Polygon zkEVM",
|
|
167
|
-
chainId: 1101,
|
|
168
|
-
color: "#8544f6",
|
|
169
|
-
explorerUrl: "https://zkevm.polygonscan.com",
|
|
170
|
-
balanceResolverAddress: "0x48D1Fa5Ee6691a1E0B45d2B515650997BEA27a01",
|
|
171
|
-
usdcAddress: "0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035",
|
|
172
|
-
get serverRpcUrl() {
|
|
173
|
-
return process.env?.POLYGON_ZKEVM_RPC_URL || this.params.rpcUrls[0];
|
|
174
|
-
},
|
|
175
|
-
params: {
|
|
176
|
-
chainName: "polygon zkEVM",
|
|
177
|
-
rpcUrls: ["https://zkevm-rpc.com"],
|
|
178
|
-
|
|
179
|
-
nativeCurrency: {
|
|
180
|
-
name: "Ethereum",
|
|
181
|
-
symbol: "ETH",
|
|
182
|
-
decimals: 18,
|
|
183
|
-
},
|
|
184
|
-
},
|
|
185
|
-
},
|
|
186
248
|
{
|
|
187
249
|
name: "Aurora",
|
|
188
250
|
chainId: 1313161554,
|
|
@@ -204,28 +266,6 @@ export const networks: Network[] = [
|
|
|
204
266
|
},
|
|
205
267
|
},
|
|
206
268
|
},
|
|
207
|
-
{
|
|
208
|
-
name: "Fantom",
|
|
209
|
-
chainId: 250,
|
|
210
|
-
zerionName: "fantom",
|
|
211
|
-
explorerUrl: "https://ftmscan.com",
|
|
212
|
-
ankrName: "fantom",
|
|
213
|
-
color: "#1969ff",
|
|
214
|
-
get serverRpcUrl() {
|
|
215
|
-
return process.env?.FANTOM_RPC_URL || this.params.rpcUrls[0];
|
|
216
|
-
},
|
|
217
|
-
usdcAddress: "0x04068da6c83afcfa0e13ba15a6696662335d5b75",
|
|
218
|
-
balanceResolverAddress: "0x929376c77a2fb8152375a089a4fccf84ff481479",
|
|
219
|
-
params: {
|
|
220
|
-
rpcUrls: ["https://rpc.ankr.com/fantom"],
|
|
221
|
-
chainName: "Fantom",
|
|
222
|
-
nativeCurrency: {
|
|
223
|
-
name: "Fantom",
|
|
224
|
-
symbol: "FTM",
|
|
225
|
-
decimals: 18,
|
|
226
|
-
},
|
|
227
|
-
},
|
|
228
|
-
},
|
|
229
269
|
{
|
|
230
270
|
name: AVO_PROD_CHAIN_NAME,
|
|
231
271
|
chainId: AVO_PROD_CHAIN_ID,
|
|
@@ -281,6 +321,7 @@ export const chainUsdcAddresses = [
|
|
|
281
321
|
{ chainId: 43114, address: '0xa7d7079b0fead91f3e65f86e8915cb59c1a4c664' },
|
|
282
322
|
{ chainId: 1101, address: '0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035' },
|
|
283
323
|
{ chainId: 1313161554, address: '0xB12BFcA5A55806AaF64E99521918A4bf0fC40802' },
|
|
324
|
+
{ chainId: 8453, address: '0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA'}
|
|
284
325
|
];
|
|
285
326
|
|
|
286
327
|
export const getNetworkByChainId = (
|
package/utils/services.ts
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
export const fetchTokenByAddress = async (
|
|
2
2
|
address: string,
|
|
3
|
-
chainId: string | number
|
|
3
|
+
chainId: string | number,
|
|
4
|
+
tokens?: ITokenPrice[]
|
|
4
5
|
) => {
|
|
5
6
|
if (!address || !chainId) return null;
|
|
7
|
+
|
|
8
|
+
if (tokens?.length) {
|
|
9
|
+
const token = tokens.find((token) => token.address?.toLocaleLowerCase() === address?.toLocaleLowerCase() && token.chain_id == chainId);
|
|
10
|
+
if (token) return token;
|
|
11
|
+
}
|
|
12
|
+
|
|
6
13
|
const [token] = (await $fetch(`${blockQueryURL}/${chainId}/tokens`, {
|
|
7
14
|
params: {
|
|
8
15
|
sparkline: false,
|
package/utils/utils.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ declare global {
|
|
|
11
11
|
| 250
|
|
12
12
|
| 634
|
|
13
13
|
| 1313161554
|
|
14
|
+
| 8453
|
|
14
15
|
| 63400;
|
|
15
16
|
|
|
16
17
|
type ISlackMessageType = "danger" | "error" | "success" | "banner";
|
|
@@ -33,6 +34,7 @@ declare global {
|
|
|
33
34
|
balanceResolverAddress?: string;
|
|
34
35
|
usdcAddress: string;
|
|
35
36
|
explorerUrl: string;
|
|
37
|
+
apiURL?: string;
|
|
36
38
|
params: {
|
|
37
39
|
chainName?: string;
|
|
38
40
|
iconUrls?: string[];
|