@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.
- package/components/ActionMetadata.vue +4 -1
- package/components/metadata/Bridge.vue +4 -2
- package/components/metadata/CrossTransfer.vue +3 -1
- package/components/metadata/GasTopup.vue +3 -1
- package/components/metadata/Swap.vue +3 -2
- package/components/metadata/Transfer.vue +8 -5
- package/package.json +1 -1
- package/utils/metadata.ts +22 -0
- package/utils/utils.d.ts +2 -1
|
@@ -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-
|
|
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
|
-
<
|
|
35
|
+
<NuxtLink
|
|
35
36
|
class="text-primary"
|
|
36
|
-
|
|
37
|
+
target="_blank"
|
|
38
|
+
external
|
|
39
|
+
:to="
|
|
37
40
|
getExplorerUrl(chain_id, `/address/${metadata.receiver}`)
|
|
38
41
|
"
|
|
39
|
-
>{{ shortenHash(metadata.receiver) }}
|
|
40
|
-
|
|
42
|
+
>{{ shortenHash(metadata.receiver) }}
|
|
43
|
+
</NuxtLink>
|
|
41
44
|
</span>
|
|
42
45
|
</div>
|
|
43
46
|
</template>
|
package/package.json
CHANGED
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);
|