@instadapp/avocado-base 0.0.0-dev.0e37fd2 → 0.0.0-dev.0e696bd

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 (77) hide show
  1. package/abi/forwarder.json +1253 -149
  2. package/app.vue +7 -0
  3. package/assets/images/icons/arrow-left.svg +5 -0
  4. package/assets/images/icons/arrow-right.svg +5 -0
  5. package/assets/images/icons/avocado.svg +4 -0
  6. package/assets/images/icons/bridge-2.svg +3 -0
  7. package/assets/images/icons/bridge.svg +7 -0
  8. package/assets/images/icons/calendar.svg +8 -0
  9. package/assets/images/icons/change-threshold.svg +4 -0
  10. package/assets/images/icons/check-circle.svg +4 -0
  11. package/assets/images/icons/chevron-down.svg +4 -0
  12. package/assets/images/icons/clipboard.svg +7 -0
  13. package/assets/images/icons/clock-circle.svg +5 -0
  14. package/assets/images/icons/copy.svg +5 -0
  15. package/assets/images/icons/cross-transfer.svg +7 -0
  16. package/assets/images/icons/dapp.svg +4 -0
  17. package/assets/images/icons/deploy.svg +12 -0
  18. package/assets/images/icons/error-circle.svg +6 -0
  19. package/assets/images/icons/exclamation-circle.svg +13 -0
  20. package/assets/images/icons/exclamation-octagon.svg +13 -0
  21. package/assets/images/icons/exclamation-triangle.svg +5 -0
  22. package/assets/images/icons/external-link.svg +6 -0
  23. package/assets/images/icons/eye.svg +4 -0
  24. package/assets/images/icons/flowers.svg +8 -0
  25. package/assets/images/icons/gas-emoji.svg +193 -0
  26. package/assets/images/icons/gas.svg +14 -0
  27. package/assets/images/icons/gift.svg +153 -0
  28. package/assets/images/icons/globe.svg +110 -0
  29. package/assets/images/icons/hamburger.svg +6 -0
  30. package/assets/images/icons/instadapp-pro.svg +4 -0
  31. package/assets/images/icons/logout.svg +3 -0
  32. package/assets/images/icons/moon.svg +3 -0
  33. package/assets/images/icons/multi-send.svg +7 -0
  34. package/assets/images/icons/network.svg +13 -0
  35. package/assets/images/icons/options.svg +5 -0
  36. package/assets/images/icons/permit-sign.svg +11 -0
  37. package/assets/images/icons/plus-circle.svg +6 -0
  38. package/assets/images/icons/plus.svg +5 -0
  39. package/assets/images/icons/power-off-bg.svg +24 -0
  40. package/assets/images/icons/power-off.svg +19 -0
  41. package/assets/images/icons/power-on.svg +19 -0
  42. package/assets/images/icons/qr.svg +20 -0
  43. package/assets/images/icons/question-circle.svg +14 -0
  44. package/assets/images/icons/refresh.svg +6 -0
  45. package/assets/images/icons/reject-proposal.svg +6 -0
  46. package/assets/images/icons/search.svg +12 -0
  47. package/assets/images/icons/sun.svg +3 -0
  48. package/assets/images/icons/transfer.svg +5 -0
  49. package/assets/images/icons/trash-2.svg +8 -0
  50. package/assets/images/icons/upgrade.svg +4 -0
  51. package/assets/images/icons/wave.svg +214 -0
  52. package/assets/images/icons/x.svg +5 -0
  53. package/components/ActionLogo.vue +38 -0
  54. package/components/ActionMetadata.vue +72 -0
  55. package/components/AuthorityAvatar.vue +26 -0
  56. package/components/ChainLogo.vue +99 -442
  57. package/components/CopyClipboard.vue +64 -0
  58. package/components/metadata/Bridge.vue +59 -0
  59. package/components/metadata/CrossTransfer.vue +71 -0
  60. package/components/metadata/GasTopup.vue +39 -0
  61. package/components/metadata/Permit2.vue +42 -0
  62. package/components/metadata/Signers.vue +45 -0
  63. package/components/metadata/Swap.vue +74 -0
  64. package/components/metadata/Transfer.vue +50 -0
  65. package/components.d.ts +13 -0
  66. package/contracts/Forwarder.ts +856 -2
  67. package/contracts/factories/Forwarder__factory.ts +816 -16
  68. package/nuxt.config.ts +17 -1
  69. package/package.json +9 -4
  70. package/utils/avocado.ts +2 -0
  71. package/utils/bignumber.ts +20 -0
  72. package/utils/formatter.ts +49 -6
  73. package/utils/helper.ts +19 -0
  74. package/utils/metadata.ts +343 -133
  75. package/utils/network.ts +136 -77
  76. package/utils/services.ts +21 -0
  77. package/utils/utils.d.ts +128 -96
