Skip to content

Commit 9c34c4f

Browse files
authored
Merge branch 'main' into feat/custom-evm-networks-provider
2 parents a374293 + 113d578 commit 9c34c4f

File tree

5 files changed

+96
-30
lines changed

5 files changed

+96
-30
lines changed

src/frontend/src/btc/components/transactions/BtcTransactions.svelte

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,17 @@
1414
import TransactionsSkeletons from '$lib/components/transactions/TransactionsSkeletons.svelte';
1515
import { TRANSACTIONS_DATE_GROUP_PREFIX } from '$lib/constants/test-ids.constants';
1616
import { DEFAULT_BITCOIN_TOKEN } from '$lib/constants/tokens.constants';
17+
import { exchanges } from '$lib/derived/exchange.derived';
1718
import {
1819
modalBtcToken,
1920
modalBtcTokenData,
2021
modalBtcTransaction
2122
} from '$lib/derived/modal.derived';
2223
import { pageToken } from '$lib/derived/page-token.derived';
24+
import { hideMicroTransactions } from '$lib/derived/user-profile.derived';
2325
import { modalStore } from '$lib/stores/modal.store';
2426
import { groupTransactionsByDate, mapTransactionModalData } from '$lib/utils/transaction.utils';
27+
import { filterReceivedMicroTransactions } from '$lib/utils/transactions.utils';
2528
2629
let { transaction: selectedTransaction, token: selectedToken } = $derived(
2730
mapTransactionModalData<BtcTransactionUi>({
@@ -32,16 +35,22 @@
3235
3336
let token = $derived($pageToken ?? DEFAULT_BITCOIN_TOKEN);
3437
38+
let mappedTransactions = $derived(
39+
$sortedBtcTransactions?.map(({ data: transaction }) => ({
40+
component: 'bitcoin' as const,
41+
transaction,
42+
token
43+
})) ?? []
44+
);
45+
46+
let filteredTransactions = $derived(
47+
$hideMicroTransactions
48+
? filterReceivedMicroTransactions({ transactions: mappedTransactions, exchanges: $exchanges })
49+
: mappedTransactions
50+
);
51+
3552
let groupedTransactions = $derived(
36-
nonNullish($sortedBtcTransactions)
37-
? groupTransactionsByDate(
38-
$sortedBtcTransactions.map(({ data: transaction }) => ({
39-
component: 'bitcoin',
40-
transaction,
41-
token
42-
}))
43-
)
44-
: undefined
53+
nonNullish($sortedBtcTransactions) ? groupTransactionsByDate(filteredTransactions) : undefined
4554
);
4655
</script>
4756

src/frontend/src/eth/components/transactions/EthTransactions.svelte

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,18 @@
1515
import Header from '$lib/components/ui/Header.svelte';
1616
import { TRANSACTIONS_DATE_GROUP_PREFIX } from '$lib/constants/test-ids.constants';
1717
import { ethAddress } from '$lib/derived/address.derived';
18+
import { exchanges } from '$lib/derived/exchange.derived';
1819
import {
1920
modalEthTransaction,
2021
modalEthToken,
2122
modalEthTokenData
2223
} from '$lib/derived/modal.derived';
2324
import { tokenWithFallback } from '$lib/derived/token.derived';
25+
import { hideMicroTransactions } from '$lib/derived/user-profile.derived';
2426
import { i18n } from '$lib/stores/i18n.store';
2527
import { modalStore } from '$lib/stores/modal.store';
2628
import { groupTransactionsByDate, mapTransactionModalData } from '$lib/utils/transaction.utils';
29+
import { filterReceivedMicroTransactions } from '$lib/utils/transactions.utils';
2730
2831
let ckMinterInfoAddresses = $derived(
2932
toCkMinterInfoAddresses($ckEthMinterInfoStore?.[$nativeEthereumTokenId])
@@ -48,12 +51,22 @@
4851
4952
let token = $derived($tokenWithFallback);
5053
54+
let mappedTransactions = $derived(
55+
sortedTransactionsUi.map((transaction) => ({
56+
component: 'ethereum' as const,
57+
transaction,
58+
token
59+
}))
60+
);
61+
62+
let filteredTransactions = $derived(
63+
$hideMicroTransactions
64+
? filterReceivedMicroTransactions({ transactions: mappedTransactions, exchanges: $exchanges })
65+
: mappedTransactions
66+
);
67+
5168
let groupedTransactions = $derived(
52-
nonNullish(sortedTransactionsUi)
53-
? groupTransactionsByDate(
54-
sortedTransactionsUi.map((transaction) => ({ component: 'ethereum', transaction, token }))
55-
)
56-
: undefined
69+
nonNullish(sortedTransactionsUi) ? groupTransactionsByDate(filteredTransactions) : undefined
5770
);
5871
</script>
5972

src/frontend/src/icp/components/transactions/IcTransactions.svelte

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,14 @@
2525
import TransactionsPlaceholder from '$lib/components/transactions/TransactionsPlaceholder.svelte';
2626
import Header from '$lib/components/ui/Header.svelte';
2727
import { TRANSACTIONS_DATE_GROUP_PREFIX } from '$lib/constants/test-ids.constants';
28+
import { exchanges } from '$lib/derived/exchange.derived';
2829
import { modalIcToken, modalIcTokenData, modalIcTransaction } from '$lib/derived/modal.derived';
2930
import { pageToken } from '$lib/derived/page-token.derived';
31+
import { hideMicroTransactions } from '$lib/derived/user-profile.derived';
3032
import { i18n } from '$lib/stores/i18n.store';
3133
import { modalStore } from '$lib/stores/modal.store';
3234
import { groupTransactionsByDate, mapTransactionModalData } from '$lib/utils/transaction.utils';
35+
import { filterReceivedMicroTransactions } from '$lib/utils/transactions.utils';
3336
3437
let ckEthereum = $derived($tokenCkEthLedger || $tokenCkErc20Ledger);
3538
@@ -46,12 +49,22 @@
4649
4750
let token = $derived($pageToken ?? ICP_TOKEN);
4851
52+
let mappedTransactions = $derived(
53+
$icTransactions.map(({ data: transaction }) => ({
54+
component: 'ic' as const,
55+
transaction,
56+
token
57+
}))
58+
);
59+
60+
let filteredTransactions = $derived(
61+
$hideMicroTransactions
62+
? filterReceivedMicroTransactions({ transactions: mappedTransactions, exchanges: $exchanges })
63+
: mappedTransactions
64+
);
65+
4966
let groupedTransactions = $derived(
50-
nonNullish($icTransactions)
51-
? groupTransactionsByDate(
52-
$icTransactions.map(({ data: transaction }) => ({ component: 'ic', transaction, token }))
53-
)
54-
: undefined
67+
nonNullish($icTransactions) ? groupTransactionsByDate(filteredTransactions) : undefined
5568
);
5669
</script>
5770

@@ -76,7 +89,7 @@
7689
</Header>
7790

7891
<IcTransactionsSkeletons>
79-
{#if $icTransactions.length > 0}
92+
{#if filteredTransactions.length > 0}
8093
<IcTransactionsScroll {token}>
8194
{#if nonNullish(groupedTransactions) && Object.values(groupedTransactions).length > 0}
8295
{#each Object.entries(groupedTransactions) as [formattedDate, transactions], index (formattedDate)}

src/frontend/src/lib/components/transactions/AllTransactionsList.svelte

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import TransactionsPlaceholder from '$lib/components/transactions/TransactionsPlaceholder.svelte';
2222
import { ACTIVITY_TRANSACTION_SKELETON_PREFIX } from '$lib/constants/test-ids.constants';
2323
import { ethAddress } from '$lib/derived/address.derived';
24+
import { exchanges } from '$lib/derived/exchange.derived';
2425
import {
2526
modalBtcTransaction,
2627
modalEthTransaction,
@@ -31,15 +32,20 @@
3132
enabledFungibleNetworkTokens,
3233
enabledNonFungibleNetworkTokensWithoutSpam
3334
} from '$lib/derived/network-tokens.derived';
35+
import { hideMicroTransactions } from '$lib/derived/user-profile.derived';
3436
import { modalStore } from '$lib/stores/modal.store';
3537
import type { AllTransactionUiWithCmp } from '$lib/types/transaction-ui';
3638
import { groupTransactionsByDate, mapTransactionModalData } from '$lib/utils/transaction.utils';
37-
import { mapAllTransactionsUi, sortTransactions } from '$lib/utils/transactions.utils';
39+
import {
40+
filterReceivedMicroTransactions,
41+
mapAllTransactionsUi,
42+
sortTransactions
43+
} from '$lib/utils/transactions.utils';
3844
import SolTransactionModal from '$sol/components/transactions/SolTransactionModal.svelte';
3945
import { solTransactionsStore } from '$sol/stores/sol-transactions.store';
4046
import type { SolTransactionUi } from '$sol/types/sol-transaction';
4147
42-
let transactions = $derived(
48+
let allTransactions = $derived(
4349
mapAllTransactionsUi({
4450
tokens: [...$enabledFungibleNetworkTokens, ...$enabledNonFungibleNetworkTokensWithoutSpam],
4551
$btcTransactions: $btcTransactionsStore,
@@ -55,8 +61,20 @@
5561
})
5662
);
5763
64+
// Filtering is only applied on the display path. The unfiltered `allTransactions` is fed to
65+
// `AllTransactionsLoader` so its `transactions.length === 0` short-circuit and `minTimestamp`
66+
// pagination anchor remain based on the actual loaded set, not the filtered one.
67+
let displayTransactions = $derived(
68+
$hideMicroTransactions
69+
? filterReceivedMicroTransactions({
70+
transactions: allTransactions,
71+
exchanges: $exchanges
72+
})
73+
: allTransactions
74+
);
75+
5876
let sortedTransactions = $derived(
59-
transactions.sort(({ transaction: a }, { transaction: b }) =>
77+
displayTransactions.sort(({ transaction: a }, { transaction: b }) =>
6078
sortTransactions({ transactionA: a, transactionB: b })
6179
)
6280
);
@@ -95,7 +113,7 @@
95113
</script>
96114

97115
<AllTransactionsSkeletons testIdPrefix={ACTIVITY_TRANSACTION_SKELETON_PREFIX}>
98-
<AllTransactionsLoader {transactions}>
116+
<AllTransactionsLoader transactions={allTransactions}>
99117
<AllTransactionsScroll {sortedTransactions} bind:transactionsToDisplay>
100118
{#if Object.values(groupedTransactions).length > 0}
101119
{#each Object.entries(groupedTransactions) as [formattedDate, transactions], index (formattedDate)}

src/frontend/src/sol/components/transactions/SolTransactions.svelte

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,18 @@
66
import Header from '$lib/components/ui/Header.svelte';
77
import { TRANSACTIONS_DATE_GROUP_PREFIX } from '$lib/constants/test-ids.constants';
88
import { DEFAULT_SOLANA_TOKEN } from '$lib/constants/tokens.constants';
9+
import { exchanges } from '$lib/derived/exchange.derived';
910
import {
1011
modalSolToken,
1112
modalSolTokenData,
1213
modalSolTransaction
1314
} from '$lib/derived/modal.derived';
1415
import { pageToken } from '$lib/derived/page-token.derived';
16+
import { hideMicroTransactions } from '$lib/derived/user-profile.derived';
1517
import { i18n } from '$lib/stores/i18n.store';
1618
import { modalStore } from '$lib/stores/modal.store';
1719
import { groupTransactionsByDate, mapTransactionModalData } from '$lib/utils/transaction.utils';
20+
import { filterReceivedMicroTransactions } from '$lib/utils/transactions.utils';
1821
import SolTokenModal from '$sol/components/tokens/SolTokenModal.svelte';
1922
import SolTransactionModal from '$sol/components/transactions/SolTransactionModal.svelte';
2023
import SolTransactionsScroll from '$sol/components/transactions/SolTransactionsScroll.svelte';
@@ -31,12 +34,22 @@
3134
3235
let token = $derived($pageToken ?? DEFAULT_SOLANA_TOKEN);
3336
37+
let mappedTransactions = $derived(
38+
$solTransactions.map((transaction) => ({
39+
component: 'solana' as const,
40+
transaction,
41+
token
42+
}))
43+
);
44+
45+
let filteredTransactions = $derived(
46+
$hideMicroTransactions
47+
? filterReceivedMicroTransactions({ transactions: mappedTransactions, exchanges: $exchanges })
48+
: mappedTransactions
49+
);
50+
3451
let groupedTransactions = $derived(
35-
nonNullish($solTransactions)
36-
? groupTransactionsByDate(
37-
$solTransactions.map((transaction) => ({ component: 'solana', transaction, token }))
38-
)
39-
: undefined
52+
nonNullish($solTransactions) ? groupTransactionsByDate(filteredTransactions) : undefined
4053
);
4154
</script>
4255

@@ -47,7 +60,7 @@
4760
<HiddenMicroTransactionsInfoBox />
4861

4962
<SolTransactionsSkeletons>
50-
{#if $solTransactions.length > 0}
63+
{#if filteredTransactions.length > 0}
5164
<SolTransactionsScroll {token}>
5265
{#if nonNullish(groupedTransactions) && Object.values(groupedTransactions).length > 0}
5366
{#each Object.entries(groupedTransactions) as [formattedDate, transactions], index (formattedDate)}

0 commit comments

Comments
 (0)