@metamask-previews/bridge-status-controller 76.4.0-preview-51ecba2 → 76.4.0-preview-b50d61887

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.
Files changed (35) hide show
  1. package/CHANGELOG.md +0 -14
  2. package/dist/bridge-status-controller.d.ts.map +1 -1
  3. package/dist/bridge-status-controller.js +40 -78
  4. package/dist/bridge-status-controller.js.map +1 -1
  5. package/dist/strategy/batch-sell-strategy.d.ts.map +1 -1
  6. package/dist/strategy/batch-sell-strategy.js +34 -62
  7. package/dist/strategy/batch-sell-strategy.js.map +1 -1
  8. package/dist/strategy/batch-strategy.d.ts.map +1 -1
  9. package/dist/strategy/batch-strategy.js +13 -38
  10. package/dist/strategy/batch-strategy.js.map +1 -1
  11. package/dist/strategy/evm-strategy.d.ts +28 -2
  12. package/dist/strategy/evm-strategy.d.ts.map +1 -1
  13. package/dist/strategy/evm-strategy.js +39 -62
  14. package/dist/strategy/evm-strategy.js.map +1 -1
  15. package/dist/strategy/intent-strategy.d.ts.map +1 -1
  16. package/dist/strategy/intent-strategy.js +1 -2
  17. package/dist/strategy/intent-strategy.js.map +1 -1
  18. package/dist/strategy/types.d.ts +2 -3
  19. package/dist/strategy/types.d.ts.map +1 -1
  20. package/dist/strategy/types.js.map +1 -1
  21. package/dist/types.d.ts +2 -1
  22. package/dist/types.d.ts.map +1 -1
  23. package/dist/types.js.map +1 -1
  24. package/dist/utils/history.d.ts +2 -2
  25. package/dist/utils/history.d.ts.map +1 -1
  26. package/dist/utils/history.js +25 -64
  27. package/dist/utils/history.js.map +1 -1
  28. package/dist/utils/metrics.d.ts +33 -2
  29. package/dist/utils/metrics.d.ts.map +1 -1
  30. package/dist/utils/metrics.js.map +1 -1
  31. package/dist/utils/transaction.d.ts +0 -2
  32. package/dist/utils/transaction.d.ts.map +1 -1
  33. package/dist/utils/transaction.js +4 -16
  34. package/dist/utils/transaction.js.map +1 -1
  35. package/package.json +1 -1
