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

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 +14 -0
  2. package/dist/bridge-status-controller.d.ts.map +1 -1
  3. package/dist/bridge-status-controller.js +78 -40
  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 +62 -34
  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 +38 -13
  10. package/dist/strategy/batch-strategy.js.map +1 -1
  11. package/dist/strategy/evm-strategy.d.ts +2 -28
  12. package/dist/strategy/evm-strategy.d.ts.map +1 -1
  13. package/dist/strategy/evm-strategy.js +62 -39
  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 +2 -1
  17. package/dist/strategy/intent-strategy.js.map +1 -1
  18. package/dist/strategy/types.d.ts +3 -2
  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 +1 -2
  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 +64 -25
  27. package/dist/utils/history.js.map +1 -1
  28. package/dist/utils/metrics.d.ts +2 -33
  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 +2 -0
  32. package/dist/utils/transaction.d.ts.map +1 -1
  33. package/dist/utils/transaction.js +16 -4
  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 { BridgeStatusControllerMessenger, FetchFunction, QuoteAndTxMetadata, StartPollingForBridgeTxStatusArgs } from '../types.js';
6
+ import type { BridgeHistoryItem, 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,7 +51,8 @@ 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;
54
+ tradeMeta?: TransactionMeta;
55
+ historyItemOverrides?: Partial<Pick<BridgeHistoryItem, 'approvalTxId' | 'quoteIds' | 'quote'>>;
55
56
  };
56
57
  } | {
57
58
  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":"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"]}
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"]}
package/dist/types.d.ts CHANGED
@@ -236,10 +236,9 @@ export type QuoteMetadataSerialized = {
236
236
  cost: Omit<TokenAmountValuesSerialized, 'amount'>;
237
237
  };
238
238
  export type StartPollingForBridgeTxStatusArgs = {
239
- bridgeTxMeta?: Pick<TransactionMeta, 'id' | 'hash' | 'batchId'>;
239
+ bridgeTxMeta?: Partial<Pick<TransactionMeta, 'id' | 'hash' | 'batchId' | 'status'>>;
240
240
  actionId?: string;
241
241
  batchSellData?: BridgeHistoryItem['batchSellData'];
242
- quoteIds?: BridgeHistoryItem['quoteIds'];
243
242
  /**
244
243
  * @deprecated the txMeta or orderUid should be used instead
245
244
  */
@@ -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?: 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
+ {"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,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
- }) => boolean;
6
+ }, historyItemOverrides?: Partial<Pick<BridgeHistoryItem, 'approvalTxId' | 'quoteIds' | 'quote'>>) => 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;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
+ {"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,27 +1,43 @@
1
1
  import { StatusTypes, isCrossChain, isNonEvmChainId, isTronChainId, } from '@metamask/bridge-controller';
2
+ import { TransactionStatus } from '@metamask/transaction-controller';
2
3
  import { getMaxPendingHistoryItemAgeMs } from './feature-flags.js';
3
- const updateHistoryItem = (oldHistoryItem, txMeta) => {
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) => {
4
11
  return {
5
12
  ...oldHistoryItem,
6
- txMetaId: txMeta.id,
7
- originalTransactionId: oldHistoryItem.originalTransactionId ?? txMeta.id,
13
+ txMetaId: txMeta?.id ?? oldHistoryItem.txMetaId,
14
+ originalTransactionId: oldHistoryItem.originalTransactionId ?? txMeta?.id,
15
+ actionId: txMeta?.actionId ?? oldHistoryItem.actionId,
16
+ approvalTxId: historyItemOverrides?.approvalTxId ?? oldHistoryItem.approvalTxId,
8
17
  status: {
9
18
  ...oldHistoryItem.status,
10
19
  srcChain: {
11
20
  ...oldHistoryItem.status.srcChain,
12
- txHash: txMeta.hash ?? oldHistoryItem.status.srcChain?.txHash,
21
+ txHash: txMeta?.hash ?? oldHistoryItem.status.srcChain?.txHash,
13
22
  },
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,
14
26
  },
27
+ ...(historyItemOverrides?.quote && { quote: historyItemOverrides.quote }),
28
+ ...(historyItemOverrides?.quoteIds && {
29
+ quoteIds: historyItemOverrides.quoteIds,
30
+ }),
15
31
  };
16
32
  };
17
- export const rekeyHistoryItemInState = (state, oldKey, newKey, txMeta) => {
33
+ export const rekeyHistoryItemInState = (state, oldKey, newKey, txMeta, historyItemOverrides) => {
18
34
  const historyItem = state.txHistory[oldKey];
19
35
  if (!historyItem) {
20
36
  return false;
21
37
  }
22
38
  state.txHistory[newKey] = {
23
39
  ...historyItem,
24
- ...updateHistoryItem(historyItem, txMeta),
40
+ ...updateHistoryItem(historyItem, txMeta, historyItemOverrides),
25
41
  };
26
42
  delete state.txHistory[oldKey];
27
43
  return true;
@@ -36,19 +52,33 @@ export const isBatchSellHistoryItem = (historyItem) => Boolean(historyItem?.batc
36
52
  */
37
53
  export const getMatchingHistoryEntryForTxMeta = (txHistory, txMeta) => {
38
54
  const historyEntries = Object.entries(txHistory);
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));
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);
52
82
  });
