@instadapp/avocado-base 0.0.98 → 0.1.0

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.
@@ -23,6 +23,10 @@ provide('tokens', props.tokens);
23
23
  <MetadataBridge v-if="metadata.type === 'bridge'" :metadata="metadata" :chain_id="chain_id" />
24
24
  <MetadataPermit2 v-if="metadata.type === 'permit2'" :metadata="metadata" :chain_id="chain_id" />
25
25
 
26
+ <div v-if="metadata.type === 'mass'">
27
+ Mass Transfer
28
+ </div>
29
+
26
30
  <div class="text-left w-fit capitalize" v-if="metadata.type === 'import'">
27
31
  Import from {{ metadata.protocol }} ({{ (formatUsd(fromWei(metadata.valueInUsd, 10))) }})
28
32
  </div>
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@instadapp/avocado-base",
3
- "version": "0.0.98",
3
+ "version": "0.1.0",
4
4
  "type": "module",
5
5
  "main": "./nuxt.config.ts",
6
6
  "types": "global.d.ts",
7
- "engines": {
7
+ "engines": {
8
8
  "node": ">=v18.18.0"
9
9
  },
10
10
  "scripts": {
@@ -29,6 +29,7 @@
29
29
  "@vueuse/nuxt": "^10.2.0",
30
30
  "bignumber.js": "^9.1.1",
31
31
  "ethers": "^5.7.2",
32
+ "viem": "^2.7.16",
32
33
  "xxhashjs": "^0.2.2"
33
34
  }
34
35
  }
@@ -19,7 +19,7 @@ export function formatPercent(
19
19
  return formatter.format(valueAsNumber);
20
20
  }
21
21
 
