@instadapp/avocado-base 0.0.0-dev.fcdcc0f → 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.
@@ -0,0 +1,5 @@
1
+ <svg width="18" height="18" viewBox="0 0 18 18" fill="none"
2
+ xmlns="http://www.w3.org/2000/svg">
3
+ <path d="M16.0678 8.64793L17.2102 9.79039C17.4404 10.0205 17.4334 10.4006 17.1947 10.6393L14.169 13.6651C13.9302 13.9038 13.5501 13.9108 13.32 13.6806L12.0532 12.4139C11.8231 12.1837 11.83 11.8036 12.0687 11.5649C12.6078 11.0259 12.9103 10.7041 12.4882 9.98816C12.128 9.37711 10.7867 8.04387 9.9829 8.84766L9.026 9.80457C8.79152 10.0391 8.42065 10.0499 8.18946 9.83216C8.18527 9.82822 8.18113 9.8242 8.17704 9.82011C7.60427 9.24734 6.86936 8.69159 6.39943 8.03122C6.20623 7.75971 6.27917 7.35876 6.56293 7.14058C7.13082 6.70394 7.83604 6.05667 7.51626 5.73688C7.00756 5.22819 6.64232 4.84336 6.00502 4.36291C4.84749 3.49024 2.98873 2.86307 1.68669 2.5009C1.49898 2.44869 1.54877 2.11407 1.74553 2.11091C1.74865 2.11086 1.74938 2.1109 1.7525 2.11067C1.8512 2.10361 5.1158 1.87459 7.10771 2.35491C8.41273 2.66961 9.17363 2.87223 10.3122 3.56383C11.7706 4.44979 12.9611 5.54124 13.3465 6.69684C13.732 7.85244 12.8562 8.45813 13.6146 8.8618C14.0693 9.10386 14.6271 9.08774 15.0305 8.72253C15.3277 8.4534 15.7944 8.37456 16.0678 8.64793Z" fill="currentColor"/>
4
+ <path d="M8.17704 9.82011C8.18113 9.8242 8.18527 9.82822 8.18946 9.83216M8.17704 9.82011L8.18946 9.83216M8.17704 9.82011C7.60427 9.24734 6.86936 8.69159 6.39943 8.03122M8.18946 9.83216C8.42065 10.0499 8.79152 10.0391 9.026 9.80457L9.9829 8.84766C10.7867 8.04387 12.128 9.37711 12.4882 9.98816C12.9103 10.7041 12.6078 11.0259 12.0687 11.5649C11.83 11.8036 11.8231 12.1837 12.0532 12.4139L13.32 13.6806C13.5501 13.9108 13.9302 13.9038 14.169 13.6651L17.1947 10.6393C17.4334 10.4006 17.4404 10.0205 17.2102 9.79039L16.0678 8.64793C15.7944 8.37456 15.3277 8.4534 15.0305 8.72253C14.6271 9.08774 14.0693 9.10386 13.6146 8.8618C12.8562 8.45813 13.732 7.85244 13.3465 6.69684C12.9611 5.54124 11.7706 4.44979 10.3122 3.56383C9.17363 2.87223 8.41273 2.66961 7.10771 2.35492C5.1158 1.87459 1.8512 2.10361 1.7525 2.11067C1.74938 2.1109 1.74865 2.11086 1.74553 2.11091C1.54877 2.11407 1.49898 2.44869 1.68669 2.5009C2.98873 2.86307 4.84749 3.49024 6.00502 4.36291C6.64232 4.84336 7.00756 5.22819 7.51626 5.73688C7.83604 6.05667 7.13082 6.70394 6.56293 7.14058C6.27917 7.35876 6.20623 7.75971 6.39943 8.03122M8.18946 9.83216L2.8021 15.2195C2.47839 15.5432 1.97213 15.6105 1.60516 15.3369C1.46424 15.2318 1.32499 15.1183 1.2164 15.0097C1.1078 14.9011 0.994378 14.7619 0.889279 14.621C0.615587 14.254 0.682904 13.7477 1.00661 13.424L6.39943 8.03122" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/>
5
+ </svg>
@@ -13,6 +13,7 @@ import InstadappProSVG from '~/assets/images/icons/instadapp-pro.svg'
13
13
  import PermitSignSVG from '~/assets/images/icons/permit-sign.svg'
