From d925cfba24c172aca2c0d47e32a27064f9754d02 Mon Sep 17 00:00:00 2001 From: Cedrik Nikita Date: Tue, 12 Jul 2022 08:44:50 +0300 Subject: [PATCH 01/28] chore(transaction-info-resolver): adjust to provide more info --- .../utils/transactionTokenInfoResolvers.js | 31 +++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/src/popup/utils/transactionTokenInfoResolvers.js b/src/popup/utils/transactionTokenInfoResolvers.js index adec5f3e9..cdead5fa4 100644 --- a/src/popup/utils/transactionTokenInfoResolvers.js +++ b/src/popup/utils/transactionTokenInfoResolvers.js @@ -1,4 +1,6 @@ /* eslint-disable no-underscore-dangle */ +import BigNumber from 'bignumber.js'; + const defaultToken = { decimals: 18, symbol: 'AE', @@ -19,6 +21,13 @@ const genLiquiditySwapResolver = ( || (!poolTokenAmountMapper && transaction.tx.return.type === 'list'))) { returns = transaction.tx.return.value; } + let poolTokenSymbol; + if ((tokens?.[tokenA.contractId] || tokenA.isAe) + && (tokens?.[tokenB.contractId] || tokenB.isAe)) { + const symbolA = tokenA.isAe ? 'AE' : tokens?.[tokenA.contractId].symbol; + const symbolB = tokenB.isAe ? 'AE' : tokens?.[tokenB.contractId].symbol; + poolTokenSymbol = `${symbolA}/${symbolB}`; + } return { tokens: [{ @@ -37,9 +46,11 @@ const genLiquiditySwapResolver = ( isReceived: liquidityMethod === 'remove' || !liquidityMethod, }, ...poolTokenAmountMapper ? [{ ...defaultPoolToken, + ...(poolTokenSymbol ? { symbol: poolTokenSymbol } : {}), amount: returns?.[2]?.value || poolTokenAmountMapper(transaction), // min_liquidity: int ...tokens?.[transaction.tx.log?.[0]?.address], isReceived: liquidityMethod && liquidityMethod === 'add', + isPool: true, }] : []], }; }; @@ -62,7 +73,11 @@ export const addLiquidity = genLiquiditySwapResolver( minAmount: _arguments[5]?.value, // amount_b_min: int amount: _arguments[3]?.value, // amount_b_desired: int }), - ({ tx: { arguments: _arguments } }) => _arguments[7]?.value, // min_liquidity: int + // min_liquidity: int + ({ tx: { arguments: _arguments } }) => new BigNumber(_arguments[2]?.value) + .times(_arguments[3]?.value) + .sqrt() + .minus(_arguments[7]?.value[1].value), 'add', ); @@ -83,8 +98,13 @@ export const addLiquidityAe = genLiquiditySwapResolver( contractId, minAmount: _arguments[3]?.value, // amount_b_min: int amount, // amount_b_desired: int + isAe: true, }), - ({ tx: { arguments: _arguments } }) => _arguments[5]?.value, // min_liquidity: int + // min_liquidity: int + ({ tx: { arguments: _arguments, amount } }) => new BigNumber(_arguments[1]?.value) + .times(amount) + .sqrt() + .minus(_arguments[5]?.value[1].value), 'add', ); @@ -125,6 +145,7 @@ export const removeLiquidityAe = genLiquiditySwapResolver( contractId, minAmount: _arguments[3]?.value, // amount_b_min: int amount: _arguments[3]?.value, // amount_b_desired: int + isAe: true, }), ({ tx: { arguments: _arguments } }) => _arguments[1]?.value, // min_liquidity: int 'remove', @@ -176,6 +197,7 @@ export const swapExactAeForTokens = genLiquiditySwapResolver( ({ tx: { arguments: _arguments, amount } }) => ({ contractId: _arguments[1]?.value?.[0]?.value, amount, // amount_a_desired: int + isAe: true, }), ({ tx: { arguments: _arguments } }) => ({ contractId: _arguments[1]?.value?.[_arguments[1]?.value?.length - 1]?.value, @@ -200,6 +222,7 @@ export const swapTokensForExactAe = genLiquiditySwapResolver( contractId: _arguments[2]?.value?.[_arguments[2]?.value?.length - 1]?.value, minAmount: _arguments[0]?.value, amount: _arguments[0]?.value, // amount_b_desired: int + isAe: true, }), ); @@ -219,6 +242,7 @@ export const swapExactTokensForAe = genLiquiditySwapResolver( contractId: _arguments[2]?.value?.[_arguments[2]?.value?.length - 1]?.value, maxAmount: _arguments[1]?.value, amount: _arguments[1]?.value, // amount_b_desired: int + isAe: true, }), ); @@ -232,6 +256,7 @@ export const swapAeForExactTokens = genLiquiditySwapResolver( ({ tx: { arguments: _arguments, amount } }) => ({ contractId: _arguments[1]?.value?.[0]?.value, amount, // amount_a_desired: int + isAe: true, }), ({ tx: { arguments: _arguments } }) => ({ contractId: _arguments[1]?.value?.[_arguments[1]?.value?.length - 1]?.value, @@ -293,6 +318,7 @@ export const deposit = (transaction, tokens = null) => ({ ...defaultToken, amount: transaction.tx.amount, isReceived: false, + isAe: true, }, { ...defaultToken, @@ -321,5 +347,6 @@ export const withdraw = (transaction, tokens = null) => ({ ...defaultToken, amount: transaction.tx.arguments?.[0]?.value, isReceived: true, + isAe: true, }], }); From 6b8b90bede4dcc5976eb5a2be0f8506d155f9139 Mon Sep 17 00:00:00 2001 From: Cedrik Nikita Date: Tue, 12 Jul 2022 16:45:31 +0300 Subject: [PATCH 02/28] feat: update transaction list --- src/icons/refresh.svg | 4 + src/popup/locales/en.json | 7 +- src/popup/router/components/Tokens.vue | 2 +- .../router/components/TransactionItem.vue | 273 ++++++++++++++---- .../router/components/TransactionList.vue | 4 + .../pages/FungibleTokens/TokenDetails.vue | 4 + src/store/getters.js | 5 + 7 files changed, 244 insertions(+), 55 deletions(-) create mode 100644 src/icons/refresh.svg diff --git a/src/icons/refresh.svg b/src/icons/refresh.svg new file mode 100644 index 000000000..3da5dc9d4 --- /dev/null +++ b/src/icons/refresh.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/popup/locales/en.json b/src/popup/locales/en.json index 3c4037b5c..3140fdb70 100644 --- a/src/popup/locales/en.json +++ b/src/popup/locales/en.json @@ -202,13 +202,18 @@ "channelCloseSoloTx": "Solo close channel", "channelSlashTx": "Slash channel", "channelSettleTx": "Settle channel", - "channelSnapshotSoloTx": "Solo snapshot channel" + "channelSnapshotSoloTx": "Solo snapshot channel", + "pending": "Pending..." }, "overview": { "aens": "AENS", "contractCreate": "Contract create", "contract": "Contract", "accountAddress": "Account address" + }, + "returnType": { + "abort": "Failed", + "revert": "Reverted" } }, "pages": { diff --git a/src/popup/router/components/Tokens.vue b/src/popup/router/components/Tokens.vue index 7f89ca147..61e874c38 100644 --- a/src/popup/router/components/Tokens.vue +++ b/src/popup/router/components/Tokens.vue @@ -112,7 +112,7 @@ export default { width: 16px; height: 16px; border-radius: 8px; - margin-right: 6px; + margin-right: 4px; vertical-align: middle; &.border { diff --git a/src/popup/router/components/TransactionItem.vue b/src/popup/router/components/TransactionItem.vue index d5db20ec8..f549dc836 100644 --- a/src/popup/router/components/TransactionItem.vue +++ b/src/popup/router/components/TransactionItem.vue @@ -3,45 +3,82 @@ class="transaction-item" :to="{ name: 'tx-details', params: { hash: transaction.hash } }" > -
- - - - ({{ ($t('transaction.type')[txType]) || txType }}) - +
+ +
+ + +
+
-
- {{ transaction.microTime | formatDate }} - {{ transaction.microTime | formatTime }} +
+
+ + + {{ + `${token.isReceived ? '+' : '-'} + ${amountRounded(token.decimals + ? convertToken(token.amount || 0, -token.decimals) : token.amount)}` + }} + +
+
diff --git a/src/popup/router/components/TransactionErrorStatus.vue b/src/popup/router/components/TransactionErrorStatus.vue new file mode 100644 index 000000000..a554b727d --- /dev/null +++ b/src/popup/router/components/TransactionErrorStatus.vue @@ -0,0 +1,99 @@ + + + + + diff --git a/src/popup/router/components/TransactionItem.vue b/src/popup/router/components/TransactionItem.vue index f549dc836..6cdc80a78 100644 --- a/src/popup/router/components/TransactionItem.vue +++ b/src/popup/router/components/TransactionItem.vue @@ -32,20 +32,10 @@
-
- - - {{ - `${token.isReceived ? '+' : '-'} - ${amountRounded(token.decimals - ? convertToken(token.amount || 0, -token.decimals) : token.amount)}` - }} - -
+