package/utils/network.ts CHANGED
@@ -3,30 +3,12 @@ import { ethers } from "ethers";
3
3
  export const bridgeDisabledNetworks = [1101];
4
4
 
5
5
  export const networks: Network[] = [
6
- {
7
- name: "Mainnet",
8
- debankName: "eth",
9
- ankrName: "eth",
10
- chainId: 1,
11
- explorerUrl: "https://etherscan.io",
12
- get serverRpcUrl() {
13
- return process.env?.MAINNET_RPC_URL || this.params.rpcUrls[0];
14
- },
15
- balanceResolverAddress: "0x5b7D61b389D12e1f5873d0cCEe7E675915AB5F43",
16
- usdcAddress: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
17
- params: {
18
- rpcUrls: ["https://rpc.ankr.com/eth"],
19
- nativeCurrency: {
20
- name: "Ethereum",
21
- symbol: "ETH",
22
- decimals: 18,
23
- },
24
- },
25
- },
26
6
  {
27
7
  name: "Polygon",
28
8
  debankName: "matic",
29
9
  ankrName: "polygon",
10
+ zerionName: "polygon",
11
+ color: "#7A4ADD",
30
12
  chainId: 137,
31
13
  balanceResolverAddress: "0x58632D23120b20650262b8A629a14e4F4043E0D9",
32
14
  usdcAddress: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
@@ -48,6 +30,8 @@ export const networks: Network[] = [
48
30
  name: "Arbitrum",
49
31
  debankName: "arb",
50
32
  ankrName: "arbitrum",
33
+ zerionName: "arbitrum",
34
+ color: "#2D374B",
51
35
  chainId: 42161,
52
36
  usdcAddress: "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8",
53
37
  balanceResolverAddress: "0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2",
@@ -65,10 +49,54 @@ export const networks: Network[] = [
65
49
  rpcUrls: ["https://arb1.arbitrum.io/rpc"],
66
50
  },
67
51
  },
52
+ {
53
+ name: "Ethereum",
54
+ debankName: "eth",
55
+ ankrName: "eth",
56
+ zerionName: "ethereum",
57
+ chainId: 1,
58
+ explorerUrl: "https://etherscan.io",
59
+ color: "#5D5FEF",
60
+ get serverRpcUrl() {
61
+ return process.env?.MAINNET_RPC_URL || this.params.rpcUrls[0];
62
+ },
63
+ balanceResolverAddress: "0x5b7D61b389D12e1f5873d0cCEe7E675915AB5F43",
64
+ usdcAddress: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
65
+ params: {
66
+ rpcUrls: ["https://rpc.ankr.com/eth"],
67
+ nativeCurrency: {
68
+ name: "Ethereum",
69
+ symbol: "ETH",
70
+ decimals: 18,
71
+ },
72
+ },
73
+ },
74
+ {
75
+ name: 'Base',
76
+ chainId: 8453,
77
+ color: '#1E2024',
78
+ explorerUrl: 'https://basescan.org',
79
+ get serverRpcUrl() {
80
+ return process.env?.BASE_RPC_URL || this.params.rpcUrls[0];
81
+ },
82
+ usdcAddress: '0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA',
83
+ balanceResolverAddress: '0x23c8EAb8a4373dD16b0947Ebe8bf76Ff7A49d13C',
84
+ params: {
85
+ rpcUrls: ['https://rpc.ankr.com/base'],
86
+ chainName: "Base",
87
+ nativeCurrency: {
88
+ name: "Ethereum",
89
+ symbol: "ETH",
90
+ decimals: 18,
91
+ },
92
+ }
93
+ },
68
94
  {
69
95
  name: "Optimism",
70
96
  debankName: "op",
71
97
  ankrName: "optimism",
98
+ zerionName: "optimism",
99
+ color: "#FF0420",
72
100
  chainId: 10,
73
101
  usdcAddress: "0x7f5c764cbc14f9669b88837ca1490cca17c31607",
74
102
  balanceResolverAddress: "0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2",
@@ -83,34 +111,35 @@ export const networks: Network[] = [
83
111
  symbol: "ETH",
84
112
  decimals: 18,
85
113
  },
86
- rpcUrls: ["https://mainnet.optimism.io"],
114
+ rpcUrls: ["https://rpc.ankr.com/optimism"],
87
115
  },
88
116
  },
89
117
  {
90
- name: "Avalanche",
91
- debankName: "avax",
92
- ankrName: "avalanche",
93
- chainId: 43114,
94
- usdcAddress: "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e",
95
- balanceResolverAddress: "0x63009f31D054E0ac9F321Cf0D642375236A4Bf1E",
96
- explorerUrl: "https://snowtrace.io",
118
+ name: "Polygon zkEVM",
119
+ chainId: 1101,
120
+ color: "#8544f6",
121
+ explorerUrl: "https://zkevm.polygonscan.com",
122
+ balanceResolverAddress: "0x48D1Fa5Ee6691a1E0B45d2B515650997BEA27a01",
123
+ usdcAddress: "0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035",
97
124
  get serverRpcUrl() {
98
- return process.env?.AVALANCHE_RPC_URL || this.params.rpcUrls[0];
125
+ return process.env?.POLYGON_ZKEVM_RPC_URL || this.params.rpcUrls[0];
99
126
  },
100
127
  params: {
101
- chainName: "Avalanche Network",
128
+ chainName: "polygon zkEVM",
129
+ rpcUrls: ["https://zkevm-rpc.com"],
102
130
  nativeCurrency: {
103
- name: "Avalanche",
104
- symbol: "AVAX",
131
+ name: "Ethereum",
132
+ symbol: "ETH",
105
133
  decimals: 18,
106
134
  },
107
- rpcUrls: ["https://api.avax.network/ext/bc/C/rpc"],
108
135
  },
109
136
  },
110
137
  {
111
138
  name: "BSC",
112
139
  debankName: "bsc",
113
140
  ankrName: "bsc",
141
+ zerionName: "binance-smart-chain",
142
+ color: "#F3BA2F",
114
143
  chainId: 56,
115
144
  explorerUrl: "https://bscscan.com",
116
145
  usdcAddress: "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d",
@@ -128,10 +157,56 @@ export const networks: Network[] = [
128
157
  },
129
158
  },
130
159
  },
