@instadapp/avocado-base 0.0.0-dev.083a57a → 0.0.0-dev.0841bfc

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 (34) hide show
  1. package/app.vue +7 -0
  2. package/assets/images/icons/change-threshold.svg +4 -0
  3. package/assets/images/icons/cross-transfer.svg +7 -0
  4. package/assets/images/icons/dapp.svg +4 -0
  5. package/assets/images/icons/deploy.svg +12 -0
  6. package/assets/images/icons/gas.svg +12 -5
  7. package/assets/images/icons/instadapp-pro.svg +4 -0
  8. package/assets/images/icons/multi-send.svg +7 -0
  9. package/assets/images/icons/permit-sign.svg +11 -0
  10. package/assets/images/icons/plus-circle.svg +6 -0
  11. package/assets/images/icons/refresh.svg +4 -4
  12. package/assets/images/icons/reject-proposal.svg +6 -0
  13. package/assets/images/icons/transfer.svg +5 -0
  14. package/assets/images/icons/trash-2.svg +8 -0
  15. package/assets/images/icons/upgrade.svg +4 -0
  16. package/components/ActionLogo.vue +38 -0
  17. package/components/ActionMetadata.vue +23 -4
  18. package/components/AuthorityAvatar.vue +26 -0
  19. package/components/ChainLogo.vue +4 -562
  20. package/components/CopyClipboard.vue +64 -0
  21. package/components/metadata/Bridge.vue +26 -6
  22. package/components/metadata/CrossTransfer.vue +5 -1
  23. package/components/metadata/GasTopup.vue +7 -1
  24. package/components/metadata/Permit2.vue +6 -1
  25. package/components/metadata/Signers.vue +45 -0
  26. package/components/metadata/Swap.vue +9 -2
  27. package/components/metadata/Transfer.vue +6 -2
  28. package/package.json +5 -3
  29. package/utils/formatter.ts +1 -1
  30. package/utils/helper.ts +19 -0
  31. package/utils/metadata.ts +193 -115
  32. package/utils/network.ts +124 -79
  33. package/utils/services.ts +8 -1
  34. package/utils/utils.d.ts +128 -126
package/utils/network.ts CHANGED
@@ -1,30 +1,18 @@
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
13
  export const bridgeDisabledNetworks = [1101];
4
14
 
5
15
  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
16
  {
29
17
  name: "Polygon",
30
18
  debankName: "matic",
@@ -71,6 +59,48 @@ export const networks: Network[] = [
71
59
  rpcUrls: ["https://arb1.arbitrum.io/rpc"],
72
60
  },
73
61
  },
62
+ {
63
+ name: "Ethereum",
64
+ debankName: "eth",
65
+ ankrName: "eth",
66
+ zerionName: "ethereum",
67
+ chainId: 1,
68
+ explorerUrl: "https://etherscan.io",
69
+ color: "#5D5FEF",
70
+ get serverRpcUrl() {
71
+ return process.env?.MAINNET_RPC_URL || this.params.rpcUrls[0];
72
+ },
73
+ balanceResolverAddress: "0x5b7D61b389D12e1f5873d0cCEe7E675915AB5F43",
74
+ usdcAddress: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
75
+ params: {
76
+ rpcUrls: ["https://rpc.ankr.com/eth"],
77
+ nativeCurrency: {
78
+ name: "Ethereum",
79
+ symbol: "ETH",
80
+ decimals: 18,
81
+ },
82
+ },
83
+ },
84
+ {
85
+ name: 'Base',
86
+ chainId: 8453,
87
+ color: '#1E2024',
88
+ explorerUrl: 'https://basescan.org',
89
+ get serverRpcUrl() {
90
+ return process.env?.BASE_RPC_URL || this.params.rpcUrls[0];
91
+ },
92
+ usdcAddress: '0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA',
93
+ balanceResolverAddress: '0x23c8EAb8a4373dD16b0947Ebe8bf76Ff7A49d13C',
94
+ params: {
95
+ rpcUrls: ['https://rpc.ankr.com/base'],
96
+ chainName: "Base",
97
+ nativeCurrency: {
98
+ name: "Ethereum",
99
+ symbol: "ETH",
100
+ decimals: 18,
101
+ },
102
+ }
103
+ },
74
104
  {
75
105
  name: "Optimism",
76
106
  debankName: "op",
@@ -95,26 +125,23 @@ export const networks: Network[] = [
95
125
  },
96
126
  },