14
14
  import RejectProposalSVG from '~/assets/images/icons/reject-proposal.svg'
15
15
  import UpgradeSVG from '~/assets/images/icons/upgrade.svg'
16
+ import HammerSVG from '~/assets/images/icons/hammer.svg'
16
17
 
17
18
  defineProps<{
18
19
  action: MetadataTypes
@@ -35,4 +36,5 @@ defineProps<{
35
36
  <InstadappProSVG v-else-if="action === 'instadapp-pro'"/>
36
37
  <PermitSignSVG v-else-if="action === 'permit2'"/>
37
38
  <UpgradeSVG v-else-if="action === 'upgrade'"/>
39
+ <HammerSVG v-else-if="action === 'tx-builder'"/>
38
40
  </template>
@@ -23,12 +23,16 @@ 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 class="text-left w-fit capitalize" v-if="metadata.type === 'import'">
27
+ Import from {{ metadata.protocol }} ({{ (formatUsd(fromWei(metadata.valueInUsd, 10))) }})
28
+ </div>
29
+
26
30
  <div v-if="metadata.type === 'upgrade'" class="self-start">
27
31
  Wallet upgraded to {{ metadata?.version }}
28
32
  </div>
29
33
  <div v-if="metadata.type === 'dapp'" class="self-start flex items-center gap-2 text-primary">
30
34
  <a :href="metadata?.url" target="_blank" rel="noopener noreferrer">{{
31
- metadata?.name
35
+ metadata?.name || metadata?.url
32
36
  }}</a>
33
37
  <SvgoExternalLink />
34
38
  </div>
@@ -37,36 +41,38 @@ provide('tokens', props.tokens);
37
41
  </div>
38
42
  <div v-if="metadata.type === 'auth'" class="self-start capitalize flex gap-3">
39
43
  Authority {{ metadata.remove ? 'Removed' : 'Added' }}:
40
- <a
41
- class="text-primary break-all"
42
- :href="getExplorerUrl(metadata.chainId, `/address/${metadata.address}`)"
43
- target="_blank"
44
- >
45
- {{ shortenHash(metadata.address) }}
46
- </a>
47
- <div class="flex gap-3">
48
- <ChainLogo class="w-5 h-5" :chain="metadata.chainId"/>
49
- {{ chainIdToName(metadata.chainId) }}
50
- </div>
44
+ <a class="text-primary break-all" :href="getExplorerUrl(metadata.chainId, `/address/${metadata.address}`)"
45
+ target="_blank">
46
+ {{ shortenHash(metadata.address) }}
47
+ </a>
48
+ <div class="flex gap-3">
49
+ <ChainLogo class="w-5 h-5" :chain="metadata.chainId" />
50
+ {{ chainIdToName(metadata.chainId) }}
51
+ </div>
52
+ </div>
53
+ <div v-if="metadata.type === 'tx-builder'" class="self-start capitalize flex gap-3">
54
+ <span v-if="!compact">
55
+ Transaction Builder
56
+ </span> ({{ metadata?.actionCount }} {{ toBN(metadata?.actionCount).lt(2) ? 'action' : 'actions' }})
51
57
  </div>
52
58
  <div v-if="metadata.type === 'instadapp-pro'" class="self-start capitalize flex gap-3">
53
59
  Instadapp Pro |
54
60
  {{ metadata?.castDetails }}
55
61
  </div>
56
62
 
57
- <MetadataSigners v-if="metadata.type === 'add-signers' || metadata.type === 'remove-signers'" :metadata="metadata" :compact="compact" />
63
+ <MetadataSigners v-if="metadata.type === 'add-signers' || metadata.type === 'remove-signers'" :metadata="metadata"
64
+ :compact="compact" />
58
65
 
59
- <div v-if="metadata.type === 'change-threshold'" class="text-left w-fit" >
60
- Change Threshold to {{ metadata.count }}
66
+ <div v-if="metadata.type === 'change-threshold'" class="text-left w-fit">
67
+ Change Threshold to {{ metadata.count }}
61
68
  </div>
62
69
 
63
70
  <div v-tippy="{
64
- content: metadata.id,
65
- maxWidth: 'none',
66
- interactive: true,
67
- }"
68
- v-if="metadata.type === 'rejection'" class="text-left w-fit">
69
- {{ shortenHash(metadata.id) }}
71
+ content: metadata.id,
72
+ maxWidth: 'none',
73
+ interactive: true,
74
+ }" v-if="metadata.type === 'rejection'" class="text-left w-fit">
75
+ {{ shortenHash(metadata.id) }}
70
76
  </div>