160
+ {
161
+ name: "Avalanche",
162
+ debankName: "avax",
163
+ ankrName: "avalanche",
164
+ zerionName: "avalanche",
165
+ color: "#EB5757",
166
+ chainId: 43114,
167
+ usdcAddress: "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e",
168
+ balanceResolverAddress: "0x63009f31D054E0ac9F321Cf0D642375236A4Bf1E",
169
+ explorerUrl: "https://snowtrace.io",
170
+ get serverRpcUrl() {
171
+ return process.env?.AVALANCHE_RPC_URL || this.params.rpcUrls[0];
172
+ },
173
+ params: {
174
+ chainName: "Avalanche Network",
175
+ nativeCurrency: {
176
+ name: "Avalanche",
177
+ symbol: "AVAX",
178
+ decimals: 18,
179
+ },
180
+ rpcUrls: ["https://rpc.ankr.com/avalanche"],
181
+ },
182
+ },
183
+ {
184
+ name: "Fantom",
185
+ chainId: 250,
186
+ zerionName: "fantom",
187
+ explorerUrl: "https://ftmscan.com",
188
+ ankrName: "fantom",
189
+ color: "#1969ff",
190
+ get serverRpcUrl() {
191
+ return process.env?.FANTOM_RPC_URL || this.params.rpcUrls[0];
192
+ },
193
+ usdcAddress: "0x04068da6c83afcfa0e13ba15a6696662335d5b75",
194
+ balanceResolverAddress: "0x929376c77a2fb8152375a089a4fccf84ff481479",
195
+ params: {
196
+ rpcUrls: ["https://rpc.ankr.com/fantom"],
197
+ chainName: "Fantom",
198
+ nativeCurrency: {
199
+ name: "Fantom",
200
+ symbol: "FTM",
201
+ decimals: 18,
202
+ },
203
+ },
204
+ },
131
205
  {
132
206
  name: "Gnosis",
133
207
  debankName: "xdai",
134
- ankrName: "gnosis",
208
+ zerionName: "xdai",
209
+ color: "#04795C",
135
210
  chainId: 100,
136
211
  balanceResolverAddress: "0xfaa244e276b1597f663975ed007ee4ff70d27849",
137
212
  explorerUrl: "https://gnosisscan.io",
@@ -149,29 +224,11 @@ export const networks: Network[] = [
149
224
  },
150
225
  },
