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}}
+
-
+
{{data}}
@@ -52,31 +53,23 @@
- {{item?.name}}
-
- {{item?.decode}}
+ {{item?.name}}
+
+
+ {{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 @@