22
- export function shortenHash(hash: string, length: number = 4) {
22
+ export function shortenHash(hash: string | `0x${string}`, length: number = 4) {
23
23
  if (!hash) return;
24
24
  if (hash.length < 12) return hash;
25
25
  const beginningChars = hash.startsWith("0x") ? length + 2 : length;
package/utils/metadata.ts CHANGED
@@ -19,6 +19,7 @@ export const MetadataEnums = {
19
19
  "remove-signers": "remove-signers",
20
20
  "change-threshold": "change-threshold",
21
21
  import: "import",
22
+ mass: "mass",
22
23
  "tx-builder": "tx-builder",
23
24
  "avocado-bridge": "avocado-bridge",
24
25
  } as const;
@@ -72,6 +73,7 @@ const actionMetadataTypes: Record<MetadataTypes, string[]> = {
72
73
  "change-threshold": ["uint8 count"],
73
74
  rejection: ["bytes32 id"],
74
75
  "avocado-bridge": ["bytes32 id", "uint256 toChainId"],
76
+ mass: ["bool isMass"],
75
77
  };
76
78
 
77
79
  const encodeMetadata = (props: MetadataProps) => {
@@ -366,6 +368,15 @@ export const encodeImportMetadata = (
366
368
  return single ? encodeMultipleActions(data) : data;
367
369
  };
368
370
 
371
+ export const encodeMassMetadata = (single = true) => {
372
+ const data = encodeMetadata({
373
+ type: MetadataEnums.mass,
374
+ encodedData: '0x',
375
+ });
376
+
377
+ return single ? encodeMultipleActions(data) : data;
378
+ }
379
+
369
380
  export const encodeAddSignersMetadata = (
370
381
  addresses: string[],
371
382
  single = true
@@ -546,6 +557,9 @@ const typesPayload: IPayload = {
546
557
  id: data.id,
547
558
  toChainId: data.toChainId ? data.toChainId.toString() : null,
548
559
  }),
560
+ mass: (data, type) => ({
561
+ type,
562
+ }),
549
563
  };
550
564
 
551
565
  const parseMetadata = (metadata: string) => {
package/utils/network.ts CHANGED
@@ -1,4 +1,21 @@
1
1
  import { ethers } from "ethers";
2
+ import {
3
+ polygon,
4
+ arbitrum,
5
+ mainnet,
6
+ base,
7
+ optimism,
8
+ polygonZkEvm,
9
+ bsc,
10
+ avalanche,
11
+ fantom,
12
+ gnosis,
13
+ aurora,
14
+ fuse,
15
+ scroll,
16
+ opBNB,
17
+ mode,
18
+ } from "viem/chains";
2
19
  import {
3
20
  AVO_PROD_CHAIN_NAME,
4
21
  AVO_PROD_CHAIN_ID,
@@ -9,11 +26,44 @@ import {
9
26
  AVO_STAGING_RPC_URL,
10
27
  AVO_STAGING_EXPLORER_URL,
11
28
  } from "./avocado";
29
+ import { defineChain } from "viem";
12
30
 
13
31
  export const bridgeDisabledNetworks = [];
14
32
 
15
33
  export const networksSimulationNotSupported = [1313161554, 1101];
16
34
 
35
+ const avocado = defineChain({
36
+ id: AVO_PROD_CHAIN_ID,
37
+ name: AVO_PROD_CHAIN_NAME,
38
+ nativeCurrency: {
39
+ name: "Avocado",
40
+ symbol: "USDC",
41
+ decimals: 18,
42
+ },
43
+ rpcUrls: {
44
+ default: { http: [AVO_PROD_RPC_URL] },
45
+ },
46
+ blockExplorers: {
47
+ default: { name: "Avoscan", url: AVO_PROD_EXPLORER_URL },
48
+ },
49
+ });
50
+
51
+ const avocadoStaging = defineChain({
52
+ id: AVO_STAGING_CHAIN_ID,
53
+ name: AVO_STAGING_CHAIN_NAME,
54
+ nativeCurrency: {
55
+ name: "Avocado",
56
+ symbol: "USDC",
57
+ decimals: 18,
58
+ },
59
+ rpcUrls: {
60
+ default: { http: [AVO_STAGING_RPC_URL] },
61
+ },
62
+ blockExplorers: {
63
+ default: { name: "Avoscan", url: AVO_STAGING_EXPLORER_URL },
64
+ },
65
+ });
66
+
17
67
  export const networks: Network[] = [
18
68
  {
19
69
  name: "Polygon",
@@ -22,6 +72,7 @@ export const networks: Network[] = [
22
72
  zerionName: "polygon",
23
73
  color: "#7A4ADD",
24
74
  chainId: 137,
75
+ viemChain: polygon,
25
76
  balanceResolverAddress: "0x58632D23120b20650262b8A629a14e4F4043E0D9",
26
77
  usdcAddress: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
27
78
  explorerUrl: "https://polygonscan.com",
@@ -46,6 +97,7 @@ export const networks: Network[] = [
46
97
  debankName: "arb",
47
98
  ankrName: "arbitrum",
48
99
  zerionName: "arbitrum",
100
+ viemChain: arbitrum,
49
101
  color: "#2D374B",
50
102
  chainId: 42161,
51
103
  usdcAddress: "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8",
@@ -72,6 +124,7 @@ export const networks: Network[] = [
72
124
  debankName: "eth",
73
125
  ankrName: "eth",
74
126
  zerionName: "ethereum",
127
+ viemChain: mainnet,
75
128
  chainId: 1,
76
129
  explorerUrl: "https://etherscan.io",
77
130
  fakeTransactionHash:
@@ -97,6 +150,7 @@ export const networks: Network[] = [
97
150
  chainId: 8453,
98
151
  color: "#1E2024",
99
152
  ankrName: "base",
153
+ viemChain: base,
100
154
  explorerUrl: "https://basescan.org",
101
155
  fakeTransactionHash:
102
156
  "0xf7833d80da33730c4fc5d4c64151f0eaa64c0c0535be022af0228a44cc4e9c8e",
@@ -122,6 +176,7 @@ export const networks: Network[] = [
122
176
  ankrName: "optimism",
123
177
  zerionName: "optimism",
124
178
  color: "#FF0420",
179
+ viemChain: optimism,
125
180
  chainId: 10,
126
181
  apiURL: "https://api-optimistic.etherscan.io",
127
182
  usdcAddress: "0x7f5c764cbc14f9669b88837ca1490cca17c31607",
@@ -147,6 +202,7 @@ export const networks: Network[] = [
147
202
  chainId: 1101,
148
203
  color: "#8544f6",
149
204
  ankrName: "polygon_zkevm",
205
+ viemChain: polygonZkEvm,
150
206
  explorerUrl: "https://zkevm.polygonscan.com",
151
207
  apiURL: "https://api-zkevm.polygonscan.com",
152
208
  balanceResolverAddress: "0x48D1Fa5Ee6691a1E0B45d2B515650997BEA27a01",
@@ -174,6 +230,7 @@ export const networks: Network[] = [
174
230
  color: "#F3BA2F",
175
231
  chainId: 56,
176
232
  explorerUrl: "https://bscscan.com",
233
+ viemChain: bsc,
177
234
  fakeTransactionHash:
178
235
  "0x897d54bf8e492f840bd4d8f1e743bfcab8226ab4d5a899e47ee433dcd6d6abf7",
179
236
  apiURL: "https://api.bscscan.com",
@@ -198,6 +255,7 @@ export const networks: Network[] = [
198
255
  ankrName: "avalanche",
199
256
  zerionName: "avalanche",
200
257
  color: "#EB5757",
258
+ viemChain: avalanche,
201
259
  chainId: 43114,
202
260
  usdcAddress: "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e",
203
261
  balanceResolverAddress: "0x63009f31D054E0ac9F321Cf0D642375236A4Bf1E",
@@ -225,6 +283,7 @@ export const networks: Network[] = [
225
283
  explorerUrl: "https://ftmscan.com",
226
284
  ankrName: "fantom",
227
285
  color: "#1969ff",
286
+ viemChain: fantom,
228
287
  get serverRpcUrl() {
229
288
  return process.env?.FANTOM_RPC_URL || this.params.rpcUrls[0];
230
289
  },
@@ -248,6 +307,7 @@ export const networks: Network[] = [
248
307
  zerionName: "xdai",
249
308
  color: "#04795C",
250
309
  ankrName: "gnosis",
310
+ viemChain: gnosis,
251
311
  chainId: 100,
252
312
  balanceResolverAddress: "0xfaa244e276b1597f663975ed007ee4ff70d27849",
253
313
  explorerUrl: "https://gnosisscan.io",
@@ -273,6 +333,7 @@ export const networks: Network[] = [
273
333
  chainId: 1313161554,
274
334
  zerionName: "aurora",
275
335
  color: "#78d64b",
336
+ viemChain: aurora,
276
337
  explorerUrl: "https://explorer.mainnet.aurora.dev",
277
338
  fakeTransactionHash:
278
339
  "0x0923401c5a80c39a5cd57c098a6c4729edbefd0db6894def7d349493f4ff3ec6",
@@ -297,6 +358,7 @@ export const networks: Network[] = [
297
358
  zerionName: "fuse",
298
359
  color: "#78d64b",
299
360
  explorerUrl: "https://explorer.fuse.io",
361
+ viemChain: fuse,
300
362
  fakeTransactionHash:
301
363
  "0xf22a8031de9b978a57c728e18c6b54633356c39db4d0466e53b9b7c3ee7f8def",
302
364
  get serverRpcUrl() {
@@ -318,7 +380,9 @@ export const networks: Network[] = [
318
380
  name: "Scroll",
319
381
  chainId: 534352,
320
382
  color: "#78d64b",
383
+ ankrName: 'scroll',
321
384
  explorerUrl: "https://scrollscan.com",
385
+ viemChain: scroll,
322
386
  fakeTransactionHash:
323
387
  "0x6bf297c414264fc8cddd47224632b4426a02138df2f50fe891eca87f6aefea01",
324
388
  get serverRpcUrl() {
@@ -339,6 +403,7 @@ export const networks: Network[] = [
339
403
  chainId: 204,
340
404
  color: "#78d64b",
341
405
  explorerUrl: "https://opbnbscan.com",
406
+ viemChain: opBNB,
342
407
  fakeTransactionHash:
343
408
  "0xb9438a3eae61442bc7d419d79930370ce09ac0f46e0695025751e3bfe1a931e7",
344
409
  get serverRpcUrl() {
@@ -354,6 +419,26 @@ export const networks: Network[] = [
354
419
  },
355
420
  },
356
421
  },
422
+ {
423
+ chainId: 34443,
424
+ name: "Mode",
425
+ color: "#d7ff00",
426
+ explorerUrl: 'https://explorer.mode.network',
427
+ fakeTransactionHash: '0xb58002db3481f2c51855a91280ec940d0bebec075c4b362b9f90c21a2b14edbe',
428
+ params: {
429
+ rpcUrls: ["https://1rpc.io/mode"],
430
+ chainName: "Mode",
431
+ nativeCurrency: {
432
+ name: "Ethereum",
433
+ symbol: "ETH",
434
+ decimals: 18,
435
+ }
436
+ },
437
+ get serverRpcUrl() {
438
+ return process.env?.MODE_RPC_URL || this.params.rpcUrls[0];
439
+ },
440
+ viemChain: mode,
441
+ },
357
442
  // {
358
443
  // name: "Manta Pacific",
359
444
  // chainId: 169,
@@ -379,6 +464,7 @@ export const networks: Network[] = [
379
464
  isAvocado: true,
380
465
  balanceResolverAddress: "",
381
466
  fakeTransactionHash: "",
467
+ viemChain: avocado,
382
468
  color: "#16A34A",
383
469
  usdcAddress: "",
384
470
  serverRpcUrl: AVO_PROD_RPC_URL,
@@ -400,6 +486,7 @@ export const networks: Network[] = [
400
486
  serverRpcUrl: AVO_STAGING_RPC_URL,
401
487
  color: "#16A34A",
402
488
  explorerUrl: AVO_STAGING_EXPLORER_URL,
489
+ viemChain: avocadoStaging,
403
490
  fakeTransactionHash: "",
404
491
  isAvocado: true,
405
492
  balanceResolverAddress: "",
package/utils/utils.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import type { Chain } from "viem";
2
+
1
3
  declare global {
2
4
  type ChainId =
3
5
  | 1
@@ -16,7 +18,8 @@ declare global {
16
18
  | 534352
17
19
  | 204
18
20
  | 63400
19
- | 169;
21
+ | 169
22
+ | 34443
20
23
 
21
24
  type ISlackMessageType = "danger" | "error" | "success" | "banner";
22
25
 
@@ -39,6 +42,7 @@ declare global {
39
42
  usdcAddress?: string;
40
43
  explorerUrl: string;
41
44
  fakeTransactionHash: string;
45
+ viemChain: Chain;
42
46
  apiURL?: string;
43
47
  params: {
44
48
  chainName?: string;