@instadapp/avocado-base 0.0.0-dev.fd1507c → 0.0.0-dev.fd73c5f

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.
Files changed (41) hide show
  1. package/abi/multisigForwarder.json +697 -0
  2. package/app.vue +7 -0
  3. package/assets/images/icons/change-threshold.svg +4 -0
  4. package/assets/images/icons/cross-transfer.svg +7 -0
  5. package/assets/images/icons/dapp.svg +4 -0
  6. package/assets/images/icons/deploy.svg +12 -0
  7. package/assets/images/icons/gas.svg +12 -5
  8. package/assets/images/icons/hammer.svg +5 -0
  9. package/assets/images/icons/info-2.svg +12 -0
  10. package/assets/images/icons/instadapp-pro.svg +4 -0
  11. package/assets/images/icons/multi-send.svg +7 -0
  12. package/assets/images/icons/permit-sign.svg +11 -0
  13. package/assets/images/icons/plus-circle.svg +6 -0
  14. package/assets/images/icons/refresh.svg +4 -4
  15. package/assets/images/icons/reject-proposal.svg +6 -0
  16. package/assets/images/icons/transfer.svg +5 -0
  17. package/assets/images/icons/trash-2.svg +8 -0
  18. package/assets/images/icons/upgrade.svg +4 -0
  19. package/components/ActionLogo.vue +40 -0
  20. package/components/ActionMetadata.vue +45 -17
  21. package/components/AuthorityAvatar.vue +38 -0
  22. package/components/ChainLogo.vue +14 -556
  23. package/components/CopyClipboard.vue +64 -0
  24. package/components/metadata/Bridge.vue +30 -8
  25. package/components/metadata/CrossTransfer.vue +19 -5
  26. package/components/metadata/GasTopup.vue +10 -2
  27. package/components/metadata/Permit2.vue +6 -1
  28. package/components/metadata/Signers.vue +63 -0
  29. package/components/metadata/Swap.vue +12 -4
  30. package/components/metadata/Transfer.vue +14 -7
  31. package/contracts/MultisigForwarder.ts +859 -0
  32. package/contracts/factories/MultisigForwarder__factory.ts +721 -0
  33. package/contracts/factories/index.ts +1 -0
  34. package/contracts/index.ts +2 -0
  35. package/package.json +5 -3
  36. package/utils/formatter.ts +1 -1
  37. package/utils/helper.ts +8 -0
  38. package/utils/metadata.ts +320 -191
  39. package/utils/network.ts +170 -83
  40. package/utils/services.ts +8 -1
  41. package/utils/utils.d.ts +128 -126
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 = [1101];
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,51 @@ 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
+ ankrName: "base",
94
+ explorerUrl: "https://basescan.org",
95
+ apiURL: "https://api.basescan.org",
96
+ get serverRpcUrl() {
97
+ return process.env?.BASE_RPC_URL || this.params.rpcUrls[0];
98
+ },
99
+ usdcAddress: "0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA",
100
+ balanceResolverAddress: "0x23c8EAb8a4373dD16b0947Ebe8bf76Ff7A49d13C",
101
+ params: {
102
+ rpcUrls: ["https://rpc.ankr.com/base"],
103
+ chainName: "Base",
104
+ nativeCurrency: {
105
+ name: "Ethereum",
106
+ symbol: "ETH",
107
+ decimals: 18,
108
+ },
109
+ },
110
+ },
74
111
  {
75
112
  name: "Optimism",
76
113
  debankName: "op",
@@ -78,6 +115,7 @@ export const networks: Network[] = [
78
115
  zerionName: "optimism",
79
116
  color: "#FF0420",
80
117
  chainId: 10,
118
+ apiURL: "https://api-optimistic.etherscan.io",
81
119
  usdcAddress: "0x7f5c764cbc14f9669b88837ca1490cca17c31607",
82
120
  balanceResolverAddress: "0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2",
83
121
  explorerUrl: "https://optimistic.etherscan.io",
@@ -95,26 +133,25 @@ export const networks: Network[] = [
95
133
  },
96
134
  },
97
135
  {
98
- name: "Avalanche",
99
- debankName: "avax",
100
- ankrName: "avalanche",
101
- zerionName: "avalanche",
102
- color: "#EB5757",
103
- chainId: 43114,
104
- usdcAddress: "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e",
105
- balanceResolverAddress: "0x63009f31D054E0ac9F321Cf0D642375236A4Bf1E",
106
- explorerUrl: "https://snowtrace.io",
136
+ name: "Polygon zkEVM",
137
+ chainId: 1101,
138
+ color: "#8544f6",
139
+ ankrName: "polygon_zkevm",
140
+ explorerUrl: "https://zkevm.polygonscan.com",
141
+ apiURL: "https://api-zkevm.polygonscan.com",
142
+ balanceResolverAddress: "0x48D1Fa5Ee6691a1E0B45d2B515650997BEA27a01",
143
+ usdcAddress: "0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035",
107
144
  get serverRpcUrl() {
108
- return process.env?.AVALANCHE_RPC_URL || this.params.rpcUrls[0];
145
+ return process.env?.POLYGON_ZKEVM_RPC_URL || this.params.rpcUrls[0];
109
146
  },
110
147
  params: {
111
- chainName: "Avalanche Network",
148
+ chainName: "polygon zkEVM",
149
+ rpcUrls: ["https://zkevm-rpc.com"],
112
150
  nativeCurrency: {
113
- name: "Avalanche",
114
- symbol: "AVAX",
151
+ name: "Ethereum",
152
+ symbol: "ETH",
115
153
  decimals: 18,
116
154
  },
117
- rpcUrls: ["https://rpc.ankr.com/avalanche"],
118
155
  },
119
156
  },
120
157
  {
@@ -125,6 +162,7 @@ export const networks: Network[] = [
125
162
  color: "#F3BA2F",
126
163
  chainId: 56,
127
164
  explorerUrl: "https://bscscan.com",
165
+ apiURL: "https://api.bscscan.com",
128
166
  usdcAddress: "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d",
129
167
  balanceResolverAddress: "0xb808cff38706e267067b0af427726aa099f69f89",
130
168
  get serverRpcUrl() {
@@ -140,14 +178,62 @@ export const networks: Network[] = [
140
178
  },
141
179
  },
142
180
  },
181
+ {
182
+ name: "Avalanche",
183
+ debankName: "avax",
184
+ ankrName: "avalanche",
185
+ zerionName: "avalanche",
186
+ color: "#EB5757",
187
+ chainId: 43114,
188
+ usdcAddress: "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e",
189
+ balanceResolverAddress: "0x63009f31D054E0ac9F321Cf0D642375236A4Bf1E",
190
+ explorerUrl: "https://snowtrace.io",
191
+ apiURL: "https://api.snowtrace.io",
192
+ get serverRpcUrl() {
193
+ return process.env?.AVALANCHE_RPC_URL || this.params.rpcUrls[0];
194
+ },
195
+ params: {
196
+ chainName: "Avalanche Network",
197
+ nativeCurrency: {
198
+ name: "Avalanche",
199
+ symbol: "AVAX",
200
+ decimals: 18,
201
+ },
202
+ rpcUrls: ["https://rpc.ankr.com/avalanche"],
203
+ },
204
+ },
205
+ {
206
+ name: "Fantom",
207
+ chainId: 250,
208
+ zerionName: "fantom",
209
+ explorerUrl: "https://ftmscan.com",
210
+ ankrName: "fantom",
211
+ color: "#1969ff",
212
+ get serverRpcUrl() {
213
+ return process.env?.FANTOM_RPC_URL || this.params.rpcUrls[0];
214
+ },
215
+ usdcAddress: "0x04068da6c83afcfa0e13ba15a6696662335d5b75",
216
+ balanceResolverAddress: "0x929376c77a2fb8152375a089a4fccf84ff481479",
217
+ params: {
218
+ rpcUrls: ["https://rpc.ankr.com/fantom"],
219
+ chainName: "Fantom",
220
+ nativeCurrency: {
221
+ name: "Fantom",
222
+ symbol: "FTM",
223
+ decimals: 18,
224
+ },
225
+ },
226
+ },
143
227
  {
144
228
  name: "Gnosis",
145
229
  debankName: "xdai",
146
230
  zerionName: "xdai",
147
231
  color: "#04795C",
232
+ ankrName: "gnosis",
148
233
  chainId: 100,
149
234
  balanceResolverAddress: "0xfaa244e276b1597f663975ed007ee4ff70d27849",
150
235
  explorerUrl: "https://gnosisscan.io",
236
+ apiURL: "https://api.gnosisscan.io",
151
237
  usdcAddress: "0xddafbb505ad214d7b80b1f830fccc89b60fb7a83",
152
238
  get serverRpcUrl() {
153
239
  return process.env?.GNOSIS_RPC_URL || this.params.rpcUrls[0];
@@ -162,27 +248,6 @@ export const networks: Network[] = [
162
248
  },
163
249
  },
164
250
  },
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
251
  {
187
252
  name: "Aurora",
188
253
  chainId: 1313161554,
@@ -204,28 +269,27 @@ export const networks: Network[] = [
204
269
  },
205
270
  },
206
271
  },
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
- },
272
+ // {
273
+ // name: "Fuse",
274
+ // chainId: 122,
275
+ // zerionName: "fuse",
276
+ // color: "#78d64b",
277
+ // explorerUrl: "https://explorer.fuse.io",
278
+ // get serverRpcUrl() {
279
+ // return process.env?.FUSE_RPC_URL || this.params.rpcUrls[0];
280
+ // },
281
+ // usdcAddress: "",
282
+ // balanceResolverAddress: "0xdF19Da523DA64bBE82eE0E4DFf00d676A8386474",
283
+ // params: {
284
+ // rpcUrls: ["https://fuse-mainnet.chainstacklabs.com"],
285
+ // chainName: "Fuse",
286
+ // nativeCurrency: {
287
+ // decimals: 18,
288
+ // name: "Fuse",
289
+ // symbol: "fuse",
290
+ // },
291
+ // },
292
+ // },
229
293
  {
230
294
  name: AVO_PROD_CHAIN_NAME,
231
295
  chainId: AVO_PROD_CHAIN_ID,
@@ -268,6 +332,25 @@ export const networks: Network[] = [
268
332
  },
269
333
  ];
