@instadapp/avocado-base 0.0.0-dev.9807f71 → 0.0.0-dev.9853aa2
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/forwarder.json +1253 -149
- package/assets/images/icons/arrow-left.svg +5 -0
- package/assets/images/icons/arrow-right.svg +5 -0
- package/assets/images/icons/avocado.svg +4 -0
- package/assets/images/icons/bridge-2.svg +3 -0
- package/assets/images/icons/bridge.svg +7 -0
- package/assets/images/icons/calendar.svg +8 -0
- package/assets/images/icons/check-circle.svg +4 -0
- package/assets/images/icons/chevron-down.svg +4 -0
- package/assets/images/icons/clipboard.svg +7 -0
- package/assets/images/icons/clock-circle.svg +5 -0
- package/assets/images/icons/copy.svg +5 -0
- package/assets/images/icons/error-circle.svg +6 -0
- package/assets/images/icons/exclamation-circle.svg +13 -0
- package/assets/images/icons/exclamation-octagon.svg +13 -0
- package/assets/images/icons/exclamation-triangle.svg +5 -0
- package/assets/images/icons/external-link.svg +6 -0
- package/assets/images/icons/eye.svg +4 -0
- package/assets/images/icons/flowers.svg +8 -0
- package/assets/images/icons/gas-emoji.svg +193 -0
- package/assets/images/icons/gas.svg +7 -0
- package/assets/images/icons/gift.svg +153 -0
- package/assets/images/icons/globe.svg +110 -0
- package/assets/images/icons/hamburger.svg +6 -0
- package/assets/images/icons/logout.svg +3 -0
- package/assets/images/icons/moon.svg +3 -0
- package/assets/images/icons/network.svg +13 -0
- package/assets/images/icons/options.svg +5 -0
- package/assets/images/icons/plus.svg +5 -0
- package/assets/images/icons/power-off-bg.svg +24 -0
- package/assets/images/icons/power-off.svg +19 -0
- package/assets/images/icons/power-on.svg +19 -0
- package/assets/images/icons/qr.svg +20 -0
- package/assets/images/icons/question-circle.svg +14 -0
- package/assets/images/icons/refresh.svg +6 -0
- package/assets/images/icons/search.svg +12 -0
- package/assets/images/icons/sun.svg +3 -0
- package/assets/images/icons/wave.svg +214 -0
- package/assets/images/icons/x.svg +5 -0
- package/components/ActionMetadata.vue +53 -0
- package/components/ChainLogo.vue +141 -1
- package/components/metadata/Bridge.vue +39 -0
- package/components/metadata/CrossTransfer.vue +67 -0
- package/components/metadata/GasTopup.vue +33 -0
- package/components/metadata/Permit2.vue +37 -0
- package/components/metadata/Swap.vue +67 -0
- package/components/metadata/Transfer.vue +46 -0
- package/components.d.ts +13 -0
- package/contracts/Forwarder.ts +856 -2
- package/contracts/factories/Forwarder__factory.ts +816 -16
- package/nuxt.config.ts +17 -1
- package/package.json +6 -3
- package/utils/avocado.ts +2 -0
- package/utils/bignumber.ts +20 -0
- package/utils/formatter.ts +49 -6
- package/utils/metadata.ts +278 -124
- package/utils/network.ts +71 -9
- package/utils/services.ts +14 -0
- package/utils/utils.d.ts +45 -2
package/utils/network.ts
CHANGED
|
@@ -4,11 +4,13 @@ export const bridgeDisabledNetworks = [1101];
|
|
|
4
4
|
|
|
5
5
|
export const networks: Network[] = [
|
|
6
6
|
{
|
|
7
|
-
name: "
|
|
7
|
+
name: "Ethereum",
|
|
8
8
|
debankName: "eth",
|
|
9
9
|
ankrName: "eth",
|
|
10
|
+
zerionName: "ethereum",
|
|
10
11
|
chainId: 1,
|
|
11
12
|
explorerUrl: "https://etherscan.io",
|
|
13
|
+
color: "#5D5FEF",
|
|
12
14
|
get serverRpcUrl() {
|
|
13
15
|
return process.env?.MAINNET_RPC_URL || this.params.rpcUrls[0];
|
|
14
16
|
},
|
|
@@ -27,6 +29,8 @@ export const networks: Network[] = [
|
|
|
27
29
|
name: "Polygon",
|
|
28
30
|
debankName: "matic",
|
|
29
31
|
ankrName: "polygon",
|
|
32
|
+
zerionName: "polygon",
|
|
33
|
+
color: "#7A4ADD",
|
|
30
34
|
chainId: 137,
|
|
31
35
|
balanceResolverAddress: "0x58632D23120b20650262b8A629a14e4F4043E0D9",
|
|
32
36
|
usdcAddress: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
|
|
@@ -48,6 +52,8 @@ export const networks: Network[] = [
|
|
|
48
52
|
name: "Arbitrum",
|
|
49
53
|
debankName: "arb",
|
|
50
54
|
ankrName: "arbitrum",
|
|
55
|
+
zerionName: "arbitrum",
|
|
56
|
+
color: "#2D374B",
|
|
51
57
|
chainId: 42161,
|
|
52
58
|
usdcAddress: "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8",
|
|
53
59
|
balanceResolverAddress: "0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2",
|
|
@@ -69,6 +75,8 @@ export const networks: Network[] = [
|
|
|
69
75
|
name: "Optimism",
|
|
70
76
|
debankName: "op",
|
|
71
77
|
ankrName: "optimism",
|
|
78
|
+
zerionName: "optimism",
|
|
79
|
+
color: "#FF0420",
|
|
72
80
|
chainId: 10,
|
|
73
81
|
usdcAddress: "0x7f5c764cbc14f9669b88837ca1490cca17c31607",
|
|
74
82
|
balanceResolverAddress: "0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2",
|
|
@@ -83,13 +91,15 @@ export const networks: Network[] = [
|
|
|
83
91
|
symbol: "ETH",
|
|
84
92
|
decimals: 18,
|
|
85
93
|
},
|
|
86
|
-
rpcUrls: ["https://
|
|
94
|
+
rpcUrls: ["https://rpc.ankr.com/optimism"],
|
|
87
95
|
},
|
|
88
96
|
},
|
|
89
97
|
{
|
|
90
98
|
name: "Avalanche",
|
|
91
99
|
debankName: "avax",
|
|
92
100
|
ankrName: "avalanche",
|
|
101
|
+
zerionName: "avalanche",
|
|
102
|
+
color: "#EB5757",
|
|
93
103
|
chainId: 43114,
|
|
94
104
|
usdcAddress: "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e",
|
|
95
105
|
balanceResolverAddress: "0x63009f31D054E0ac9F321Cf0D642375236A4Bf1E",
|
|
@@ -104,13 +114,15 @@ export const networks: Network[] = [
|
|
|
104
114
|
symbol: "AVAX",
|
|
105
115
|
decimals: 18,
|
|
106
116
|
},
|
|
107
|
-
rpcUrls: ["https://
|
|
117
|
+
rpcUrls: ["https://rpc.ankr.com/avalanche"],
|
|
108
118
|
},
|
|
109
119
|
},
|
|
110
120
|
{
|
|
111
121
|
name: "BSC",
|
|
112
122
|
debankName: "bsc",
|
|
113
123
|
ankrName: "bsc",
|
|
124
|
+
zerionName: "binance-smart-chain",
|
|
125
|
+
color: "#F3BA2F",
|
|
114
126
|
chainId: 56,
|
|
115
127
|
explorerUrl: "https://bscscan.com",
|
|
116
128
|
usdcAddress: "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d",
|
|
@@ -131,7 +143,8 @@ export const networks: Network[] = [
|
|
|
131
143
|
{
|
|
132
144
|
name: "Gnosis",
|
|
133
145
|
debankName: "xdai",
|
|
134
|
-
|
|
146
|
+
zerionName: "xdai",
|
|
147
|
+
color: "#04795C",
|
|
135
148
|
chainId: 100,
|
|
136
149
|
balanceResolverAddress: "0xfaa244e276b1597f663975ed007ee4ff70d27849",
|
|
137
150
|
explorerUrl: "https://gnosisscan.io",
|
|
@@ -152,6 +165,7 @@ export const networks: Network[] = [
|
|
|
152
165
|
{
|
|
153
166
|
name: "Polygon zkEVM",
|
|
154
167
|
chainId: 1101,
|
|
168
|
+
color: "#8544f6",
|
|
155
169
|
explorerUrl: "https://zkevm.polygonscan.com",
|
|
156
170
|
balanceResolverAddress: "0x48D1Fa5Ee6691a1E0B45d2B515650997BEA27a01",
|
|
157
171
|
usdcAddress: "0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035",
|
|
@@ -160,7 +174,7 @@ export const networks: Network[] = [
|
|
|
160
174
|
},
|
|
161
175
|
params: {
|
|
162
176
|
chainName: "polygon zkEVM",
|
|
163
|
-
rpcUrls: ["https://rpc.
|
|
177
|
+
rpcUrls: ["https://zkevm-rpc.com"],
|
|
164
178
|
|
|
165
179
|
nativeCurrency: {
|
|
166
180
|
name: "Ethereum",
|
|
@@ -169,11 +183,55 @@ export const networks: Network[] = [
|
|
|
169
183
|
},
|
|
170
184
|
},
|
|
171
185
|
},
|
|
186
|
+
{
|
|
187
|
+
name: "Aurora",
|
|
188
|
+
chainId: 1313161554,
|
|
189
|
+
zerionName: "aurora",
|
|
190
|
+
color: "#78d64b",
|
|
191
|
+
explorerUrl: "https://explorer.mainnet.aurora.dev",
|
|
192
|
+
get serverRpcUrl() {
|
|
193
|
+
return process.env?.AURORA_RPC_URL || this.params.rpcUrls[0];
|
|
194
|
+
},
|
|
195
|
+
usdcAddress: "0xB12BFcA5A55806AaF64E99521918A4bf0fC40802",
|
|
196
|
+
balanceResolverAddress: "0xdF19Da523DA64bBE82eE0E4DFf00d676A8386474",
|
|
197
|
+
params: {
|
|
198
|
+
rpcUrls: ["https://mainnet.aurora.dev"],
|
|
199
|
+
chainName: "Aurora",
|
|
200
|
+
nativeCurrency: {
|
|
201
|
+
decimals: 18,
|
|
202
|
+
name: "Aurora ETH",
|
|
203
|
+
symbol: "AETH",
|
|
204
|
+
},
|
|
205
|
+
},
|
|
206
|
+
},
|
|
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
|
+
},
|
|
172
229
|
{
|
|
173
230
|
name: AVO_PROD_CHAIN_NAME,
|
|
174
231
|
chainId: AVO_PROD_CHAIN_ID,
|
|
175
232
|
isAvocado: true,
|
|
176
233
|
balanceResolverAddress: "",
|
|
234
|
+
color: "#16A34A",
|
|
177
235
|
usdcAddress: "",
|
|
178
236
|
serverRpcUrl: AVO_PROD_RPC_URL,
|
|
179
237
|
explorerUrl: AVO_PROD_EXPLORER_URL,
|
|
@@ -192,6 +250,7 @@ export const networks: Network[] = [
|
|
|
192
250
|
name: AVO_STAGING_CHAIN_NAME,
|
|
193
251
|
chainId: AVO_STAGING_CHAIN_ID,
|
|
194
252
|
serverRpcUrl: AVO_STAGING_RPC_URL,
|
|
253
|
+
color: "#16A34A",
|
|
195
254
|
explorerUrl: AVO_STAGING_EXPLORER_URL,
|
|
196
255
|
isAvocado: true,
|
|
197
256
|
balanceResolverAddress: "",
|
|
@@ -236,13 +295,16 @@ export const RPCMap = networks.reduce((acc, network) => {
|
|
|
236
295
|
|
|
237
296
|
export const networkIds = networks.map((network) => network.chainId);
|
|
238
297
|
|
|
239
|
-
const rpcInstances: Record<string, ethers.providers.
|
|
240
|
-
const serverRpcInstances: Record<
|
|
298
|
+
const rpcInstances: Record<string, ethers.providers.StaticJsonRpcProvider> = {};
|
|
299
|
+
const serverRpcInstances: Record<
|
|
300
|
+
string,
|
|
301
|
+
ethers.providers.StaticJsonRpcProvider
|
|
302
|
+
> = {};
|
|
241
303
|
|
|
242
304
|
export const getServerRpcProvider = (chainId: number | string) => {
|
|
243
305
|
if (!rpcInstances[chainId]) {
|
|
244
306
|
const network = networks.find((n) => n.chainId == chainId);
|
|
245
|
-
serverRpcInstances[chainId] = new ethers.providers.
|
|
307
|
+
serverRpcInstances[chainId] = new ethers.providers.StaticJsonRpcProvider(
|
|
246
308
|
network?.serverRpcUrl
|
|
247
309
|
);
|
|
248
310
|
}
|
|
@@ -252,7 +314,7 @@ export const getServerRpcProvider = (chainId: number | string) => {
|
|
|
252
314
|
|
|
253
315
|
export const getRpcProvider = (chainId: number | string) => {
|
|
254
316
|
if (!rpcInstances[chainId]) {
|
|
255
|
-
rpcInstances[chainId] = new ethers.providers.
|
|
317
|
+
rpcInstances[chainId] = new ethers.providers.StaticJsonRpcProvider(
|
|
256
318
|
getRpcURLByChainId(Number(chainId))
|
|
257
319
|
);
|
|
258
320
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export const fetchTokenByAddress = async (
|
|
2
|
+
address: string,
|
|
3
|
+
chainId: string | number
|
|
4
|
+
) => {
|
|
5
|
+
if (!address || !chainId) return null;
|
|
6
|
+
const [token] = (await $fetch(`${blockQueryURL}/${chainId}/tokens`, {
|
|
7
|
+
params: {
|
|
8
|
+
sparkline: false,
|
|
9
|
+
"addresses[]": [address],
|
|
10
|
+
},
|
|
11
|
+
})) as ITokenPrice[];
|
|
12
|
+
|
|
13
|
+
return token;
|
|
14
|
+
};
|
package/utils/utils.d.ts
CHANGED
|
@@ -1,4 +1,16 @@
|
|
|
1
|
-
type ChainId =
|
|
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;
|
|
2
14
|
|
|
3
15
|
type ISlackMessageType = "danger" | "error" | "success" | "banner";
|
|
4
16
|
|
|
@@ -6,7 +18,9 @@ interface Network {
|
|
|
6
18
|
name: string;
|
|
7
19
|
debankName?: string;
|
|
8
20
|
ankrName?: string;
|
|
21
|
+
zerionName?: string;
|
|
9
22
|
chainId: ChainId;
|
|
23
|
+
color: string;
|
|
10
24
|
isAvocado?: boolean;
|
|
11
25
|
serverRpcUrl: string | undefined;
|
|
12
26
|
balanceResolverAddress?: string;
|
|
@@ -42,6 +56,20 @@ type SendMetadataProps = {
|
|
|
42
56
|
receiver: string;
|
|
43
57
|
};
|
|
44
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
|
+
|
|
45
73
|
type UpgradeMetadataProps = {
|
|
46
74
|
version: string;
|
|
47
75
|
walletImpl: string;
|
|
@@ -82,7 +110,22 @@ type MetadataProps = {
|
|
|
82
110
|
| "upgrade"
|
|
83
111
|
| "dapp"
|
|
84
112
|
| "deploy"
|
|
85
|
-
| "permit2"
|
|
113
|
+
| "permit2"
|
|
114
|
+
| "cross-transfer"
|
|
115
|
+
| "auth"
|
|
116
|
+
| "reject";
|
|
86
117
|
encodedData: string;
|
|
87
118
|
version?: string;
|
|
88
119
|
};
|
|
120
|
+
|
|
121
|
+
interface ITokenPrice {
|
|
122
|
+
address: string;
|
|
123
|
+
chain_id: string;
|
|
124
|
+
name: string;
|
|
125
|
+
symbol: string;
|
|
126
|
+
decimals: number;
|
|
127
|
+
logo_url: string;
|
|
128
|
+
price: string;
|
|
129
|
+
coingecko_id: string;
|
|
130
|
+
sparkline_price_7d: number[];
|
|
131
|
+
}
|