@instadapp/avocado-base 0.0.35 → 0.0.37

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.
@@ -1,10 +1,13 @@
1
1
  <script lang="ts" setup>
2
2
 
3
- defineProps<{
3
+ const props = defineProps<{
4
4
  metadata: any;
5
5
  chain_id: number | string;
6
+ compact?: boolean;
6
7
  }>();
7
8
 
9
+ provide('compact', props.compact);
10
+
8
11
  </script>
9
12
 
10
13
  <template>
@@ -5,6 +5,8 @@ const props = defineProps<{
5
5
  chain_id: number | string
6
6
  }>();
7
7
 
8
+ const compact = inject('compact');
9
+
8
10
  const toToken = asyncComputed(() =>
9
11
  fetchTokenByAddress(props.metadata?.toToken, props.metadata?.toChainId)
10
12
  );
@@ -22,12 +24,12 @@ const bridgeAmountFormatted = computed(() =>
22
24
  class="flex gap-5 items-center"
23
25
  v-if="metadata.type === 'bridge' && toToken"
24
26
  >
25
- <span class="capitalize text-xs sm:text-sm">{{ metadata.type }}</span>
27
+ <span v-if="!compact" class="capitalize text-xs sm:text-sm">{{ metadata.type }}</span>
26
28
  <span class="inline-flex gap-2.5 items-center">
27
29
  <img width="20" height="20" class="w-5 h-5" :src="toToken.logo_url" />
28
30
  {{ bridgeAmountFormatted }}
29
31
  <span class="uppercase">{{ toToken?.symbol }}</span>
30
- <SvgoBridge class="text-slate-400 w-5 h-5" />
32
+ <SvgoBridge class="text-slate-400 w-4 h-4" />
31
33
  <span class="flex items-center gap-2.5">
32
34
  <ChainLogo class="w-5" :chain="metadata.toChainId" />
33
35
  <span>{{ chainIdToName(metadata.toChainId) }}</span>
@@ -5,6 +5,8 @@ const props = defineProps<{
5
5
  chain_id: number | string
6
6
  }>();
7
7
 
8
+ const compact = inject('compact');
9
+
8
10
  const fromToken = asyncComputed(() => {
9
11
  if (!props?.chain_id) return null;
10
12
 
@@ -27,7 +29,7 @@ const formattedFromAmount = computed(() =>
27
29
  </div>
28
30
  <div class="flex gap-5 flex-col" v-else>
29
31
  <div class="flex items-center gap-5">
30
- <span class="capitalize text-xs sm:text-sm">Cross-chain send</span>
32
+ <span v-if="!compact" class="capitalize text-xs sm:text-sm">Cross-chain send</span>
31
33
  <span class="inline-flex gap-2.5 items-center">
32
34
  <img width="20" height="20" class="w-5 h-5" :src="fromToken?.logo_url" />
33
35
  {{ formattedFromAmount }}
@@ -9,6 +9,8 @@ const token = asyncComputed(() =>
9
9
  fetchTokenByAddress(props.metadata?.token, props?.chain_id)
10
10
  );
11
11
 
12
+ const compact = inject('compact');
13
+
12
14
  const formattedAmount = computed(() =>
13
15
  formatDecimal(
14
16
  fromWei(props.metadata?.amount, token?.value?.decimals).toFixed()
@@ -19,7 +21,7 @@ const formattedAmount = computed(() =>
19
21
  <template>
20
22
  <div v-if="!token" class="rounded-5 w-24 h-4 loading-box" />
21
23
  <div class="flex items-center gap-5" v-else>
22
- <span class="capitalize text-xs sm:text-sm">{{ metadata.type }}</span>
24
+ <span v-if="!compact" class="capitalize text-xs sm:text-sm">{{ metadata.type }}</span>
23
25
  <span class="inline-flex gap-2.5 items-center">
24
26
  <img width="20" height="20" class="w-5 h-5" :src="token?.logo_url" />
25
27
  {{ formattedAmount }}
@@ -5,6 +5,7 @@ const props = defineProps<{
5
5
  chain_id: number | string
6
6
  }>();
7
7
 
8
+ const compact = inject('compact');
8
9
 
9
10
  const buyToken = asyncComputed(() =>
10
11
  fetchTokenByAddress(props.metadata?.buyToken, props?.chain_id)
@@ -45,7 +46,7 @@ const formatProtocol = (protocol: string) => {
45
46
  class="flex items-center gap-5"
46
47
  v-else
47
48
  >
48
- <span class="capitalize text-xs sm:text-sm">{{ metadata.type }}</span>
49
+ <span v-if="!compact" class="capitalize text-xs sm:text-sm">{{ metadata.type }}</span>
49
50
  <span class="inline-flex gap-2.5 items-center">
50
51
  <img width="20" height="20" class="w-5 h-5" :src="sellToken?.logo_url" />
51
52
  {{ sellAmountFormatted }}
@@ -56,7 +57,7 @@ const formatProtocol = (protocol: string) => {
56
57
  <span class="uppercase">{{ buyToken?.symbol }}</span>
57
58
  <span
58
59
  class="capitalize hidden sm:flex items-center gap-2.5"
59
- v-if="metadata.protocol"
60
+ v-if="metadata.protocol && !compact"
60
61
  >
61
62
  On <ProtocolLogo class="w-5 h-5" :name="metadata.protocol" />
62
63
  {{ formatProtocol(metadata.protocol) }}
@@ -5,6 +5,7 @@ const props = defineProps<{
5
5
  chain_id: number | string
6
6
  }>();
7
7
 
8
+ const compact = inject('compact');
8
9
 
9
10
  const token = asyncComputed(() => {
10
11
  if (!props?.chain_id) return null;
@@ -25,19 +26,21 @@ const formattedAmount = computed(() =>
25
26
  <template>
26
27
  <div v-if="!token" class="rounded-5 w-24 h-4 loading-box" />
27
28
  <div class="flex items-center gap-5" v-else>
28
- <span class="capitalize text-xs sm:text-sm">{{ metadata.type }}</span>
29
+ <span v-if="!compact" class="capitalize text-xs sm:text-sm">{{ metadata.type }}</span>
29
30
  <span class="inline-flex gap-2.5 items-center">
30
31
  <img width="20" height="20" class="w-5 h-5" :src="token?.logo_url" />
31
32
  {{ formattedAmount }}
32
33
  <span class="uppercase">{{ token?.symbol }}</span>
33
34
  <SvgoArrowRight class="w-4 h-4 text-slate-400 mx-2" />
34
- <a
35
+ <NuxtLink
35
36
  class="text-primary"
36
- :href="
37
+ target="_blank"
38
+ external
39
+ :to="
37
40
  getExplorerUrl(chain_id, `/address/${metadata.receiver}`)
38
41
  "
39
- >{{ shortenHash(metadata.receiver) }}</a
40
- >
42
+ >{{ shortenHash(metadata.receiver) }}
43
+ </NuxtLink>
41
44
  </span>
42
45
  </div>
43
46
  </template>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@instadapp/avocado-base",
3
- "version": "0.0.35",
3
+ "version": "0.0.37",
4
4
  "type": "module",
5
5
  "main": "./nuxt.config.ts",
6
6
  "types": "global.d.ts",
package/utils/metadata.ts CHANGED
@@ -43,6 +43,7 @@ const actionMetadataTypes = {
43
43
  "uint48 expiration",
44
44
  ],
45
45
  "instadapp-pro": ["string castDetails"],
46
+ reject: ["string reason"],
46
47
  };
47
48
 
48
49
  const encodeMetadata = (props: MetadataProps) => {
@@ -87,6 +88,20 @@ export const encodeTransferMetadata = (
87
88
  return single ? encodeMultipleActions(data) : data;
88
89
  };
89
90
 
91
+ export const encodeRejectMetadata = (reason: string, single = true) => {
92
+ const encodedData = ethers.utils.defaultAbiCoder.encode(
93
+ actionMetadataTypes.reject,
94
+ [reason]
95
+ );
96
+
97
+ const data = encodeMetadata({
98
+ type: "reject",
99
+ encodedData,
100
+ });
101
+
102
+ return single ? encodeMultipleActions(data) : data;
103
+ };
104
+
90
105
  export const encodeCrossTransferMetadata = (
91
106
  params: CrossSendMetadataProps,
92
107
  single = true
@@ -435,6 +450,13 @@ const parseMetadata = (metadata: string) => {
435
450
  };
436
451
 
437
452
  break;
453
+
454
+ case "reject":
455
+ payload = {
456
+ type,
457
+ reason: decodedData.reason,
458
+ };
459
+ break;
438
460
  }
439
461
 
440
462
  metadataArr.push(payload);
package/utils/utils.d.ts CHANGED
@@ -112,7 +112,8 @@ type MetadataProps = {
112
112
  | "deploy"
113
113
  | "permit2"
114
114
  | "cross-transfer"
115
- | "auth";
115
+ | "auth"
116
+ | "reject";
116
117
  encodedData: string;
117
118
  version?: string;
118
119
  };