270
334
 
335
+ export const chainUsdcAddresses = [
336
+ { chainId: 1, address: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" },
337
+ { chainId: 10, address: "0x7f5c764cbc14f9669b88837ca1490cca17c31607" },
338
+ { chainId: 56, address: "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d" },
339
+ { chainId: 100, address: "0xddafbb505ad214d7b80b1f830fccc89b60fb7a83" },
340
+ { chainId: 137, address: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174" },
341
+ { chainId: 250, address: "0x04068da6c83afcfa0e13ba15a6696662335d5b75" },
342
+ { chainId: 42161, address: "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8" },
343
+ { chainId: 42161, address: "0xaf88d065e77c8cc2239327c5edb3a432268e5831" },
344
+ { chainId: 43114, address: "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e" },
345
+ { chainId: 43114, address: "0xa7d7079b0fead91f3e65f86e8915cb59c1a4c664" },
346
+ { chainId: 1101, address: "0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035" },
347
+ {
348
+ chainId: 1313161554,
349
+ address: "0xB12BFcA5A55806AaF64E99521918A4bf0fC40802",
350
+ },
351
+ { chainId: 8453, address: "0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA" },
352
+ ];
353
+
271
354
  export const getNetworkByChainId = (
272
355
  chainId: ChainId | number | string
273
356
  ): Network => {
@@ -280,12 +363,16 @@ export const availableNetworks = networks.filter(
280
363
 
281
364
  export const chainIdToName = (chainId: ChainId | number | string) => {
282
365
  const network = getNetworkByChainId(chainId);
283
- return network.name;
366
+ return network?.name;
284
367
  };
285
368
 
286
369
  export const getRpcURLByChainId = (chainId: ChainId | number | string) => {
287
- const network = getNetworkByChainId(chainId);
288
- return network.params.rpcUrls[0];
370
+ try {
371
+ const network = getNetworkByChainId(chainId);
372
+ return network.params.rpcUrls[0];
373
+ } catch (e) {
374
+ return "";
375
+ }
289
376
  };
290
377
 
291
378
  export const RPCMap = networks.reduce((acc, network) => {
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
@@ -1,130 +1,132 @@
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;
14
-
15
- type ISlackMessageType = "danger" | "error" | "success" | "banner";
16
-
17
- interface Network {
18
- name: string;
19
- debankName?: string;
20
- ankrName?: string;
21
- zerionName?: string;
22
- chainId: ChainId;
23
- color: string;
24
- isAvocado?: boolean;
25
- serverRpcUrl: string | undefined;
26
- balanceResolverAddress?: string;
27
- usdcAddress: string;
28
- explorerUrl: string;
29
- params: {
30
- chainName?: string;
31
- iconUrls?: string[];
32
- rpcUrls: string[];
33
- nativeCurrency?: {
34
- name: string;
35
- symbol: string;
36
- decimals: number;
1
+ declare global {
2
+ type ChainId =
3
+ | 1
4
+ | 137
5
+ | 42161
6
+ | 10
7
+ | 56
8
+ | 43114
9
+ | 100
10
+ | 1101
11
+ | 250
12
+ | 634
13
+ | 1313161554
14
+ | 8453
15
+ | 122
16
+ | 63400;
17
+
18
+ type ISlackMessageType = "danger" | "error" | "success" | "banner";
19
+
20
+ type MetadataTypes = keyof typeof MetadataEnums;
21
+
22
+ type PayloadFunction = (data: any, type: MetadataTypes) => any;
23
+
24
+ type IPayload = Record<MetadataTypes, PayloadFunction>;
25
+
26
+ interface Network {
27
+ name: string;
28
+ debankName?: string;
29
+ ankrName?: string;
30
+ zerionName?: string;
31
+ chainId: ChainId;
32
+ color: string;
33
+ isAvocado?: boolean;
34
+ serverRpcUrl: string | undefined;
35
+ balanceResolverAddress?: string;
36
+ usdcAddress: string;
37
+ explorerUrl: string;
38
+ apiURL?: string;
39
+ params: {
40
+ chainName?: string;
41
+ iconUrls?: string[];
42
+ rpcUrls: string[];
43
+ nativeCurrency?: {
44
+ name: string;
45
+ symbol: string;
46
+ decimals: number;
47
+ };
37
48
  };
49
+ }
50
+
51
+ type SignMetadataProps = {
52
+ token: string;
53
+ spender: string;
54
+ amount: string;
55
+ expiration: string;
56
+ };
57
+
58
+ type DappMetadataProps = {
59
+ name: string;
60
+ url: string;
61
+ };
62
+
63
+ type SendMetadataProps = {
64
+ token: string;
65
+ amount: string;
66
+ receiver: string;
67
+ };
68
+
69
+ type CrossSendMetadataProps = {
70
+ fromToken: string;
71
+ toToken: string;
72
+ toChainId: string;
73
+ amount: string;
74
+ receiver: string;
38
75
  };
39
- }
40
76
 
41
- type SignMetadataProps = {
42
- token: string;
43
- spender: string;
44
- amount: string;
45
- expiration: string;
46
- };
47
-
48
- type DappMetadataProps = {
49
- name: string;
50
- url: string;
51
- };
52
-
53
- type SendMetadataProps = {
54
- token: string;
55
- amount: string;
56
- receiver: string;
57
- };
58
-
59
- type CrossSendMetadataProps = {
60
- fromToken: string;
61
- toToken: string;
62
- toChainId: string;
63
- amount: string;
64
- receiver: string;
65
- };
66
-
67
- type AuthMetadataProps = {
68
- address: string;
69
- chainId: string;
70
- remove: boolean;
71
- };
72
-
73
- type UpgradeMetadataProps = {
74
- version: string;
75
- walletImpl: string;
76
- };
77
-
78
- type TopupMetadataProps = {
79
- amount: string;
80
- token: string;
81
- onBehalf: string;
82
- };
83
-
84
- type BridgeMetadataProps = {
85
- amount: string;
86
- receiver: string;
87
- fromToken: string;
88
- toToken: string;
89
- toChainId: string;
90
- bridgeFee: string;
91
- nativeToken: string;
92
- };
93
-
94
- type SwapMetadataProps = {
95
- sellToken: string;
96
- buyToken: string;
97
- sellAmount: string;
98
- buyAmount: string;
99
- receiver: string;
100
- protocol?: string;
101
- };
102
-
103
- type MetadataProps = {
104
- type:
105
- | "transfer"
106
- | "bridge"
107
- | "swap"
108
- | "multi"
109
- | "gas-topup"
110
- | "upgrade"
111
- | "dapp"
112
- | "deploy"
113
- | "permit2"
114
- | "cross-transfer"
115
- | "auth";
116
- encodedData: string;
117
- version?: string;
118
- };
119
-
120
- interface ITokenPrice {
121
- address: string;
122
- chain_id: string;
123
- name: string;
124
- symbol: string;
125
- decimals: number;
126
- logo_url: string;
127
- price: string;
128
- coingecko_id: string;
129
- sparkline_price_7d: number[];
77
+ type AuthMetadataProps = {
78
+ address: string;
79
+ chainId: string;
80
+ remove: boolean;
81
+ };
82
+
83
+ type UpgradeMetadataProps = {
84
+ version: string;
85
+ walletImpl: string;
86
+ };
87
+
88
+ type TopupMetadataProps = {
89
+ amount: string;
90
+ token: string;
91
+ onBehalf: string;
92
+ };
93
+
94
+ type BridgeMetadataProps = {
95
+ amount: string;
96
+ receiver: string;
97
+ fromToken: string;
98
+ toToken: string;
99
+ toChainId: string;
100
+ bridgeFee: string;
101
+ nativeToken: string;
102
+ };
103
+
104
+ type SwapMetadataProps = {
105
+ sellToken: string;
106
+ buyToken: string;
107
+ sellAmount: string;
108
+ buyAmount: string;
109
+ receiver: string;
110
+ protocol?: string;
111
+ };
112
+
113
+ type MetadataProps = {
114
+ type: MetadataTypes;
115
+ encodedData: string;
116
+ version?: string;
117
+ };
118
+
119
+ interface ITokenPrice {
120
+ address: string;
121
+ chain_id: string;
122
+ name: string;
123
+ symbol: string;
124
+ decimals: number;
125
+ logo_url: string;
126
+ price: string;
127
+ coingecko_id: string;
128
+ sparkline_price_7d: number[];
129
+ }
130
130
  }
131
+
132
+ export {};