All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Bump
@metamask/bridge-controllerfrom^72.0.4to^73.0.1(#8850, #8866) - Remove unnecessary type assertions for bridge quotes (#8805)
- Pass
isInternal: trueto all internaladdTransaction/addTransactionBatchcalls to adopt the explicitisInternalflag introduced in@metamask/transaction-controller(#8633) - Bump
@metamask/profile-sync-controllerfrom^28.0.2to^28.1.0(#8783) - Bump
@metamask/transaction-controllerfrom^65.3.0to^66.0.0(#8796, #8848) - Bump
@metamask/gas-fee-controllerfrom^26.2.1to^26.2.2(#8834) - Bump
@metamask/polling-controllerfrom^16.0.5to^16.0.6(#8834)
- Bump
@metamask/accounts-controllerfrom^38.1.0to^38.1.1(#8774) - Bump
@metamask/bridge-controllerfrom^72.0.3to^72.0.4(#8774) - Bump
@metamask/network-controllerfrom^31.1.0to^32.0.0(#8774) - Bump
@metamask/controller-utilsfrom^12.0.0to^12.1.0(#8774)
- Bump
@metamask/network-controllerfrom^31.0.0to^31.1.0(#8765) - Bump
@metamask/bridge-controllerfrom^72.0.2to^72.0.3(#8773)
- Bump
@metamask/bridge-controllerfrom^72.0.0to^72.0.2(#8738, #8755) - Bump
@metamask/accounts-controllerfrom^38.0.0to^38.1.0(#8755) - Bump
@metamask/controller-utilsfrom^11.20.0to^12.0.0(#8755) - Bump
@metamask/gas-fee-controllerfrom^26.2.0to^26.2.1(#8755) - Bump
@metamask/network-controllerfrom^30.1.0to^31.0.0(#8755) - Bump
@metamask/polling-controllerfrom^16.0.4to^16.0.5(#8755) - Bump
@metamask/transaction-controllerfrom^65.2.0to^65.3.0(#8755)
- Bump
@metamask/bridge-controllerfrom^71.0.0to^72.0.0(#8706, #8721, #8737) - Bump
@metamask/transaction-controllerfrom^65.0.0to^65.2.0(#8691, #8722) - Bump
@metamask/accounts-controllerfrom^37.2.0to^38.0.0(#8665) - Bump
@metamask/messengerfrom^1.1.1to^1.2.0(#8632) - Bump
@metamask/keyring-controllerfrom^25.2.0to^25.5.0(#8634, #8665, #8722) - Bump
@metamask/network-controllerfrom^30.0.1to^30.1.0(#8636) - Bump
@metamask/gas-fee-controllerfrom^26.1.1to^26.2.0(#8722)
- When
submitIntentrecords bridge history keyed byorderUid, passoriginalTransactionIdat the top level to#addTxToHistorysogetInitialHistoryItemlinks the history item to the syntheticTransactionControllerentry instead of incorrectly usingorderUid(#8655)
- Add optional
tokenSecurityTypeDestination?: string \| nulltoBridgeHistoryItem,StartPollingForBridgeTxStatusArgs[Serialized], and thesubmitTx/submitIntentarguments; when provided, it's persisted on the history item and emitted astoken_security_type_destinationon post-submit analytics events (#8595)
- Bump
@metamask/transaction-controllerfrom^64.3.0to^65.0.0(#8585, #8613) - Bump
@metamask/bridge-controllerfrom^70.2.0to^71.0.0(#8622)
- Remove stale bridge transactions from
txHistoryto prevent excessive polling. Once a history item exceeds the configured maximum age, the status is fetched once, then the src tx hash's receipt is retrieved. If there is no receipt, the history item's hash is presumed to be invalid and the entry is deleted from state. (#8479) - Add missing action types for public
BridgeStatusControllermethods (#8367)- The following types are now available:
BridgeStatusControllerSubmitTxActionBridgeStatusControllerSubmitIntentActionBridgeStatusControllerGetBridgeHistoryItemByTxMetaIdAction
- The following types are now available:
- BREAKING: Replace
transactionFailedandtransactionConfirmedevent subscriptions withTransactionController:transactionStatusUpdated(#8479) - BREAKING: Add
RemoteFeatureFlags:getStateto allowed actions to retrieve max history item age config (#8479) - Add
account_hardware_typefield to all cross-chain swap analytics events (#8503)account_hardware_typecarries the specific hardware wallet brand (e.g.'Ledger','QR Hardware') ornullfor software walletsis_hardware_walletis now derived fromaccount_hardware_type !== null, keeping both fields in sync
getEVMTxPropertiesFromTransactionMetanow accepts an optionalaccountparameter to populateaccount_hardware_typeforTransactionController:transactionFailedevents (#8503)- Bump
@metamask/accounts-controllerfrom^37.1.1to^37.2.0(#8363) - Bump
@metamask/keyring-controllerfrom^25.1.1to^25.2.0(#8363) - Bump
@metamask/messengerfrom^1.0.0to^1.1.1(#8364, #8373) - Bump
@metamask/transaction-controllerfrom^64.0.0to^64.3.0(#8432, #8447, #8482) - Bump
@metamask/base-controllerfrom^9.0.1to^9.1.0(#8457) - Bump
@metamask/bridge-controllerfrom^70.0.1to^70.2.0(#8466, #8474, #8571)
- Prevent invalid src hashes from being persisted in
txHistory(#8479)- Make transaction status subscribers generic so that
txHistoryitems get updated if there are any transaction updates matching by actionId, txMetaId, hash or type - Skip saving smart transaction hashes on transaction submission. This used to make it possible for invalid src hashes to be stored in state and polled indefinitely. Instead, the txHistory item will now be updated with the confirmed tx hash when the
transactionStatusUpdatedevent is published - If there is no srcTxHash in state, attempt to set it based on the local TransactionController state
- Make transaction status subscribers generic so that
- Bump
@metamask/bridge-controllerfrom^70.0.0to^70.0.1(#8359) - Bump
@metamask/transaction-controllerfrom^63.3.1to^64.0.0(#8359) - Add missing
@metamask/messengerdependency (#8318) - Bump
@metamask/controller-utilsfrom^11.19.0to^11.20.0(#8344)
- Deprecate
BridgeStatusActionin favor of separate action types (#8367)
- Bump
@metamask/bridge-controllerfrom^69.2.3to^70.0.0(#8340)
- Bump
@metamask/snaps-controllersfrom^17.2.0to^19.0.0(#8319) - Bump
@metamask/accounts-controllerfrom^37.1.0to^37.1.1(#8325) - Bump
@metamask/bridge-controllerfrom^69.2.2to^69.2.3(#8325) - Bump
@metamask/profile-sync-controllerfrom^28.0.1to^28.0.2(#8325)
- Bump
@metamask/accounts-controllerfrom^37.0.0to^37.1.0(#8317) - Bump
@metamask/base-controllerfrom^9.0.0to^9.0.1(#8317) - Bump
@metamask/bridge-controllerfrom^69.2.1to^69.2.2(#8317) - Bump
@metamask/gas-fee-controllerfrom^26.1.0to^26.1.1(#8317) - Bump
@metamask/keyring-controllerfrom^25.1.0to^25.1.1(#8317) - Bump
@metamask/network-controllerfrom^30.0.0to^30.0.1(#8317) - Bump
@metamask/polling-controllerfrom^16.0.3to^16.0.4(#8317) - Bump
@metamask/profile-sync-controllerfrom^28.0.0to^28.0.1(#8317) - Bump
@metamask/transaction-controllerfrom^63.1.0to^63.3.1(#8301, #8313, #8317)
- Bump
@metamask/bridge-controllerfrom^69.1.1to^69.2.1(#8265, #8288) - Bump
@metamask/transaction-controllerfrom^63.0.0to^63.1.0(#8272)
- Publish UnifiedSwapBridge Failed event for any exception thrown during
submitTx. Previously the Failed event was only getting published for EVM txs after tx submission (#8277) - Keep EIP-7702 batching disabled for gasless transactions that use smart transactions /
eth_sendBundlewhen the quote is gas-included but not gas-included-7702 even when the account is a smart account (#8275) - For hardware wallets on MetaMask Mobile, non-batch EVM flows with ERC-20 approval now run the hardware-wallet delay before waiting for approval confirmation, preserving Ledger second-prompt spacing while gas estimation still runs after allowance is set on-chain (#8268)
- BREAKING: Replace transaction handlers provided to the
BridgeStatusControllerconstructor with calls to the TransactionController, through the controller messenger. Clients will need to add theTransactionControllerUpdateTransactionAction,TransactionControllerAddTransactionAction, andTransactionControllerEstimateGasFeeActionpermissions to their controller init modules in addition to updating the constructor (#8188) - Moved controller calls from bridge-status-controller.ts to their own utils for better readability (#8226)
- Added more unit test coverage for intents and EVM transactions. Also refactored some mocks and code blocks to improve testability (#8186)
- Bump
@metamask/bridge-controllerfrom^69.1.0to^69.1.1(#8225) - Bump
@metamask/gas-fee-controllerfrom^26.0.3to^26.1.0(#8225) - BREAKING:
BridgeStatusControllerMessengermust now allowTransactionController:isAtomicBatchSupportedaction (#8125) - Bump
@metamask/transaction-controllerfrom^62.21.0to^63.0.0(#8217, #8225)
- Delegated accounts (EIP-7702) now use batched transactions to avoid in-flight transaction limit (#8125)
- Bridge transaction types now properly matched in 7702 batch path (#8125)
- Delegated account batch transactions now recorded in bridge status history (#8125)
- Gas fields now included for delegated account transactions that are not gas-sponsored (#8125)
- Added optional
activeAbTestscontext support so Unified SwapBridge events can includeactive_ab_testsindependently ofab_tests. (#8152)
- Bump
@metamask/bridge-controllerfrom^69.0.1to^69.1.0(#8168)
- Bump
@metamask/profile-sync-controllerfrom^27.1.0to^28.0.0(#8162) - Bump
@metamask/bridge-controllerfrom^69.0.0to^69.0.1(#8162)
- Bump
@metamask/transaction-controllerfrom^62.19.0to^62.21.0, (#8104, #8140) - Bump
@metamask/accounts-controllerfrom^36.0.1to^37.0.0(8140) - Bump
@metamask/bridge-controllerfrom^68.0.0to^69.0.0(8140)
- Added optional
abTestsproperty toBridgeHistoryItemto persist A/B test context across the transaction lifecycle (#8007) - Added optional
abTestsparameter toStartPollingForBridgeTxStatusArgs(#8007) - Added optional
abTestsparameter tosubmitTxandsubmitIntentmethods for A/B test experiment attribution (#8007) trackUnifiedSwapBridgeEventnow resolvesab_testsfrom event properties or transaction history and includes it in emitted events (#8007)
- Bump
@metamask/bridge-controllerfrom^67.1.1to^68.0.0(#8024, #8051, #8070, #8101) - Bump
@metamask/transaction-controllerfrom^62.17.1to^62.19.0(#8005, #8031) - BREAKING: Move intent signing and submission orchestration into
BridgeStatusController, including internal EIP-712 signing viaKeyringControllerand the newIntentManagerflow. (#8048)
- Bump
@metamask/accounts-controllerfrom^36.0.0to^36.0.1(#7996) - Bump
@metamask/gas-fee-controllerfrom^26.0.2to^26.0.3(#7996) - Bump
@metamask/network-controllerfrom^29.0.0to^30.0.0(#7996) - Bump
@metamask/polling-controllerfrom^16.0.2to^16.0.3(#7996) - Bump
@metamask/transaction-controllerfrom^62.17.0to^62.17.1(#7996) - Bump
@metamask/controller-utilsfrom^11.18.0to^11.19.0(#7995) - Bump
@metamask/bridge-controllerfrom^67.0.0to^67.1.1(#7995, #7996)
- BREAKING: Retrieve JWT token from the ProfileSyncController and include it in bridge request headers (#7955)
- Bump
@metamask/bridge-controllerfrom^66.2.0to^67.0.0(#7961)
- Added
locationproperty toBridgeHistoryItemto persist the entry point across the transaction lifecycle (#7931) - Added
locationparameter toStartPollingForBridgeTxStatusArgs(#7931) - Added optional
locationparameter tosubmitTxmethod (#7931)
- All post-submission events (
Submitted,Completed,Failed,PollingStatusUpdated,StatusValidationFailed) now include thelocationproperty fromBridgeHistoryItem(#7931)
- Fix
usd_amount_sourcedefault value in EVM transaction metrics properties from100to0(#7899)
- Bump
@metamask/bridge-controllerfrom^66.1.0to `^66.1.1 (#7910)
- Bump
@metamask/accounts-controllerfrom^35.0.2to^36.0.0(#7897) - Bump
@metamask/bridge-controllerfrom^65.3.0to^66.1.0, (#7862, #7897) - Bump
@metamask/transaction-controllerfrom^62.14.0to^62.17.0, (#7854, #7872, #7897)
- Add
Unified SwapBridge Polling Status Updatedmetrics event withstatusproperty (max_polling_reachedormanually_restarted), emitted when polling stops due to max attempts or is manually restarted (#7825)
- BREAKING Re-key intent history items and extract intent code into a new IntentManager class
- BREAKING handle intent orders in fetch bridge tx function (#7756)
- Bump
@metamask/transaction-controllerfrom^62.11.0to^62.14.0(#7775, #7802, #7832) - Bump
@metamask/bridge-controllerfrom^65.1.0to^65.3.0(#7802, #7837)
- Fix Tron same-chain swap polling and Completed event tracking (#7697)
- Bump
@metamask/bridge-controllerfrom^65.0.0to^65.1.0(#7751, #7763) - Bump
@metamask/transaction-controllerfrom^62.9.2to^62.11.0(#7737, #7760)
- Bump
@metamask/bridge-controllerfrom^64.8.2to^65.0.0(#7731)
- Bump
@metamask/bridge-controllerfrom^64.8.1to^64.8.2(#7722)
- Fix transaction failure tracking for pre-submission failures by using
actionIdas a temporary history key (#7696)
- Fix Tron same-chain swap polling and Completed event tracking (#7697)
- Bump
@metamask/accounts-controllerfrom^35.0.1to^35.0.2(#7642) - Bump
@metamask/gas-fee-controllerfrom^26.0.1to^26.0.2(#7642) - Bump
@metamask/network-controllerfrom^28.0.0to^29.0.0(#7642) - Bump
@metamask/polling-controllerfrom^16.0.1to^16.0.2(#7642) - Bump
@metamask/transaction-controllerfrom^62.9.1to^62.9.2(#7642) - Bump
@metamask/bridge-controllerfrom^64.4.1to^64.5.1(#7622, #7642)
- Bump
@metamask/transaction-controllerfrom^62.8.0to^62.9.1(#7602, #7604) - Bump
@metamask/network-controllerfrom^27.2.0to^28.0.0(#7604) - Bump
@metamask/accounts-controllerfrom^35.0.0to^35.0.1(#7604) - Bump
@metamask/bridge-controllerfrom^64.4.0to^64.4.1(#7604) - Bump
@metamask/gas-fee-controllerfrom^26.0.0to^26.0.1(#7604) - Bump
@metamask/polling-controllerfrom^16.0.0to^16.0.1(#7604)
- Use
BRIDGE_PREFERRED_GAS_ESTIMATEfrom@metamask/bridge-controllerfor gas price estimates to align with validation (#7582)
- Add intent based transaction support (#6547)
- Bump
@metamask/transaction-controllerfrom^62.7.0to^62.8.0(#7596) - Bump
@metamask/bridge-controllerfrom^64.3.0to^64.4.0(#7596) - Bump
@metamask/controller-utilsfrom^11.17.0to^11.18.0(#7583) - Bump
@metamask/network-controllerfrom^27.1.0to^27.2.0(#7583)
- BREAKING Use CrossChain API instead of the intent manager package for intent order submission (#6547)
- Bump
@metamask/snaps-controllersfrom^14.0.1to^17.2.0(#7550) - Upgrade
@metamask/utilsfrom^11.8.1to^11.9.0(#7511) - Bump
@metamask/network-controllerfrom^27.0.0to^27.1.0(#7534) - Bump
@metamask/controller-utilsfrom^11.16.0to^11.17.0(#7534) - Bump
@metamask/bridge-controllerfrom^64.2.0to^64.3.0(#7574)
- Bump
@metamask/transaction-controllerfrom^62.5.0to^62.7.0(#7430, #7494) - Bump
@metamask/bridge-controllerfrom^64.1.0to^64.2.0(#7509)
- Bump
@metamask/bridge-controllerfrom^64.0.0to^64.1.0(#7422) - Bump
@metamask/transaction-controllerfrom^62.4.0to^62.5.0(#7325)
- Fix MAX native token swap failing with "insufficient gas" when STX is off by using quote's
txFeeinstead of re-estimating gas whengasIncludedis true (#7306)
- BREAKING: Bump
@metamask/bridge-controllerfrom^63.2.0to^64.0.0(#7295) - Improve type safety by replacing tx data type assertions with type predicates (#7228)
- Submit
resetApprovaltx before the tx approval if it is included in the quoteResponse (#7228) - Bump
@metamask/network-controllerfrom^26.0.0to^27.0.0(#7258) - Bump
@metamask/transaction-controllerfrom^62.3.0to^62.4.0(#7257, #7289)
- Bump
@metamask/bridge-controllerfrom^63.1.0to^63.2.0(#7245) - Move peer dependencies for controller and service packages to direct dependencies (#7209, #7220, #7236)
- The dependencies moved are:
@metamask/accounts-controller(^35.0.0)@metamask/bridge-controller(^63.0.0)@metamask/gas-fee-controller(^26.0.0)@metamask/network-controller(^26.0.0)@metamask/snaps-controllers(^14.0.1)@metamask/transaction-controller(^62.3.0)
- In clients, it is now possible for multiple versions of these packages to exist in the dependency tree.
- For example, this scenario would be valid: a client relies on
@metamask/controller-a1.0.0 and@metamask/controller-b1.0.0, and@metamask/controller-bdepends on@metamask/controller-a1.1.0.
- For example, this scenario would be valid: a client relies on
- Note, however, that the versions specified in the client's
package.jsonalways "win", and you are expected to keep them up to date so as not to break controller and service intercommunication.
- The dependencies moved are:
- Bump
@metamask/bridge-controllerfrom^63.0.0to^63.1.0(#7238)
- Remove direct QuotesReceived event publishing to avoid race conditions that can happen when clients navigate and reset state. Update
submitTxto accept quotesReceivedContext (replace isLoading/warnings) and propagate context to the BridgeController through the `stopPollingForQuotes call (#7242)
- BREAKING: Bump
@metamask/bridge-controllerfrom^62.0.0to^63.0.0(#7207)
- Bump
@metamask/polling-controllerfrom^15.0.0to^16.0.0(#7202) - Bump
@metamask/controller-utilsfrom^11.15.0to^11.16.0(#7202) - BREAKING: Bump
@metamask/transaction-controllerfrom^61.0.0to^62.0.0(#7202) - BREAKING: Bump
@metamask/network-controllerfrom^25.0.0to^26.0.0(#7202) - BREAKING: Bump
@metamask/gas-fee-controllerfrom^25.0.0to^26.0.0(#7202) - BREAKING: Bump
@metamask/bridge-controllerfrom^61.0.0to^62.0.0(#7202) - BREAKING: Bump
@metamask/accounts-controllerfrom^34.0.0to^35.0.0(#7202) - Update
submitTxhandler to accept optionalisLoadingandwarningsarguments. WhenisLoading=true, the QuotesReceived event is published (#7182)
- BREAKING: Bump
@metamask/bridge-controllerfrom^60.0.0to^61.0.0(#7179)
- Added support for bridging and swapping tokens on the Tron blockchain (#6862)
- Add isGasFeeSponsored field in transaction batch params (#7064)
- BREAKING: Bump
@metamask/bridge-controllerfrom^59.0.0to^60.0.0(#7100)
- BREAKING: Bump
@metamask/bridge-controllerfrom^58.0.0to^59.0.0(#7043)
- BREAKING: Bump
@metamask/bridge-controllerfrom^57.0.0to^58.0.0(#7011)
- BREAKING: Bump
@metamask/bridge-controllerfrom^56.0.0to^57.0.0(#7003)
- BREAKING: Use new
Messengerfrom@metamask/messenger(#6444)- Previously,
BridgeStatusControlleraccepted aRestrictedMessengerinstance from@metamask/base-controller.
- Previously,
- BREAKING: Bump
@metamask/accounts-controllerfrom^33.0.0to^34.0.0(#6962) - BREAKING: Bump
@metamask/bridge-controllerfrom^55.0.0to^56.0.0(#6962) - BREAKING: Bump
@metamask/gas-fee-controllerfrom^24.0.0to^25.0.0(#6962) - BREAKING: Bump
@metamask/network-controllerfrom^24.0.0to^25.0.0(#6962) - BREAKING: Bump
@metamask/transaction-controllerfrom^60.0.0to^61.0.0(#6962) - Bump
@metamask/base-controllerfrom^8.4.2to^9.0.0(#6962) - Bump
@metamask/polling-controllerfrom^14.0.1to^15.0.0(#6940, #6962)
- BREAKING: Bump peer dependency
@metamask/bridge-controllerfrom^54.0.0to^55.0.0(#6923) - Bump
@metamask/base-controllerfrom^8.4.1to^8.4.2(#6917)
- BREAKING: Bump peer dependency
@metamask/bridge-controllerfrom^53.0.0to^54.0.0(#6908)
- BREAKING: Update QuoteResponse type used in
submitTxhandler (#6892)
- Publish
destinationTransactionCompletedevent when a bridge tx completes on the destination chain (#6900)
- BREAKING: Bump peer dependency
@metamask/bridge-controllerfrom^52.0.0to^53.0.0(#6895) - Bump
@metamask/network-controllerfrom^24.2.2to^24.3.0(#6883) - Bump
@metamask/transaction-controllerfrom^60.7.0to^60.8.0(#6883)
- Fix issue with Mobile where app would crash after a successful tx (#6890)
- Fix BridgeController initialization in unit tests (#6891)
- BREAKING: Bump peer dependency
@metamask/bridge-controllerfrom^51.0.0to^52.0.0(#6834)
- Bump peer dependency
@metamask/bridge-controllerfrom^50.0.0to^51.0.0(#6824)
- BREAKING: Bump peer dependency
@metamask/bridge-controllerfrom^49.0.0to^50.0.0(#6818)
- Bump
@metamask/base-controllerfrom^8.4.0to^8.4.1(#6807) - Bump
@metamask/controller-utilsfrom^11.14.0to^11.14.1(#6807) - Bump
@metamask/polling-controllerfrom^14.0.0to^14.0.1(#6807)
- BREAKING: Bump peer dependency
@metamask/bridge-controllerfrom^48.0.0to^49.0.0(#6806)
- BREAKING: Bump peer dependency
@metamask/bridge-controllerfrom^47.2.0to^48.0.0(#6780)
- Make QuoteMetadata optional when calling
submitTx(#6739) - Skip event publishing for transactions submitted outside of the Unified Swap and Bridge experience (#6739)
- On tx submission, add the quote's
featureIdto txHistory - When transaction statuses change, check the
featureIdand skip event publishing when it's notundefined - This affects the Submitted, Completed and Failed events
- On tx submission, add the quote's
- Bump
@metamask/transaction-controllerfrom60.4.0to60.5.0(#6733)
- Bump
@metamask/utilsfrom^11.8.0to^11.8.1(#6708) - BREAKING Add a required
accountAddressparameter to thesubmitTxhandler (#6719)
- Deprecate the unused
SnapConfirmationViewedevent (#6719)
- Replace
AccountsController:getSelectedMultichainAccountusages with AccountsController:getAccountByAddress` when reading account details required for submitting Solana transactions (#6719)
- Add support for Bitcoin bridge transactions (#6705)
- Handle Bitcoin PSBT (Partially Signed Bitcoin Transaction) format in trade data
- Support Bitcoin transaction submission through unified Snap interface
- BREAKING: Update transaction submission to use new unified Snap interface for all non-EVM chains (#6705)
- Replace
signAndSendTransactionWithoutConfirmationwithClientRequest:signAndSendTransactionmethod for Snap communication - This changes the expected Snap interface but maintains backward compatibility through response handling
- Replace
- Export
handleSolanaTxResponseas an alias forhandleNonEvmTxResponsefor backward compatibility (deprecated) (#6705) - Rename
createClientTransactionRequestfromsignAndSendTransactionRequestfor clarity (#6705)
- Remove direct dependency on
@metamask/keyring-api(#6705)
- Fix invalid fallback chain ID for non-EVM chains in transaction metadata (#6705)
- Changed from invalid
0x0to0x1as temporary workaround for activity list display
- Changed from invalid
- Revert accidental breaking changes included in v44.0.0 (#6454)
- Refactor
handleLineaDelaytohandleApprovalDelayfor improved abstraction and add support for Base chain by using an array andincludesfor chain ID checks (#6674)
44.0.0 [DEPRECATED]
- This version was deprecated because it accidentally included additional breaking changes; use v44.1.0 or later versions instead
- BREAKING: Bump peer dependency
@metamask/bridge-controllerfrom^43.0.0to^44.0.0(#6652, #6676)
- Add new controller metadata properties to
BridgeStatusController(#6589)
- Bump
@metamask/controller-utilsfrom^11.12.0to^11.14.0(#6620, #6629) - Bump
@metamask/base-controllerfrom^8.3.0to^8.4.0(#6632)
- BREAKING: Bump
@metamask/bridge-controllerpeer dependency from^42.0.0to^43.0.0(#6612) - Bump
@metamask/keyring-apifrom^20.1.0to^21.0.0(#6560) - Bump
@metamask/utilsfrom^11.4.2to^11.8.0(#6588)
- Add
getBridgeHistoryItemByTxMetaIdmethod available via messaging system for external access to bridge history items (#6363) - Add
gas_included_7702field to metrics tracking for EIP-7702 gasless transactions (#6363)
- BREAKING: Bump
@metamask/bridge-controllerpeer dependency from^41.0.0to^42.0.0(#6476) - Bump
@metamask/base-controllerfrom^8.2.0to^8.3.0(#6465) - Pass the
isGasFeeIncludedparameter through transaction utilities (#6363)
- Set the Solana tx signature as the
txHistorykey to support lookups by hash (#6424) - Read Completed swap properties from
txHistoryfor consistency with bridge transactions (#6424)
- Publish
StatusValidationFailedevent for invalid getTxStatus responses (#6362)
- Bump
@metamask/base-controllerfrom^8.1.0to^8.2.0(#6355)
- Add
getBridgeHistoryItemByTxMetaIdmethod to retrieve bridge history items by their transaction meta ID (#6346) - Add support for EIP-7702 gasless transactions in transaction batch handling (#6346)
- BREAKING: Bump peer dependency
@metamask/bridge-controllerfrom^40.0.0to^41.0.0(#6350) - Calculate
actual_time_minutesevent property based ontxMeta.timeif available (#6314) - Parse event properties from the quote request if an event needs to be published prior to tx submission (i.e., Failed, Submitted) (#6314)
- Update transaction batch handling to conditionally enable EIP-7702 based on quote's
gasless7702flag (#6346)
- BREAKING: Bump peer dependency
@metamask/accounts-controllerfrom^32.0.0to^33.0.0(#6345) - BREAKING: Bump peer dependency
@metamask/bridge-controllerfrom^39.0.0to^40.0.0(#6345) - BREAKING: Bump peer dependency
@metamask/transaction-controllerfrom^59.0.0to^60.0.0(#6345) - Bump accounts related packages (#6309)
- Bump
@metamask/keyring-apifrom^20.0.0to^20.1.0
- Bump
- Add
quotedGasAmountto txHistory (#6299)
- Parse destination amount from Swap EVM tx receipt and use it to calculate finalized tx event properties (#6299)
- Use
status.destChain.amountfrom getTxStatus response to calculate actual bridged amount (#6299)
- Bump
@metamask/controller-utilsfrom^11.11.0to^11.12.0(#6303)
- Wait for Mobile hardware wallet delay before submitting Ledger tx (#6302)
- Include
assetsFiatValuefor sending and receiving assets in batch transaction request parameters (#6277)
- BREAKING: Bump peer dependency
@metamask/bridge-controllerto^38.0.0(#6268) - Hardcode
action_typetoswapbridge-v1after swaps and bridge unification (#6270) - Bump
@metamask/base-controllerfrom^8.0.1to^8.1.0(#6284) - Store the quote's effective gas fees as the
quotedGasInUsdin txHistory; fallback to the total fees otherwise (#6295)
- Bump
@metamask/keyring-apifrom^19.0.0to^20.0.0(#6248)
- Make sure to pass the
requireApprovalfor ERC20 approvals (#6204)
- BREAKING: Bump peer dependency
@metamask/accounts-controllerto^32.0.0(#6171) - BREAKING: Bump peer dependency
@metamask/bridge-controllerto^37.0.0(#6171) - BREAKING: Bump peer dependency
@metamask/transaction-controllerto^59.0.0, (#6171, #6027)
- Add
restartPollingForFailedAttemptsaction to restart polling for txs that are not in a final state but have too many failed attempts (#6149)
- Bump
@metamask/keyring-apifrom^18.0.0to^19.0.0(#6146)
- Don't poll indefinitely for bridge tx status if the tx is not found. Implement exponential backoff to prevent overwhelming the bridge API. (#6149)
- Bump
@metamask/bridge-controllerto^36.0.0(#6120)
- BREAKING: Bump peer dependency
@metamask/bridge-controllerto^35.0.0(#6098) - BREAKING Submit Solana transactions using
onClientRequestRPC call by default, which hides the Snap confirmation page from clients. Clients will need to remove conditional redirect the the confirmation page on tx submission (#6077) - Bump
@metamask/controller-utilsfrom^11.10.0to^11.11.0(#6069) - Bump
@metamask/utilsfrom^11.2.0to^11.4.2(#6054)
- Add
batchIdto BridgeHistoryItem to enable querying history by batchId (#6058)
- BREAKING Add tx batching functionality, which requires an
addTransactionBatchFnhandler to be passed to the BridgeStatusController's constructor (#6058) - BREAKING Update batched txs after signing with correct tx types, which requires an
updateTransactionFnhandler to be passed to the BridgeStatusController's constructor (#6058) - Add approvalTxId to txHistoryItem after signing batched transaction (#6058)
- Remove
addUserOperationFromTransactiontx submission code and constructor arg since it is unsupported (#6057) - Remove @metamask/user-operation-controller dependency (#6057)
- BREAKING: Bump peer dependency
@metamask/snaps-controllersfrom^12.0.0to^14.0.0(#6035)
- Wait until a bridge transaction is confirmed before polling for its status. This reduces (or fully removes) premature
getTxStatuscalls, and enables adding batched bridge txs to history before its transaction Id is available (#6052)
- Consolidate validator and type definitions for
StatusResponseso new response fields only need to be defined once (#6030)
- Clean up unused exports that duplicate @metamask/bridge-controller's (#6030)
- Asset
- SrcChainStatus
- DestChainStatus
- RefuelData
- FeeType
- ActionTypes
- Set event property
gas_includedto quote'sgasIncludedvalue (#6030) - Set StatusResponse ChainId schema to expect a number instead of a string (#6045)
- Remove
@metamask/multichain-transactions-controllerpeer dependency (#5993)
- Update the following events to match the Unified SwapBridge spec (#5993)
Completed: remove multichain tx controller subscription and emit the event based on the tx submission status insteadFailed: emit event when an error is thrown during solana tx submissionSubmitted- set swap type for evm txs when applicable. this is currently hardcoded to bridge so swaps don't get displayed correctly on the activity list
- emit this event when submitTx is called, regardless of confirmation status
- BREAKING: Adds a call to bridge-controller's
stopPollingForQuoteshandler to prevent quotes from refreshing during tx submission. This enables "pausing" the quote polling loop without resetting the entire state. Without this, it's possible for the activeQuote to change while the UI's tx submission is in-progress (#5994) - BREAKING: BridgeStatusController now requires the
BridgeController:stopPollingForQuotesaction permission (#5994) - BREAKING: Bump peer dependency
@metamask/accounts-controllerto^31.0.0(#5999) - BREAKING: Bump peer dependency
@metamask/bridge-controllerto^33.0.0(#5999) - BREAKING: Bump peer dependency
@metamask/gas-fee-controllerto^24.0.0(#5999) - BREAKING: Bump peer dependency
@metamask/multichain-transactions-controllerto^3.0.0(#5999) - BREAKING: Bump peer dependency
@metamask/network-controllerto^24.0.0(#5999) - BREAKING: Bump peer dependency
@metamask/transaction-controllerto^58.0.0(#5999) - Bump
@metamask/polling-controllerto^14.0.0(#5999) - Bump
@metamask/user-operation-controllerto^37.0.0(#5999)
- Parse tx signature from
onClientRequestresponse in order to identify bridge transactions (#6001) - Prevent active quote from changing while transaction submission is in progress (#5994)
- BREAKING: Implement onClientRequest for Solana snap transactions, now requires action permission for RemoteFeatureFlagController:getState (#5961)
- Bump
@metamask/bridge-controllerto^32.1.2(#5969) - Bump
@metamask/controller-utilsto^11.10.0(#5935) - Bump
@metamask/transaction-controllerto^57.3.0(#5954)
- Properly prompt for confirmation on Ledger on Mobile for bridge transactions (#5931)
- Include all invalid status properties in sentry logs (#5913)
- BREAKING: Bump
@metamask/bridge-controllerpeer dependency to^32.0.0(#5896)
- BREAKING: Bump
@metamask/bridge-controllerpeer dependency to^31.0.0(#5894)
- BREAKING: Bump
@metamask/accounts-controllerpeer dependency to^30.0.0(#5888) - BREAKING: Bump
@metamask/bridge-controllerpeer dependency to^30.0.0(#5888) - BREAKING: Bump
@metamask/transactions-controllerpeer dependency to^57.0.0(#5888) - BREAKING: Bump
@metamask/multichain-transactions-controllerpeer dependency to^2.0.0(#5888) - BREAKING: Bump
@metamask/snaps-controllerspeer dependency from^11.0.0to^12.0.0(#5871) - Bump
@metamask/keyring-apidependency from^17.4.0to^18.0.0(#5871)
- BREAKING: Bump
@metamask/bridge-controllerpeer dependency to^29.0.0(#5872)
- BREAKING: Bump
@metamask/bridge-controllerpeer dependency to^28.0.0(#5863)
- BREAKING: Bump
@metamask/bridge-controllerpeer dependency to^27.0.0(#5845)
- Subscribe to TransactionController and MultichainTransactionsController tx confirmed and failed events for swaps (#5829)
- BREAKING: bump
@metamask/bridge-controllerpeer dependency to^26.0.0(#5842) - BREAKING: Remove the published bridgeTransactionComplete and bridgeTransactionFailed events (#5829)
- Modify events to use
swapandswapApprovalTransactionTypes when src and dest chain are the same (#5829)
- Subscribe to TransactionController and MultichainTransactionsController tx confirmed and failed events for swaps (#5829)
- Error logs for invalid getTxStatus responses (#5816)
- BREAKING: Remove the published bridgeTransactionComplete and bridgeTransactionFailed events (#5829)
- Modify events to use
swapandswapApprovalTransactionTypes when src and dest chain are the same (#5829) - Bump
@metamask/bridge-controllerdev dependency to^25.0.1(#5811) - Bump
@metamask/controller-utilsto^11.9.0(#5812)
- Don't start or restart getTxStatus polling if transaction is a swap (#5831)
- BREAKING: bump
@metamask/accounts-controllerpeer dependency to^29.0.0(#5802) - BREAKING: bump
@metamask/bridge-controllerpeer dependency to^25.0.0(#5802) - BREAKING: bump
@metamask/transaction-controllerpeer dependency to^56.0.0(#5802)
- Sentry traces for Swap and Bridge
TransactionApprovalCompletedandTransactionCompletedevents (#5780)
traceFnadded to BridgeStatusController constructor to enable clients to pass in a custom sentry trace handler (#5768)
- BREAKING: Bump
@metamask/bridge-controllerpeer dependency to^23.0.0(#5795) - Replace
bridgePriceDatawithpriceDatafrom QuoteResponse object (#5784)
- BREAKING: Bump
@metamask/bridge-controllerpeer dependency to^22.0.0(#5780) - Bump
@metamask/controller-utilsto^11.8.0(#5765)
- BREAKING: Bump
@metamask/bridge-controllerpeer dependency to^21.0.0(#5763) - BREAKING: Bump
@metamask/accounts-controllerpeer dependency to^28.0.0(#5763) - BREAKING: Bump
@metamask/transaction-controllerpeer dependency to^55.0.0(#5763)
- Added a hardcoded
SolScope.Mainnetvalue to ensure thesignAndSendTransactionparams are always valid. Discovered Solana accounts may have an undefinedoptions.scope, which causeshandleRequestcalls to throw a JSON-RPC validation error ([#5750])(MetaMask#5750)
- Includes submitted quote's
priceImpactas a property in analytics events (#5721) - Bump
@metamask/base-controllerfrom ^8.0.0 to ^8.0.1 (#5722) - BREAKING: Bump
@metamask/bridge-controllerpeer dependency to^20.0.0(#5717)
- BREAKING: Bump
@metamask/bridge-controllerpeer dependency to^19.0.0(#5717) - Remove
@metamask/assets-controllerspeer dependency (#5716)
- Fixes transaction polling failures caused by adding tokens with the incorrect account address to the TokensControler (#5716)
- BREAKING: Bump
@metamask/assets-controllerspeer dependency to^59.0.0(#5712) - BREAKING: Bump
@metamask/bridge-controllerpeer dependency to^18.0.0(#5712)
- BREAKING: Add analytics tracking for post-tx submission events (#5684)
- Add optional
isStxEnabledproperty toBridgeHistoryItemto indicate whether the transaction was submitted as a smart transaction (#5684)
- BREAKING: Bump
@metamask/bridge-controllerpeer dependency to^17.0.0(#5700)
- Fixes missing EVM native exchange rates by not lowercasing the symbol used for lookups (#5696)
- Fixes occasional snap
handleRequesterrors by setting the request scope toSolScope.Mainnetinstead of reading it from the account metadata (#5696)
- Add optional
approvalTxIdtoBridgeHistoryItemto prevent transaction metadata corruption (#5670)- Fixes issue where
updateTransactionwas overwriting transaction metadata when associating approvals - Stores approval transaction ID in bridge history instead of modifying transaction metadata
- Reduces duplicate quote data in state
- Fixes issue where
- BREAKING: Add
@metamask/snaps-controllerspeer dependency at^11.0.0(#5634, #5639) - BREAKING: Add
@metamask/gas-fee-controllerpeer dependency at^23.0.0(#5643) - BREAKING: Add
@metamask/assets-controllerspeer dependency at^58.0.0(#5643, #5672) - Add
@metamask/user-operation-controllerdependency at^33.0.0(#5643) - Add
uuiddependency at^8.3.2(#5634) - Add
@metamask/keyring-apidependency at^17.4.0(#5643) - Add
bignumber.jsdependency at^9.1.2(#5643) - Add
submitTxhandler that submits cross-chain swaps transactions and triggers polling for destination transaction status (#5634) - Enable submitting EVM transactions using
submitTx(#5643) - Add functionality for importing tokens from transaction after successful confirmation (#5643)
- BREAKING Change
@metamask/bridge-controllerfrom dependency to peer dependency and bump to^16.0.0(#5657, #5665, #5643, #5672) - Add optional config.customBridgeApiBaseUrl constructor arg to set the bridge-api base URL (#5634)
- Add required
addTransactionFnandestimateGasFeeFnargs to the BridgeStatusController constructor to enable calling TransactionController's methods fromsubmitTx(#5643) - Add optional
addUserOperationFromTransactionFnarg to the BridgeStatusController constructor to enable submitting txs from smart accounts using the UserOperationController's addUserOperationFromTransaction method (#5643)
- Update validators to accept any
bridgestring in the StatusResponse (#5634)
- Add
relayto the list of bridges in theBridgeIdenum to prevent validation from failing (#5623)
- BREAKING: Bump
@metamask/transaction-controllerpeer dependency to^54.0.0(#5615)
- BREAKING: Bump
@metamask/transaction-controllerpeer dependency to^53.0.0(#5585) - Bump
@metamask/bridge-controllerdependency to^11.0.0(#5525) - BREAKING: Change controller to fetch multichain address instead of EVM (#5554)
- BREAKING: Bump
@metamask/transaction-controllerpeer dependency to^52.0.0(#5513) - Bump
@metamask/bridge-controllerpeer dependency to^10.0.0(#5513)
- BREAKING: Bump peer dependency
@metamask/accounts-controllerto^27.0.0(#5507) - BREAKING: Bump peer dependency
@metamask/network-controllerto^23.0.0(#5507) - BREAKING: Bump peer dependency
@metamask/transaction-controllerto^51.0.0(#5507) - Bump
@metamask/bridge-controllerto^9.0.0(#5507) - Bump
@metamask/polling-controllerto^13.0.0(#5507)
- BREAKING: Bump
@metamask/transaction-controllerpeer dependency to^50.0.0(#5496)
- Bump
@metamask/accounts-controllerdev dependency to^26.1.0(#5481) - BREAKING: Allow changing the Bridge API url through the
configparam in the constructor. Remove previous method of doing it throughprocess.env. (#5465)
@metamask/bridge-controllerdependency is no longer a peer dependency, just a direct dependency (#5464)
- BREAKING: Bump
@metamask/transaction-controllerpeer dependency to^49.0.0(#5471)
- BREAKING: Bump
@metamask/accounts-controllerpeer dependency to^26.0.0(#5439) - BREAKING: Bump
@metamask/transaction-controllerpeer dependency to^48.0.0(#5439) - BREAKING: Bump
@metamask/bridge-controllerpeer dependency to^5.0.0(#5439)
- BREAKING: Bump
@metamask/accounts-controllerpeer dependency to^25.0.0(#5426) - BREAKING: Bump
@metamask/transaction-controllerpeer dependency to^47.0.0(#5426) - BREAKING: Bump
@metamask/bridge-controllerpeer dependency to^4.0.0(#5426)
- BREAKING: Bump
@metamask/bridge-controllerto v3.0.0 - Improve
BridgeStatusControllerAPI response validation readability by using@metamask/superstruct(#5408)
- BREAKING: Change
BridgeStatusControllerstate structure to have all fields at root of state (#5406) - BREAKING: Redundant type
BridgeStatusStateremoved from exports (#5406)
- Initial release (#5317)