151
226
  },
152
- {
153
- name: "Polygon zkEVM",
154
- chainId: 1101,
155
- explorerUrl: "https://zkevm.polygonscan.com",
156
- balanceResolverAddress: "0x48D1Fa5Ee6691a1E0B45d2B515650997BEA27a01",
157
- usdcAddress: "0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035",
158
- get serverRpcUrl() {
159
- return process.env?.POLYGON_ZKEVM_RPC_URL || this.params.rpcUrls[0];
160
- },
161
- params: {
162
- chainName: "polygon zkEVM",
163
- rpcUrls: ["https://rpc.ankr.com/polygon_zkevm"],
164
-
165
- nativeCurrency: {
166
- name: "Ethereum",
167
- symbol: "ETH",
168
- decimals: 18,
169
- },
170
- },
171
- },
172
227
  {
173
228
  name: "Aurora",
174
229
  chainId: 1313161554,
230
+ zerionName: "aurora",
231
+ color: "#78d64b",
175
232
  explorerUrl: "https://explorer.mainnet.aurora.dev",
176
233
  get serverRpcUrl() {
177
234
  return process.env?.AURORA_RPC_URL || this.params.rpcUrls[0];
@@ -188,30 +245,12 @@ export const networks: Network[] = [
188
245
  },
189
246
  },
190
247
  },