53
83
  };
54
84
  /**
@@ -60,7 +90,17 @@ export const getMatchingHistoryEntryForTxMeta = (txHistory, txMeta) => {
60
90
  */
61
91
  export const getMatchingHistoryEntryForApprovalTxMeta = (txHistory, txMeta) => {
62
92
  const historyEntries = Object.entries(txHistory);
63
- return historyEntries.find(([_, value]) => value.approvalTxId ? value.approvalTxId === txMeta.id : false);
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
+ });
64
104
  };
65
105
  /**
66
106
  * Returns the BatchSell history items in the same batch as the provided tx hash.
@@ -116,7 +156,7 @@ export function getHistoryKey(actionId, bridgeTxMetaId, syntheticTransactionId)
116
156
  return historyKey;
117
157
  }
118
158
  export const getInitialHistoryItem = (args) => {
119
- const { bridgeTxMeta, quoteResponse, startTime, slippagePercentage, customSlippage, initialDestAssetBalance, targetContractAddress, approvalTxId, isStxEnabled, location, abTests, activeAbTests, accountAddress: selectedAddress, originalTransactionId, actionId, tokenSecurityTypeDestination, inputPrimaryDenomination, batchSellData, quoteIds, } = args;
159
+ const { bridgeTxMeta, quoteResponse, startTime, slippagePercentage, customSlippage, initialDestAssetBalance, targetContractAddress, approvalTxId, isStxEnabled, location, abTests, activeAbTests, accountAddress: selectedAddress, originalTransactionId, actionId, tokenSecurityTypeDestination, inputPrimaryDenomination, batchSellData, } = args;
120
160
  // Write all non-status fields to state so we can reference the quote in Activity list without the Bridge API
121
161
  // We know it's in progress but not the exact status yet
122
162
  const txHistoryItem = {
@@ -143,7 +183,9 @@ export const getInitialHistoryItem = (args) => {
143
183
  status: {
144
184
  // We always have a PENDING status when we start polling for a tx, don't need the Bridge API for that
145
185
  // Also we know the bare minimum fields for status at this point in time
146
- status: StatusTypes.PENDING,
186
+ status: (bridgeTxMeta?.status &&
187
+ TRANSACTION_STATUS_TO_STATUS_TYPES[bridgeTxMeta.status]) ??
188
+ StatusTypes.PENDING,
147
189
  srcChain: {
148
190
  chainId: quoteResponse.quote.srcChainId,
149
191
  // We don't set the initial tx hash for STX transactions because they return a hash on submission
@@ -170,9 +212,6 @@ export const getInitialHistoryItem = (args) => {
170
212
  if (batchSellData) {
171
213
  txHistoryItem.batchSellData = batchSellData;
172
214
  }
173
- if (quoteIds) {
174
- txHistoryItem.quoteIds = quoteIds;
175
- }
176
215
  return txHistoryItem;
177
216
  };
178
217
  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';\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
+ {"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,5 +1,5 @@
1
1
  import type { AccountsControllerState } from '@metamask/accounts-controller';
2
- import { StatusTypes, MetricsActionType, MetricsSwapType, MetaMetricsSwapsEventSource, FeatureId, UnifiedSwapBridgeEventName, FailurePhase, SwapBridgeErrorCode } from '@metamask/bridge-controller';
2
+ import { StatusTypes, MetricsActionType, MetricsSwapType, MetaMetricsSwapsEventSource, 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,38 +90,7 @@ 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]) => {
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
- };
93
+ }[], tokenSecurityTypeDestination?: string | null, batchSellTrades?: BatchSellTradesResponse | null, batchId?: Hex, quotesReceivedContext?: RequiredEventContextFromClient[UnifiedSwapBridgeEventName.QuotesReceived]) => RequiredEventContextFromClient[UnifiedSwapBridgeEventName.Submitted];
125
94
  export declare const getTradeDataFromHistory: (historyItem: BridgeHistoryItem) => TradeData;
126
95
  export declare const getRequestMetadataFromHistory: (historyItem: BridgeHistoryItem, account?: AccountsControllerState['internalAccounts']['accounts'][string]) => RequestMetadata;
127
96
  /**
@@ -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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"}