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.
- Add intent based transaction support (#6547)
- Bump
@metamask/assets-controllersfrom^93.1.0to^94.1.0(#7444, #7488) - Bump
@metamask/transaction-controllerfrom^62.5.0to^62.7.0(#7430, #7494)
- Bump
@metamask/assets-controllersfrom^93.0.0to^93.1.0(#7309) - Bump
@metamask/remote-feature-flag-controllerfrom^2.0.1to^3.0.0(#7309) - Bump
@metamask/transaction-controllerfrom^62.4.0to^62.5.0(#7325) - Add fee limit passthrough for Tron snap fee computation (#7426)
- Update gas calculation logic to use the priority fee provided by the gas-api and stop adding the base fee (#7403, #7406)
- Port
fetchTokensandtype SwapsTokenfrom@metamask/swaps-controllerand export them to allow deprecatingswaps-controllerwhile still supporting downstream consumers (#7278) - Handle edge case in which approvals fail if an EVM account has an insufficient non-zero USDT allowance on mainnet (#7228)
- Set quoteRequest
resetApprovalparameter by calculating the wallet's USDT allowance on mainnet for the swap or bridge spender - When a valid quote is received, append the
resetApprovaltrade data to set the wallet's USDT allowance to0 - Include the
resetApprovaltx in network fee calculations
- Set quoteRequest
- BREAKING: Remove
SWAPS_TESTNET_CHAIN_IDexport and useCHAIN_IDS.LOCALHOSTinstead (#7278) - 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/assets-controllersfrom^92.0.0to^93.0.0(#7291)
- BREAKING Remove public
getBridgeERC20Allowanceaction to prevent consumers from using it. This handler is only applicable to Swap and Bridge txs involving USDT on mainnet (#7228)
- BREAKING: Add
usd_amount_sourceto QuotesRequested event properties. Clients will need to add this value to the quoteRequest context (#7294) - Add missing MON (Monad) and SEI (Sei) to integer chain IDs (#7252)
- Update
stopPollingForQuotesto accept metrics context for the QuotesReceived event. If context is provided and quotes are still loading when the handler is called, theUnified SwapBridge Quotes Receivedis published before the poll is cancelled (#7242)
- Port the following constants from
SwapsControllerand export them:SWAPS_TESTNET_CHAIN_ID,SWAPS_CONTRACT_ADDRESSES,SWAPS_WRAPPED_TOKENS_ADDRESSES,ALLOWED_CONTRACT_ADDRESSES(#7233) - Port the following utils from
SwapsControllerand export them:isValidSwapsContractAddress,getSwapsContractAddress(#7233)
- 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/assets-controllers(^91.0.0)@metamask/network-controller(^26.0.0)@metamask/remote-feature-flag-controller(^2.0.1)@metamask/snaps-controllers(^14.0.0)@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:
- Update
quotesLoadingStatusto "LOADING" if a balance fetch is needed before fetching quotes ((https://github.com/MetaMask/core/pull/7227)[#7227]) - Wait for async SSE message handlers before updating
quotesLoadingStatusto prevent clients from displaying "No quotes" warnings ((https://github.com/MetaMask/core/pull/7227)[#7227])
- BREAKING: Bump
@metamask/assets-controllersfrom^90.0.0to^91.0.0(#7207)
- Add and export
getQuotesReceivedPropertiesutility to build the metrics payload for clients (#7182)
- Bump
@metamask/polling-controllerfrom^15.0.0to^16.0.0(#7202) - Bump
@metamask/multichain-network-controllerfrom^2.0.0to^3.0.0(#7202) - Bump
@metamask/gas-fee-controllerfrom^25.0.0to^26.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/assets-controllersfrom^89.0.0to^90.0.0(#7202) - BREAKING: Bump
@metamask/accounts-controllerfrom^34.0.0to^35.0.0(#7202)
- BREAKING: Bump
@metamask/assets-controllerfrom^88.0.0to^89.0.0(#7179)
- Added support for bridging and swapping tokens on the Tron blockchain (#6862)
- BREAKING: Bump
@metamask/assets-controllerfrom^87.0.0to^88.0.0(#7100)
- Quotes as returned by
fetchQuotesnow include agasSponsoredproperty (#6687)
- BREAKING: Bump
@metamask/assets-controllerfrom^86.0.0to^87.0.0(#7043)
- BREAKING: Bump
@metamask/assets-controllerfrom^85.0.0to^86.0.0(#7011) - BREAKING:
noFeeflag was replaced withfeeflag in bridge api requests (#6964)
- BREAKING: Bump
@metamask/assets-controllerfrom^84.0.0to^85.0.0(#7003)
- Removes all selectedNetworkClientId usages by finding network clients via srcChainId (#6996)
- Remove global selected network reference in
getBridgeERC20Allowancehandler (#6994)
- Clean up SSE stream reader after use (#6965)
- Fix Bitcoin network fee computation by extracting
unsignedPsbtBase64from Bitcoin trade objects and supporting'priority'fee type from Bitcoin snap (#6932)
- Add
BridgeControllerGetStateActionandBridgeControllerStateChangeEventtypes (#6444)
- BREAKING: Use new
Messengerfrom@metamask/messenger(#6444)- Previously,
BridgeControlleraccepted aRestrictedMessengerinstance from@metamask/base-controller.
- Previously,
- BREAKING: Metadata property
anonymousrenamed toincludeInDebugSnapshot(#6444) - BREAKING: Bump
@metamask/accounts-controllerfrom^33.0.0to^34.0.0(#6962) - BREAKING: Bump
@metamask/network-controllerfrom^24.0.0to^25.0.0(#6962) - BREAKING: Bump
@metamask/assets-controllerfrom^83.0.0to^84.0.0(#6962) - BREAKING: Bump
@metamask/remote-feature-flag-controllerfrom^1.6.0to^2.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/gas-fee-controllerfrom^24.1.0to^25.0.0(#6940, #6962) - Bump
@metamask/multichain-network-controllerfrom^1.0.1to^2.0.0(#6940, #6962) - Bump
@metamask/polling-controllerfrom^14.0.1to^15.0.0(#6940, #6962)
- BREAKING: Bump peer dependency
@metamask/assets-controllersfrom^82.0.0to^83.0.0(#6923) - Bump
@metamask/base-controllerfrom^8.4.1to^8.4.2(#6917)
- BREAKING: Bump peer dependency
@metamask/assets-controllersfrom^81.0.0to^82.0.0(#6908)
- Add
MONADnetwork support (#6828)- Add
MONADinto constantsALLOWED_BRIDGE_CHAIN_IDS,SWAPS_TOKEN_OBJECTandNETWORK_TO_NAME_MAP
- Add
- Implement
fetchServerEventsutil that parses server events and parses them into JSON (#6892)
- BREAKING: Add BitcoinTradeData to QuoteResponse validation (#6892)
- Replace
fetchEventSourcewithfetchServerEvents(#6892)
- Removed dependency on
@microsoft/fetch-event-sourceat^2.0.1(#6892)
- BREAKING: Require clientVersion in BridgeController constructor (#6891)
- Update the
sseEnabledLD flag to include minimumVersion, which is used to determine whether to enable SSE (#6891) - Bump
@metamask/network-controllerfrom^24.2.2to^24.3.0(#6883) - Bump
@metamask/transaction-controllerfrom^60.7.0to^60.8.0(#6883)
- BREAKING: Bump peer dependency
@metamask/assets-controllersfrom^80.0.0to^81.0.0(#6834)
- Introduce server‑sent events quote streaming and integrates incremental quote updates into the bridge controller polling flow (#6760)
- Add private
handleQuoteStreamingmethod that callsgetQuoteStreamwhen thesseEnabledflag is enabled in LaunchDarkly - Reuse existing polling, metrics and validation utilities when processing server-sent quotes
- Add private
- Add dependency on
@microsoft/fetch-event-sourceat^2.0.1(#6760)- Note that clients need to patch this library such that it rejects instead of resolving when the quote request is cancelled. This preserves the controller's expected request cancellation behavior
- Extract some logic from bridge-controller and move them to utility files for better readability (#6760)
- Remove cache options from spot-prices and getQuote api calls since they are only required by the extension client (#6760)
- Pass abortSignal to fetchAssetPricesForCurrency in order to cancel exchange rate fetching when quote parameters change (#6760)
- BREAKING: Bump peer dependency
@metamask/assets-controllersfrom^79.0.0to^80.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/gas-fee-controllerfrom^24.0.0to^24.1.0(#6807) - Bump
@metamask/multichain-network-controllerfrom^1.0.0to^1.0.1(#6807) - Bump
@metamask/polling-controllerfrom^14.0.0to^14.0.1(#6807)
- BREAKING: Bump peer dependency
@metamask/assets-controllersfrom^78.0.0to^79.0.0(#6806) - Add optional
Client-Versionheader to bridge API requests (#6791)
- BREAKING: Bump peer dependency
@metamask/assets-controllersfrom^77.0.0to^78.0.0(#6780)
- Append quote's
featureIdto QuoteResponse object, if defined. Swap and bridge quotes have anundefinedfeatureId value for backwards compatibility with old history entries (#6739)
- Add
bip44DefaultPairsandchains[chainId].defaultPairsto feature flag types and validators (#6645)
- Bump
@metamask/assets-controllersfrom77.0.0to77.0.1(#6747) - Bump
@metamask/transaction-controllerfrom60.4.0to60.5.0(#6733)
- BREAKING Make
walletAddressa required quote request parameter when calling theupdateBridgeQuoteRequestParamshandler (#6719) - Bump
@metamask/utilsfrom^11.8.0to^11.8.1(#6708)
- Deprecate the unused
SnapConfirmationViewedevent (#6719)
- Replace
AccountsController:getSelectedMultichainAccountusages with AccountsController:getAccountByAddress` when retrieving Solana account details for quote metadata (#6719)
- Add support for Bitcoin bridge transactions (#6705)
- Handle Bitcoin PSBT (Partially Signed Bitcoin Transaction) format in trade data
- Support Bitcoin chain ID (
ChainId.BTC = 20000000000001) and CAIP format (bip122:000000000019d6689c085ae165831e93)
- Export
isNonEvmChainIdutility function to check for non-EVM chains (Solana, Bitcoin) (#6705)
- BREAKING: Rename fee handling for non-EVM chains (#6705)
- Replace
SolanaFeestype withNonEvmFeestype (exported type) - Replace
solanaFeesInLamportsproperty in quote responses withnonEvmFeesInNativeproperty - The
nonEvmFeesInNativeproperty stores fees in the native units for each chain (SOL for Solana, BTC for Bitcoin)
- Replace
- BREAKING: Update Snap methods to use new unified interface for non-EVM chains (#6705)
- Snaps must now implement
computeFeemethod instead ofgetFeeForTransactionfor fee calculation - The
computeFeemethod returns fees in native token units rather than smallest units
- Snaps must now implement
- Revert accidental breaking changes included in v44.0.0 (#6454)
44.0.0 [DEPRECATED]
- This version was deprecated because it accidentally included additional breaking changes; use v44.0.1 or later versions instead
- BREAKING: Bump peer dependency
@metamask/assets-controllersfrom^75.0.0to^76.0.0(#6676)
- Add Solana Devnet support to bridge controller (#6670)
- Add optional
noFeeAssetsproperty to theChainConfigurationSchematype (#6665)
- Add
selectDefaultSlippagePercentagethat returns the default slippage for a chain and token combination (#6616)- Return
0.5if requesting a bridge quote - Return
undefined(auto) if requesting a Solana swap - Return
0.5if both tokens are stablecoins (based on dynamicstablecoinslist from LD chain config) - Return
2for all other EVM swaps
- Return
- Add new controller metadata properties to
BridgeController(#6589)
- Bump
@metamask/controller-utilsfrom^11.12.0to^11.14.0(#6620, #6629) - Bump
@metamask/base-controllerfrom^8.3.0to^8.4.0(#6632)
- Add
totalFeeAmountUsdtoquoteto support rewards estimation (#6592)
- BREAKING: Bump peer dependency
@metamask/assets-controllerfrom^74.0.0to^75.0.0(#6570) - Bump
@metamask/keyring-apifrom^20.1.0to^21.0.0(#6560) - Add optional
isGaslessSwapEnabledLaunchDarkly config to feature flags schema (#6573) - Bump
@metamask/utilsfrom^11.4.2to^11.8.0(#6588)
- Add
gas_included_7702field to metrics tracking for EIP-7702 gasless transactions (#6363)
- BREAKING Rename QuotesError and InputSourceDestinationSwitched events to match segment schema (#6447)
- Bump
@metamask/base-controllerfrom^8.2.0to^8.3.0(#6465) - BREAKING Rename
gasless7702togasIncluded7702in QuoteRequest and Quote types
- Publish
QuotesValidationFailedandStatusValidationFailedevents (#6362)
- Update quotes to account for minDestTokenAmount (#6373)
- Add
UnifiedSwapBridgeEventName.AssetDetailTooltipClickedevent (#6352)
- Bump
@metamask/base-controllerfrom^8.1.0to^8.2.0(#6355)
- Add
gasless7702field to QuoteRequest and Quote types to support EIP-7702 delegated gasless execution (#6346)
- BREAKING Update the implementation of
UnifiedSwapBridgeEventName.Submittedto require event publishers to provide all properties. This is in needed because the Submitted event can be published after the BridgeController's state has been reset (#6314)
- BREAKING: Bump peer dependency
@metamask/accounts-controllerfrom^32.0.0to^33.0.0(#6345) - BREAKING: Bump peer dependency
@metamask/assets-controllerfrom^73.0.0to^74.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
- Bump
@metamask/assets-controllerfrom^73.2.0to^73.3.0(#6334)
- Ignore error messages thrown when quote requests are cancelled. This prevents the
QuoteErrorevent from being published when an error is expected (#6299)
- Bump
@metamask/controller-utilsfrom^11.11.0to^11.12.0(#6303)
- BREAKING Added the
effective,maxandtotalkeys to theQuoteMetadata.gasFeetype (#6295) - Response validation for the QuoteReponse.trade.effectiveGas field (#6295)
- Calculate the effective gas (amount spent after refunds) for transactions and use it to sort quotes. This value is reflected in the
totalNetworkFee(#6295)- The
totalNetworkFeeshould be displayed along with the client quotes - The
totalMaxNetworkFeeshould be used to disable tx submission
- The
- BREAKING Remove
getActionTypeexport and hardcodeaction_typetoswapbridge-v1. Deprecatecrosschain-v1MetricsActionType because it shouldn't be used after swaps and bridge are unified (#6270) - Change default gas priority fee level from high -> medium to show more accurate estimates in the clients (#6295)
- Bump
@metamask/multichain-network-controllerfrom^0.11.0to^0.11.1(#6273) - Bump
@metamask/base-controllerfrom^8.0.1to^8.1.0(#6284)
- BREAKING Require clients to define
can_submitproperty when publishingQuoteSelected,AllQuotesSorted,AllQuotesOpenedandQuotesReceivedevents (#6254) - Rename the InputChanged event's
valueproperty key toinput_value(#6254)
- Expose
fetchQuotesmethod that returns a list of quotes directly rather than adding them to the controller state. This enables clients to retrieve quotes directly without automatic polling and state management (#6236)
- Bump
@metamask/keyring-apifrom^19.0.0to^20.0.0(#6248)
- Add schema for the new price impact threshold feature flag to the types for PlatformConfigSchema (#6223)
- BREAKING: Bump peer dependency
@metamask/accounts-controllerfrom^31.0.0to^32.0.0(#6171) - BREAKING: Bump peer dependency
@metamask/assets-controllersfrom^72.0.0to^73.0.0(#6171) - BREAKING: Bump peer dependency
@metamask/transaction-controllerfrom^58.0.0to^59.0.0(#6171), (#6027)
- Bump
@metamask/keyring-apifrom^18.0.0to^19.0.0(#6146)
- Include EVM assetIds in
isNativeAddressutil when checking whether an address string is a native token (#6076)
- Bump
@metamask/multichain-network-controllerfrom^0.9.0to^0.10.0(#6114) - BREAKING Require
destWalletAddressinisValidQuoteRequestif bridging to or from Solana (#6091) - Bump
@metamask/assets-controllersto^72.0.0(#6120)
- Add an optional
isSingleSwapBridgeButtonEnabledfeature flag that indicates whether Swap and Bridge entrypoints should be combined (#6078)
- BREAKING: Bump peer dependency
@metamask/assets-controllersfrom^69.0.0to^71.0.0(#6061, #6098) - BREAKING: Bump peer dependency
@metamask/snaps-controllersfrom^12.0.0to^14.0.0(#6035) - BREAKING Remove
isSnapConfirmationEnabledfeature flag fromChainConfigurationSchemavalidation (#6077) - Bump
@metamask/controller-utilsfrom^11.10.0to^11.11.0(#6069) - Bump
@metamask/utilsfrom^11.2.0to^11.4.2(#6054)
- BREAKING Add a required
gasIncludedquote request parameter to indicate whether the bridge-api should return gasless swap quotes. The clients need to pass in a Boolean value indicating whether the user is opted in to STX and if their current network has STX support (#6030) - Add
gasIncludedto QuoteResponse, which indicates whether the quote includes tx fees (gas-less) (#6030) - Add
feeData.txFeesto QuoteResponse, which contains data about tx fees taken from either the source or destination asset (#6030) - Add
includedTxFeesto QuoteMetadata, which clients can display as the included tx fee when displaying a gasless quote (#6039) - Calculate and return value of
includedTxFees(#6039)
- Consolidate validator and type definitions for
QuoteResponse,BridgeAssetandPlatformConfigSchemaso new response fields only need to be defined once (#6030) - Add
txFeesto total sentAmount (#6039) - When gas is included and is taken from the destination token amount, ignore network fees in
adjustedReturncalculation (#6039)
- Calculate EVM token exchange rates accurately in
selectExchangeRateByChainIdAndAddresswhen themarketDataconversion rate is in the native currency (#6030) - Convert
trade.valueto decimal when calculating relayer fee (#6039) - Revert QuoteResponse ChainId schema to expect a number instead of a string (#6045)
- Set correct
can_submitproperty on Unified SwapBridge events (#5993) - Use activeQuote to populate default properties for Submitted and Failed events, if tx fails before being confirmed on chain (#5993)
- Add
stopPollingForQuoteshandler that stops quote polling without resetting the bridge controller's state (#5994)
- BREAKING: Bump peer dependency
@metamask/accounts-controllerto^31.0.0(#5999) - BREAKING: Bump peer dependency
@metamask/assets-controllerto^69.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 dependency
@metamask/gas-fee-controllerto^24.0.0(#5999) - Bump dependency
@metamask/multichain-network-controllerto^0.9.0(#5999) - Bump dependency
@metamask/polling-controllerto^14.0.0(#5999)
- Export feature flag util for bridge status controller (#5961)
- Bump
@metamask/controller-utilsto^11.10.0(#5935) - Bump
@metamask/transaction-controllerto^57.3.0(#5954)
- Fetch
minimumBalanceForRentExemptionInLamportsasynchronously to prevent blocking the getQuote network call (#5921) - Fix invalid
getMinimumBalanceForRentExemptioncommitment parameter (#5921)
- Include all invalid quote properties in sentry logs (#5913)
- Remove
error_messageproperty from QuotesRequested event payload (#5900) - Fail gracefully when fee calculations return invalid value or throw errors
- BREAKING: Add required property
minimumBalanceForRentExemptionInLamportstoBridgeState(#5827) - Add selector
selectMinimumBalanceForRentExemptionInSOL(#5827)
- Add new dependency
uuid(#5827)
- Add
SEInetwork support (#5695)- Add
SEIinto constantsALLOWED_BRIDGE_CHAIN_IDS,SWAPS_TOKEN_OBJECTandNETWORK_TO_NAME_MAP
- Add
- BREAKING: Bump
@metamask/assets-controllerpeer dependency to^68.0.0(#5894)
- BREAKING: Bump
@metamask/assets-controllerpeer dependency to^67.0.0(#5888) - BREAKING: Bump
@metamask/accounts-controllerpeer dependency to^30.0.0(#5888) - BREAKING: Bump
@metamask/transaction-controllerpeer dependency to^57.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/assets-controllerpeer dependency to^66.0.0(#5872)
- BREAKING: Bump
@metamask/assets-controllerpeer dependency to^65.0.0(#5863)
- BREAKING: Bump
@metamask/assets-controllerpeer dependency to^64.0.0(#5854)
- BREAKING: Added a required
minimumVersionto feature flag response schema (#5834)
- Consume
bridgeConfigV2in the feature flag response schema for Mobile and exportDEFAULT_FEATURE_FLAG_CONFIG(#5837)
- Added optional
isUnifiedUIEnabledflag to chain-level feature-flagChainConfigurationtype and updated the validation schema to accept the new flag (#5783) - Add and export
calcSlippagePercentage, a utility that calculates the absolute slippage percentage based on the adjusted return and the sent amount (#5723). - Error logs for invalid getQuote responses (#5816)
- Bump
@metamask/controller-utilsto^11.9.0(#5812)
- Use zero address as solana's default native address instead of assetId (#5799)
- BREAKING: bump
@metamask/accounts-controllerpeer dependency to^29.0.0(#5802) - BREAKING: bump
@metamask/assets-controllerspeer dependency to^63.0.0(#5802) - BREAKING: bump
@metamask/transaction-controllerpeer dependency to^56.0.0(#5802)
- Sentry traces for
BridgeQuotesFetchedandSwapQuotesFetchedevents (#5780) - Export
isCrossChainutility (#5780)
- BREAKING: Remove
BridgeTokenexport (#5768) traceFnadded to BridgeController constructor to enable clients to pass in a custom sentry trace handler (#5768)
- BREAKING Rename
QuoteResponse.bridgePriceDatatopriceData(#5784)
- Handle cancelled bridge quote polling gracefully by skipping state updates (#5787)
- BREAKING: Bump
@metamask/assets-controllerpeer dependency to^62.0.0(#5780) - Bump
@metamask/controller-utilsto^11.8.0(#5765)
- BREAKING: Bump
@metamask/accounts-controllerpeer dependency to^28.0.0(#5763) - BREAKING: Bump
@metamask/assets-controllerpeer dependency to^61.0.0(#5763) - BREAKING: Bump
@metamask/transaction-controllerpeer dependency to^55.0.0(#5763)
- Bump
@metamask/base-controllerfrom ^8.0.0 to ^8.0.1 (#5722) - Update
Quotetype withbridgePriceData, which includes metadata about transferred amounts and the trade's priceImpact (#5721) - Include submitted quote's
priceImpactas a property in analytics events (#5721) - BREAKING: Add additional required properties to Submitted, Completed, Failed and SnapConfirmationViewed events (#5721)
- BREAKING: Use
RemoteFeatureFlagControllerto fetch feature flags, removed client specific feature flag keys. The feature flags you receive are now client specific based on theRemoteFeatureFlagControllerstate. (#5708)
- Update MetricsSwapType.SINGLE to
single_chainto match segment events schema (#5721)
- BREAKING: Bump
@metamask/assets-controllerspeer dependency to^60.0.0(#5717)
- BREAKING: Bump
@metamask/assets-controllerspeer dependency to^59.0.0(#5712)
- Add analytics events for the Unified SwapBridge experience (#5684)
- Bump
@metamask/multichain-network-controllerdependency to^0.5.1(#5678) - BREAKING: trackMetaMetricsFn added to BridgeController constructor to enable clients to pass in a custom analytics handler (#5684)
- BREAKING: added a context argument to
updateBridgeQuoteRequestParamsto provide values required for analytics events (#5684)
- Fixes undefined native EVM exchange rates and snap handler calls (#5696)
- BREAKING Bump
@metamask/assets-controllerspeer dependency to^58.0.0(#5672) - BREAKING Bump
@metamask/snaps-controllerspeer dependency from ^9.19.0 to ^11.0.0 (#5639) - Bump
@metamask/multichain-network-controllerdependency to^0.5.0(#5669)
- BREAKING: Bump
@metamask/assets-controllerspeer dependency to^57.0.0(#5665)
- BREAKING: Add
@metamask/assets-controllersas a required peer dependency at^56.0.0(#5614) - Add
reselectas a dependency at^5.1.1(#5614) - BREAKING: assetExchangeRates added to BridgeController state to support tokens which are not supported by assets controllers (#5614)
- selectExchangeRateByChainIdAndAddress selector added, which looks up exchange rates from assets and bridge controller states (#5614)
- selectBridgeQuotes selector added, which returns sorted quotes including their metadata (#5614)
- selectIsQuoteExpired selector added, which returns whether quotes are expired or stale (#5614)
- BREAKING: Change TokenAmountValues key types from BigNumber to string (#5614)
- BREAKING: Assets controller getState actions have been added to
AllowedActionsso clients will need to includeTokenRatesController:getState,MultichainAssetsRatesController:getStateandCurrencyRateController:getStatein controller initializations (#5614) - Make srcAsset and destAsset optional in Step type to be optional (#5614)
- Make QuoteResponse trade generic to support Solana quotes which have string trade data (#5614)
- Bump
@metamask/multichain-network-controllerpeer dependency to^0.4.0(#5649)
- BREAKING: Bump
@metamask/transaction-controllerpeer dependency to^54.0.0(#5615)
- Occurrences added to BridgeToken type (#5572)
- BREAKING: Bump
@metamask/transaction-controllerpeer dependency to^53.0.0(#5585) - Bump
@metamask/controller-utilsto^11.7.0(#5583)
- BREAKING: Bump dependency @metamask/keyring-api to ^17.2.0 (#5486)
- BREAKING: Bump dependency @metamask/multichain-network-controller to ^0.3.0 (#5486)
- BREAKING: Bump dependency @metamask/snaps-utils to ^8.10.0 (#5486)
- BREAKING: Bump peer dependency @metamask/snaps-controllers to ^9.19.0 (#5486)
- Solana constants, utils, quote and token support (#5486)
- Utilities to convert chainIds between
ChainId,Hex,stringandCaipChainId(#5486) - Add
refreshRatefeature flag to enable chain-specific quote refresh intervals (#5486) isNativeAddressandisSolanaChainIdutilities that can be used by both the controller and clients (#5486)
- Replace QuoteRequest usages with
GenericQuoteRequestto support both EVM and multichain input parameters (#5486) - Make
QuoteRequest.slippageoptional (#5486) - Deprecate
SwapsTokenObjectand replace usages with multichain BridgeAsset (#5486) - Changed
bridgeFeatureFlags.extensionConfig.chainsto key configs by CAIP chainIds (#5486)
- BREAKING: Bump
@metamask/transaction-controllerpeer dependency to^52.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/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)
- Make
QuoteResponse.approvaloptional to align with response from API (#5475) - Export enums properly rather than as types (#5466)
- 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/accounts-controllerpeer dependency to^25.0.0(#5426) - BREAKING: Bump
@metamask/transaction-controllerpeer dependency to^47.0.0(#5426)
- BREAKING: Switch over from
ethersat v6 to@ethersprojectpackages at v5.7.0 for mobile compatibility (#5416) - Improve
BridgeControllerAPI response validation readability by using@metamask/superstruct(#5408)
- Mobile feature flags (#5359)
- BREAKING: Change
BridgeControllerstate structure to have all fields at root of state (#5406) - BREAKING: Change
BridgeControllerstate defaults tonullinstead ofundefined(#5406)
- Initial release (#5317)