From 08b6df14ba9767464fdcc8d5655e8c42d321d4c9 Mon Sep 17 00:00:00 2001 From: Nikita Date: Wed, 5 Feb 2025 11:38:33 +0400 Subject: [PATCH 1/3] fix: do not overlap token name with amount in TransactionAssetRow --- src/popup/components/Tokens.vue | 2 +- src/popup/components/TransactionAssetRows.vue | 2 ++ src/utils/common.ts | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/popup/components/Tokens.vue b/src/popup/components/Tokens.vue index 99d84c4d4..ad1172863 100644 --- a/src/popup/components/Tokens.vue +++ b/src/popup/components/Tokens.vue @@ -62,7 +62,7 @@ export default defineComponent({ * Array of tokens that is returned by the transactionTokenInfoResolvers */ tokens: { type: Array as PropType, required: true }, - symbolLength: { type: Number, default: 11 }, + symbolLength: { type: Number, default: 10 }, doubleSymbolLength: { type: Number, default: 5 }, /** * TODO if protocol is not set, assume AE, but this should be set correctly diff --git a/src/popup/components/TransactionAssetRows.vue b/src/popup/components/TransactionAssetRows.vue index 2de5297bc..168dc132d 100644 --- a/src/popup/components/TransactionAssetRows.vue +++ b/src/popup/components/TransactionAssetRows.vue @@ -131,6 +131,8 @@ export default defineComponent({ .amount { @extend %face-sans-18-regular; + + font-size: var(--font-size); } } } diff --git a/src/utils/common.ts b/src/utils/common.ts index 045f2a9e8..5d8462fcc 100644 --- a/src/utils/common.ts +++ b/src/utils/common.ts @@ -90,7 +90,7 @@ export function calculateFontSize(amountValue: BigNumber | number | string) { return '16px'; } if (amountLength <= 14) { - return '14px'; + return '13px'; } return '12px'; } From 621f082e67187b72462b683ca5fac737ee0ca8c3 Mon Sep 17 00:00:00 2001 From: Nikita Date: Wed, 5 Feb 2025 12:02:41 +0400 Subject: [PATCH 2/3] fix: show correct information for loaded transactions --- src/protocols/aeternity/views/TransactionDetails.vue | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/protocols/aeternity/views/TransactionDetails.vue b/src/protocols/aeternity/views/TransactionDetails.vue index 810fb071e..f2880d4ff 100644 --- a/src/protocols/aeternity/views/TransactionDetails.vue +++ b/src/protocols/aeternity/views/TransactionDetails.vue @@ -190,6 +190,7 @@ import { import { useAccounts, useFungibleTokens, + useLatestTransactionList, useMultisigAccounts, useTransactionData, useTransactionList, @@ -247,6 +248,7 @@ export default defineComponent({ const { activeAccount, isLocalAccountAddress } = useAccounts(); const { setLoaderVisible } = useUi(); const { getTxAmountTotal, tokenBalances } = useFungibleTokens(); + const { allLatestTransactions } = useLatestTransactionList(); const hash = route.params.hash as string; const transactionOwner = route.params.transactionOwner as Encoded.AccountAddress; @@ -342,7 +344,10 @@ export default defineComponent({ }); onMounted(async () => { - let rawTransaction: ITransaction | undefined = transactionsLoaded.value + let rawTransaction: ITransaction | undefined = [ + ...transactionsLoaded.value, + ...allLatestTransactions.value, + ] .find((tx) => tx.hash === hash) as ITransaction; // Claim transactions have missing data that needs to be fetched from the middleware From 34ed2218aaf5d2e45b850d10523af62ec89795f5 Mon Sep 17 00:00:00 2001 From: Nikita Date: Wed, 5 Feb 2025 17:21:54 +0400 Subject: [PATCH 3/3] feat: show full createCommunity contract call info --- .../helpers/transactionTokenInfoResolvers.ts | 39 +++++++++++++++---- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/src/protocols/aeternity/helpers/transactionTokenInfoResolvers.ts b/src/protocols/aeternity/helpers/transactionTokenInfoResolvers.ts index 67c9e66f5..2b48a42ea 100644 --- a/src/protocols/aeternity/helpers/transactionTokenInfoResolvers.ts +++ b/src/protocols/aeternity/helpers/transactionTokenInfoResolvers.ts @@ -439,15 +439,40 @@ const sell: TransactionResolver = (transaction, tokens = null, tokenAddressMappe const createCommunity: TransactionResolver = ( transaction, tokens = null, + tokenAddressMapper = undefined, ) => { - const isConfirm = !transaction.tx.return; - const token = { - amount: transaction.tx.arguments?.[2]?.value, + const { internalEvents } = transaction.tx; + const additionalTokenEvents = internalEvents?.filter(({ type, payload: { recipientId } }) => ( + ACTIVITIES_TYPES.aex9TransferEvent === type + && transaction.tx.callerId === recipientId + )); + + let receivedTokens = additionalTokenEvents?.map(({ + payload: { + tokenSymbol, amount, contractId, + }, + }) => ({ + amount, ...defaultToken, - symbol: transaction.tx.arguments?.[1]?.value, - ...(isConfirm ? {} : tokens?.[transaction.tx.log?.[2]?.address]), + symbol: tokenSymbol, + ...(tokens?.[contractId] || {}), isReceived: true, - }; + })); + + const tokenAddress: string | undefined = tokenAddressMapper?.( + transaction.tx.return?.value[1]?.value, + ); + + if (!receivedTokens?.length) { + receivedTokens = [{ + amount: transaction.tx.arguments?.[2]?.value, + ...defaultToken, + symbol: transaction.tx.arguments?.[1]?.value, + ...(tokenAddress ? tokens?.[tokenAddress] : {}), + isReceived: true, + }]; + } + const aeToken = { ...defaultToken, assetType: ASSET_TYPES.coin, @@ -456,7 +481,7 @@ const createCommunity: TransactionResolver = ( isReceived: false, }; return { - tokens: [token, aeToken], + tokens: [...(receivedTokens || []), aeToken], }; };