97
127
  {
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",
128
+ name: "Polygon zkEVM",
129
+ chainId: 1101,
130
+ color: "#8544f6",
131
+ explorerUrl: "https://zkevm.polygonscan.com",
132
+ balanceResolverAddress: "0x48D1Fa5Ee6691a1E0B45d2B515650997BEA27a01",
133
+ usdcAddress: "0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035",
107
134
  get serverRpcUrl() {
108
- return process.env?.AVALANCHE_RPC_URL || this.params.rpcUrls[0];
135
+ return process.env?.POLYGON_ZKEVM_RPC_URL || this.params.rpcUrls[0];
109
136
  },
110
137
  params: {
111
- chainName: "Avalanche Network",
138
+ chainName: "polygon zkEVM",
139
+ rpcUrls: ["https://zkevm-rpc.com"],
112
140
  nativeCurrency: {
113
- name: "Avalanche",
114
- symbol: "AVAX",
141
+ name: "Ethereum",
142
+ symbol: "ETH",
115
143
  decimals: 18,
116
144
  },
117
- rpcUrls: ["https://rpc.ankr.com/avalanche"],
118
145
  },
119
146
  },
120
147
  {
@@ -140,6 +167,51 @@ export const networks: Network[] = [
140
167
  },
141
168
  },
142
169
  },
170
+ {
171
+ name: "Avalanche",
172
+ debankName: "avax",
173
+ ankrName: "avalanche",
174
+ zerionName: "avalanche",
175
+ color: "#EB5757",
176
+ chainId: 43114,
177
+ usdcAddress: "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e",
178
+ balanceResolverAddress: "0x63009f31D054E0ac9F321Cf0D642375236A4Bf1E",
179
+ explorerUrl: "https://snowtrace.io",
180
+ get serverRpcUrl() {
181
+ return process.env?.AVALANCHE_RPC_URL || this.params.rpcUrls[0];
182
+ },
183
+ params: {
184
+ chainName: "Avalanche Network",
185
+ nativeCurrency: {
186
+ name: "Avalanche",
187
+ symbol: "AVAX",
188
+ decimals: 18,
189
+ },
190
+ rpcUrls: ["https://rpc.ankr.com/avalanche"],
191
+ },
192
+ },
193
+ {
194
+ name: "Fantom",
195
+ chainId: 250,
196
+ zerionName: "fantom",
197
+ explorerUrl: "https://ftmscan.com",
198
+ ankrName: "fantom",
199
+ color: "#1969ff",
200
+ get serverRpcUrl() {
201
+ return process.env?.FANTOM_RPC_URL || this.params.rpcUrls[0];
202
+ },
203
+ usdcAddress: "0x04068da6c83afcfa0e13ba15a6696662335d5b75",
204
+ balanceResolverAddress: "0x929376c77a2fb8152375a089a4fccf84ff481479",
205
+ params: {
206
+ rpcUrls: ["https://rpc.ankr.com/fantom"],
207
+ chainName: "Fantom",
208
+ nativeCurrency: {
209
+ name: "Fantom",
210
+ symbol: "FTM",
211
+ decimals: 18,
212
+ },
213
+ },
214
+ },
143
215
  {
144
216
  name: "Gnosis",
145
217
  debankName: "xdai",
@@ -162,27 +234,6 @@ export const networks: Network[] = [
162
234
  },
163
235
  },
164
236
  },
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
237
  {
187
238
  name: "Aurora",
188
239
  chainId: 1313161554,
@@ -204,28 +255,6 @@ export const networks: Network[] = [
204
255
  },
205
256
  },
206
257
  },
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
258
  {
230
259
  name: AVO_PROD_CHAIN_NAME,
231
260
  chainId: AVO_PROD_CHAIN_ID,
@@ -268,6 +297,22 @@ export const networks: Network[] = [
268
297
  },
269
298
  ];
270
299
 
300
+ export const chainUsdcAddresses = [
301
+ { chainId: 1, address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48' },
302
+ { chainId: 10, address: '0x7f5c764cbc14f9669b88837ca1490cca17c31607' },
303
+ { chainId: 56, address: '0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d' },
304
+ { chainId: 100, address: '0xddafbb505ad214d7b80b1f830fccc89b60fb7a83' },
305
+ { chainId: 137, address: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174' },
306
+ { chainId: 250, address: '0x04068da6c83afcfa0e13ba15a6696662335d5b75' },
307
+ { chainId: 42161, address: '0xff970a61a04b1ca14834a43f5de4533ebddb5cc8' },
308
+ { chainId: 42161, address: '0xaf88d065e77c8cc2239327c5edb3a432268e5831' },
309
+ { chainId: 43114, address: '0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e' },
310
+ { chainId: 43114, address: '0xa7d7079b0fead91f3e65f86e8915cb59c1a4c664' },
311
+ { chainId: 1101, address: '0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035' },
312
+ { chainId: 1313161554, address: '0xB12BFcA5A55806AaF64E99521918A4bf0fC40802' },
313
+ { chainId: 8453, address: '0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA'}
314
+ ];
315
+
271
316
  export const getNetworkByChainId = (
272
317
  chainId: ChainId | number | string
273
318
  ): 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
+ | 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
+ };
37
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;
38
79
  };
39
- }
40
80
 
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[];
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
+
130
129
  }
130
+
131
+ export { }
132
+