@@ -3,7 +3,7 @@ import type { BatchSellTradesResponse, BridgeClientId, QuoteMetadata, QuoteRespo
3
3
  import type { TraceCallback } from '@metamask/controller-utils';
4
4
  import type { TransactionController, TransactionMeta } from '@metamask/transaction-controller';
5
5
  import type { Hex } from '@metamask/utils';
6
- import type { BridgeHistoryItem, BridgeStatusControllerMessenger, FetchFunction, QuoteAndTxMetadata, StartPollingForBridgeTxStatusArgs } from '../types.js';
6
+ import type { BridgeStatusControllerMessenger, FetchFunction, QuoteAndTxMetadata, StartPollingForBridgeTxStatusArgs } from '../types.js';
7
7
  export declare enum SubmitStep {
8
8
  /**
9
9
  * Adds quote and submission data to BridgeStatusController's `txHistory`
@@ -51,8 +51,7 @@ export type SubmitStepResult = {
51
51
  /** Usually the txMeta.id of the `trade` transaction */
52
52
  newHistoryKey: string;
53
53
  /** The {@link TransactionMeta} for the `trade` transaction after it has been submitted successfully */
54
- tradeMeta?: TransactionMeta;
55
- historyItemOverrides?: Partial<Pick<BridgeHistoryItem, 'approvalTxId' | 'quoteIds' | 'quote'>>;
54
+ tradeMeta: TransactionMeta;
56
55
  };
57
56
  } | {
58
57
  type: SubmitStep.StartPolling;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/strategy/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/strategy/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/strategy/types.ts"],"names":[],"mappings":"AAwBA,MAAM,CAAN,IAAY,UA2BX;AA3BD,WAAY,UAAU;IACpB;;OAEG;IACH,+CAAiC,CAAA;IACjC;;;OAGG;IACH,mDAAqC,CAAA;IACrC;;OAEG;IACH,2CAA6B,CAAA;IAC7B;;OAEG;IACH,6DAA+C,CAAA;IAC/C;;OAEG;IACH,2CAA6B,CAAA;IAC7B;;;OAGG;IACH,iEAAmD,CAAA;AACrD,CAAC,EA3BW,UAAU,KAAV,UAAU,QA2BrB","sourcesContent":["import type { AccountsControllerState } from '@metamask/accounts-controller';\nimport type {\n BatchSellTradesResponse,\n BridgeClientId,\n QuoteMetadata,\n QuoteResponseV1,\n Trade,\n TxData,\n} from '@metamask/bridge-controller';\nimport type { TraceCallback } from '@metamask/controller-utils';\nimport type {\n TransactionController,\n TransactionMeta,\n} from '@metamask/transaction-controller';\nimport type { Hex } from '@metamask/utils';\n\nimport type {\n BridgeHistoryItem,\n BridgeStatusControllerMessenger,\n FetchFunction,\n QuoteAndTxMetadata,\n StartPollingForBridgeTxStatusArgs,\n} from '../types.js';\n\nexport enum SubmitStep {\n /**\n * Adds quote and submission data to BridgeStatusController's `txHistory`\n */\n AddHistoryItem = 'addHistoryItem',\n /**\n * Rekeys the history item keyed by the old history key to the new history key,\n * and merges in the tradeMeta's id and hash\n */\n RekeyHistoryItem = 'rekeyHistoryItem',\n /**\n * Triggers polling for the transaction's status\n */\n StartPolling = 'startPolling',\n /**\n * Publishes the Unified SwapBridge Completed metrics event\n */\n PublishCompletedEvent = 'publishCompletedEvent',\n /**\n * Sets the tradeMeta returned to the client after submission\n */\n SetTradeMeta = 'setTradeMeta',\n /**\n * Updates the transaction type of batch transactions to swap/bridge/swapApproval/bridgeApproval\n * for display purposes.\n */\n UpdateBatchTransactions = 'updateBatchTransactions',\n}\n\n/**\n * Any possible result returned by steps in a submission strategy. These can be returned in any order.\n */\nexport type SubmitStepResult =\n | {\n type: SubmitStep.AddHistoryItem;\n payload: Pick<\n StartPollingForBridgeTxStatusArgs,\n 'approvalTxId' | 'bridgeTxMeta' | 'originalTransactionId' | 'actionId'\n > & {\n historyKey: string;\n quoteResponse: QuoteResponseV1 & QuoteMetadata;\n batchSellData?: BatchSellTradesResponse;\n quoteIds?: string[];\n };\n }\n | {\n type: SubmitStep.RekeyHistoryItem;\n payload: {\n /** Usually the actionId of the preceeding `approval` transaction */\n oldHistoryKey: string;\n /** Usually the txMeta.id of the `trade` transaction */\n newHistoryKey: string;\n /** The {@link TransactionMeta} for the `trade` transaction after it has been submitted successfully */\n tradeMeta?: TransactionMeta;\n historyItemOverrides?: Partial<\n Pick<BridgeHistoryItem, 'approvalTxId' | 'quoteIds' | 'quote'>\n >;\n };\n }\n | {\n type: SubmitStep.StartPolling;\n payload: {\n /** The `txHistory` key of the transaction to start polling for */\n historyKey: string;\n };\n }\n | {\n type: SubmitStep.PublishCompletedEvent;\n payload: {\n /** The `txHistory` key of the transaction that has been submitted successfully */\n historyKey: string;\n };\n }\n | {\n type: SubmitStep.SetTradeMeta;\n /** The {@link TransactionMeta} for the transaction that has been submitted successfully */\n payload: {\n tradeMeta: TransactionMeta;\n };\n }\n | {\n type: SubmitStep.UpdateBatchTransactions;\n payload: {\n quoteAndTxMetas: QuoteAndTxMetadata[];\n };\n };\n\n/**\n * The parameters for the submission flow\n */\nexport type SubmitStrategyParams<\n TradeType extends Trade = TxData,\n BatchSellTradesResponseType extends\n | BatchSellTradesResponse\n | undefined\n | null = BatchSellTradesResponse | undefined | null,\n> = {\n /**\n * The response from obtainGaslessBatch API containing submittable transactions and their fees\n */\n batchSellTrades: BatchSellTradesResponseType;\n /**\n * The function to add a transaction batch to the {@link TransactionControllers}\n */\n addTransactionBatchFn: TransactionController['addTransactionBatch'];\n isBridgeTx: boolean;\n isDelegatedAccount: boolean;\n /**\n * Whether the STX is enabled in the wallet. Does not necessarily mean that\n * STX will be used to submit the transaction.\n */\n isStxEnabled: boolean;\n messenger: BridgeStatusControllerMessenger;\n quoteResponses: (QuoteResponseV1<TradeType, TradeType> & QuoteMetadata)[];\n /**\n * Set to true so hardware wallets get prompted for approval on mobile\n */\n requireApproval: boolean;\n selectedAccount: AccountsControllerState['internalAccounts']['accounts'][string];\n traceFn: TraceCallback;\n // Used for intent transactions\n fetchFn: FetchFunction;\n clientId: BridgeClientId;\n bridgeApiBaseUrl: string;\n /**\n * The batch ID of the transaction batch passed to the addTransactionBatchFn\n * This is only used for batch-sell transactions.\n */\n batchId?: Hex;\n};\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/strategy/types.ts"],"names":[],"mappings":"AAuBA,MAAM,CAAN,IAAY,UA2BX;AA3BD,WAAY,UAAU;IACpB;;OAEG;IACH,+CAAiC,CAAA;IACjC;;;OAGG;IACH,mDAAqC,CAAA;IACrC;;OAEG;IACH,2CAA6B,CAAA;IAC7B;;OAEG;IACH,6DAA+C,CAAA;IAC/C;;OAEG;IACH,2CAA6B,CAAA;IAC7B;;;OAGG;IACH,iEAAmD,CAAA;AACrD,CAAC,EA3BW,UAAU,KAAV,UAAU,QA2BrB","sourcesContent":["import type { AccountsControllerState } from '@metamask/accounts-controller';\nimport type {\n BatchSellTradesResponse,\n BridgeClientId,\n QuoteMetadata,\n QuoteResponseV1,\n Trade,\n TxData,\n} from '@metamask/bridge-controller';\nimport type { TraceCallback } from '@metamask/controller-utils';\nimport type {\n TransactionController,\n TransactionMeta,\n} from '@metamask/transaction-controller';\nimport type { Hex } from '@metamask/utils';\n\nimport type {\n BridgeStatusControllerMessenger,\n FetchFunction,\n QuoteAndTxMetadata,\n StartPollingForBridgeTxStatusArgs,\n} from '../types.js';\n\nexport enum SubmitStep {\n /**\n * Adds quote and submission data to BridgeStatusController's `txHistory`\n */\n AddHistoryItem = 'addHistoryItem',\n /**\n * Rekeys the history item keyed by the old history key to the new history key,\n * and merges in the tradeMeta's id and hash\n */\n RekeyHistoryItem = 'rekeyHistoryItem',\n /**\n * Triggers polling for the transaction's status\n */\n StartPolling = 'startPolling',\n /**\n * Publishes the Unified SwapBridge Completed metrics event\n */\n PublishCompletedEvent = 'publishCompletedEvent',\n /**\n * Sets the tradeMeta returned to the client after submission\n */\n SetTradeMeta = 'setTradeMeta',\n /**\n * Updates the transaction type of batch transactions to swap/bridge/swapApproval/bridgeApproval\n * for display purposes.\n */\n UpdateBatchTransactions = 'updateBatchTransactions',\n}\n\n/**\n * Any possible result returned by steps in a submission strategy. These can be returned in any order.\n */\nexport type SubmitStepResult =\n | {\n type: SubmitStep.AddHistoryItem;\n payload: Pick<\n StartPollingForBridgeTxStatusArgs,\n 'approvalTxId' | 'bridgeTxMeta' | 'originalTransactionId' | 'actionId'\n > & {\n historyKey: string;\n quoteResponse: QuoteResponseV1 & QuoteMetadata;\n batchSellData?: BatchSellTradesResponse;\n quoteIds?: string[];\n };\n }\n | {\n type: SubmitStep.RekeyHistoryItem;\n payload: {\n /** Usually the actionId of the preceeding `approval` transaction */\n oldHistoryKey: string;\n /** Usually the txMeta.id of the `trade` transaction */\n newHistoryKey: string;\n /** The {@link TransactionMeta} for the `trade` transaction after it has been submitted successfully */\n tradeMeta: TransactionMeta;\n };\n }\n | {\n type: SubmitStep.StartPolling;\n payload: {\n /** The `txHistory` key of the transaction to start polling for */\n historyKey: string;\n };\n }\n | {\n type: SubmitStep.PublishCompletedEvent;\n payload: {\n /** The `txHistory` key of the transaction that has been submitted successfully */\n historyKey: string;\n };\n }\n | {\n type: SubmitStep.SetTradeMeta;\n /** The {@link TransactionMeta} for the transaction that has been submitted successfully */\n payload: {\n tradeMeta: TransactionMeta;\n };\n }\n | {\n type: SubmitStep.UpdateBatchTransactions;\n payload: {\n quoteAndTxMetas: QuoteAndTxMetadata[];\n };\n };\n\n/**\n * The parameters for the submission flow\n */\nexport type SubmitStrategyParams<\n TradeType extends Trade = TxData,\n BatchSellTradesResponseType extends\n | BatchSellTradesResponse\n | undefined\n | null = BatchSellTradesResponse | undefined | null,\n> = {\n /**\n * The response from obtainGaslessBatch API containing submittable transactions and their fees\n */\n batchSellTrades: BatchSellTradesResponseType;\n /**\n * The function to add a transaction batch to the {@link TransactionControllers}\n */\n addTransactionBatchFn: TransactionController['addTransactionBatch'];\n isBridgeTx: boolean;\n isDelegatedAccount: boolean;\n /**\n * Whether the STX is enabled in the wallet. Does not necessarily mean that\n * STX will be used to submit the transaction.\n */\n isStxEnabled: boolean;\n messenger: BridgeStatusControllerMessenger;\n quoteResponses: (QuoteResponseV1<TradeType, TradeType> & QuoteMetadata)[];\n /**\n * Set to true so hardware wallets get prompted for approval on mobile\n */\n requireApproval: boolean;\n selectedAccount: AccountsControllerState['internalAccounts']['accounts'][string];\n traceFn: TraceCallback;\n // Used for intent transactions\n fetchFn: FetchFunction;\n clientId: BridgeClientId;\n bridgeApiBaseUrl: string;\n /**\n * The batch ID of the transaction batch passed to the addTransactionBatchFn\n * This is only used for batch-sell transactions.\n */\n batchId?: Hex;\n};\n"]}
package/dist/types.d.ts CHANGED
@@ -236,9 +236,10 @@ export type QuoteMetadataSerialized = {
236
236
  cost: Omit<TokenAmountValuesSerialized, 'amount'>;
237
237
  };
238
238
  export type StartPollingForBridgeTxStatusArgs = {
239
- bridgeTxMeta?: Partial<Pick<TransactionMeta, 'id' | 'hash' | 'batchId' | 'status'>>;
239
+ bridgeTxMeta?: Pick<TransactionMeta, 'id' | 'hash' | 'batchId'>;
240
240
  actionId?: string;
241
241
  batchSellData?: BridgeHistoryItem['batchSellData'];
242
+ quoteIds?: BridgeHistoryItem['quoteIds'];
242
243
  /**
243
244
  * @deprecated the txMeta or orderUid should be used instead
244
245
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAiDA,8EAA8E;AAC9E,2BAA2B;AAE3B,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,yCAAuB,CAAA;IACvB,mCAAiB,CAAA;AACnB,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAyCD,MAAM,CAAN,IAAY,QAaX;AAbD,WAAY,QAAQ;IAClB,uBAAW,CAAA;IACX,2BAAe,CAAA;IACf,uCAA2B,CAAA;IAC3B,+BAAmB,CAAA;IACnB,+BAAmB,CAAA;IACnB,mCAAuB,CAAA;IACvB,qCAAyB,CAAA;IACzB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;IACrB,2BAAe,CAAA;IACf,2BAAe,CAAA;AACjB,CAAC,EAbW,QAAQ,KAAR,QAAQ,QAanB;AA8HD;;;GAGG;AACH,MAAM,CAAN,IAAY,kBASX;AATD,WAAY,kBAAkB;IAC5B,qFAA+D,CAAA;IAC/D,2DAAqC,CAAA;IACrC,2CAAqB,CAAA;IACrB,+CAAyB,CAAA;IACzB,2CAAqB,CAAA;IACrB,mDAA6B,CAAA;IAC7B,yFAAmE,CAAA;IACnE,uFAAiE,CAAA;AACnE,CAAC,EATW,kBAAkB,KAAlB,kBAAkB,QAS7B","sourcesContent":["import type { AccountsControllerGetAccountByAddressAction } from '@metamask/accounts-controller';\nimport type {\n ControllerGetStateAction,\n ControllerStateChangeEvent,\n} from '@metamask/base-controller';\nimport type {\n ChainId,\n FeatureId,\n QuoteMetadata,\n QuoteResponseV1,\n MetaMetricsSwapsEventSource,\n SimulatedGasFeeLimits,\n TxData,\n TxFeeGasLimits,\n BridgeControllerTrackUnifiedSwapBridgeEventAction,\n BridgeControllerStopPollingForQuotesAction,\n BatchSellTradesResponse,\n BridgeControllerGetStateAction,\n InputPrimaryDenomination,\n} from '@metamask/bridge-controller';\nimport type { KeyringControllerSignTypedMessageAction } from '@metamask/keyring-controller';\nimport type { Messenger } from '@metamask/messenger';\nimport type {\n NetworkControllerFindNetworkClientIdByChainIdAction,\n NetworkControllerGetNetworkClientByIdAction,\n NetworkControllerGetStateAction,\n} from '@metamask/network-controller';\nimport type { AuthenticationControllerGetBearerTokenAction } from '@metamask/profile-sync-controller/auth';\nimport type { RemoteFeatureFlagControllerGetStateAction } from '@metamask/remote-feature-flag-controller';\nimport type { SnapControllerHandleRequestAction } from '@metamask/snaps-controllers';\nimport type { Infer } from '@metamask/superstruct';\nimport type {\n TransactionControllerAddTransactionAction,\n TransactionControllerEstimateGasFeeAction,\n TransactionControllerGetStateAction,\n TransactionControllerIsAtomicBatchSupportedAction,\n TransactionControllerTransactionStatusUpdatedEvent,\n TransactionControllerTransactionSubmittedEvent,\n TransactionControllerUpdateTransactionAction,\n TransactionMeta,\n TransactionType,\n} from '@metamask/transaction-controller';\nimport type { CaipAssetType } from '@metamask/utils';\n\nimport type { BridgeStatusControllerMethodActions } from './bridge-status-controller-method-action-types.js';\nimport { BRIDGE_STATUS_CONTROLLER_NAME } from './constants.js';\nimport { QuoteStatusState } from './quote-status-manager/constants.js';\nimport { StatusResponseSchema } from './utils/validators.js';\n\n// All fields need to be types not interfaces, same with their children fields\n// o/w you get a type error\n\nexport enum BridgeClientId {\n EXTENSION = 'extension',\n MOBILE = 'mobile',\n}\n\nexport type FetchFunction = (\n input: RequestInfo | URL,\n init?: RequestInit,\n) => Promise<unknown>;\n\n/**\n * These fields are specific to Solana transactions and can likely be infered from TransactionMeta\n *\n * @deprecated these should be removed eventually\n */\nexport type SolanaTransactionMeta = {\n isSolana: boolean;\n isBridgeTx: boolean;\n};\n\nexport type StatusRequest = {\n bridgeId: string; // lifi, socket, squid\n srcTxHash?: string; // lifi, socket, squid, might be undefined for STX\n bridge: string; // lifi, socket, squid\n srcChainId: ChainId; // lifi, socket, squid\n destChainId: ChainId; // lifi, socket, squid\n quote?: QuoteResponseV1['quote']; // squid\n refuel?: boolean; // lifi\n};\n\nexport type StatusRequestDto = Omit<\n StatusRequest,\n 'quote' | 'srcChainId' | 'destChainId' | 'refuel'\n> & {\n srcChainId: string; // lifi, socket, squid\n destChainId: string; // lifi, socket, squid\n requestId?: string;\n refuel?: string; // lifi\n};\n\nexport type StatusRequestWithSrcTxHash = StatusRequest & {\n srcTxHash: string;\n};\n\nexport enum BridgeId {\n HOP = 'hop',\n CELER = 'celer',\n CELERCIRCLE = 'celercircle',\n CONNEXT = 'connext',\n POLYGON = 'polygon',\n AVALANCHE = 'avalanche',\n MULTICHAIN = 'multichain',\n AXELAR = 'axelar',\n ACROSS = 'across',\n STARGATE = 'stargate',\n RELAY = 'relay',\n MAYAN = 'mayan',\n}\n\nexport type StatusResponse = Infer<typeof StatusResponseSchema>;\n\nexport type RefuelStatusResponse = object & StatusResponse;\n\n/**\n * This type ties together the quote, its tx params and the submitted txMeta.\n * Each trade/approval will have its own QuoteAndTxMetadata object.\n */\nexport type QuoteAndTxMetadata = {\n type: TransactionType;\n quoteResponse: QuoteResponseV1 & QuoteMetadata;\n /**\n * The approval or trade object from the quote response\n */\n tx: TxData;\n assetsFiatValues?: { sending?: string; receiving?: string };\n /**\n * The simulated gas fee limits for the transaction provided by the bridge-api\n */\n txFee?: SimulatedGasFeeLimits | TxFeeGasLimits;\n /**\n * Transaction metadata from the TransactionController after submission\n */\n txMeta?: TransactionMeta;\n};\n\nexport type BridgeHistoryItem = {\n txMetaId?: string; // Optional: not available pre-submission or on sync failure\n actionId?: string; // Only for non-batch EVM transactions\n /**\n * @deprecated the txMeta or orderUid should be used instead\n */\n originalTransactionId?: string; // Keep original transaction ID for intent transactions\n batchId?: string;\n /**\n * This is defined when the history item is for a batch sell transaction\n */\n batchSellData?: BatchSellTradesResponse;\n /**\n * This is defined when the history item corresponds to the 7702 batch's delegation tx.\n * It contains the list of quoteIds for the BatchSell quotes that are part of the 7702 batch.\n * Each quote can be retrieved from txHistory as `txHistory[quoteId]`.\n *\n * On single swaps/bridges this value is an empty array, or absent on history items\n * persisted before this field was introduced.\n */\n quoteIds?: string[];\n quote: QuoteResponseV1['quote'];\n /**\n * This is the the quote id used on single swaps/bridges. On batch sell, it is set\n * as the first item of `quoteIds`.\n *\n * This value is absent on history items persisted before this field was introduced.\n */\n quoteId?: string;\n reportedSubmittedTxHash?: string;\n status: StatusResponse;\n startTime: number; // timestamp in ms\n estimatedProcessingTimeInSeconds: number;\n slippagePercentage: number;\n /**\n * Whether the user explicitly overrode the default slippage setting.\n * Optional for history items created before this field was persisted.\n */\n customSlippage?: boolean;\n completionTime?: number; // timestamp in ms\n pricingData?: {\n /**\n * The actual amount sent by user in non-atomic decimal form\n */\n amountSent: string;\n amountSentInUsd?: string;\n quotedGasInUsd?: string;\n quotedGasAmount?: string;\n quotedReturnInUsd?: string;\n quotedRefuelSrcAmountInUsd?: string;\n quotedRefuelDestAmountInUsd?: string;\n };\n initialDestAssetBalance?: string;\n targetContractAddress?: string;\n account: string;\n hasApprovalTx: boolean;\n approvalTxId?: string;\n featureId?: FeatureId;\n isStxEnabled?: boolean;\n /**\n * The location/entry point from which the user initiated the swap or bridge.\n * Used to attribute swaps to specific flows (e.g. Trending Explore).\n */\n location?: MetaMetricsSwapsEventSource;\n /**\n * Legacy A/B test metrics context (`ab_tests`) kept for backward compatibility.\n * Keys are test names, values are variant names (e.g. { token_details_layout: 'treatment' }).\n */\n abTests?: Record<string, string>;\n /**\n * New A/B test metrics context (`active_ab_tests`) that replaces `ab_tests`.\n * Kept separate so migration can run both payloads in parallel.\n * This field is an array of test objects.\n */\n activeAbTests?: { key: string; value: string }[];\n /**\n * Attempts tracking for exponential backoff on failed fetches.\n * We track the number of attempts and the last attempt time for each txMetaId that has failed at least once\n */\n attempts?: {\n counter: number;\n lastAttemptTime: number; // timestamp in ms\n };\n /**\n * Client-supplied security classification for the destination token at the\n * time the swap/bridge was submitted. Persisted so post-submit analytics\n * events (Completed, Failed, StatusValidationFailed) can include\n * `token_security_type_destination`. `null` when no security data was\n * available for the destination token.\n */\n tokenSecurityTypeDestination?: string | null;\n /**\n * The denomination shown as the primary source amount input when the\n * swap/bridge was submitted.\n */\n inputPrimaryDenomination?: InputPrimaryDenomination;\n};\n\n/**\n * @deprecated Use the separate action types instead (e.g.\n * `BridgeStatusControllerStartPollingForBridgeTxStatusAction`).\n */\nexport enum BridgeStatusAction {\n StartPollingForBridgeTxStatus = 'StartPollingForBridgeTxStatus',\n WipeBridgeStatus = 'WipeBridgeStatus',\n GetState = 'GetState',\n ResetState = 'ResetState',\n SubmitTx = 'SubmitTx',\n SubmitIntent = 'SubmitIntent',\n RestartPollingForFailedAttempts = 'RestartPollingForFailedAttempts',\n GetBridgeHistoryItemByTxMetaId = 'GetBridgeHistoryItemByTxMetaId',\n}\n\nexport type TokenAmountValuesSerialized = {\n amount: string;\n valueInCurrency: string | null;\n usd: string | null;\n};\n\nexport type QuoteMetadataSerialized = {\n gasFee: TokenAmountValuesSerialized;\n /**\n * The total network fee for the bridge transaction\n * estimatedGasFees + relayerFees\n */\n totalNetworkFee: TokenAmountValuesSerialized;\n /**\n * The total max network fee for the bridge transaction\n * maxGasFees + relayerFees\n */\n totalMaxNetworkFee: TokenAmountValuesSerialized;\n toTokenAmount: TokenAmountValuesSerialized;\n /**\n * The adjusted return for the bridge transaction\n * destTokenAmount - totalNetworkFee\n */\n adjustedReturn: Omit<TokenAmountValuesSerialized, 'amount'>;\n /**\n * The actual amount sent by user in non-atomic decimal form\n * srcTokenAmount + metabridgeFee\n */\n sentAmount: TokenAmountValuesSerialized;\n swapRate: string; // destTokenAmount / sentAmount\n /**\n * The cost of the bridge transaction\n * sentAmount - adjustedReturn\n */\n cost: Omit<TokenAmountValuesSerialized, 'amount'>;\n};\n\nexport type StartPollingForBridgeTxStatusArgs = {\n bridgeTxMeta?: Partial<\n Pick<TransactionMeta, 'id' | 'hash' | 'batchId' | 'status'>\n >;\n actionId?: string;\n batchSellData?: BridgeHistoryItem['batchSellData'];\n /**\n * @deprecated the txMeta or orderUid should be used instead\n */\n originalTransactionId?: string;\n quoteResponse: QuoteResponseV1 & QuoteMetadata;\n startTime: BridgeHistoryItem['startTime'];\n slippagePercentage: BridgeHistoryItem['slippagePercentage'];\n customSlippage?: BridgeHistoryItem['customSlippage'];\n initialDestAssetBalance?: BridgeHistoryItem['initialDestAssetBalance'];\n targetContractAddress?: BridgeHistoryItem['targetContractAddress'];\n approvalTxId?: BridgeHistoryItem['approvalTxId'];\n isStxEnabled?: BridgeHistoryItem['isStxEnabled'];\n location: MetaMetricsSwapsEventSource;\n // Legacy field for `ab_tests` metrics payload.\n abTests?: BridgeHistoryItem['abTests'];\n // New field for `active_ab_tests` metrics payload.\n activeAbTests?: BridgeHistoryItem['activeAbTests'];\n accountAddress: string;\n // Client-supplied destination token security classification, persisted on\n // the history item for post-submit analytics events.\n tokenSecurityTypeDestination?: BridgeHistoryItem['tokenSecurityTypeDestination'];\n // Primary denomination at submission time, persisted for post-submit analytics.\n inputPrimaryDenomination?: BridgeHistoryItem['inputPrimaryDenomination'];\n};\n\n/**\n * Chrome: The BigNumber values are automatically serialized to strings when sent to the background\n * Firefox: The BigNumber values are not serialized to strings when sent to the background,\n * so we force the ui to do it manually, by using StartPollingForBridgeTxStatusArgsSerialized type on the startPollingForBridgeTxStatus action\n */\nexport type StartPollingForBridgeTxStatusArgsSerialized = Omit<\n StartPollingForBridgeTxStatusArgs,\n 'quoteResponse'\n> & {\n quoteResponse: QuoteResponseV1 & QuoteMetadata;\n};\n\nexport type SourceChainTxMetaId = string;\n\nexport type QuoteStatusPersistEntry = {\n quoteId: string;\n srcTxHash: string;\n status: QuoteStatusState;\n createdAt: number;\n lastAttemptAt: number;\n txMetaId?: string;\n};\n\nexport type BridgeStatusControllerState = {\n txHistory: Record<SourceChainTxMetaId, BridgeHistoryItem>;\n quoteUpdateStatusStore: Record<string, QuoteStatusPersistEntry>;\n};\n\n// Actions\nexport type BridgeStatusControllerGetStateAction = ControllerGetStateAction<\n typeof BRIDGE_STATUS_CONTROLLER_NAME,\n BridgeStatusControllerState\n>;\n\nexport type BridgeStatusControllerActions =\n | BridgeStatusControllerGetStateAction\n | BridgeStatusControllerMethodActions;\n\n// Events\nexport type BridgeStatusControllerStateChangeEvent = ControllerStateChangeEvent<\n typeof BRIDGE_STATUS_CONTROLLER_NAME,\n BridgeStatusControllerState\n>;\n/**\n * This event is published when the destination bridge transaction is completed\n * The payload is the asset received on the destination chain\n */\nexport type BridgeStatusControllerDestinationTransactionCompletedEvent = {\n type: 'BridgeStatusController:destinationTransactionCompleted';\n payload: [CaipAssetType];\n};\n\nexport type BridgeStatusControllerEvents =\n | BridgeStatusControllerStateChangeEvent\n | BridgeStatusControllerDestinationTransactionCompletedEvent;\n\n/**\n * The external actions available to the BridgeStatusController.\n */\ntype AllowedActions =\n | NetworkControllerFindNetworkClientIdByChainIdAction\n | NetworkControllerGetStateAction\n | NetworkControllerGetNetworkClientByIdAction\n | RemoteFeatureFlagControllerGetStateAction\n | SnapControllerHandleRequestAction\n | TransactionControllerGetStateAction\n | TransactionControllerUpdateTransactionAction\n | TransactionControllerAddTransactionAction\n | TransactionControllerEstimateGasFeeAction\n | TransactionControllerIsAtomicBatchSupportedAction\n | BridgeControllerTrackUnifiedSwapBridgeEventAction\n | BridgeControllerStopPollingForQuotesAction\n | BridgeControllerGetStateAction\n | AccountsControllerGetAccountByAddressAction\n | AuthenticationControllerGetBearerTokenAction\n | KeyringControllerSignTypedMessageAction;\n\n/**\n * The external events available to the BridgeStatusController.\n */\ntype AllowedEvents =\n | TransactionControllerTransactionStatusUpdatedEvent\n | TransactionControllerTransactionSubmittedEvent;\n\n/**\n * The messenger for the BridgeStatusController.\n */\nexport type BridgeStatusControllerMessenger = Messenger<\n typeof BRIDGE_STATUS_CONTROLLER_NAME,\n BridgeStatusControllerActions | AllowedActions,\n BridgeStatusControllerEvents | AllowedEvents\n>;\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAiDA,8EAA8E;AAC9E,2BAA2B;AAE3B,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,yCAAuB,CAAA;IACvB,mCAAiB,CAAA;AACnB,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAyCD,MAAM,CAAN,IAAY,QAaX;AAbD,WAAY,QAAQ;IAClB,uBAAW,CAAA;IACX,2BAAe,CAAA;IACf,uCAA2B,CAAA;IAC3B,+BAAmB,CAAA;IACnB,+BAAmB,CAAA;IACnB,mCAAuB,CAAA;IACvB,qCAAyB,CAAA;IACzB,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;IACrB,2BAAe,CAAA;IACf,2BAAe,CAAA;AACjB,CAAC,EAbW,QAAQ,KAAR,QAAQ,QAanB;AA8HD;;;GAGG;AACH,MAAM,CAAN,IAAY,kBASX;AATD,WAAY,kBAAkB;IAC5B,qFAA+D,CAAA;IAC/D,2DAAqC,CAAA;IACrC,2CAAqB,CAAA;IACrB,+CAAyB,CAAA;IACzB,2CAAqB,CAAA;IACrB,mDAA6B,CAAA;IAC7B,yFAAmE,CAAA;IACnE,uFAAiE,CAAA;AACnE,CAAC,EATW,kBAAkB,KAAlB,kBAAkB,QAS7B","sourcesContent":["import type { AccountsControllerGetAccountByAddressAction } from '@metamask/accounts-controller';\nimport type {\n ControllerGetStateAction,\n ControllerStateChangeEvent,\n} from '@metamask/base-controller';\nimport type {\n ChainId,\n FeatureId,\n QuoteMetadata,\n QuoteResponseV1,\n MetaMetricsSwapsEventSource,\n SimulatedGasFeeLimits,\n TxData,\n TxFeeGasLimits,\n BridgeControllerTrackUnifiedSwapBridgeEventAction,\n BridgeControllerStopPollingForQuotesAction,\n BatchSellTradesResponse,\n BridgeControllerGetStateAction,\n InputPrimaryDenomination,\n} from '@metamask/bridge-controller';\nimport type { KeyringControllerSignTypedMessageAction } from '@metamask/keyring-controller';\nimport type { Messenger } from '@metamask/messenger';\nimport type {\n NetworkControllerFindNetworkClientIdByChainIdAction,\n NetworkControllerGetNetworkClientByIdAction,\n NetworkControllerGetStateAction,\n} from '@metamask/network-controller';\nimport type { AuthenticationControllerGetBearerTokenAction } from '@metamask/profile-sync-controller/auth';\nimport type { RemoteFeatureFlagControllerGetStateAction } from '@metamask/remote-feature-flag-controller';\nimport type { SnapControllerHandleRequestAction } from '@metamask/snaps-controllers';\nimport type { Infer } from '@metamask/superstruct';\nimport type {\n TransactionControllerAddTransactionAction,\n TransactionControllerEstimateGasFeeAction,\n TransactionControllerGetStateAction,\n TransactionControllerIsAtomicBatchSupportedAction,\n TransactionControllerTransactionStatusUpdatedEvent,\n TransactionControllerTransactionSubmittedEvent,\n TransactionControllerUpdateTransactionAction,\n TransactionMeta,\n TransactionType,\n} from '@metamask/transaction-controller';\nimport type { CaipAssetType } from '@metamask/utils';\n\nimport type { BridgeStatusControllerMethodActions } from './bridge-status-controller-method-action-types.js';\nimport { BRIDGE_STATUS_CONTROLLER_NAME } from './constants.js';\nimport { QuoteStatusState } from './quote-status-manager/constants.js';\nimport { StatusResponseSchema } from './utils/validators.js';\n\n// All fields need to be types not interfaces, same with their children fields\n// o/w you get a type error\n\nexport enum BridgeClientId {\n EXTENSION = 'extension',\n MOBILE = 'mobile',\n}\n\nexport type FetchFunction = (\n input: RequestInfo | URL,\n init?: RequestInit,\n) => Promise<unknown>;\n\n/**\n * These fields are specific to Solana transactions and can likely be infered from TransactionMeta\n *\n * @deprecated these should be removed eventually\n */\nexport type SolanaTransactionMeta = {\n isSolana: boolean;\n isBridgeTx: boolean;\n};\n\nexport type StatusRequest = {\n bridgeId: string; // lifi, socket, squid\n srcTxHash?: string; // lifi, socket, squid, might be undefined for STX\n bridge: string; // lifi, socket, squid\n srcChainId: ChainId; // lifi, socket, squid\n destChainId: ChainId; // lifi, socket, squid\n quote?: QuoteResponseV1['quote']; // squid\n refuel?: boolean; // lifi\n};\n\nexport type StatusRequestDto = Omit<\n StatusRequest,\n 'quote' | 'srcChainId' | 'destChainId' | 'refuel'\n> & {\n srcChainId: string; // lifi, socket, squid\n destChainId: string; // lifi, socket, squid\n requestId?: string;\n refuel?: string; // lifi\n};\n\nexport type StatusRequestWithSrcTxHash = StatusRequest & {\n srcTxHash: string;\n};\n\nexport enum BridgeId {\n HOP = 'hop',\n CELER = 'celer',\n CELERCIRCLE = 'celercircle',\n CONNEXT = 'connext',\n POLYGON = 'polygon',\n AVALANCHE = 'avalanche',\n MULTICHAIN = 'multichain',\n AXELAR = 'axelar',\n ACROSS = 'across',\n STARGATE = 'stargate',\n RELAY = 'relay',\n MAYAN = 'mayan',\n}\n\nexport type StatusResponse = Infer<typeof StatusResponseSchema>;\n\nexport type RefuelStatusResponse = object & StatusResponse;\n\n/**\n * This type ties together the quote, its tx params and the submitted txMeta.\n * Each trade/approval will have its own QuoteAndTxMetadata object.\n */\nexport type QuoteAndTxMetadata = {\n type: TransactionType;\n quoteResponse: QuoteResponseV1 & QuoteMetadata;\n /**\n * The approval or trade object from the quote response\n */\n tx: TxData;\n assetsFiatValues?: { sending?: string; receiving?: string };\n /**\n * The simulated gas fee limits for the transaction provided by the bridge-api\n */\n txFee?: SimulatedGasFeeLimits | TxFeeGasLimits;\n /**\n * Transaction metadata from the TransactionController after submission\n */\n txMeta?: TransactionMeta;\n};\n\nexport type BridgeHistoryItem = {\n txMetaId?: string; // Optional: not available pre-submission or on sync failure\n actionId?: string; // Only for non-batch EVM transactions\n /**\n * @deprecated the txMeta or orderUid should be used instead\n */\n originalTransactionId?: string; // Keep original transaction ID for intent transactions\n batchId?: string;\n /**\n * This is defined when the history item is for a batch sell transaction\n */\n batchSellData?: BatchSellTradesResponse;\n /**\n * This is defined when the history item corresponds to the 7702 batch's delegation tx.\n * It contains the list of quoteIds for the BatchSell quotes that are part of the 7702 batch.\n * Each quote can be retrieved from txHistory as `txHistory[quoteId]`.\n *\n * On single swaps/bridges this value is an empty array, or absent on history items\n * persisted before this field was introduced.\n */\n quoteIds?: string[];\n quote: QuoteResponseV1['quote'];\n /**\n * This is the the quote id used on single swaps/bridges. On batch sell, it is set\n * as the first item of `quoteIds`.\n *\n * This value is absent on history items persisted before this field was introduced.\n */\n quoteId?: string;\n reportedSubmittedTxHash?: string;\n status: StatusResponse;\n startTime: number; // timestamp in ms\n estimatedProcessingTimeInSeconds: number;\n slippagePercentage: number;\n /**\n * Whether the user explicitly overrode the default slippage setting.\n * Optional for history items created before this field was persisted.\n */\n customSlippage?: boolean;\n completionTime?: number; // timestamp in ms\n pricingData?: {\n /**\n * The actual amount sent by user in non-atomic decimal form\n */\n amountSent: string;\n amountSentInUsd?: string;\n quotedGasInUsd?: string;\n quotedGasAmount?: string;\n quotedReturnInUsd?: string;\n quotedRefuelSrcAmountInUsd?: string;\n quotedRefuelDestAmountInUsd?: string;\n };\n initialDestAssetBalance?: string;\n targetContractAddress?: string;\n account: string;\n hasApprovalTx: boolean;\n approvalTxId?: string;\n featureId?: FeatureId;\n isStxEnabled?: boolean;\n /**\n * The location/entry point from which the user initiated the swap or bridge.\n * Used to attribute swaps to specific flows (e.g. Trending Explore).\n */\n location?: MetaMetricsSwapsEventSource;\n /**\n * Legacy A/B test metrics context (`ab_tests`) kept for backward compatibility.\n * Keys are test names, values are variant names (e.g. { token_details_layout: 'treatment' }).\n */\n abTests?: Record<string, string>;\n /**\n * New A/B test metrics context (`active_ab_tests`) that replaces `ab_tests`.\n * Kept separate so migration can run both payloads in parallel.\n * This field is an array of test objects.\n */\n activeAbTests?: { key: string; value: string }[];\n /**\n * Attempts tracking for exponential backoff on failed fetches.\n * We track the number of attempts and the last attempt time for each txMetaId that has failed at least once\n */\n attempts?: {\n counter: number;\n lastAttemptTime: number; // timestamp in ms\n };\n /**\n * Client-supplied security classification for the destination token at the\n * time the swap/bridge was submitted. Persisted so post-submit analytics\n * events (Completed, Failed, StatusValidationFailed) can include\n * `token_security_type_destination`. `null` when no security data was\n * available for the destination token.\n */\n tokenSecurityTypeDestination?: string | null;\n /**\n * The denomination shown as the primary source amount input when the\n * swap/bridge was submitted.\n */\n inputPrimaryDenomination?: InputPrimaryDenomination;\n};\n\n/**\n * @deprecated Use the separate action types instead (e.g.\n * `BridgeStatusControllerStartPollingForBridgeTxStatusAction`).\n */\nexport enum BridgeStatusAction {\n StartPollingForBridgeTxStatus = 'StartPollingForBridgeTxStatus',\n WipeBridgeStatus = 'WipeBridgeStatus',\n GetState = 'GetState',\n ResetState = 'ResetState',\n SubmitTx = 'SubmitTx',\n SubmitIntent = 'SubmitIntent',\n RestartPollingForFailedAttempts = 'RestartPollingForFailedAttempts',\n GetBridgeHistoryItemByTxMetaId = 'GetBridgeHistoryItemByTxMetaId',\n}\n\nexport type TokenAmountValuesSerialized = {\n amount: string;\n valueInCurrency: string | null;\n usd: string | null;\n};\n\nexport type QuoteMetadataSerialized = {\n gasFee: TokenAmountValuesSerialized;\n /**\n * The total network fee for the bridge transaction\n * estimatedGasFees + relayerFees\n */\n totalNetworkFee: TokenAmountValuesSerialized;\n /**\n * The total max network fee for the bridge transaction\n * maxGasFees + relayerFees\n */\n totalMaxNetworkFee: TokenAmountValuesSerialized;\n toTokenAmount: TokenAmountValuesSerialized;\n /**\n * The adjusted return for the bridge transaction\n * destTokenAmount - totalNetworkFee\n */\n adjustedReturn: Omit<TokenAmountValuesSerialized, 'amount'>;\n /**\n * The actual amount sent by user in non-atomic decimal form\n * srcTokenAmount + metabridgeFee\n */\n sentAmount: TokenAmountValuesSerialized;\n swapRate: string; // destTokenAmount / sentAmount\n /**\n * The cost of the bridge transaction\n * sentAmount - adjustedReturn\n */\n cost: Omit<TokenAmountValuesSerialized, 'amount'>;\n};\n\nexport type StartPollingForBridgeTxStatusArgs = {\n bridgeTxMeta?: Pick<TransactionMeta, 'id' | 'hash' | 'batchId'>;\n actionId?: string;\n batchSellData?: BridgeHistoryItem['batchSellData'];\n quoteIds?: BridgeHistoryItem['quoteIds'];\n /**\n * @deprecated the txMeta or orderUid should be used instead\n */\n originalTransactionId?: string;\n quoteResponse: QuoteResponseV1 & QuoteMetadata;\n startTime: BridgeHistoryItem['startTime'];\n slippagePercentage: BridgeHistoryItem['slippagePercentage'];\n customSlippage?: BridgeHistoryItem['customSlippage'];\n initialDestAssetBalance?: BridgeHistoryItem['initialDestAssetBalance'];\n targetContractAddress?: BridgeHistoryItem['targetContractAddress'];\n approvalTxId?: BridgeHistoryItem['approvalTxId'];\n isStxEnabled?: BridgeHistoryItem['isStxEnabled'];\n location: MetaMetricsSwapsEventSource;\n // Legacy field for `ab_tests` metrics payload.\n abTests?: BridgeHistoryItem['abTests'];\n // New field for `active_ab_tests` metrics payload.\n activeAbTests?: BridgeHistoryItem['activeAbTests'];\n accountAddress: string;\n // Client-supplied destination token security classification, persisted on\n // the history item for post-submit analytics events.\n tokenSecurityTypeDestination?: BridgeHistoryItem['tokenSecurityTypeDestination'];\n // Primary denomination at submission time, persisted for post-submit analytics.\n inputPrimaryDenomination?: BridgeHistoryItem['inputPrimaryDenomination'];\n};\n\n/**\n * Chrome: The BigNumber values are automatically serialized to strings when sent to the background\n * Firefox: The BigNumber values are not serialized to strings when sent to the background,\n * so we force the ui to do it manually, by using StartPollingForBridgeTxStatusArgsSerialized type on the startPollingForBridgeTxStatus action\n */\nexport type StartPollingForBridgeTxStatusArgsSerialized = Omit<\n StartPollingForBridgeTxStatusArgs,\n 'quoteResponse'\n> & {\n quoteResponse: QuoteResponseV1 & QuoteMetadata;\n};\n\nexport type SourceChainTxMetaId = string;\n\nexport type QuoteStatusPersistEntry = {\n quoteId: string;\n srcTxHash: string;\n status: QuoteStatusState;\n createdAt: number;\n lastAttemptAt: number;\n txMetaId?: string;\n};\n\nexport type BridgeStatusControllerState = {\n txHistory: Record<SourceChainTxMetaId, BridgeHistoryItem>;\n quoteUpdateStatusStore: Record<string, QuoteStatusPersistEntry>;\n};\n\n// Actions\nexport type BridgeStatusControllerGetStateAction = ControllerGetStateAction<\n typeof BRIDGE_STATUS_CONTROLLER_NAME,\n BridgeStatusControllerState\n>;\n\nexport type BridgeStatusControllerActions =\n | BridgeStatusControllerGetStateAction\n | BridgeStatusControllerMethodActions;\n\n// Events\nexport type BridgeStatusControllerStateChangeEvent = ControllerStateChangeEvent<\n typeof BRIDGE_STATUS_CONTROLLER_NAME,\n BridgeStatusControllerState\n>;\n/**\n * This event is published when the destination bridge transaction is completed\n * The payload is the asset received on the destination chain\n */\nexport type BridgeStatusControllerDestinationTransactionCompletedEvent = {\n type: 'BridgeStatusController:destinationTransactionCompleted';\n payload: [CaipAssetType];\n};\n\nexport type BridgeStatusControllerEvents =\n | BridgeStatusControllerStateChangeEvent\n | BridgeStatusControllerDestinationTransactionCompletedEvent;\n\n/**\n * The external actions available to the BridgeStatusController.\n */\ntype AllowedActions =\n | NetworkControllerFindNetworkClientIdByChainIdAction\n | NetworkControllerGetStateAction\n | NetworkControllerGetNetworkClientByIdAction\n | RemoteFeatureFlagControllerGetStateAction\n | SnapControllerHandleRequestAction\n | TransactionControllerGetStateAction\n | TransactionControllerUpdateTransactionAction\n | TransactionControllerAddTransactionAction\n | TransactionControllerEstimateGasFeeAction\n | TransactionControllerIsAtomicBatchSupportedAction\n | BridgeControllerTrackUnifiedSwapBridgeEventAction\n | BridgeControllerStopPollingForQuotesAction\n | BridgeControllerGetStateAction\n | AccountsControllerGetAccountByAddressAction\n | AuthenticationControllerGetBearerTokenAction\n | KeyringControllerSignTypedMessageAction;\n\n/**\n * The external events available to the BridgeStatusController.\n */\ntype AllowedEvents =\n | TransactionControllerTransactionStatusUpdatedEvent\n | TransactionControllerTransactionSubmittedEvent;\n\n/**\n * The messenger for the BridgeStatusController.\n */\nexport type BridgeStatusControllerMessenger = Messenger<\n typeof BRIDGE_STATUS_CONTROLLER_NAME,\n BridgeStatusControllerActions | AllowedActions,\n BridgeStatusControllerEvents | AllowedEvents\n>;\n"]}
@@ -1,9 +1,9 @@
1
1
  import type { TransactionMeta } from '@metamask/transaction-controller';
2
2
  import type { BridgeHistoryItem, BridgeStatusControllerMessenger, BridgeStatusControllerState, StartPollingForBridgeTxStatusArgsSerialized } from '../types.js';
3
- export declare const rekeyHistoryItemInState: (state: BridgeStatusControllerState, oldKey: string, newKey: string, txMeta?: {
3
+ export declare const rekeyHistoryItemInState: (state: BridgeStatusControllerState, oldKey: string, newKey: string, txMeta: {
4
4
  id: string;
5
5
  hash?: string;
6
- }, historyItemOverrides?: Partial<Pick<BridgeHistoryItem, 'approvalTxId' | 'quoteIds' | 'quote'>>) => boolean;
6
+ }) => boolean;
7
7
  export declare const isBatchSellHistoryItem: (historyItem: BridgeHistoryItem) => boolean;
8
8
  /**
9
9
  * Returns the history entry that matches the txMeta by id, actionId, batchId, or txHash
@@ -1 +1 @@
1
- {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/utils/history.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGxE,OAAO,KAAK,EACV,iBAAiB,EACjB,+BAA+B,EAC/B,2BAA2B,EAC3B,2CAA2C,EAC5C,MAAM,aAAa,CAAC;AA8CrB,eAAO,MAAM,uBAAuB,UAC3B,2BAA2B,UAC1B,MAAM,UACN,MAAM,WACL;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,yBACf,OAAO,CAC5B,IAAI,CAAC,iBAAiB,EAAE,cAAc,GAAG,UAAU,GAAG,OAAO,CAAC,CAC/D,KACA,OAYF,CAAC;AAEF,eAAO,MAAM,sBAAsB,gBACpB,iBAAiB,KAC7B,OAA8C,CAAC;AAElD;;;;;;GAMG;AACH,eAAO,MAAM,gCAAgC,cAChC,2BAA2B,CAAC,WAAW,CAAC,UAC3C,eAAe,KACtB,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,SA+ChC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,wCAAwC,cACxC,2BAA2B,CAAC,WAAW,CAAC,UAC3C,eAAe,KACtB,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,SAiBhC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iCAAiC,cACjC,2BAA2B,CAAC,WAAW,CAAC,eACtC,MAAM,KAClB;IAAE,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAmC3D,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,sBAAsB,CAAC,EAAE,MAAM,GAC9B,MAAM,CAQR;AAED,eAAO,MAAM,qBAAqB,SAC1B,2CAA2C,KAChD,iBAmFF,CAAC;AAEF,eAAO,MAAM,qBAAqB,gBACnB,iBAAiB,KAC7B,OASF,CAAC;AAEF,eAAO,MAAM,mBAAmB,cACnB,+BAA+B,eAC7B,iBAAiB,KAC7B,OAIF,CAAC"}
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/utils/history.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExE,OAAO,KAAK,EACV,iBAAiB,EACjB,+BAA+B,EAC/B,2BAA2B,EAC3B,2CAA2C,EAC5C,MAAM,aAAa,CAAC;AAqBrB,eAAO,MAAM,uBAAuB,UAC3B,2BAA2B,UAC1B,MAAM,UACN,MAAM,UACN;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,KACpC,OAYF,CAAC;AAEF,eAAO,MAAM,sBAAsB,gBACpB,iBAAiB,KAC7B,OAA8C,CAAC;AAElD;;;;;;GAMG;AACH,eAAO,MAAM,gCAAgC,cAChC,2BAA2B,CAAC,WAAW,CAAC,UAC3C,eAAe,KACtB,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,SA0BhC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,wCAAwC,cACxC,2BAA2B,CAAC,WAAW,CAAC,UAC3C,eAAe,KACtB,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,SAMhC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iCAAiC,cACjC,2BAA2B,CAAC,WAAW,CAAC,eACtC,MAAM,KAClB;IAAE,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAmC3D,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,sBAAsB,CAAC,EAAE,MAAM,GAC9B,MAAM,CAQR;AAED,eAAO,MAAM,qBAAqB,SAC1B,2CAA2C,KAChD,iBAoFF,CAAC;AAEF,eAAO,MAAM,qBAAqB,gBACnB,iBAAiB,KAC7B,OASF,CAAC;AAEF,eAAO,MAAM,mBAAmB,cACnB,+BAA+B,eAC7B,iBAAiB,KAC7B,OAIF,CAAC"}
@@ -1,43 +1,27 @@
1
1
  import { StatusTypes, isCrossChain, isNonEvmChainId, isTronChainId, } from '@metamask/bridge-controller';
2
- import { TransactionStatus } from '@metamask/transaction-controller';
3
2
  import { getMaxPendingHistoryItemAgeMs } from './feature-flags.js';
4
- import { isApprovalTx, isAtomic7702BatchTx } from './transaction.js';
5
- const TRANSACTION_STATUS_TO_STATUS_TYPES = {
6
- [TransactionStatus.failed]: StatusTypes.FAILED,
7
- [TransactionStatus.submitted]: StatusTypes.PENDING,
8
- [TransactionStatus.confirmed]: StatusTypes.COMPLETE,
9
- };
10
- const updateHistoryItem = (oldHistoryItem, txMeta, historyItemOverrides) => {
3
+ const updateHistoryItem = (oldHistoryItem, txMeta) => {
11
4
  return {
12
5
  ...oldHistoryItem,
13
- txMetaId: txMeta?.id ?? oldHistoryItem.txMetaId,
14
- originalTransactionId: oldHistoryItem.originalTransactionId ?? txMeta?.id,
15
- actionId: txMeta?.actionId ?? oldHistoryItem.actionId,
16
- approvalTxId: historyItemOverrides?.approvalTxId ?? oldHistoryItem.approvalTxId,
6
+ txMetaId: txMeta.id,
7
+ originalTransactionId: oldHistoryItem.originalTransactionId ?? txMeta.id,
17
8
  status: {
18
9
  ...oldHistoryItem.status,
19
10
  srcChain: {
20
11
  ...oldHistoryItem.status.srcChain,
21
- txHash: txMeta?.hash ?? oldHistoryItem.status.srcChain?.txHash,
12
+ txHash: txMeta.hash ?? oldHistoryItem.status.srcChain?.txHash,
22
13
  },
23
- status: (txMeta?.status && TRANSACTION_STATUS_TO_STATUS_TYPES[txMeta.status]
24
- ? TRANSACTION_STATUS_TO_STATUS_TYPES[txMeta.status]
25
- : oldHistoryItem.status?.status) ?? StatusTypes.PENDING,
26
14
  },
27
- ...(historyItemOverrides?.quote && { quote: historyItemOverrides.quote }),
28
- ...(historyItemOverrides?.quoteIds && {
29
- quoteIds: historyItemOverrides.quoteIds,
30
- }),
31
15
  };
32
16
  };
33
- export const rekeyHistoryItemInState = (state, oldKey, newKey, txMeta, historyItemOverrides) => {
17
+ export const rekeyHistoryItemInState = (state, oldKey, newKey, txMeta) => {
34
18
  const historyItem = state.txHistory[oldKey];
35
19
  if (!historyItem) {
36
20
  return false;
37
21
  }
38
22
  state.txHistory[newKey] = {
39
23
  ...historyItem,
40
- ...updateHistoryItem(historyItem, txMeta, historyItemOverrides),
24
+ ...updateHistoryItem(historyItem, txMeta),
41
25
  };
42
26
  delete state.txHistory[oldKey];
43
27
  return true;
@@ -52,33 +36,19 @@ export const isBatchSellHistoryItem = (historyItem) => Boolean(historyItem?.batc
52
36
  */
53
37
  export const getMatchingHistoryEntryForTxMeta = (txHistory, txMeta) => {
54
38
  const historyEntries = Object.entries(txHistory);
55
- return historyEntries.find(([key, historyItem]) => {
56
- const { txMetaId, actionId, batchId, status: { srcChain: { txHash }, }, } = historyItem;
57
- const isInitialBatchTx = (Boolean(batchId) && batchId === txMeta.batchId) ||
58
- key === txMeta.batchId;
59
- const isTxMetaIdMatch = txMetaId === txMeta.id || key === txMeta.id;
60
- if (isBatchSellHistoryItem(historyItem)) {
61
- if (isAtomic7702BatchTx(txMeta)) {
62
- return isInitialBatchTx || isTxMetaIdMatch;
63
- }
64
- // STX batch-sell
65
- const isInitialBatchSellStxTrade = isInitialBatchTx && !txMetaId && !actionId;
66
- return !isInitialBatchSellStxTrade && isTxMetaIdMatch;
67
- }
68
- // Exclude approval transactions when matching by actionId to prevent
69
- // premature quote event publishing
70
- const isInitialRegularTx = Boolean(actionId) &&
71
- key === txMeta.actionId &&
72
- !(txMeta.type && isApprovalTx(txMeta.type));
73
- const isTxHashMatch = txHash
74
- ? txHash.toLowerCase() === txMeta.hash?.toLowerCase()
75
- : false;
76
- return [
77
- isInitialBatchTx,
78
- isInitialRegularTx,
79
- isTxMetaIdMatch,
80
- isTxHashMatch,
81
- ].some(Boolean);
39
+ return historyEntries.find(([key, value]) => {
40
+ const { txMetaId, actionId, batchId, status: { srcChain: { txHash }, }, } = value;
41
+ return (key === txMeta.id ||
42
+ key === txMeta.actionId ||
43
+ txMetaId === txMeta.id ||
44
+ (actionId ? actionId === txMeta.actionId : false) ||
45
+ // When the batch is not atomic (BatchSell), ignore batchId matching to prevent txs
46
+ // in the batch from getting marked complete/failed too early if one fails
47
+ // Multiple BatchSell STX trades may have the same batchId
48
+ (Boolean(batchId) &&
49
+ !isBatchSellHistoryItem(value) &&
50
+ batchId === txMeta.batchId) ||
51
+ (txHash ? txHash.toLowerCase() === txMeta.hash?.toLowerCase() : false));
82
52
  });
83
53
  };
84
54
  /**
@@ -90,17 +60,7 @@ export const getMatchingHistoryEntryForTxMeta = (txHistory, txMeta) => {
90
60
  */
91
61
  export const getMatchingHistoryEntryForApprovalTxMeta = (txHistory, txMeta) => {
92
62
  const historyEntries = Object.entries(txHistory);
93
- return historyEntries.find(([key, value]) => {
94
- if (value.approvalTxId && value.approvalTxId === txMeta.id) {
95
- return true;
96
- }
97
- // approvalTxId is written only after the approval hash resolves
98
- // until then the pre-submit actionId maps to the approval
99
- return (Boolean(txMeta.actionId) &&
100
- Boolean(value.actionId) &&
101
- key === txMeta.actionId &&
102
- Boolean(txMeta.type && isApprovalTx(txMeta.type)));
103
- });
63
+ return historyEntries.find(([_, value]) => value.approvalTxId ? value.approvalTxId === txMeta.id : false);
104
64
  };
105
65
  /**
106
66
  * Returns the BatchSell history items in the same batch as the provided tx hash.
@@ -156,7 +116,7 @@ export function getHistoryKey(actionId, bridgeTxMetaId, syntheticTransactionId)
156
116
  return historyKey;
157
117
  }
158
118
  export const getInitialHistoryItem = (args) => {
159
- const { bridgeTxMeta, quoteResponse, startTime, slippagePercentage, customSlippage, initialDestAssetBalance, targetContractAddress, approvalTxId, isStxEnabled, location, abTests, activeAbTests, accountAddress: selectedAddress, originalTransactionId, actionId, tokenSecurityTypeDestination, inputPrimaryDenomination, batchSellData, } = args;
119
+ const { bridgeTxMeta, quoteResponse, startTime, slippagePercentage, customSlippage, initialDestAssetBalance, targetContractAddress, approvalTxId, isStxEnabled, location, abTests, activeAbTests, accountAddress: selectedAddress, originalTransactionId, actionId, tokenSecurityTypeDestination, inputPrimaryDenomination, batchSellData, quoteIds, } = args;
160
120
  // Write all non-status fields to state so we can reference the quote in Activity list without the Bridge API
161
121
  // We know it's in progress but not the exact status yet
162
122
  const txHistoryItem = {
@@ -183,9 +143,7 @@ export const getInitialHistoryItem = (args) => {
183
143
  status: {
184
144
  // We always have a PENDING status when we start polling for a tx, don't need the Bridge API for that
185
145
  // Also we know the bare minimum fields for status at this point in time
186
- status: (bridgeTxMeta?.status &&
187
- TRANSACTION_STATUS_TO_STATUS_TYPES[bridgeTxMeta.status]) ??
188
- StatusTypes.PENDING,
146
+ status: StatusTypes.PENDING,
189
147
  srcChain: {
190
148
  chainId: quoteResponse.quote.srcChainId,
191
149
  // We don't set the initial tx hash for STX transactions because they return a hash on submission
@@ -212,6 +170,9 @@ export const getInitialHistoryItem = (args) => {
212
170
  if (batchSellData) {
213
171
  txHistoryItem.batchSellData = batchSellData;
214
172
  }
173
+ if (quoteIds) {
174
+ txHistoryItem.quoteIds = quoteIds;
175
+ }
215
176
  return txHistoryItem;
216
177
  };
217
178
  export const shouldPollHistoryItem = (historyItem) => {
@@ -1 +1 @@
1
- {"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/utils/history.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n StatusTypes,\n isCrossChain,\n isNonEvmChainId,\n isTronChainId,\n} from '@metamask/bridge-controller';\nimport type { TransactionMeta } from '@metamask/transaction-controller';\nimport { TransactionStatus } from '@metamask/transaction-controller';\n\nimport type {\n BridgeHistoryItem,\n BridgeStatusControllerMessenger,\n BridgeStatusControllerState,\n StartPollingForBridgeTxStatusArgsSerialized,\n} from '../types.js';\nimport { getMaxPendingHistoryItemAgeMs } from './feature-flags.js';\nimport { isApprovalTx, isAtomic7702BatchTx } from './transaction.js';\n\nconst TRANSACTION_STATUS_TO_STATUS_TYPES: Partial<\n Record<TransactionStatus, StatusTypes>\n> = {\n [TransactionStatus.failed]: StatusTypes.FAILED,\n [TransactionStatus.submitted]: StatusTypes.PENDING,\n [TransactionStatus.confirmed]: StatusTypes.COMPLETE,\n};\n\nconst updateHistoryItem = (\n oldHistoryItem: BridgeHistoryItem,\n txMeta?: Partial<\n Pick<TransactionMeta, 'id' | 'actionId' | 'status' | 'hash'>\n >,\n historyItemOverrides?: Partial<\n Pick<BridgeHistoryItem, 'approvalTxId' | 'quoteIds' | 'quote'>\n >,\n): Partial<BridgeHistoryItem> => {\n return {\n ...oldHistoryItem,\n txMetaId: txMeta?.id ?? oldHistoryItem.txMetaId,\n originalTransactionId: oldHistoryItem.originalTransactionId ?? txMeta?.id,\n actionId: txMeta?.actionId ?? oldHistoryItem.actionId,\n approvalTxId:\n historyItemOverrides?.approvalTxId ?? oldHistoryItem.approvalTxId,\n status: {\n ...oldHistoryItem.status,\n srcChain: {\n ...oldHistoryItem.status.srcChain,\n txHash: txMeta?.hash ?? oldHistoryItem.status.srcChain?.txHash,\n },\n status:\n (txMeta?.status && TRANSACTION_STATUS_TO_STATUS_TYPES[txMeta.status]\n ? TRANSACTION_STATUS_TO_STATUS_TYPES[txMeta.status]\n : oldHistoryItem.status?.status) ?? StatusTypes.PENDING,\n },\n ...(historyItemOverrides?.quote && { quote: historyItemOverrides.quote }),\n ...(historyItemOverrides?.quoteIds && {\n quoteIds: historyItemOverrides.quoteIds,\n }),\n };\n};\n\nexport const rekeyHistoryItemInState = (\n state: BridgeStatusControllerState,\n oldKey: string,\n newKey: string,\n txMeta?: { id: string; hash?: string },\n historyItemOverrides?: Partial<\n Pick<BridgeHistoryItem, 'approvalTxId' | 'quoteIds' | 'quote'>\n >,\n): boolean => {\n const historyItem = state.txHistory[oldKey];\n if (!historyItem) {\n return false;\n }\n\n state.txHistory[newKey] = {\n ...historyItem,\n ...updateHistoryItem(historyItem, txMeta, historyItemOverrides),\n };\n delete state.txHistory[oldKey];\n return true;\n};\n\nexport const isBatchSellHistoryItem = (\n historyItem: BridgeHistoryItem,\n): boolean => Boolean(historyItem?.batchSellData);\n\n/**\n * Returns the history entry that matches the txMeta by id, actionId, batchId, or txHash\n *\n * @param txHistory - The transaction history\n * @param txMeta - The transaction meta\n * @returns The history entry that matches the txMeta\n */\nexport const getMatchingHistoryEntryForTxMeta = (\n txHistory: BridgeStatusControllerState['txHistory'],\n txMeta: TransactionMeta,\n): [string, BridgeHistoryItem] | undefined => {\n const historyEntries = Object.entries(txHistory);\n\n return historyEntries.find(([key, historyItem]) => {\n const {\n txMetaId,\n actionId,\n batchId,\n status: {\n srcChain: { txHash },\n },\n } = historyItem;\n\n const isInitialBatchTx =\n (Boolean(batchId) && batchId === txMeta.batchId) ||\n key === txMeta.batchId;\n\n const isTxMetaIdMatch = txMetaId === txMeta.id || key === txMeta.id;\n\n if (isBatchSellHistoryItem(historyItem)) {\n if (isAtomic7702BatchTx(txMeta)) {\n return isInitialBatchTx || isTxMetaIdMatch;\n }\n // STX batch-sell\n const isInitialBatchSellStxTrade =\n isInitialBatchTx && !txMetaId && !actionId;\n return !isInitialBatchSellStxTrade && isTxMetaIdMatch;\n }\n\n // Exclude approval transactions when matching by actionId to prevent\n // premature quote event publishing\n const isInitialRegularTx =\n Boolean(actionId) &&\n key === txMeta.actionId &&\n !(txMeta.type && isApprovalTx(txMeta.type));\n\n const isTxHashMatch = txHash\n ? txHash.toLowerCase() === txMeta.hash?.toLowerCase()\n : false;\n\n return [\n isInitialBatchTx,\n isInitialRegularTx,\n isTxMetaIdMatch,\n isTxHashMatch,\n ].some(Boolean);\n });\n};\n\n/**\n * Returns the history entry whose approvalTxId matches the approval transaction\n *\n * @param txHistory - The transaction history\n * @param txMeta - The transaction meta\n * @returns The history entry that matches the txMeta\n */\nexport const getMatchingHistoryEntryForApprovalTxMeta = (\n txHistory: BridgeStatusControllerState['txHistory'],\n txMeta: TransactionMeta,\n): [string, BridgeHistoryItem] | undefined => {\n const historyEntries = Object.entries(txHistory);\n\n return historyEntries.find(([key, value]) => {\n if (value.approvalTxId && value.approvalTxId === txMeta.id) {\n return true;\n }\n\n // approvalTxId is written only after the approval hash resolves\n // until then the pre-submit actionId maps to the approval\n return (\n Boolean(txMeta.actionId) &&\n Boolean(value.actionId) &&\n key === txMeta.actionId &&\n Boolean(txMeta.type && isApprovalTx(txMeta.type))\n );\n });\n};\n\n/**\n * Returns the BatchSell history items in the same batch as the provided tx hash.\n *\n * @param txHistory - The bridge status controller's history to search for matching history items\n * @param txHashOrId - the hash or txMeta.id of a single trade in a BatchSell\n * @returns The matching history items for the tx hash and a boolean indicating if it's a 7702 batch.\n * @example\n * getBatchSellHistoryItemsForTxHash(txHistory, id)\n * If id is the hash or txMetaId of a BatchSell trade, it will return the history items for\n * the trade and all other trades in the same batch.\n */\nexport const getBatchSellHistoryItemsForTxHash = (\n txHistory: BridgeStatusControllerState['txHistory'],\n txHashOrId?: string,\n): { historyItems: BridgeHistoryItem[]; is7702Batch: boolean } => {\n const historyItems = Object.values(txHistory);\n\n if (!txHashOrId) {\n return {\n historyItems: [],\n is7702Batch: false,\n };\n }\n\n /**\n * Either a delegation tx or a single STX BatchSell trade\n */\n const parentHistoryItem = historyItems.find(\n ({ status, txMetaId }) =>\n status.srcChain.txHash?.toLowerCase() === txHashOrId.toLowerCase() ||\n txMetaId === txHashOrId,\n );\n\n // Match by batchId or by quoteId\n const matchingHistoryItems =\n parentHistoryItem?.quoteIds?.map((quoteId) => txHistory[quoteId]) ??\n historyItems.filter(\n ({ batchId }) =>\n batchId &&\n parentHistoryItem?.batchId &&\n batchId === parentHistoryItem.batchId,\n );\n\n return {\n historyItems: matchingHistoryItems.filter((item) => item !== undefined),\n is7702Batch:\n Boolean(parentHistoryItem) &&\n Boolean(parentHistoryItem?.quoteIds?.length),\n };\n};\n\n/**\n * Determines the key to use for storing a bridge history item.\n * Uses actionId for pre-submission tracking, or bridgeTxMetaId for post-submission.\n *\n * @deprecated specify an explicit history key instead\n * @param actionId - The action ID used for pre-submission tracking\n * @param bridgeTxMetaId - The transaction meta ID from bridgeTxMeta\n * @param syntheticTransactionId - The transactionId of the intent's placeholder transaction\n * @returns The key to use for the history item\n * @throws Error if neither actionId nor bridgeTxMetaId is provided\n */\nexport function getHistoryKey(\n actionId: string | undefined,\n bridgeTxMetaId: string | undefined,\n syntheticTransactionId?: string,\n): string {\n const historyKey = actionId ?? bridgeTxMetaId ?? syntheticTransactionId;\n if (!historyKey) {\n throw new Error(\n 'Cannot add tx to history: either actionId, bridgeTxMeta.id, or syntheticTransactionId must be provided',\n );\n }\n return historyKey;\n}\n\nexport const getInitialHistoryItem = (\n args: StartPollingForBridgeTxStatusArgsSerialized,\n): BridgeHistoryItem => {\n const {\n bridgeTxMeta,\n quoteResponse,\n startTime,\n slippagePercentage,\n customSlippage,\n initialDestAssetBalance,\n targetContractAddress,\n approvalTxId,\n isStxEnabled,\n location,\n abTests,\n activeAbTests,\n accountAddress: selectedAddress,\n originalTransactionId,\n actionId,\n tokenSecurityTypeDestination,\n inputPrimaryDenomination,\n batchSellData,\n } = args;\n\n // Write all non-status fields to state so we can reference the quote in Activity list without the Bridge API\n // We know it's in progress but not the exact status yet\n const txHistoryItem: BridgeHistoryItem = {\n txMetaId: bridgeTxMeta?.id,\n actionId,\n originalTransactionId: originalTransactionId ?? bridgeTxMeta?.id, // Keep original for intent transactions\n batchId: bridgeTxMeta?.batchId,\n quote: quoteResponse.quote,\n quoteId: quoteResponse.quoteId,\n startTime,\n estimatedProcessingTimeInSeconds:\n quoteResponse.estimatedProcessingTimeInSeconds,\n slippagePercentage,\n ...(customSlippage !== undefined && { customSlippage }),\n pricingData: {\n amountSent: quoteResponse?.sentAmount?.amount ?? '0',\n amountSentInUsd: quoteResponse?.sentAmount?.usd ?? undefined,\n quotedGasInUsd: quoteResponse?.gasFee?.total?.usd ?? undefined,\n quotedReturnInUsd: quoteResponse?.toTokenAmount?.usd ?? undefined,\n quotedGasAmount: quoteResponse?.gasFee?.total?.amount ?? undefined,\n },\n initialDestAssetBalance,\n targetContractAddress,\n account: selectedAddress,\n status: {\n // We always have a PENDING status when we start polling for a tx, don't need the Bridge API for that\n // Also we know the bare minimum fields for status at this point in time\n status:\n (bridgeTxMeta?.status &&\n TRANSACTION_STATUS_TO_STATUS_TYPES[bridgeTxMeta.status]) ??\n StatusTypes.PENDING,\n srcChain: {\n chainId: quoteResponse.quote.srcChainId,\n // We don't set the initial tx hash for STX transactions because they return a hash on submission\n // but it is not finalized until confirmation on chain\n txHash:\n isNonEvmChainId(quoteResponse.quote.srcChainId) || !isStxEnabled\n ? bridgeTxMeta?.hash\n : undefined,\n },\n },\n hasApprovalTx: Boolean(quoteResponse.approval),\n approvalTxId,\n isStxEnabled: Boolean(isStxEnabled),\n featureId: quoteResponse.featureId,\n location,\n ...(abTests && { abTests }),\n ...(activeAbTests && { activeAbTests }),\n ...(tokenSecurityTypeDestination !== undefined && {\n tokenSecurityTypeDestination,\n }),\n ...(inputPrimaryDenomination !== undefined && {\n inputPrimaryDenomination,\n }),\n };\n\n if (batchSellData) {\n txHistoryItem.batchSellData = batchSellData;\n }\n\n return txHistoryItem;\n};\n\nexport const shouldPollHistoryItem = (\n historyItem: BridgeHistoryItem,\n): boolean => {\n const isIntent = Boolean(historyItem?.quote?.intent);\n const isBridgeTx = isCrossChain(\n historyItem.quote.srcChainId,\n historyItem.quote.destChainId,\n );\n const isTronTx = isTronChainId(historyItem.quote.srcChainId);\n\n return [isBridgeTx, isIntent, isTronTx].some(Boolean);\n};\n\nexport const isHistoryItemTooOld = (\n messenger: BridgeStatusControllerMessenger,\n historyItem: BridgeHistoryItem,\n): boolean => {\n const maxPendingHistoryItemAgeMs = getMaxPendingHistoryItemAgeMs(messenger);\n\n return Date.now() - historyItem.startTime > maxPendingHistoryItemAgeMs;\n};\n"]}
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/utils/history.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n StatusTypes,\n isCrossChain,\n isNonEvmChainId,\n isTronChainId,\n} from '@metamask/bridge-controller';\nimport type { TransactionMeta } from '@metamask/transaction-controller';\n\nimport type {\n BridgeHistoryItem,\n BridgeStatusControllerMessenger,\n BridgeStatusControllerState,\n StartPollingForBridgeTxStatusArgsSerialized,\n} from '../types.js';\nimport { getMaxPendingHistoryItemAgeMs } from './feature-flags.js';\n\nconst updateHistoryItem = (\n oldHistoryItem: BridgeHistoryItem,\n txMeta: { id: string; hash?: string },\n): Partial<BridgeHistoryItem> => {\n return {\n ...oldHistoryItem,\n txMetaId: txMeta.id,\n originalTransactionId: oldHistoryItem.originalTransactionId ?? txMeta.id,\n status: {\n ...oldHistoryItem.status,\n srcChain: {\n ...oldHistoryItem.status.srcChain,\n txHash: txMeta.hash ?? oldHistoryItem.status.srcChain?.txHash,\n },\n },\n };\n};\n\nexport const rekeyHistoryItemInState = (\n state: BridgeStatusControllerState,\n oldKey: string,\n newKey: string,\n txMeta: { id: string; hash?: string },\n): boolean => {\n const historyItem = state.txHistory[oldKey];\n if (!historyItem) {\n return false;\n }\n\n state.txHistory[newKey] = {\n ...historyItem,\n ...updateHistoryItem(historyItem, txMeta),\n };\n delete state.txHistory[oldKey];\n return true;\n};\n\nexport const isBatchSellHistoryItem = (\n historyItem: BridgeHistoryItem,\n): boolean => Boolean(historyItem?.batchSellData);\n\n/**\n * Returns the history entry that matches the txMeta by id, actionId, batchId, or txHash\n *\n * @param txHistory - The transaction history\n * @param txMeta - The transaction meta\n * @returns The history entry that matches the txMeta\n */\nexport const getMatchingHistoryEntryForTxMeta = (\n txHistory: BridgeStatusControllerState['txHistory'],\n txMeta: TransactionMeta,\n): [string, BridgeHistoryItem] | undefined => {\n const historyEntries = Object.entries(txHistory);\n\n return historyEntries.find(([key, value]) => {\n const {\n txMetaId,\n actionId,\n batchId,\n status: {\n srcChain: { txHash },\n },\n } = value;\n return (\n key === txMeta.id ||\n key === txMeta.actionId ||\n txMetaId === txMeta.id ||\n (actionId ? actionId === txMeta.actionId : false) ||\n // When the batch is not atomic (BatchSell), ignore batchId matching to prevent txs\n // in the batch from getting marked complete/failed too early if one fails\n // Multiple BatchSell STX trades may have the same batchId\n (Boolean(batchId) &&\n !isBatchSellHistoryItem(value) &&\n batchId === txMeta.batchId) ||\n (txHash ? txHash.toLowerCase() === txMeta.hash?.toLowerCase() : false)\n );\n });\n};\n\n/**\n * Returns the history entry whose approvalTxId matches the approval transaction\n *\n * @param txHistory - The transaction history\n * @param txMeta - The transaction meta\n * @returns The history entry that matches the txMeta\n */\nexport const getMatchingHistoryEntryForApprovalTxMeta = (\n txHistory: BridgeStatusControllerState['txHistory'],\n txMeta: TransactionMeta,\n): [string, BridgeHistoryItem] | undefined => {\n const historyEntries = Object.entries(txHistory);\n\n return historyEntries.find(([_, value]) =>\n value.approvalTxId ? value.approvalTxId === txMeta.id : false,\n );\n};\n\n/**\n * Returns the BatchSell history items in the same batch as the provided tx hash.\n *\n * @param txHistory - The bridge status controller's history to search for matching history items\n * @param txHashOrId - the hash or txMeta.id of a single trade in a BatchSell\n * @returns The matching history items for the tx hash and a boolean indicating if it's a 7702 batch.\n * @example\n * getBatchSellHistoryItemsForTxHash(txHistory, id)\n * If id is the hash or txMetaId of a BatchSell trade, it will return the history items for\n * the trade and all other trades in the same batch.\n */\nexport const getBatchSellHistoryItemsForTxHash = (\n txHistory: BridgeStatusControllerState['txHistory'],\n txHashOrId?: string,\n): { historyItems: BridgeHistoryItem[]; is7702Batch: boolean } => {\n const historyItems = Object.values(txHistory);\n\n if (!txHashOrId) {\n return {\n historyItems: [],\n is7702Batch: false,\n };\n }\n\n /**\n * Either a delegation tx or a single STX BatchSell trade\n */\n const parentHistoryItem = historyItems.find(\n ({ status, txMetaId }) =>\n status.srcChain.txHash?.toLowerCase() === txHashOrId.toLowerCase() ||\n txMetaId === txHashOrId,\n );\n\n // Match by batchId or by quoteId\n const matchingHistoryItems =\n parentHistoryItem?.quoteIds?.map((quoteId) => txHistory[quoteId]) ??\n historyItems.filter(\n ({ batchId }) =>\n batchId &&\n parentHistoryItem?.batchId &&\n batchId === parentHistoryItem.batchId,\n );\n\n return {\n historyItems: matchingHistoryItems.filter((item) => item !== undefined),\n is7702Batch:\n Boolean(parentHistoryItem) &&\n Boolean(parentHistoryItem?.quoteIds?.length),\n };\n};\n\n/**\n * Determines the key to use for storing a bridge history item.\n * Uses actionId for pre-submission tracking, or bridgeTxMetaId for post-submission.\n *\n * @deprecated specify an explicit history key instead\n * @param actionId - The action ID used for pre-submission tracking\n * @param bridgeTxMetaId - The transaction meta ID from bridgeTxMeta\n * @param syntheticTransactionId - The transactionId of the intent's placeholder transaction\n * @returns The key to use for the history item\n * @throws Error if neither actionId nor bridgeTxMetaId is provided\n */\nexport function getHistoryKey(\n actionId: string | undefined,\n bridgeTxMetaId: string | undefined,\n syntheticTransactionId?: string,\n): string {\n const historyKey = actionId ?? bridgeTxMetaId ?? syntheticTransactionId;\n if (!historyKey) {\n throw new Error(\n 'Cannot add tx to history: either actionId, bridgeTxMeta.id, or syntheticTransactionId must be provided',\n );\n }\n return historyKey;\n}\n\nexport const getInitialHistoryItem = (\n args: StartPollingForBridgeTxStatusArgsSerialized,\n): BridgeHistoryItem => {\n const {\n bridgeTxMeta,\n quoteResponse,\n startTime,\n slippagePercentage,\n customSlippage,\n initialDestAssetBalance,\n targetContractAddress,\n approvalTxId,\n isStxEnabled,\n location,\n abTests,\n activeAbTests,\n accountAddress: selectedAddress,\n originalTransactionId,\n actionId,\n tokenSecurityTypeDestination,\n inputPrimaryDenomination,\n batchSellData,\n quoteIds,\n } = args;\n\n // Write all non-status fields to state so we can reference the quote in Activity list without the Bridge API\n // We know it's in progress but not the exact status yet\n const txHistoryItem: BridgeHistoryItem = {\n txMetaId: bridgeTxMeta?.id,\n actionId,\n originalTransactionId: originalTransactionId ?? bridgeTxMeta?.id, // Keep original for intent transactions\n batchId: bridgeTxMeta?.batchId,\n quote: quoteResponse.quote,\n quoteId: quoteResponse.quoteId,\n startTime,\n estimatedProcessingTimeInSeconds:\n quoteResponse.estimatedProcessingTimeInSeconds,\n slippagePercentage,\n ...(customSlippage !== undefined && { customSlippage }),\n pricingData: {\n amountSent: quoteResponse?.sentAmount?.amount ?? '0',\n amountSentInUsd: quoteResponse?.sentAmount?.usd ?? undefined,\n quotedGasInUsd: quoteResponse?.gasFee?.total?.usd ?? undefined,\n quotedReturnInUsd: quoteResponse?.toTokenAmount?.usd ?? undefined,\n quotedGasAmount: quoteResponse?.gasFee?.total?.amount ?? undefined,\n },\n initialDestAssetBalance,\n targetContractAddress,\n account: selectedAddress,\n status: {\n // We always have a PENDING status when we start polling for a tx, don't need the Bridge API for that\n // Also we know the bare minimum fields for status at this point in time\n status: StatusTypes.PENDING,\n srcChain: {\n chainId: quoteResponse.quote.srcChainId,\n // We don't set the initial tx hash for STX transactions because they return a hash on submission\n // but it is not finalized until confirmation on chain\n txHash:\n isNonEvmChainId(quoteResponse.quote.srcChainId) || !isStxEnabled\n ? bridgeTxMeta?.hash\n : undefined,\n },\n },\n hasApprovalTx: Boolean(quoteResponse.approval),\n approvalTxId,\n isStxEnabled: Boolean(isStxEnabled),\n featureId: quoteResponse.featureId,\n location,\n ...(abTests && { abTests }),\n ...(activeAbTests && { activeAbTests }),\n ...(tokenSecurityTypeDestination !== undefined && {\n tokenSecurityTypeDestination,\n }),\n ...(inputPrimaryDenomination !== undefined && {\n inputPrimaryDenomination,\n }),\n };\n\n if (batchSellData) {\n txHistoryItem.batchSellData = batchSellData;\n }\n if (quoteIds) {\n txHistoryItem.quoteIds = quoteIds;\n }\n\n return txHistoryItem;\n};\n\nexport const shouldPollHistoryItem = (\n historyItem: BridgeHistoryItem,\n): boolean => {\n const isIntent = Boolean(historyItem?.quote?.intent);\n const isBridgeTx = isCrossChain(\n historyItem.quote.srcChainId,\n historyItem.quote.destChainId,\n );\n const isTronTx = isTronChainId(historyItem.quote.srcChainId);\n\n return [isBridgeTx, isIntent, isTronTx].some(Boolean);\n};\n\nexport const isHistoryItemTooOld = (\n messenger: BridgeStatusControllerMessenger,\n historyItem: BridgeHistoryItem,\n): boolean => {\n const maxPendingHistoryItemAgeMs = getMaxPendingHistoryItemAgeMs(messenger);\n\n return Date.now() - historyItem.startTime > maxPendingHistoryItemAgeMs;\n};\n"]}
@@ -1,5 +1,5 @@
1
1
  import type { AccountsControllerState } from '@metamask/accounts-controller';
2
- import { StatusTypes, MetricsActionType, MetricsSwapType, MetaMetricsSwapsEventSource, UnifiedSwapBridgeEventName, FailurePhase, SwapBridgeErrorCode } from '@metamask/bridge-controller';
2
+ import { StatusTypes, MetricsActionType, MetricsSwapType, MetaMetricsSwapsEventSource, FeatureId, UnifiedSwapBridgeEventName, FailurePhase, SwapBridgeErrorCode } from '@metamask/bridge-controller';
3
3
  import type { AccountHardwareType, QuoteFetchData, QuoteMetadata, QuoteResponseV1, TxStatusData, RequestParams, TradeData, RequestMetadata, BatchSellTradesResponse, RequiredEventContextFromClient, HashPresenceProperties, FailureTelemetryProperties } from '@metamask/bridge-controller';
4
4
  import type { TransactionMeta } from '@metamask/transaction-controller';
5
5
  import type { Hex } from '@metamask/utils';
@@ -90,7 +90,38 @@ export declare const getPriceImpactFromQuote: (quote: QuoteResponseV1['quote'])
90
90
  export declare const getPreConfirmationPropertiesFromQuote: (quoteResponse: QuoteResponseV1 & QuoteMetadata, isStxEnabled: boolean, accountHardwareType: AccountHardwareType, location?: MetaMetricsSwapsEventSource, abTests?: Record<string, string>, activeAbTests?: {
91
91
  key: string;
92
92
  value: string;
93
- }[], tokenSecurityTypeDestination?: string | null, batchSellTrades?: BatchSellTradesResponse | null, batchId?: Hex, quotesReceivedContext?: RequiredEventContextFromClient[UnifiedSwapBridgeEventName.QuotesReceived]) => RequiredEventContextFromClient[UnifiedSwapBridgeEventName.Submitted];
93
+ }[], tokenSecurityTypeDestination?: string | null, batchSellTrades?: BatchSellTradesResponse | null, batchId?: Hex, quotesReceivedContext?: RequiredEventContextFromClient[UnifiedSwapBridgeEventName.QuotesReceived]) => {
94
+ price_impact: number;
95
+ usd_quoted_gas: number;
96
+ gas_included: boolean;
97
+ gas_included_7702: boolean;
98
+ quoted_time_minutes: number;
99
+ usd_quoted_return: number;
100
+ provider: `${string}_${string}`;
101
+ chain_id_source: `${string}:${string}`;
102
+ token_symbol_source: string;
103
+ token_address_source: `${string}:${string}/${string}:${string}`;
104
+ chain_id_destination: `${string}:${string}`;
105
+ token_symbol_destination: string;
106
+ token_address_destination: `${string}:${string}/${string}:${string}`;
107
+ token_security_type_destination: string | null;
108
+ account_hardware_type: AccountHardwareType;
109
+ is_hardware_wallet: boolean;
110
+ swap_type: MetricsSwapType;
111
+ usd_amount_source: number;
112
+ stx_enabled: boolean;
113
+ action_type: MetricsActionType;
114
+ slippage_limit: number;
115
+ custom_slippage: boolean;
116
+ location: MetaMetricsSwapsEventSource | undefined;
117
+ ab_tests?: Record<string, string> | undefined;
118
+ active_ab_tests?: {
119
+ key: string;
120
+ value: string;
121
+ }[] | undefined;
122
+ batch_id?: `0x${string}` | undefined;
123
+ feature_id: FeatureId;
124
+ };
94
125
  export declare const getTradeDataFromHistory: (historyItem: BridgeHistoryItem) => TradeData;
95
126
  export declare const getRequestMetadataFromHistory: (historyItem: BridgeHistoryItem, account?: AccountsControllerState['internalAccounts']['accounts'][string]) => RequestMetadata;
96
127
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/utils/metrics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/utils/metrics.ts"],"names":[],"mappings":"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"}