191
- {
192
- name: "Fantom Opera",
193
- chainId: 250,
194
- explorerUrl: "https://ftmscan.com",
195
- get serverRpcUrl() {
196
- return process.env?.FANTOM_RPC_URL || this.params.rpcUrls[0];
197
- },
198
- usdcAddress: "0x04068da6c83afcfa0e13ba15a6696662335d5b75",
199
- balanceResolverAddress: "0x929376c77a2fb8152375a089a4fccf84ff481479",
200
- params: {
201
- rpcUrls: ["https://rpc.ankr.com/fantom"],
202
- chainName: "Fantom Opera",
203
- nativeCurrency: {
204
- name: "Fantom",
205
- symbol: "FTM",
206
- decimals: 18,
207
- },
208
- },
209
- },
210
248
  {
211
249
  name: AVO_PROD_CHAIN_NAME,
212
250
  chainId: AVO_PROD_CHAIN_ID,
213
251
  isAvocado: true,
214
252
  balanceResolverAddress: "",
253
+ color: "#16A34A",
215
254
  usdcAddress: "",
216
255
  serverRpcUrl: AVO_PROD_RPC_URL,
217
256
  explorerUrl: AVO_PROD_EXPLORER_URL,
@@ -230,6 +269,7 @@ export const networks: Network[] = [
230
269
  name: AVO_STAGING_CHAIN_NAME,
231
270
  chainId: AVO_STAGING_CHAIN_ID,
232
271
  serverRpcUrl: AVO_STAGING_RPC_URL,
272
+ color: "#16A34A",
233
273
  explorerUrl: AVO_STAGING_EXPLORER_URL,
234
274
  isAvocado: true,
235
275
  balanceResolverAddress: "",
@@ -247,6 +287,22 @@ export const networks: Network[] = [
247
287
  },
248
288
  ];
249
289
 
290
+ export const chainUsdcAddresses = [
291
+ { chainId: 1, address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48' },
292
+ { chainId: 10, address: '0x7f5c764cbc14f9669b88837ca1490cca17c31607' },
293
+ { chainId: 56, address: '0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d' },
294
+ { chainId: 100, address: '0xddafbb505ad214d7b80b1f830fccc89b60fb7a83' },
295
+ { chainId: 137, address: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174' },
296
+ { chainId: 250, address: '0x04068da6c83afcfa0e13ba15a6696662335d5b75' },
297
+ { chainId: 42161, address: '0xff970a61a04b1ca14834a43f5de4533ebddb5cc8' },
298
+ { chainId: 42161, address: '0xaf88d065e77c8cc2239327c5edb3a432268e5831' },
299
+ { chainId: 43114, address: '0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e' },
300
+ { chainId: 43114, address: '0xa7d7079b0fead91f3e65f86e8915cb59c1a4c664' },
301
+ { chainId: 1101, address: '0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035' },
302
+ { chainId: 1313161554, address: '0xB12BFcA5A55806AaF64E99521918A4bf0fC40802' },
303
+ { chainId: 8453, address: '0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA'}
304
+ ];
305
+
250
306
  export const getNetworkByChainId = (
251
307
  chainId: ChainId | number | string
252
308
  ): Network => {
@@ -274,13 +330,16 @@ export const RPCMap = networks.reduce((acc, network) => {
274
330
 
275
331
  export const networkIds = networks.map((network) => network.chainId);
276
332
 
277
- const rpcInstances: Record<string, ethers.providers.JsonRpcProvider> = {};
278
- const serverRpcInstances: Record<string, ethers.providers.JsonRpcProvider> = {};
333
+ const rpcInstances: Record<string, ethers.providers.StaticJsonRpcProvider> = {};
334
+ const serverRpcInstances: Record<
335
+ string,
336
+ ethers.providers.StaticJsonRpcProvider
337
+ > = {};
279
338
 
280
339
  export const getServerRpcProvider = (chainId: number | string) => {
281
340
  if (!rpcInstances[chainId]) {
282
341
  const network = networks.find((n) => n.chainId == chainId);
283
- serverRpcInstances[chainId] = new ethers.providers.JsonRpcProvider(
342
+ serverRpcInstances[chainId] = new ethers.providers.StaticJsonRpcProvider(
284
343
  network?.serverRpcUrl
285
344
  );
286
345
  }
@@ -290,7 +349,7 @@ export const getServerRpcProvider = (chainId: number | string) => {
290
349
 
291
350
  export const getRpcProvider = (chainId: number | string) => {
292
351
  if (!rpcInstances[chainId]) {
293
- rpcInstances[chainId] = new ethers.providers.JsonRpcProvider(
352
+ rpcInstances[chainId] = new ethers.providers.StaticJsonRpcProvider(
294
353
  getRpcURLByChainId(Number(chainId))
295
354
  );
296
355
  }
@@ -0,0 +1,21 @@
1
+ export const fetchTokenByAddress = async (
2
+ address: string,
3
+ chainId: string | number,
4
+ tokens?: ITokenPrice[]
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
+
13
+ const [token] = (await $fetch(`${blockQueryURL}/${chainId}/tokens`, {
14
+ params: {
15
+ sparkline: false,
16
+ "addresses[]": [address],
17
+ },
18
+ })) as ITokenPrice[];
19
+
20
+ return token;
21
+ };
package/utils/utils.d.ts CHANGED
@@ -1,100 +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
- chainId: ChainId;
22
- isAvocado?: boolean;
23
- serverRpcUrl: string | undefined;
24
- balanceResolverAddress?: string;
25
- usdcAddress: string;
26
- explorerUrl: string;
27
- params: {
28
- chainName?: string;
29
- iconUrls?: string[];
30
- rpcUrls: string[];
31
- nativeCurrency?: {
32
- name: string;
33
- symbol: string;
34
- 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
+ | 63400;
16
+
17
+ type ISlackMessageType = "danger" | "error" | "success" | "banner";
18
+
19
+ type MetadataTypes = keyof typeof MetadataEnums;
20
+
21
+ type PayloadFunction = (data: any, type: MetadataTypes) => any;
22
+
23
+ type IPayload = Record<MetadataTypes, PayloadFunction>;
24
+
25
+ interface Network {
26
+ name: string;
27
+ debankName?: string;
28
+ ankrName?: string;
29
+ zerionName?: string;
30
+ chainId: ChainId;
31
+ color: string;
32
+ isAvocado?: boolean;
33
+ serverRpcUrl: string | undefined;
34
+ balanceResolverAddress?: string;
35
+ usdcAddress: string;
36
+ explorerUrl: string;
37
+ params: {
38
+ chainName?: string;
39
+ iconUrls?: string[];
40
+ rpcUrls: string[];
41
+ nativeCurrency?: {
42
+ name: string;
43
+ symbol: string;
44
+ decimals: number;
45
+ };
35
46
  };
47
+ }
48
+
49
+ type SignMetadataProps = {
50
+ token: string;
51
+ spender: string;
52
+ amount: string;
53
+ expiration: string;
54
+ };
55
+
56
+ type DappMetadataProps = {
57
+ name: string;
58
+ url: string;
59
+ };
60
+
61
+ type SendMetadataProps = {
62
+ token: string;
63
+ amount: string;
64
+ receiver: string;
65
+ };
66
+
67
+ type CrossSendMetadataProps = {
68
+ fromToken: string;
69
+ toToken: string;
70
+ toChainId: string;
71
+ amount: string;
72
+ receiver: string;
73
+ };
74
+
75
+ type AuthMetadataProps = {
76
+ address: string;
77
+ chainId: string;
78
+ remove: boolean;
36
79
  };
80
+
81
+ type UpgradeMetadataProps = {
82
+ version: string;
83
+ walletImpl: string;
84
+ };
85
+
86
+ type TopupMetadataProps = {
87
+ amount: string;
88
+ token: string;
89
+ onBehalf: string;
90
+ };
91
+
92
+ type BridgeMetadataProps = {
93
+ amount: string;
94
+ receiver: string;
95
+ fromToken: string;
96
+ toToken: string;
97
+ toChainId: string;
98
+ bridgeFee: string;
99
+ nativeToken: string;
100
+ };
101
+
102
+ type SwapMetadataProps = {
103
+ sellToken: string;
104
+ buyToken: string;
105
+ sellAmount: string;
106
+ buyAmount: string;
107
+ receiver: string;
108
+ protocol?: string;
109
+ };
110
+
111
+ type MetadataProps = {
112
+ type: MetadataTypes,
113
+ encodedData: string;
114
+ version?: string;
115
+ };
116
+
117
+ interface ITokenPrice {
118
+ address: string;
119
+ chain_id: string;
120
+ name: string;
121
+ symbol: string;
122
+ decimals: number;
123
+ logo_url: string;
124
+ price: string;
125
+ coingecko_id: string;
126
+ sparkline_price_7d: number[];
127
+ }
128
+
37
129
  }
38
130
 
39
- type SignMetadataProps = {
40
- token: string;
41
- spender: string;
42
- amount: string;
43
- expiration: string;
44
- };
45
-
46
- type DappMetadataProps = {
47
- name: string;
48
- url: string;
49
- };
50
-
51
- type SendMetadataProps = {
52
- token: string;
53
- amount: string;
54
- receiver: string;
55
- };
56
-
57
- type UpgradeMetadataProps = {
58
- version: string;
59
- walletImpl: string;
60
- };
61
-
62
- type TopupMetadataProps = {
63
- amount: string;
64
- token: string;
65
- onBehalf: string;
66
- };
67
-
68
- type BridgeMetadataProps = {
69
- amount: string;
70
- receiver: string;
71
- fromToken: string;
72
- toToken: string;
73
- toChainId: string;
74
- bridgeFee: string;
75
- nativeToken: string;
76
- };
77
-
78
- type SwapMetadataProps = {
79
- sellToken: string;
80
- buyToken: string;
81
- sellAmount: string;
82
- buyAmount: string;
83
- receiver: string;
84
- protocol?: string;
85
- };
86
-
87
- type MetadataProps = {
88
- type:
89
- | "transfer"
90
- | "bridge"
91
- | "swap"
92
- | "multi"
93
- | "gas-topup"
94
- | "upgrade"
95
- | "dapp"
96
- | "deploy"
97
- | "permit2";
98
- encodedData: string;
99
- version?: string;
100
- };
131
+ export { }
132
+