71
77
  </div>
72
78
  </template>
@@ -20,9 +20,17 @@ const fromToken = asyncComputed(() => {
20
20
  );
21
21
  });
22
22
 
23
- const formattedFromAmount = computed(() =>
23
+ const toToken = asyncComputed(() => {
24
+ if (!props?.metadata?.toChainId) return null;
25
+
26
+ if (Array.isArray(tokens) && !tokens.length) return null;
27
+
28
+ return fetchTokenByAddress(props.metadata?.toToken, props?.metadata?.toChainId, tokens);
29
+ });
30
+
31
+ const formattedToAmount = computed(() =>
24
32
  formatDecimal(
25
- fromWei(props.metadata?.amount, fromToken?.value?.decimals).toFixed()
33
+ fromWei(props.metadata?.amount, toToken?.value?.decimals).toFixed()
26
34
  )
27
35
  );
28
36
  </script>
@@ -36,7 +44,7 @@ const formattedFromAmount = computed(() =>
36
44
  <span v-if="!compact" class="capitalize text-xs sm:text-sm">Cross-chain send</span>
37
45
  <span class="inline-flex gap-2.5 items-center">
38
46
  <img width="20" height="20" class="w-5 h-5" :src="fromToken?.logo_url" />
39
- {{ formattedFromAmount }}
47
+ {{ formattedToAmount }}
40
48
  <span class="uppercase">{{ fromToken?.symbol }}</span>
41
49
  </span>
42
50
  </div>
@@ -13,7 +13,8 @@ defineProps<{
13
13
 
14
14
  <template>
15
15
  <div class="font-medium">
16
- <div v-if="!compact || metadata.addresses.length < 3" class="flex gap-[14px] flex-wrap">
16
+ <div v-if="!compact || metadata.addresses.length < 3" class="flex gap-[14px] flex-wrap items-end">
17
+ <p v-if="!compact" class="text-xs"> {{ formatTxType(metadata.type) }} </p>
17
18
  <div v-for="address of metadata.addresses" :key="address" class="flex gap-2 rounded-full bg-slate-100 dark:bg-slate-800 justify-start items-center px-2 py-1.5">
18
19
  <AuthorityAvatar :address="address" class="w-[18px] h-[18px]" />
19
20
  <Tippy max-width="none" interactive>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@instadapp/avocado-base",
3
- "version": "0.0.0-dev.fcdcc0f",
3
+ "version": "0.0.0-dev.fd73c5f",
4
4
  "type": "module",
5
5
  "main": "./nuxt.config.ts",
6
6
  "types": "global.d.ts",
package/utils/metadata.ts CHANGED
@@ -1,23 +1,26 @@
1
1
  import { ethers, utils } from "ethers";
2
2
  import { Forwarder__factory, MultisigForwarder__factory } from "../contracts";
3
-
4
- export const MetadataEnums = {
5
- "transfer": "transfer",
6
- "bridge": "bridge",
7
- "swap": "swap",
8
- "gas-topup": "gas-topup",
9
- "upgrade": "upgrade",
10
- "dapp": "dapp",
11
- "deploy": "deploy",
12
- "permit2": "permit2",
13
- "cross-transfer": "cross-transfer",
14
- "auth": "auth",
15
- "rejection": "rejection",
16
- "instadapp-pro": "instadapp-pro",
17
- "add-signers": "add-signers",
18
- "remove-signers": "remove-signers",
19
- "change-threshold": "change-threshold",
20
- } as const;
3
+ import { toBN } from "./bignumber";
4
+
5
+ export const MetadataEnums = {
6
+ transfer: "transfer",
7
+ bridge: "bridge",
8
+ swap: "swap",
9
+ "gas-topup": "gas-topup",
10
+ upgrade: "upgrade",
11
+ dapp: "dapp",
12
+ deploy: "deploy",
13
+ permit2: "permit2",
14
+ "cross-transfer": "cross-transfer",
15
+ auth: "auth",
16
+ rejection: "rejection",
17
+ "instadapp-pro": "instadapp-pro",
18
+ "add-signers": "add-signers",
19
+ "remove-signers": "remove-signers",
20
+ "change-threshold": "change-threshold",
21
+ import: "import",
22
+ "tx-builder": "tx-builder",
23
+ } as const;
21
24
 
22
25
  const multiMetadataTypes = ["bytes[]"];
23
26
 
@@ -52,8 +55,10 @@ const actionMetadataTypes: Record<MetadataTypes, string[]> = {
52
55
  "gas-topup": ["uint256 amount", "address token", "address onBehalf"],
53
56
  upgrade: ["bytes32 version", "address walletImpl"],
54
57
  dapp: ["string name", "string url"],
58
+ import: ["bytes32 protocol", "uint256 valueInUsd"],
55
59
  auth: ["address address", "uint256 chainId", "bool remove"],
56
60
  deploy: [],
61
+ "tx-builder": ["bytes32 actionCount"],
57
62
  permit2: [
58
63
  "address token",
59
64
  "address spender",
@@ -61,10 +66,10 @@ const actionMetadataTypes: Record<MetadataTypes, string[]> = {
61
66
  "uint48 expiration",
62
67
  ],
63
68
  "instadapp-pro": ["string castDetails"],
64
- 'add-signers': ['address[] signers'],
65
- 'remove-signers': ['address[] signers'],
66
- 'change-threshold': ['uint8 count'],
67
- 'rejection': ['bytes32 id'],
69
+ "add-signers": ["address[] signers"],
70
+ "remove-signers": ["address[] signers"],
71
+ "change-threshold": ["uint8 count"],
72
+ rejection: ["bytes32 id"],
68
73
  };
69
74
 
70
75
  const encodeMetadata = (props: MetadataProps) => {
@@ -172,6 +177,23 @@ export const encodeDeployMetadata = (single = true) => {
172
177
  return single ? encodeMultipleActions(data) : data;
173
178
  };
174
179
 
180
+ export const encodeTransactionBuilderMetadata = (
181
+ actionCount: string,
182
+ single = true
183
+ ) => {
184
+ const encodedData = ethers.utils.defaultAbiCoder.encode(
185
+ actionMetadataTypes["tx-builder"],
186
+ [actionCount]
187
+ );
188
+
189
+ const data = encodeMetadata({
190
+ type: MetadataEnums["tx-builder"],
191
+ encodedData,
192
+ });
193
+
194
+ return single ? encodeMultipleActions(data) : data;
195
+ };
196
+
175
197
  export const encodeWCSignMetadata = (
176
198
  params: SignMetadataProps,
177
199
  single = true
@@ -306,6 +328,24 @@ export const encodeRemoveSignersMetadata = (
306
328
  return single ? encodeMultipleActions(data) : data;
307
329
  };
308
330
 
331
+ export const encodeImportMetadata = (
332
+ protocol: string,
333
+ valueInUsd: string,
334
+ single = true
335
+ ) => {
336
+ const encodedData = ethers.utils.defaultAbiCoder.encode(
337
+ actionMetadataTypes["import"],
338
+ [protocol, valueInUsd]
339
+ );
340
+
341
+ const data = encodeMetadata({
342
+ type: MetadataEnums["import"],
343
+ encodedData,
344
+ });
345
+
346
+ return single ? encodeMultipleActions(data) : data;
347
+ };
348
+
309
349
  export const encodeAddSignersMetadata = (
310
350
  addresses: string[],
311
351
  single = true
@@ -387,8 +427,12 @@ const getMetadataFromData = (data: string) => {
387
427
  return metadata;
388
428
  };
389
429
 
390
-
391
430
  const typesPayload: IPayload = {
431
+ import: (data, type) => ({
432
+ type,
433
+ protocol: utils.parseBytes32String(data.protocol || ""),
434
+ valueInUsd: toBN(data.valueInUsd).toFixed(),
435
+ }),
392
436
  transfer: (data, type) => ({
393
437
  type,
394
438
  token: data.token,
@@ -424,15 +468,19 @@ const typesPayload: IPayload = {
424
468
  token: data.token,
425
469
  onBehalf: data.onBehalf,
426
470
  }),
427
- "dapp": (data, type) => ({
471
+ dapp: (data, type) => ({
428
472
  type,
429
473
  name: data.name,
430
474
  url: data.url,
431
475
  }),
432
- "deploy": (data, type) => ({
476
+ deploy: (data, type) => ({
477
+ type,
478
+ }),
479
+ "tx-builder": (data, type) => ({
433
480
  type,
481
+ actionCount: utils.parseBytes32String(data.actionCount || ""),
434
482
  }),
435
- "permit2": (data, type) => ({
483
+ permit2: (data, type) => ({
436
484
  type,
437
485
  token: data.token,
438
486
  spender: data.spender,
@@ -447,7 +495,7 @@ const typesPayload: IPayload = {
447
495
  amount: toBN(data.amount).toFixed(),
448
496
  receiver: data.receiver,
449
497
  }),
450
- "auth": (data) => ({
498
+ auth: (data) => ({
451
499
  type: data.remove ? "remove-authority" : "add-authority",
452
500
  address: data.address,
453
501
  chainId: data.chainId ? data.chainId.toString() : null,
@@ -457,7 +505,7 @@ const typesPayload: IPayload = {
457
505
  type,
458
506
  castDetails: data.castDetails,
459
507
  }),
460
- "rejection": (data, type) => ({
508
+ rejection: (data, type) => ({
461
509
  type,
462
510
  id: data.id,
463
511
  }),
@@ -499,20 +547,17 @@ const parseMetadata = (metadata: string) => {
499
547
  decodedMetadata.data
500
548
  );
501
549
 
502
- const payloadFunc = typesPayload[type]
503
-
550
+ const payloadFunc = typesPayload[type];
551
+
504
552
  if (payloadFunc) {
505
- const payload = payloadFunc(decodedData, type)
553
+ const payload = payloadFunc(decodedData, type);
506
554
  metadataArr.push(payload);
507
555
  }
508
-
509
556
  }
510
557
 
511
558
  return metadataArr;
512
559
  };
513
560
 
514
-
515
-
516
561
  /**
517
562
  * Replaces hyphens with spaces and capitalizes the first letter of each word in a sentence.
518
563
  * @param {string} txType - The input sentence to modify
package/utils/network.ts CHANGED
@@ -8,9 +8,11 @@ import {
8
8
  AVO_STAGING_CHAIN_ID,
9
9
  AVO_STAGING_RPC_URL,
10
10
  AVO_STAGING_EXPLORER_URL,
11
- } from './avocado'
11
+ } from "./avocado";
12
12
 
13
- export const bridgeDisabledNetworks = [1101];
13
+ export const bridgeDisabledNetworks = [];
14
+
15
+ export const networksSimulationNotSupported = [1313161554, 1101];
14
16
 
15
17
  export const networks: Network[] = [
16
18
  {
@@ -23,7 +25,7 @@ export const networks: Network[] = [
23
25
  balanceResolverAddress: "0x58632D23120b20650262b8A629a14e4F4043E0D9",
24
26
  usdcAddress: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
25
27
  explorerUrl: "https://polygonscan.com",
26
- apiURL: 'https://api.polygonscan.com',
28
+ apiURL: "https://api.polygonscan.com",
27
29
  get serverRpcUrl() {
28
30
  return process.env?.POLYGON_RPC_URL || this.params.rpcUrls[0];
29
31
  },
@@ -47,7 +49,7 @@ export const networks: Network[] = [
47
49
  usdcAddress: "0xff970a61a04b1ca14834a43f5de4533ebddb5cc8",
48
50
  balanceResolverAddress: "0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2",
49
51
  explorerUrl: "https://arbiscan.io",
50
- apiURL: 'https://api.arbiscan.io',
52
+ apiURL: "https://api.arbiscan.io",
51
53
  get serverRpcUrl() {
52
54
  return process.env?.ARBITRUM_RPC_URL || this.params.rpcUrls[0];
53
55
  },
@@ -68,7 +70,7 @@ export const networks: Network[] = [
68
70
  zerionName: "ethereum",
69
71
  chainId: 1,
70
72
  explorerUrl: "https://etherscan.io",
71
- apiURL: 'https://api.etherscan.io',
73
+ apiURL: "https://api.etherscan.io",
72
74
  color: "#5D5FEF",
73
75
  get serverRpcUrl() {
74
76
  return process.env?.MAINNET_RPC_URL || this.params.rpcUrls[0];
@@ -83,27 +85,28 @@ export const networks: Network[] = [
83
85
  decimals: 18,
84
86
  },
85
87
  },
86
- },
88
+ },
87
89
  {
88
- name: 'Base',
90
+ name: "Base",
89
91
  chainId: 8453,
90
- color: '#1E2024',
91
- explorerUrl: 'https://basescan.org',
92
- apiURL: 'https://api.basescan.org',
92
+ color: "#1E2024",
93
+ ankrName: "base",
94
+ explorerUrl: "https://basescan.org",
95
+ apiURL: "https://api.basescan.org",
93
96
  get serverRpcUrl() {
94
97
  return process.env?.BASE_RPC_URL || this.params.rpcUrls[0];
95
- },
96
- usdcAddress: '0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA',
97
- balanceResolverAddress: '0x23c8EAb8a4373dD16b0947Ebe8bf76Ff7A49d13C',
98
- params: {
99
- rpcUrls: ['https://rpc.ankr.com/base'],
98
+ },
99
+ usdcAddress: "0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA",
100
+ balanceResolverAddress: "0x23c8EAb8a4373dD16b0947Ebe8bf76Ff7A49d13C",
101
+ params: {
102
+ rpcUrls: ["https://rpc.ankr.com/base"],
100
103
  chainName: "Base",
101
104
  nativeCurrency: {
102
105
  name: "Ethereum",
103
106
  symbol: "ETH",
104
107
  decimals: 18,
105
108
  },
106
- }
109
+ },
107
110
  },
108
111
  {
109
112
  name: "Optimism",
@@ -112,7 +115,7 @@ export const networks: Network[] = [
112
115
  zerionName: "optimism",
113
116
  color: "#FF0420",
114
117
  chainId: 10,
115
- apiURL: 'https://api-optimistic.etherscan.io',
118
+ apiURL: "https://api-optimistic.etherscan.io",
116
119
  usdcAddress: "0x7f5c764cbc14f9669b88837ca1490cca17c31607",
117
120
  balanceResolverAddress: "0xca5f37e6D8bB24c5A7958d5eccE7Bd9Aacc944f2",
118
121
  explorerUrl: "https://optimistic.etherscan.io",
@@ -133,8 +136,9 @@ export const networks: Network[] = [
133
136
  name: "Polygon zkEVM",
134
137
  chainId: 1101,
135
138
  color: "#8544f6",
139
+ ankrName: "polygon_zkevm",
136
140
  explorerUrl: "https://zkevm.polygonscan.com",
137
- apiURL: 'https://api-zkevm.polygonscan.com',
141
+ apiURL: "https://api-zkevm.polygonscan.com",
138
142
  balanceResolverAddress: "0x48D1Fa5Ee6691a1E0B45d2B515650997BEA27a01",
139
143
  usdcAddress: "0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035",
140
144
  get serverRpcUrl() {
@@ -158,7 +162,7 @@ export const networks: Network[] = [
158
162
  color: "#F3BA2F",
159
163
  chainId: 56,
160
164
  explorerUrl: "https://bscscan.com",
161
- apiURL: 'https://api.bscscan.com',
165
+ apiURL: "https://api.bscscan.com",
162
166
  usdcAddress: "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d",
163
167
  balanceResolverAddress: "0xb808cff38706e267067b0af427726aa099f69f89",
164
168
  get serverRpcUrl() {
@@ -184,7 +188,7 @@ export const networks: Network[] = [
184
188
  usdcAddress: "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e",
185
189
  balanceResolverAddress: "0x63009f31D054E0ac9F321Cf0D642375236A4Bf1E",
186
190
  explorerUrl: "https://snowtrace.io",
187
- apiURL: 'https://api.snowtrace.io',
191
+ apiURL: "https://api.snowtrace.io",
188
192
  get serverRpcUrl() {
189
193
  return process.env?.AVALANCHE_RPC_URL || this.params.rpcUrls[0];
190
194
  },
@@ -225,10 +229,11 @@ export const networks: Network[] = [
225
229
  debankName: "xdai",
226
230
  zerionName: "xdai",
227
231
  color: "#04795C",
232
+ ankrName: "gnosis",
228
233
  chainId: 100,
229
234
  balanceResolverAddress: "0xfaa244e276b1597f663975ed007ee4ff70d27849",
230
235
  explorerUrl: "https://gnosisscan.io",
231
- apiURL:'https://api.gnosisscan.io',
236
+ apiURL: "https://api.gnosisscan.io",
232
237
  usdcAddress: "0xddafbb505ad214d7b80b1f830fccc89b60fb7a83",
233
238
  get serverRpcUrl() {
234
239
  return process.env?.GNOSIS_RPC_URL || this.params.rpcUrls[0];
@@ -264,6 +269,27 @@ export const networks: Network[] = [
264
269
  },
265
270
  },
266
271
  },
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
+ // },
267
293
  {
268
294
  name: AVO_PROD_CHAIN_NAME,
269
295
  chainId: AVO_PROD_CHAIN_ID,
@@ -307,19 +333,22 @@ export const networks: Network[] = [
307
333
  ];
308
334
 
309
335
  export const chainUsdcAddresses = [
310
- { chainId: 1, address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48' },
311
- { chainId: 10, address: '0x7f5c764cbc14f9669b88837ca1490cca17c31607' },
312
- { chainId: 56, address: '0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d' },
313
- { chainId: 100, address: '0xddafbb505ad214d7b80b1f830fccc89b60fb7a83' },
314
- { chainId: 137, address: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174' },
315
- { chainId: 250, address: '0x04068da6c83afcfa0e13ba15a6696662335d5b75' },
316
- { chainId: 42161, address: '0xff970a61a04b1ca14834a43f5de4533ebddb5cc8' },
317
- { chainId: 42161, address: '0xaf88d065e77c8cc2239327c5edb3a432268e5831' },
318
- { chainId: 43114, address: '0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e' },
319
- { chainId: 43114, address: '0xa7d7079b0fead91f3e65f86e8915cb59c1a4c664' },
320
- { chainId: 1101, address: '0xa8ce8aee21bc2a48a5ef670afcc9274c7bbbc035' },
321
- { chainId: 1313161554, address: '0xB12BFcA5A55806AaF64E99521918A4bf0fC40802' },
322
- { chainId: 8453, address: '0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA'}
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" },
323
352
  ];
324
353
 
325
354
  export const getNetworkByChainId = (
@@ -334,12 +363,16 @@ export const availableNetworks = networks.filter(
334
363
 
335
364
  export const chainIdToName = (chainId: ChainId | number | string) => {
336
365
  const network = getNetworkByChainId(chainId);
337
- return network.name;
366
+ return network?.name;
338
367
  };
339
368
 
340
369
  export const getRpcURLByChainId = (chainId: ChainId | number | string) => {
341
- const network = getNetworkByChainId(chainId);
342
- return network.params.rpcUrls[0];
370
+ try {
371
+ const network = getNetworkByChainId(chainId);
372
+ return network.params.rpcUrls[0];
373
+ } catch (e) {
374
+ return "";
375
+ }
343
376
  };
344
377
 
345
378
  export const RPCMap = networks.reduce((acc, network) => {
package/utils/utils.d.ts CHANGED
@@ -12,8 +12,9 @@ declare global {
12
12
  | 634
13
13
  | 1313161554
14
14
  | 8453
15
+ | 122
15
16
  | 63400;
16
-
17
+
17
18
  type ISlackMessageType = "danger" | "error" | "success" | "banner";
18
19
 
19
20
  type MetadataTypes = keyof typeof MetadataEnums;
@@ -110,7 +111,7 @@ declare global {
110
111
  };
111
112
 
112
113
  type MetadataProps = {
113
- type: MetadataTypes,
114
+ type: MetadataTypes;
114
115
  encodedData: string;
115
116
  version?: string;
116
117
  };
@@ -126,8 +127,6 @@ declare global {
126
127
  coingecko_id: string;
127
128
  sparkline_price_7d: number[];
128
129
  }
129
-
130
130
  }
131
131
 
132
- export { }
133
-
132
+ export {};