Skip to content

Commit 7ccf48d

Browse files
committed
fix(activity): resolve intent swap display data via original tx id
1 parent 7e9dea3 commit 7ccf48d

File tree

3 files changed

+35
-3
lines changed

3 files changed

+35
-3
lines changed

ui/ducks/bridge-status/selectors.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,24 @@ export const selectBridgeHistoryItemForTxMetaId = createSelector(
7070
},
7171
);
7272

73+
// eslint-disable-next-line jsdoc/require-param
74+
/**
75+
* Returns a bridge history item for a given original tx meta id.
76+
* Used by intent flows where txHistory key is orderUid and txMeta id is stored separately.
77+
*/
78+
export const selectBridgeHistoryForOriginalTxMetaId = createSelector(
79+
[selectBridgeHistory, (_, originalTxMetaId?: string) => originalTxMetaId],
80+
(bridgeHistory, originalTxMetaId) => {
81+
if (!originalTxMetaId) {
82+
return undefined;
83+
}
84+
return Object.values(bridgeHistory).find(
85+
(bridgeHistoryItem) =>
86+
bridgeHistoryItem.originalTransactionId === originalTxMetaId,
87+
);
88+
},
89+
);
90+
7391
// eslint-disable-next-line jsdoc/require-param
7492
/**
7593
* Returns a bridge history item for a given approval tx id

ui/hooks/useTransactionDisplayData.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,10 @@ import { formatAmount } from '../pages/confirmations/components/simulation-detai
3434
import { getIntlLocale } from '../ducks/locale/locale';
3535
import { NETWORK_TO_SHORT_NETWORK_NAME_MAP } from '../../shared/constants/bridge';
3636
import { calcTokenAmount } from '../../shared/lib/transactions-controller-utils';
37-
import { selectBridgeHistoryItemForTxMetaId } from '../ducks/bridge-status/selectors';
37+
import {
38+
selectBridgeHistoryForOriginalTxMetaId,
39+
selectBridgeHistoryItemForTxMetaId,
40+
} from '../ducks/bridge-status/selectors';
3841

3942
import { PAY_TRANSACTION_TYPES } from '../pages/confirmations/constants/pay';
4043
import { useI18nContext } from './useI18nContext';
@@ -109,9 +112,14 @@ export function useTransactionDisplayData(transactionGroup) {
109112

110113
// Bridge data
111114
const srcTxMetaId = transactionGroup.initialTransaction.id;
112-
const bridgeHistoryItem = useSelector((state) =>
115+
const bridgeHistoryItemByTxMetaId = useSelector((state) =>
113116
selectBridgeHistoryItemForTxMetaId(state, srcTxMetaId),
114117
);
118+
const bridgeHistoryItemByOriginalTxMetaId = useSelector((state) =>
119+
selectBridgeHistoryForOriginalTxMetaId(state, srcTxMetaId),
120+
);
121+
const bridgeHistoryItem =
122+
bridgeHistoryItemByTxMetaId ?? bridgeHistoryItemByOriginalTxMetaId;
115123
const { destNetwork } = useBridgeChainInfo({
116124
bridgeHistoryItem,
117125
srcTxMeta: transactionGroup.initialTransaction,

ui/pages/bridge/hooks/useBridgeTokenDisplayData.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import type { TransactionGroup } from '../../../hooks/bridge/useBridgeTxHistoryD
55
import { useTokenFiatAmount } from '../../../hooks/useTokenFiatAmount';
66
import { TransactionGroupCategory } from '../../../../shared/constants/transaction';
77
import {
8+
selectBridgeHistoryForOriginalTxMetaId,
89
selectBridgeHistoryForApprovalTxId,
910
selectBridgeHistoryItemForTxMetaId,
1011
} from '../../../ducks/bridge-status/selectors';
@@ -21,12 +22,17 @@ export function useBridgeTokenDisplayData(transactionGroup: TransactionGroup) {
2122
const bridgeHistoryItemForInitialTxId = useSelector((state) =>
2223
selectBridgeHistoryItemForTxMetaId(state, initialTransaction.id),
2324
);
25+
const bridgeHistoryItemForOriginalTxId = useSelector((state) =>
26+
selectBridgeHistoryForOriginalTxMetaId(state, initialTransaction.id),
27+
);
2428
const bridgeHistoryItemWithApprovalTxId = useSelector((state) =>
2529
selectBridgeHistoryForApprovalTxId(state, initialTransaction.id),
2630
);
2731

2832
const bridgeHistoryItem: BridgeHistoryItem | undefined =
29-
bridgeHistoryItemForInitialTxId ?? bridgeHistoryItemWithApprovalTxId;
33+
bridgeHistoryItemForInitialTxId ??
34+
bridgeHistoryItemForOriginalTxId ??
35+
bridgeHistoryItemWithApprovalTxId;
3036

3137
// Display currency can be fiat or a token
3238
const displayCurrencyAmount = useTokenFiatAmount(

0 commit comments

Comments
 (0)