@metamask-previews/bridge-status-controller 66.0.2-preview-ee8f1b28b → 66.0.2-preview-33dbba4f3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +0 -10
- package/dist/bridge-status-controller.cjs +6 -16
- package/dist/bridge-status-controller.cjs.map +1 -1
- package/dist/bridge-status-controller.d.cts +2 -5
- package/dist/bridge-status-controller.d.cts.map +1 -1
- package/dist/bridge-status-controller.d.mts +2 -5
- package/dist/bridge-status-controller.d.mts.map +1 -1
- package/dist/bridge-status-controller.mjs +7 -17
- package/dist/bridge-status-controller.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +1 -7
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +1 -7
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/dist/utils/metrics.cjs +1 -3
- package/dist/utils/metrics.cjs.map +1 -1
- package/dist/utils/metrics.d.cts +2 -4
- package/dist/utils/metrics.d.cts.map +1 -1
- package/dist/utils/metrics.d.mts +2 -4
- package/dist/utils/metrics.d.mts.map +1 -1
- package/dist/utils/metrics.mjs +2 -4
- package/dist/utils/metrics.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -10,7 +10,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
11
|
};
|
|
12
12
|
var _BridgeStatusController_instances, _BridgeStatusController_pollingTokensByTxMetaId, _BridgeStatusController_intentStatusManager, _BridgeStatusController_clientId, _BridgeStatusController_fetchFn, _BridgeStatusController_config, _BridgeStatusController_addTransactionFn, _BridgeStatusController_addTransactionBatchFn, _BridgeStatusController_updateTransactionFn, _BridgeStatusController_estimateGasFeeFn, _BridgeStatusController_trace, _BridgeStatusController_markTxAsFailed, _BridgeStatusController_restartPollingForIncompleteHistoryItems, _BridgeStatusController_addTxToHistory, _BridgeStatusController_rekeyHistoryItem, _BridgeStatusController_startPollingForTxId, _BridgeStatusController_shouldPollHistoryItem, _BridgeStatusController_getMultichainSelectedAccount, _BridgeStatusController_handleFetchFailure, _BridgeStatusController_fetchBridgeTxStatus, _BridgeStatusController_getSrcTxHash, _BridgeStatusController_updateSrcTxHash, _BridgeStatusController_wipeBridgeStatusByChainId, _BridgeStatusController_handleNonEvmTx, _BridgeStatusController_waitForHashAndReturnFinalTxMeta, _BridgeStatusController_waitForTxConfirmation, _BridgeStatusController_handleApprovalTx, _BridgeStatusController_handleEvmTransaction, _BridgeStatusController_handleUSDTAllowanceReset, _BridgeStatusController_calculateGasFees, _BridgeStatusController_handleEvmTransactionBatch, _BridgeStatusController_trackUnifiedSwapBridgeEvent;
|
|
13
|
-
import { formatChainIdToHex, isNonEvmChainId, StatusTypes, UnifiedSwapBridgeEventName, formatChainIdToCaip, isCrossChain, isTronChainId, isEvmTxData, isHardwareWallet, MetricsActionType,
|
|
13
|
+
import { formatChainIdToHex, isNonEvmChainId, StatusTypes, UnifiedSwapBridgeEventName, formatChainIdToCaip, isCrossChain, isTronChainId, isEvmTxData, isHardwareWallet, MetricsActionType, isBitcoinTrade, isTronTrade, AbortReason, PollingStatus } from "@metamask/bridge-controller";
|
|
14
14
|
import { toHex } from "@metamask/controller-utils";
|
|
15
15
|
import { StaticIntervalPollingController } from "@metamask/polling-controller";
|
|
16
16
|
import { TransactionStatus, TransactionType } from "@metamask/transaction-controller";
|
|
@@ -204,7 +204,7 @@ export class BridgeStatusController extends StaticIntervalPollingController() {
|
|
|
204
204
|
});
|
|
205
205
|
});
|
|
206
206
|
_BridgeStatusController_addTxToHistory.set(this, (startPollingForBridgeTxStatusArgs, actionId) => {
|
|
207
|
-
const { bridgeTxMeta, statusRequest, quoteResponse, startTime, slippagePercentage, initialDestAssetBalance, targetContractAddress, approvalTxId, isStxEnabled,
|
|
207
|
+
const { bridgeTxMeta, statusRequest, quoteResponse, startTime, slippagePercentage, initialDestAssetBalance, targetContractAddress, approvalTxId, isStxEnabled, accountAddress: selectedAddress, } = startPollingForBridgeTxStatusArgs;
|
|
208
208
|
// Determine the key for this history item:
|
|
209
209
|
// - For pre-submission (non-batch EVM): use actionId
|
|
210
210
|
// - For post-submission or other cases: use bridgeTxMeta.id
|
|
@@ -244,7 +244,6 @@ export class BridgeStatusController extends StaticIntervalPollingController() {
|
|
|
244
244
|
approvalTxId,
|
|
245
245
|
isStxEnabled: isStxEnabled ?? false,
|
|
246
246
|
featureId: quoteResponse.featureId,
|
|
247
|
-
location,
|
|
248
247
|
};
|
|
249
248
|
this.update((state) => {
|
|
250
249
|
// Use actionId as key for pre-submission, or txMeta.id for post-submission
|
|
@@ -404,7 +403,6 @@ export class BridgeStatusController extends StaticIntervalPollingController() {
|
|
|
404
403
|
if (validationFailures.length > 0) {
|
|
405
404
|
__classPrivateFieldGet(this, _BridgeStatusController_trackUnifiedSwapBridgeEvent, "f").call(this, UnifiedSwapBridgeEventName.StatusValidationFailed, bridgeTxMetaId, {
|
|
406
405
|
failures: validationFailures,
|
|
407
|
-
refresh_count: historyItem.attempts?.counter ?? 0,
|
|
408
406
|
});
|
|
409
407
|
throw new Error(`Bridge status validation failed: ${validationFailures.join(', ')}`);
|
|
410
408
|
}
|
|
@@ -700,10 +698,9 @@ export class BridgeStatusController extends StaticIntervalPollingController() {
|
|
|
700
698
|
* @param quoteResponse - The quote response
|
|
701
699
|
* @param isStxEnabledOnClient - Whether smart transactions are enabled on the client, for example the getSmartTransactionsEnabled selector value from the extension
|
|
702
700
|
* @param quotesReceivedContext - The context for the QuotesReceived event
|
|
703
|
-
* @param location - The entry point from which the user initiated the swap or bridge (e.g. Main View, Token View, Trending Explore)
|
|
704
701
|
* @returns The transaction meta
|
|
705
702
|
*/
|
|
706
|
-
this.submitTx = async (accountAddress, quoteResponse, isStxEnabledOnClient, quotesReceivedContext
|
|
703
|
+
this.submitTx = async (accountAddress, quoteResponse, isStxEnabledOnClient, quotesReceivedContext) => {
|
|
707
704
|
this.messenger.call('BridgeController:stopPollingForQuotes', AbortReason.TransactionSubmitted,
|
|
708
705
|
// If trade is submitted before all quotes are loaded, the QuotesReceived event is published
|
|
709
706
|
// If the trade has a featureId, it means it was submitted outside of the Unified Swap and Bridge experience, so no QuotesReceived event is published
|
|
@@ -713,7 +710,7 @@ export class BridgeStatusController extends StaticIntervalPollingController() {
|
|
|
713
710
|
throw new Error('Failed to submit cross-chain swap transaction: undefined multichain account');
|
|
714
711
|
}
|
|
715
712
|
const isHardwareAccount = isHardwareWallet(selectedAccount);
|
|
716
|
-
const preConfirmationProperties = getPreConfirmationPropertiesFromQuote(quoteResponse, isStxEnabledOnClient, isHardwareAccount
|
|
713
|
+
const preConfirmationProperties = getPreConfirmationPropertiesFromQuote(quoteResponse, isStxEnabledOnClient, isHardwareAccount);
|
|
717
714
|
// Emit Submitted event after submit button is clicked
|
|
718
715
|
!quoteResponse.featureId &&
|
|
719
716
|
__classPrivateFieldGet(this, _BridgeStatusController_trackUnifiedSwapBridgeEvent, "f").call(this, UnifiedSwapBridgeEventName.Submitted, undefined, preConfirmationProperties);
|
|
@@ -834,7 +831,6 @@ export class BridgeStatusController extends StaticIntervalPollingController() {
|
|
|
834
831
|
isStxEnabled: isStxEnabledOnClient,
|
|
835
832
|
startTime,
|
|
836
833
|
approvalTxId,
|
|
837
|
-
location,
|
|
838
834
|
}, actionId);
|
|
839
835
|
// Pass txFee when gasIncluded is true to use the quote's gas fees
|
|
840
836
|
// instead of re-estimating (which would fail for max native token swaps)
|
|
@@ -874,7 +870,6 @@ export class BridgeStatusController extends StaticIntervalPollingController() {
|
|
|
874
870
|
isStxEnabled: isStxEnabledOnClient,
|
|
875
871
|
startTime,
|
|
876
872
|
approvalTxId,
|
|
877
|
-
location,
|
|
878
873
|
});
|
|
879
874
|
}
|
|
880
875
|
if (isNonEvmChainId(quoteResponse.quote.srcChainId)) {
|
|
@@ -899,16 +894,15 @@ export class BridgeStatusController extends StaticIntervalPollingController() {
|
|
|
899
894
|
* @param params.quoteResponse - Quote carrying intent data
|
|
900
895
|
* @param params.signature - Hex signature produced by eth_signTypedData_v4
|
|
901
896
|
* @param params.accountAddress - The EOA submitting the order
|
|
902
|
-
* @param params.location - The entry point from which the user initiated the swap or bridge
|
|
903
897
|
* @returns A lightweight TransactionMeta-like object for history linking
|
|
904
898
|
*/
|
|
905
899
|
this.submitIntent = async (params) => {
|
|
906
|
-
const { quoteResponse, signature, accountAddress
|
|
900
|
+
const { quoteResponse, signature, accountAddress } = params;
|
|
907
901
|
this.messenger.call('BridgeController:stopPollingForQuotes', AbortReason.TransactionSubmitted);
|
|
908
902
|
// Build pre-confirmation properties for error tracking parity with submitTx
|
|
909
903
|
const account = __classPrivateFieldGet(this, _BridgeStatusController_instances, "m", _BridgeStatusController_getMultichainSelectedAccount).call(this, accountAddress);
|
|
910
904
|
const isHardwareAccount = Boolean(account) && isHardwareWallet(account);
|
|
911
|
-
const preConfirmationProperties = getPreConfirmationPropertiesFromQuote(quoteResponse, false, isHardwareAccount
|
|
905
|
+
const preConfirmationProperties = getPreConfirmationPropertiesFromQuote(quoteResponse, false, isHardwareAccount);
|
|
912
906
|
try {
|
|
913
907
|
const intent = getIntentFromQuote(quoteResponse);
|
|
914
908
|
// If backend provided an approval tx for this intent quote, submit it first (on-chain),
|
|
@@ -1003,7 +997,6 @@ export class BridgeStatusController extends StaticIntervalPollingController() {
|
|
|
1003
997
|
isStxEnabled: false,
|
|
1004
998
|
approvalTxId,
|
|
1005
999
|
startTime,
|
|
1006
|
-
location,
|
|
1007
1000
|
});
|
|
1008
1001
|
// Start polling using the orderId key to route to intent manager
|
|
1009
1002
|
__classPrivateFieldGet(this, _BridgeStatusController_startPollingForTxId, "f").call(this, bridgeHistoryKey);
|
|
@@ -1032,9 +1025,6 @@ export class BridgeStatusController extends StaticIntervalPollingController() {
|
|
|
1032
1025
|
_BridgeStatusController_trackUnifiedSwapBridgeEvent.set(this, (eventName, txMetaId, eventProperties) => {
|
|
1033
1026
|
const baseProperties = {
|
|
1034
1027
|
action_type: MetricsActionType.SWAPBRIDGE_V1,
|
|
1035
|
-
location: eventProperties?.location ??
|
|
1036
|
-
(txMetaId ? this.state.txHistory?.[txMetaId]?.location : undefined) ??
|
|
1037
|
-
MetaMetricsSwapsEventSource.MainView,
|
|
1038
1028
|
...(eventProperties ?? {}),
|
|
1039
1029
|
};
|
|
1040
1030
|
// This will publish events for PERPS dropped tx failures as well
|
|
@@ -1044,7 +1034,7 @@ export class BridgeStatusController extends StaticIntervalPollingController() {
|
|
|
1044
1034
|
}
|
|
1045
1035
|
const historyItem = this.state.txHistory[txMetaId];
|
|
1046
1036
|
if (!historyItem) {
|
|
1047
|
-
this.messenger.call('BridgeController:trackUnifiedSwapBridgeEvent', eventName,
|
|
1037
|
+
this.messenger.call('BridgeController:trackUnifiedSwapBridgeEvent', eventName, eventProperties ?? {});
|
|
1048
1038
|
return;
|
|
1049
1039
|
}
|
|
1050
1040
|
const requestParamProperties = getRequestParamFromHistory(historyItem);
|