From b0465076349dea8dcd7b0ea39b2a5a99a5a1be8b Mon Sep 17 00:00:00 2001 From: TranTrungTien <71311738+TranTrungTien@users.noreply.github.com> Date: Mon, 15 Jul 2024 16:58:11 +0700 Subject: [PATCH] [update][655] decode tuple in data (#3633) * fix event log * update responsive for mobile * update: decode tuple in data --- .../decode-message.component.html | 49 ++++++++----------- .../decode-message.component.scss | 2 + .../decode-message.component.ts | 40 ++------------- .../evm-message/evm-message.component.ts | 14 +++++- .../evm-transaction-event-log.component.html | 4 +- 5 files changed, 44 insertions(+), 65 deletions(-) diff --git a/src/app/pages/transaction/evm-transaction/decode-message/decode-message.component.html b/src/app/pages/transaction/evm-transaction/decode-message/decode-message.component.html index 501d3ffab..7186db043 100644 --- a/src/app/pages/transaction/evm-transaction/decode-message/decode-message.component.html +++ b/src/app/pages/transaction/evm-transaction/decode-message/decode-message.component.html @@ -23,20 +23,21 @@ -
-

{{value}}

+
+

{{value}}

-
+
contract {{data}} @@ -52,31 +53,23 @@
-

{{item?.name}}

- - {{item?.decode}} +

{{item?.name}}

+
+ contract + {{item?.decode}} -
-
-
- - - {{dataDecoded?.name}} - -

{{dataDecoded?.name}}

-
-
-
-

{{item?.decode}}

-
+
+

{{item?.decode}}

diff --git a/src/app/pages/transaction/evm-transaction/decode-message/decode-message.component.scss b/src/app/pages/transaction/evm-transaction/decode-message/decode-message.component.scss index dfd8f222c..3022537ed 100644 --- a/src/app/pages/transaction/evm-transaction/decode-message/decode-message.component.scss +++ b/src/app/pages/transaction/evm-transaction/decode-message/decode-message.component.scss @@ -18,6 +18,8 @@ font-size: 12px; white-space: nowrap; margin: 0; + min-width: 30px; + max-width: max-content; } button.button { background-color: #494C58; diff --git a/src/app/pages/transaction/evm-transaction/decode-message/decode-message.component.ts b/src/app/pages/transaction/evm-transaction/decode-message/decode-message.component.ts index 6b991aa43..bb09b0ae3 100644 --- a/src/app/pages/transaction/evm-transaction/decode-message/decode-message.component.ts +++ b/src/app/pages/transaction/evm-transaction/decode-message/decode-message.component.ts @@ -46,12 +46,6 @@ export class DecodeMessageComponent implements OnInit { const addresses = []; for (const item of data) { if(item?.isLink) addresses.push(item?.decode); - else if(item?.type === 'tuple') { - item?.decode?.split(',')?.forEach((tupleItem) => { - if (tupleItem?.startsWith('0x')) { - addresses.push(tupleItem); - }}) - } } return _.uniq(addresses.filter(Boolean)); } @@ -72,36 +66,12 @@ export class DecodeMessageComponent implements OnInit { this.contractService.findEvmContractList(addresses).subscribe({ next: (evmList) => { this.data = Array.isArray(this.decode) && this.decode?.map((item) => { - if (item?.type !== 'tuple') { - const isEvmContract = !!evmList?.evm_smart_contract?.find(contract => contract?.address === item?.decode?.toString()?.toLowerCase()); + const isEvmContract = !!evmList?.evm_smart_contract?.find(contract => contract?.address === item?.decode?.toString()?.toLowerCase()); - return { - ...item, - isEvmContract, - isArray: false, - }; - } - if (item?.type === 'tuple') { - const links = item?.decode?.split(',')?.map((tupleItem: string) => { - if (tupleItem?.startsWith('0x')) { - const isEvmContract = !!evmList?.evm_smart_contract?.find(contract => contract?.address === tupleItem?.toString()?.toLowerCase()); - return { - isEvmContract, - name: tupleItem, - isLink: true, - }; - } - return { - name: tupleItem, - isLink: false, - }; - }); - return { - ...item, - isArray: true, - decode: links, - }; - } + return { + ...item, + isEvmContract, + }; }); this.detectRef.detectChanges(); }, diff --git a/src/app/pages/transaction/evm-transaction/evm-message/evm-message.component.ts b/src/app/pages/transaction/evm-transaction/evm-message/evm-message.component.ts index 69b367837..523dd2c8d 100644 --- a/src/app/pages/transaction/evm-transaction/evm-message/evm-message.component.ts +++ b/src/app/pages/transaction/evm-transaction/evm-message/evm-message.component.ts @@ -261,8 +261,20 @@ export class EvmMessageComponent { const tupleType = `(${item?.components?.map(this.mappingFunctionName)?.join(', ')}) ${item?.name}`; const replaceTuple = new RegExp(`\\b${item?.type} ${item?.name}\\b`, 'g'); decoded[0].decode = decoded[0]?.decode?.replace(replaceTuple, tupleType); - } + item?.components?.forEach((tupleParam, tidx) => { + const tupleDecode = { + indexed: tupleParam?.indexed, + name: tupleParam?.name, + type: tupleParam?.type, + isLink: tupleParam?.type === 'address', + decode: paramsDecode.args[idx][tidx]?.toString(), + } + data.push(tupleDecode); + }); + return; + } + const param = { indexed: item?.indexed, name: item.name, diff --git a/src/app/pages/transaction/evm-transaction/evm-transaction-event-log/evm-transaction-event-log.component.html b/src/app/pages/transaction/evm-transaction/evm-transaction-event-log/evm-transaction-event-log.component.html index 7d438f685..3f3a5f408 100644 --- a/src/app/pages/transaction/evm-transaction/evm-transaction-event-log/evm-transaction-event-log.component.html +++ b/src/app/pages/transaction/evm-transaction/evm-transaction-event-log/evm-transaction-event-log.component.html @@ -53,7 +53,9 @@
-
Data
+
+ Data +
{{ eventLog.data }}