Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ export enum UnifiedSwapBridgeEventName {

export enum PollingStatus {
MaxPollingReached = 'max_polling_reached',
StaleTransactionHash = 'stale_transaction_hash',
ManuallyRestarted = 'manually_restarted',
}

Expand Down
1 change: 1 addition & 0 deletions packages/bridge-controller/src/utils/validators.ts
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,7 @@ export const PlatformConfigSchema = type({
* Array of chain objects ordered by preference/ranking
*/
chainRanking: ChainRankingSchema,
maxPendingHistoryItemAgeMs: optional(number()),
});

export const validateFeatureFlagsResponse = (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -326,6 +326,9 @@ exports[`BridgeStatusController startPollingForBridgeTxStatus sets the inital tx

exports[`BridgeStatusController startPollingForBridgeTxStatus stops polling when the status response is complete 1`] = `
[
[
"TransactionController:getState",
],
[
"AuthenticationController:getBearerToken",
],
Expand Down Expand Up @@ -1161,7 +1164,7 @@ exports[`BridgeStatusController submitTx: EVM bridge should handle smart transac
"status": {
"srcChain": {
"chainId": 42161,
"txHash": "0xevmTxHash",
"txHash": undefined,
},
"status": "PENDING",
},
Expand Down Expand Up @@ -3692,7 +3695,7 @@ exports[`BridgeStatusController submitTx: EVM swap should handle a gasless swap
"status": {
"srcChain": {
"chainId": 42161,
"txHash": "0xevmTxHash",
"txHash": undefined,
},
"status": "PENDING",
},
Expand Down Expand Up @@ -3837,7 +3840,7 @@ exports[`BridgeStatusController submitTx: EVM swap should handle smart transacti
"status": {
"srcChain": {
"chainId": 42161,
"txHash": "0xevmTxHash",
"txHash": undefined,
},
"status": "PENDING",
},
Expand Down Expand Up @@ -6003,30 +6006,80 @@ exports[`BridgeStatusController submitTx: Tron swap with approval should success
}
`;

exports[`BridgeStatusController subscription handlers TransactionController:transactionConfirmed should not start polling for bridge tx if tx is not in txHistory 1`] = `[]`;
exports[`BridgeStatusController subscription handlers TransactionController:transactionStatusUpdated (confirmed) should not start polling for bridge tx if tx is not in txHistory 1`] = `[]`;

exports[`BridgeStatusController subscription handlers TransactionController:transactionConfirmed should not track completed event for other transaction types 1`] = `[]`;
exports[`BridgeStatusController subscription handlers TransactionController:transactionStatusUpdated (confirmed) should not track completed event for other transaction types 1`] = `[]`;

exports[`BridgeStatusController subscription handlers TransactionController:transactionConfirmed should start polling for bridge tx if status response is invalid 1`] = `
exports[`BridgeStatusController subscription handlers TransactionController:transactionStatusUpdated (confirmed) should start polling for bridge tx if status response is invalid 1`] = `
[
"BridgeController:trackUnifiedSwapBridgeEvent",
"Unified SwapBridge Status Failed Validation",
{
"action_type": "swapbridge-v1",
"chain_id_destination": "eip155:10",
"chain_id_source": "eip155:42161",
"failures": [
"across|unknown",
],
"location": "Main View",
"refresh_count": 0,
"token_address_destination": "eip155:10/slip44:60",
"token_address_source": "eip155:42161/slip44:60",
},
[
"AuthenticationController:getBearerToken",
],
[
"AuthenticationController:getBearerToken",
],
[
"AuthenticationController:getBearerToken",
],
[
"RemoteFeatureFlagController:getState",
],
[
"TransactionController:getState",
],
[
"TransactionController:getState",
],
[
"NetworkController:findNetworkClientIdByChainId",
"0xa4b1",
],
[
"NetworkController:getNetworkClientById",
Promise {},
],
[
"BridgeController:trackUnifiedSwapBridgeEvent",
"Unified SwapBridge Status Failed Validation",
{
"action_type": "swapbridge-v1",
"chain_id_destination": "eip155:10",
"chain_id_source": "eip155:42161",
"failures": [
"across|status",
],
"location": "Main View",
"refresh_count": 0,
"token_address_destination": "eip155:10/slip44:60",
"token_address_source": "eip155:42161/slip44:60",
},
],
[
"RemoteFeatureFlagController:getState",
],
[
"BridgeController:trackUnifiedSwapBridgeEvent",
"Unified SwapBridge Status Failed Validation",
{
"action_type": "swapbridge-v1",
"chain_id_destination": "eip155:10",
"chain_id_source": "eip155:42161",
"failures": [
"across|unknown",
],
"location": "Main View",
"refresh_count": 0,
"token_address_destination": "eip155:10/slip44:60",
"token_address_source": "eip155:42161/slip44:60",
},
],
[
"RemoteFeatureFlagController:getState",
],
]
`;

exports[`BridgeStatusController subscription handlers TransactionController:transactionConfirmed should start polling for bridge tx if status response is invalid 2`] = `
exports[`BridgeStatusController subscription handlers TransactionController:transactionStatusUpdated (confirmed) should start polling for bridge tx if status response is invalid 2`] = `
[
[
"Failed to fetch bridge tx status",
Expand All @@ -6039,7 +6092,7 @@ exports[`BridgeStatusController subscription handlers TransactionController:tran
]
`;

exports[`BridgeStatusController subscription handlers TransactionController:transactionConfirmed should start polling for completed bridge tx with featureId 2`] = `
exports[`BridgeStatusController subscription handlers TransactionController:transactionStatusUpdated (confirmed) should start polling for completed bridge tx with featureId 2`] = `
{
"bridge": "across",
"destChain": {
Expand Down Expand Up @@ -6080,7 +6133,7 @@ exports[`BridgeStatusController subscription handlers TransactionController:tran
}
`;

exports[`BridgeStatusController subscription handlers TransactionController:transactionConfirmed should start polling for failed bridge tx with featureId 2`] = `
exports[`BridgeStatusController subscription handlers TransactionController:transactionStatusUpdated (confirmed) should start polling for failed bridge tx with featureId 2`] = `
{
"bridge": "debridge",
"destChain": {
Expand All @@ -6107,7 +6160,7 @@ exports[`BridgeStatusController subscription handlers TransactionController:tran
}
`;

exports[`BridgeStatusController subscription handlers TransactionController:transactionConfirmed should track completed event for swap transaction 1`] = `
exports[`BridgeStatusController subscription handlers TransactionController:transactionStatusUpdated (confirmed) should track completed event for swap transaction 1`] = `
[
[
"AccountsController:getAccountByAddress",
Expand Down Expand Up @@ -6156,7 +6209,7 @@ exports[`BridgeStatusController subscription handlers TransactionController:tran
]
`;

exports[`BridgeStatusController subscription handlers TransactionController:transactionFailed should find history by actionId when txMeta.id not in history (pre-submission failure) 1`] = `
exports[`BridgeStatusController subscription handlers TransactionController:transactionStatusUpdated (failed) should find history by actionId when txMeta.id not in history (pre-submission failure) 1`] = `
[
"BridgeController:trackUnifiedSwapBridgeEvent",
"Unified SwapBridge Failed",
Expand All @@ -6169,7 +6222,7 @@ exports[`BridgeStatusController subscription handlers TransactionController:tran
"chain_id_source": "eip155:42161",
"custom_slippage": true,
"destination_transaction": "FAILED",
"error_message": "",
"error_message": "Transaction failed. tx-error",
"gas_included": false,
"gas_included_7702": false,
"is_hardware_wallet": false,
Expand Down Expand Up @@ -6197,13 +6250,13 @@ exports[`BridgeStatusController subscription handlers TransactionController:tran
]
`;

exports[`BridgeStatusController subscription handlers TransactionController:transactionFailed should not track failed event for approved status 1`] = `[]`;
exports[`BridgeStatusController subscription handlers TransactionController:transactionStatusUpdated (failed) should not track failed event for approved status 1`] = `[]`;

exports[`BridgeStatusController subscription handlers TransactionController:transactionFailed should not track failed event for other transaction types 1`] = `[]`;
exports[`BridgeStatusController subscription handlers TransactionController:transactionStatusUpdated (failed) should not track failed event for other transaction types 1`] = `[]`;

exports[`BridgeStatusController subscription handlers TransactionController:transactionFailed should not track failed event for signed status 1`] = `[]`;
exports[`BridgeStatusController subscription handlers TransactionController:transactionStatusUpdated (failed) should not track failed event for signed status 1`] = `[]`;

exports[`BridgeStatusController subscription handlers TransactionController:transactionFailed should track failed event for bridge transaction 1`] = `
exports[`BridgeStatusController subscription handlers TransactionController:transactionStatusUpdated (failed) should track failed event for bridge transaction 1`] = `
[
"BridgeController:trackUnifiedSwapBridgeEvent",
"Unified SwapBridge Failed",
Expand All @@ -6216,7 +6269,7 @@ exports[`BridgeStatusController subscription handlers TransactionController:tran
"chain_id_source": "eip155:42161",
"custom_slippage": true,
"destination_transaction": "FAILED",
"error_message": "",
"error_message": "Transaction failed. tx-error",
"gas_included": false,
"gas_included_7702": false,
"is_hardware_wallet": false,
Expand Down Expand Up @@ -6244,44 +6297,48 @@ exports[`BridgeStatusController subscription handlers TransactionController:tran
]
`;

exports[`BridgeStatusController subscription handlers TransactionController:transactionFailed should track failed event for bridge transaction if approval is dropped 1`] = `
exports[`BridgeStatusController subscription handlers TransactionController:transactionStatusUpdated (failed) should track failed event for bridge transaction if approval is dropped 1`] = `
[
"BridgeController:trackUnifiedSwapBridgeEvent",
"Unified SwapBridge Failed",
{
"action_type": "swapbridge-v1",
"actual_time_minutes": 0,
"chain_id_destination": "eip155:42161",
"allowance_reset_transaction": undefined,
"approval_transaction": "COMPLETE",
"chain_id_destination": "eip155:10",
"chain_id_source": "eip155:42161",
"custom_slippage": false,
"error_message": "",
"custom_slippage": true,
"destination_transaction": "FAILED",
"error_message": "Transaction dropped. tx-error",
"gas_included": false,
"gas_included_7702": false,
"is_hardware_wallet": false,
"location": "Main View",
"price_impact": 0,
"provider": "",
"provider": "lifi_across",
"quote_vs_execution_ratio": 0,
"quoted_time_minutes": 0,
"quoted_time_minutes": 0.25,
"quoted_vs_used_gas_ratio": 0,
"security_warnings": [],
"source_transaction": "FAILED",
"slippage_limit": 0,
"source_transaction": "COMPLETE",
"stx_enabled": false,
"swap_type": "crosschain",
"token_address_destination": "eip155:42161/slip44:60",
"token_address_destination": "eip155:10/slip44:60",
"token_address_source": "eip155:42161/slip44:60",
"token_symbol_destination": "",
"token_symbol_source": "",
"token_symbol_destination": "ETH",
"token_symbol_source": "ETH",
"usd_actual_gas": 0,
"usd_actual_return": 0,
"usd_amount_source": 0,
"usd_quoted_gas": 0,
"usd_quoted_gas": 2.5778,
"usd_quoted_return": 0,
},
]
`;

exports[`BridgeStatusController subscription handlers TransactionController:transactionFailed should track failed event for bridge transaction if not in txHistory 1`] = `
exports[`BridgeStatusController subscription handlers TransactionController:transactionStatusUpdated (failed) should track failed event for bridge transaction if not in txHistory 1`] = `
[
[
"BridgeController:trackUnifiedSwapBridgeEvent",
Expand All @@ -6292,7 +6349,7 @@ exports[`BridgeStatusController subscription handlers TransactionController:tran
"chain_id_destination": "eip155:42161",
"chain_id_source": "eip155:42161",
"custom_slippage": false,
"error_message": "",
"error_message": "Transaction failed. tx-error",
"gas_included": false,
"gas_included_7702": false,
"is_hardware_wallet": false,
Expand Down Expand Up @@ -6320,7 +6377,7 @@ exports[`BridgeStatusController subscription handlers TransactionController:tran
]
`;

exports[`BridgeStatusController subscription handlers TransactionController:transactionFailed should track failed event for swap transaction 1`] = `
exports[`BridgeStatusController subscription handlers TransactionController:transactionStatusUpdated (failed) should track failed event for swap transaction 1`] = `
[
[
"AccountsController:getAccountByAddress",
Expand All @@ -6341,7 +6398,7 @@ exports[`BridgeStatusController subscription handlers TransactionController:tran
"chain_id_source": "eip155:42161",
"custom_slippage": true,
"destination_transaction": "FAILED",
"error_message": "",
"error_message": "Transaction failed. tx-error",
"gas_included": false,
"gas_included_7702": false,
"is_hardware_wallet": false,
Expand Down Expand Up @@ -6370,38 +6427,42 @@ exports[`BridgeStatusController subscription handlers TransactionController:tran
]
`;

exports[`BridgeStatusController subscription handlers TransactionController:transactionFailed should track failed event for swap transaction if approval fails 1`] = `
exports[`BridgeStatusController subscription handlers TransactionController:transactionStatusUpdated (failed) should track failed event for swap transaction if approval fails 1`] = `
[
"BridgeController:trackUnifiedSwapBridgeEvent",
"Unified SwapBridge Failed",
{
"action_type": "swapbridge-v1",
"actual_time_minutes": 0,
"chain_id_destination": "eip155:42161",
"allowance_reset_transaction": undefined,
"approval_transaction": "COMPLETE",
"chain_id_destination": "eip155:10",
"chain_id_source": "eip155:42161",
"custom_slippage": false,
"error_message": "",
"custom_slippage": true,
"destination_transaction": "FAILED",
"error_message": "Transaction failed. approval-tx-error",
"gas_included": false,
"gas_included_7702": false,
"is_hardware_wallet": false,
"location": "Main View",
"price_impact": 0,
"provider": "",
"provider": "lifi_across",
"quote_vs_execution_ratio": 0,
"quoted_time_minutes": 0,
"quoted_time_minutes": 0.25,
"quoted_vs_used_gas_ratio": 0,
"security_warnings": [],
"source_transaction": "FAILED",
"slippage_limit": 0,
"source_transaction": "COMPLETE",
"stx_enabled": false,
"swap_type": "single_chain",
"token_address_destination": "eip155:42161/slip44:60",
"swap_type": "crosschain",
"token_address_destination": "eip155:10/slip44:60",
"token_address_source": "eip155:42161/slip44:60",
"token_symbol_destination": "",
"token_symbol_source": "",
"token_symbol_destination": "ETH",
"token_symbol_source": "ETH",
"usd_actual_gas": 0,
"usd_actual_return": 0,
"usd_amount_source": 0,
"usd_quoted_gas": 0,
"usd_quoted_gas": 2.5778,
"usd_quoted_return": 0,
},
]
Expand Down
Loading
Loading