From 50ae043a20634d2cd7243e56d1753cc71b5d3b0c Mon Sep 17 00:00:00 2001 From: "vien.nguyen2-tiki" Date: Mon, 13 Feb 2023 09:49:32 +0700 Subject: [PATCH] feat: add MsgClawback --- types/message.d.ts | 16 ++++++++++++++++ types/transactions.d.ts | 4 ++++ utils/enum.ts | 9 +++++++-- views/transactions/cosmosMessage.ts | 17 +++++++++++++++++ views/transactions/hook/convertDataConstants.ts | 6 +++++- views/transactions/hook/utils.tsx | 4 +++- 6 files changed, 52 insertions(+), 4 deletions(-) diff --git a/types/message.d.ts b/types/message.d.ts index 33ca9d7d..a103662f 100644 --- a/types/message.d.ts +++ b/types/message.d.ts @@ -608,3 +608,19 @@ interface MsgRevokeContent { 'msgTypeUrl': string } } + +interface MsgClawbackContent { + name: string + uuid: string + height: number + params: { + 'funder_address': string + 'account_address': string + '@type': string + 'dest_address': string + } + txHash: string + msgName: string + version: number + msgIndex: number +} diff --git a/types/transactions.d.ts b/types/transactions.d.ts index 3c2a6389..51ac3ef4 100644 --- a/types/transactions.d.ts +++ b/types/transactions.d.ts @@ -274,6 +274,10 @@ interface CosmosTxMessage { titles: string[] content: string[][] } + + funderAddress?: string + accountAddress?: string + destAddress?: string } interface TransactionDetail { diff --git a/utils/enum.ts b/utils/enum.ts index 22b2f89e..9b6b5044 100644 --- a/utils/enum.ts +++ b/utils/enum.ts @@ -34,7 +34,8 @@ export enum TransactionTypeEnum { MsgCreateClawbackVestingAccount = '/evmos.vesting.v1.MsgCreateClawbackVestingAccount', CommunityPoolSpendProposal = '/cosmos.distribution.v1beta1.CommunityPoolSpendProposal', MsgAcknowledgement = '/ibc.core.channel.v1.MsgAcknowledgement', - MsgRevoke = '/cosmos.authz.v1beta1.MsgRevoke' + MsgRevoke = '/cosmos.authz.v1beta1.MsgRevoke', + MsgClawback = '/evmos.vesting.v1.MsgClawback' } export enum AddressTypeEnum { @@ -119,7 +120,11 @@ export enum CardInfoLabels { acknowledgement = 'Acknowledgement: ', proofAcked = 'Proof Acked: ', proofHeigh = 'Proof Height: ', - msgs = 'Msgs: ' + msgs = 'Msgs: ', + + funderAddress = 'Funder Address:', + accountAddress = 'Account Address: ', + destAddress = 'Dest Address:' } export enum ErcTypeEnum { diff --git a/views/transactions/cosmosMessage.ts b/views/transactions/cosmosMessage.ts index 22e3fcb3..517535f2 100644 --- a/views/transactions/cosmosMessage.ts +++ b/views/transactions/cosmosMessage.ts @@ -66,6 +66,10 @@ export const handleCosmosMsg = (messages: TransactionMessage[]) => { case TransactionTypeEnum.MsgAcknowledgement: messageData.push(_mapMsgAcknowledgement(msg)) break + case TransactionTypeEnum.MsgClawback: + console.log('error') + messageData.push(_mapMsgClawback(msg)) + break } } return { @@ -396,3 +400,16 @@ const _mapMsgAcknowledgement = (msg: TransactionMessage): CosmosTxMessage => { } } } + +const _mapMsgClawback = (msg: TransactionMessage): CosmosTxMessage => { + const content = msg.content as unknown as MsgClawbackContent + const { params } = content + if (msg && content) { + return { + type: msg.type, + funderAddress: params.funder_address, + accountAddress: params.account_address, + destAddress: params.dest_address || ' ' + } + } +} diff --git a/views/transactions/hook/convertDataConstants.ts b/views/transactions/hook/convertDataConstants.ts index dc6bfbe0..88af6ea9 100644 --- a/views/transactions/hook/convertDataConstants.ts +++ b/views/transactions/hook/convertDataConstants.ts @@ -83,7 +83,11 @@ export const COSMOS_MESSAGE_SORT_FIELD = [ CardInfoLabels.acknowledgement, CardInfoLabels.proofAcked, CardInfoLabels.proofHeigh, - CardInfoLabels.msgs + CardInfoLabels.msgs, + + CardInfoLabels.funderAddress, + CardInfoLabels.accountAddress, + CardInfoLabels.destAddress ] export const GAS_ITEM_FIELD_SORT_ORDER = [ diff --git a/views/transactions/hook/utils.tsx b/views/transactions/hook/utils.tsx index e023cf38..b87d6780 100644 --- a/views/transactions/hook/utils.tsx +++ b/views/transactions/hook/utils.tsx @@ -224,7 +224,9 @@ export const _cardData = (data: TransactionDetail, astraPrice: string) => { case 'validatorAddress': case 'validatorSrcAddress': case 'validatorDstAddress': - case 'validatorDstAddress': + case 'funderAddress': + case 'accountAddress': + case 'destAddress': if (!isEmpty(data[key])) items.push({ label: CardInfoLabels[key],