From 35881d2c8fa390803fb7fbd8caae114315493a44 Mon Sep 17 00:00:00 2001 From: Micaela Estabillo Date: Fri, 29 Aug 2025 17:47:22 -0700 Subject: [PATCH 1/8] fix: publish error_message property from TxMeta --- packages/bridge-status-controller/src/utils/metrics.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/bridge-status-controller/src/utils/metrics.ts b/packages/bridge-status-controller/src/utils/metrics.ts index 5843c5d6bbc..48c1bb51e53 100644 --- a/packages/bridge-status-controller/src/utils/metrics.ts +++ b/packages/bridge-status-controller/src/utils/metrics.ts @@ -247,9 +247,8 @@ export const getEVMTxPropertiesFromTransactionMeta = ( ].includes(transactionMeta.status) ? StatusTypes.FAILED : StatusTypes.COMPLETE, - error_message: transactionMeta.error?.message - ? 'Failed to finalize swap tx' - : undefined, + error_message: + transactionMeta.error?.message ?? 'Failed to finalize swap tx', chain_id_source: formatChainIdToCaip(transactionMeta.chainId), chain_id_destination: formatChainIdToCaip(transactionMeta.chainId), token_symbol_source: transactionMeta.sourceTokenSymbol ?? '', From 472285d35bab0917aae8bbb0f88b5085446e4394 Mon Sep 17 00:00:00 2001 From: Micaela Estabillo Date: Fri, 29 Aug 2025 17:48:01 -0700 Subject: [PATCH 2/8] fix: set hash as solana txHistory key --- packages/bridge-status-controller/src/utils/transaction.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/bridge-status-controller/src/utils/transaction.ts b/packages/bridge-status-controller/src/utils/transaction.ts index 2656d4d1477..5e81afbf42f 100644 --- a/packages/bridge-status-controller/src/utils/transaction.ts +++ b/packages/bridge-status-controller/src/utils/transaction.ts @@ -148,7 +148,7 @@ export const handleSolanaTxResponse = ( return { ...getTxMetaFields(quoteResponse), time: Date.now(), - id: uuid(), + id: hash ?? uuid(), chainId: hexChainId, networkClientId: snapId ?? hexChainId, txParams: { from: selectedAccountAddress, data: quoteResponse.trade }, From 94aa60b42c4f6a99e0cabef60af44bc6786f41ed Mon Sep 17 00:00:00 2001 From: Micaela Estabillo Date: Tue, 2 Sep 2025 09:45:17 -0700 Subject: [PATCH 3/8] chore: changelog update --- packages/bridge-status-controller/CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/bridge-status-controller/CHANGELOG.md b/packages/bridge-status-controller/CHANGELOG.md index c7cc95cf03d..f3c9100fab2 100644 --- a/packages/bridge-status-controller/CHANGELOG.md +++ b/packages/bridge-status-controller/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Fixed + +- Set the Solana tx signature as the `txHistory` key to support lookups by hash ([#6424](https://github.com/MetaMask/core/pull/6424)) + ## [40.2.0] ### Added From f6bbf2a95058105b91ed4e2418abbc754ba8499d Mon Sep 17 00:00:00 2001 From: Micaela Estabillo Date: Tue, 2 Sep 2025 10:20:21 -0700 Subject: [PATCH 4/8] fix: read swap Confirmed metrics from txHistory --- .../bridge-status-controller/src/bridge-status-controller.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/bridge-status-controller/src/bridge-status-controller.ts b/packages/bridge-status-controller/src/bridge-status-controller.ts index 42907a8e5d6..2194c1dcb27 100644 --- a/packages/bridge-status-controller/src/bridge-status-controller.ts +++ b/packages/bridge-status-controller/src/bridge-status-controller.ts @@ -229,7 +229,6 @@ export class BridgeStatusController extends StaticIntervalPollingController Date: Tue, 2 Sep 2025 10:20:40 -0700 Subject: [PATCH 5/8] fix: remove hardcoded error_message --- packages/bridge-status-controller/src/utils/metrics.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/bridge-status-controller/src/utils/metrics.ts b/packages/bridge-status-controller/src/utils/metrics.ts index 48c1bb51e53..cb89d440804 100644 --- a/packages/bridge-status-controller/src/utils/metrics.ts +++ b/packages/bridge-status-controller/src/utils/metrics.ts @@ -247,8 +247,7 @@ export const getEVMTxPropertiesFromTransactionMeta = ( ].includes(transactionMeta.status) ? StatusTypes.FAILED : StatusTypes.COMPLETE, - error_message: - transactionMeta.error?.message ?? 'Failed to finalize swap tx', + error_message: transactionMeta.error?.message ?? '', chain_id_source: formatChainIdToCaip(transactionMeta.chainId), chain_id_destination: formatChainIdToCaip(transactionMeta.chainId), token_symbol_source: transactionMeta.sourceTokenSymbol ?? '', From 9724b6b0087e2dea4821e78e26842ce96dc24665 Mon Sep 17 00:00:00 2001 From: Micaela Estabillo Date: Tue, 2 Sep 2025 10:35:16 -0700 Subject: [PATCH 6/8] fix: unit tests --- .../bridge-status-controller.test.ts.snap | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/packages/bridge-status-controller/src/__snapshots__/bridge-status-controller.test.ts.snap b/packages/bridge-status-controller/src/__snapshots__/bridge-status-controller.test.ts.snap index 36d2b409f27..2690972a36b 100644 --- a/packages/bridge-status-controller/src/__snapshots__/bridge-status-controller.test.ts.snap +++ b/packages/bridge-status-controller/src/__snapshots__/bridge-status-controller.test.ts.snap @@ -3110,7 +3110,7 @@ Object { "destinationTokenDecimals": 18, "destinationTokenSymbol": "ETH", "hash": "signature", - "id": "test-uuid-1234", + "id": "signature", "isBridgeTx": true, "isSolana": true, "networkClientId": "test-snap", @@ -3132,7 +3132,7 @@ Object { exports[`BridgeStatusController submitTx: Solana bridge should successfully submit a transaction 3`] = ` Object { - "bridgeTxMetaId": "test-uuid-1234", + "bridgeTxMetaId": "signature", } `; @@ -3233,7 +3233,7 @@ Object { "status": "PENDING", }, "targetContractAddress": undefined, - "txMetaId": "test-uuid-1234", + "txMetaId": "signature", } `; @@ -3439,7 +3439,7 @@ Object { "destinationTokenDecimals": 18, "destinationTokenSymbol": "USDC", "hash": "signature", - "id": "test-uuid-1234", + "id": "signature", "isBridgeTx": false, "isSolana": true, "networkClientId": "test-snap", @@ -3554,7 +3554,7 @@ Object { "status": "PENDING", }, "targetContractAddress": undefined, - "txMetaId": "test-uuid-1234", + "txMetaId": "signature", } `; @@ -3681,7 +3681,6 @@ Array [ "chain_id_source": "eip155:42161", "custom_slippage": true, "destination_transaction": "PENDING", - "error_message": undefined, "gas_included": false, "is_hardware_wallet": false, "price_impact": 0, @@ -3727,7 +3726,7 @@ Array [ "chain_id_source": "eip155:42161", "custom_slippage": true, "destination_transaction": "FAILED", - "error_message": undefined, + "error_message": "", "gas_included": false, "is_hardware_wallet": false, "price_impact": 0, @@ -3763,7 +3762,7 @@ Array [ "chain_id_destination": "eip155:42161", "chain_id_source": "eip155:42161", "custom_slippage": false, - "error_message": undefined, + "error_message": "", "gas_included": false, "is_hardware_wallet": false, "price_impact": 0, @@ -3799,7 +3798,7 @@ Array [ "chain_id_destination": "eip155:42161", "chain_id_source": "eip155:42161", "custom_slippage": false, - "error_message": undefined, + "error_message": "", "gas_included": false, "is_hardware_wallet": false, "price_impact": 0, @@ -3846,7 +3845,7 @@ Array [ "chain_id_source": "eip155:42161", "custom_slippage": true, "destination_transaction": "FAILED", - "error_message": undefined, + "error_message": "", "gas_included": false, "is_hardware_wallet": false, "price_impact": 0, @@ -3883,7 +3882,7 @@ Array [ "chain_id_destination": "eip155:42161", "chain_id_source": "eip155:42161", "custom_slippage": false, - "error_message": undefined, + "error_message": "", "gas_included": false, "is_hardware_wallet": false, "price_impact": 0, From 40b50b00b2da0c90ed4d8e32a98460ad6cafe887 Mon Sep 17 00:00:00 2001 From: Micaela Estabillo Date: Tue, 2 Sep 2025 10:36:36 -0700 Subject: [PATCH 7/8] chore: update changelog --- packages/bridge-status-controller/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/bridge-status-controller/CHANGELOG.md b/packages/bridge-status-controller/CHANGELOG.md index f3c9100fab2..27a33fa0bcd 100644 --- a/packages/bridge-status-controller/CHANGELOG.md +++ b/packages/bridge-status-controller/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Set the Solana tx signature as the `txHistory` key to support lookups by hash ([#6424](https://github.com/MetaMask/core/pull/6424)) +- Read Completed swap properties from `txHistory` for consistency with bridge transactions ([#6424](https://github.com/MetaMask/core/pull/6424)) ## [40.2.0] From 897b32155d82e399275d23be4f1eaafa91140895 Mon Sep 17 00:00:00 2001 From: Micaela Estabillo Date: Tue, 2 Sep 2025 10:45:48 -0700 Subject: [PATCH 8/8] fix: metrics unit tests --- packages/bridge-status-controller/src/utils/metrics.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/bridge-status-controller/src/utils/metrics.test.ts b/packages/bridge-status-controller/src/utils/metrics.test.ts index 26d555e325b..a3f4925a405 100644 --- a/packages/bridge-status-controller/src/utils/metrics.test.ts +++ b/packages/bridge-status-controller/src/utils/metrics.test.ts @@ -985,7 +985,7 @@ describe('metrics utils', () => { it('should return correct properties for a successful swap transaction', () => { const result = getEVMTxPropertiesFromTransactionMeta(mockTransactionMeta); expect(result).toStrictEqual({ - error_message: undefined, + error_message: '', chain_id_source: 'eip155:1', chain_id_destination: 'eip155:1', token_symbol_source: 'ETH', @@ -1027,7 +1027,7 @@ describe('metrics utils', () => { const result = getEVMTxPropertiesFromTransactionMeta( failedTransactionMeta, ); - expect(result.error_message).toBe('Failed to finalize swap tx'); + expect(result.error_message).toBe('Transaction failed'); expect(result.source_transaction).toBe('FAILED'); });