Skip to content

Latest commit

 

History

History
1029 lines (685 loc) · 63.1 KB

File metadata and controls

1029 lines (685 loc) · 63.1 KB

Changelog

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.

Added

  • Add paymentOverride property (type PaymentOverride) to TransactionConfig and TransactionData, settable via setTransactionConfig (#8858)

Changed

  • Bump @metamask/assets-controller from ^8.0.0 to ^8.0.1 (#8874)

Changed

  • Bump @metamask/assets-controller from ^7.1.2 to ^8.0.0 (#8866)
  • Bump @metamask/bridge-controller from ^73.0.0 to ^73.0.1 (#8866)

Changed

  • Bump @metamask/ramps-controller from ^13.3.1 to ^14.0.0 (#8859)

Changed

  • Bump @metamask/bridge-controller from ^72.0.4 to ^73.0.0 (#8850)
  • Remove unnecessary type assertions for bridge quotes (#8805)

Fixed

  • Treat perpsDepositAndOrder transactions identically to perpsDeposit in the Relay strategy (#8851)

Changed

  • Pass isInternal: true to all internal addTransaction calls to adopt the explicit isInternal flag introduced in @metamask/transaction-controller (#8633)
  • Bump @metamask/bridge-status-controller from ^71.1.4 to ^71.2.0 (#8848)
  • Bump @metamask/transaction-controller from ^65.4.0 to ^66.0.0 (#8848)
  • Bump @metamask/gas-fee-controller from ^26.2.1 to ^26.2.2 (#8834)

Fixed

  • Fix BigNumber crash when exchange rate numbers exceed 15 significant digits (#8808)
  • Handle gas-station and prefunded gas-estimate edge cases for Across Predict withdraw quotes (#8762)

Added

  • Add Across submit support for post-quote Predict withdraw flows (#8761)
  • Add Polymarket deposit-wallet support to the Relay strategy for predictWithdraw transactions, routed via the isPolymarketDepositWallet flag on TransactionConfig (#8754)

Changed

  • Move the Relay gasless execution feature flag to confirmations_pay_extended.payStrategies.relay.gaslessEnabled (#8810)

Added

  • Add Across quote support for post-quote Predict withdraw flows (#8760)

Changed

  • Derive fiat order source amount from on-chain transaction data (order.txHash) with fallback to order.cryptoAmount (#8694)
  • Persist fiat order ID and provider code on transaction.metamaskPay before polling, so activity views can query order status after controller state cleanup (#8694)
  • Bump @metamask/assets-controller from ^7.1.1 to ^7.1.2 (#8783)
  • Bump @metamask/assets-controllers from ^108.0.0 to ^108.1.0 (#8783)
  • Bump @metamask/transaction-controller from ^65.3.0 to ^65.4.0 (#8796)

Fixed

  • For postquote payments payment token for MM Pay transaction should not be reset when accountOverride is changed. (#8787)

Changed

  • Bump @metamask/assets-controller from ^7.1.0 to ^7.1.1 (#8774)
  • Bump @metamask/assets-controllers from ^107.0.0 to ^108.0.0 (#8774)
  • Bump @metamask/bridge-controller from ^72.0.3 to ^72.0.4 (#8774)
  • Bump @metamask/bridge-status-controller from ^71.1.3 to ^71.1.4 (#8774)
  • Bump @metamask/network-controller from ^31.1.0 to ^32.0.0 (#8774)
  • Bump @metamask/controller-utils from ^12.0.0 to ^12.1.0 (#8774)

Added

  • Add POLYGON_PUSD_ADDRESS constant and treat Polymarket pUSD as a Polygon stablecoin in display/fiat-rate logic (#8735)
  • Add Across strategy plumbing to identify post-quote Predict withdraw requests (#8759)

Changed

  • Bump @metamask/network-controller from ^31.0.0 to ^31.1.0 (#8765)
  • Bump @metamask/assets-controller from ^7.0.1 to ^7.1.0 (#8773)
  • Bump @metamask/assets-controllers from ^106.0.1 to ^107.0.0 (#8773)
  • Bump @metamask/bridge-controller from ^72.0.2 to ^72.0.3 (#8773)
  • Bump @metamask/bridge-status-controller from ^71.1.2 to ^71.1.3 (#8773)

Fixed

  • Predict same-chain withdraw quote no longer falls back to block-gas-limit (~30M+) on swap-only Relay routes (#8735)
    • fromOverride = Safe proxy is now gated on the route having a deposit step. Same-chain destinations route through DEX swap aggregators that reject contract callers (anti-MEV msg.sender == tx.origin checks etc.) — for those, the relay params' EOA from is used so simulation succeeds.
    • Gas-fee-token lookup still uses the Safe proxy for ALL Predict withdraws (gated on isPredictWithdraw && refundTo), preserving the gasless flow for users who hold pUSD in the Safe but no native POL on the EOA.
  • Fix post-quote relay submission when accountOverride is set by replacing the prepended original transaction with a delegation transaction so the override account can submit it (#8615)

Changed

  • Resolve fiat asset per transaction type from confirmations_pay_fiat remote feature flag, falling back to hardcoded map then ETH on mainnet (#8631)
  • Bump @metamask/assets-controller from ^7.0.0 to ^7.0.1 (#8755)
  • Bump @metamask/assets-controllers from ^106.0.0 to ^106.0.1 (#8755)
  • Bump @metamask/bridge-controller from ^72.0.1 to ^72.0.2 (#8755)
  • Bump @metamask/bridge-status-controller from ^71.1.1 to ^71.1.2 (#8755)
  • Bump @metamask/controller-utils from ^11.20.0 to ^12.0.0 (#8755)
  • Bump @metamask/gas-fee-controller from ^26.2.0 to ^26.2.1 (#8755)
  • Bump @metamask/network-controller from ^30.1.0 to ^31.0.0 (#8755)
  • Bump @metamask/ramps-controller from ^13.3.0 to ^13.3.1 (#8755)
  • Bump @metamask/remote-feature-flag-controller from ^4.2.0 to ^4.2.1 (#8755)
  • Bump @metamask/transaction-controller from ^65.2.0 to ^65.3.0 (#8755)

Fixed

  • Fix fiat strategy submit flow to extract provider code from ramps quote instead of parsing order ID, store caipAssetId in fiat payment state, and use target amount for totals when fiat strategy is active (#8726)

Fixed

  • Fix transaction with accountOverride and targeting Arbitrum USDC (#8724)
    • Deliver the Relay-acquired token to transaction.txParams.from (the delegator that executes the inner delegation), not request.from.
    • Gate the Arbitrum-USDC → Hypercore quote rewrite on transaction.type === TransactionType.perpsDeposit.

Changed

  • Bump @metamask/assets-controller from ^6.4.0 to ^7.0.0 (#8738)
  • Bump @metamask/bridge-controller from ^72.0.0 to ^72.0.1 (#8738)

Changed

  • Bump @metamask/bridge-controller from ^71.1.1 to ^72.0.0 (#8737)

Changed

  • BREAKING: Re-parse required tokens when asset state changes (#8714)
    • Adds AssetsControllerStateChangeEvent, CurrencyRateStateChange, TokenRatesControllerStateChangeEvent, and TokensControllerStateChangeEvent to AllowedEvents.
    • Consumers must grant these events when creating the controller messenger.
  • Bump @metamask/gas-fee-controller from ^26.1.1 to ^26.2.0 (#8722)
  • Bump @metamask/transaction-controller from ^65.1.0 to ^65.2.0 (#8722)

Fixed

  • Fix fiat strategy never being selected by routing fiat payment method through getStrategyOrder and allowing quote retrieval when no crypto payment token is set (#8720)

Added

  • Allow EIP-7702 authorizations from accounts in the Money keyring (#8687)
  • Implement fiat strategy submit flow with order polling and relay execution (#8347)

Changed

  • Bump @metamask/bridge-controller from ^71.0.0 to ^71.1.1 (#8706, #8721)
  • Bump @metamask/transaction-controller from ^65.0.0 to ^65.1.0 (#8691)
  • Bump @metamask/ramps-controller from ^13.2.0 to ^13.3.0 (#8698)
  • Bump @metamask/assets-controller from ^6.3.0 to ^6.4.0 (#8721)
  • Bump @metamask/assets-controllers from ^105.1.0 to ^106.0.0 (#8721)

Added

  • Add Gas Station support for Across source transactions when native balance is insufficient (#8588)

Changed

  • BREAKING: Narrow AllowedActions type to use individual action types instead of compound controller action unions (BridgeControllerActions, BridgeStatusControllerActions, CurrencyRateControllerActions, GasFeeControllerActions) (#8670)

Fixed

  • Pass explicit assetId, providers, and fiat to RampsController:getQuotes and persist the selected ramps quote on TransactionFiatPayment (#8628)

Changed

  • Stop synthesising a native gas-fee required token in parseRequiredTokens, only token-transfer assets are returned now (#8554)
  • Add layered submission error prefixes for failure-surface attribution in error metrics (#8656)
    • MetaMask Pay: wraps all errors from the Pay publish hook
    • Relay submit: wraps all errors from the relay strategy
    • Relay execute: cascades inside Relay submit: for /execute POST failures
    • Relay non-OK responses now surface as <status> - <body message or error> (or just <status>), replacing the previous URL-leaking generic fetch failure message
  • Bump @metamask/assets-controller from ^6.2.1 to ^6.3.0 (#8661)
  • Bump @metamask/assets-controllers from ^105.0.0 to ^105.1.0 (#8661)

Added

  • Export TransactionData type from public API (#8630)

Changed

  • Abort in-flight quote requests when a newer request is made for the same transaction, preventing stale responses from overwriting newer ones (#8612)
  • Bump @metamask/messenger from ^1.1.1 to ^1.2.0 (#8632)
  • Bump @metamask/network-controller from ^30.0.1 to ^30.1.0 (#8636)

Changed

  • Bump @metamask/assets-controller from ^6.2.0 to ^6.2.1 (#8622)
  • Bump @metamask/assets-controllers from ^104.3.0 to ^105.0.0 (#8622)
  • Bump @metamask/bridge-controller from ^70.2.0 to ^71.0.0 (#8622)
  • Bump @metamask/bridge-status-controller from ^71.0.0 to ^71.1.0 (#8622)

Changed

  • Rename executeEnabled feature flag to gaslessEnabled (#8607)
  • Bump @metamask/transaction-controller from ^64.3.0 to ^65.0.0 (#8585, #8613)
  • Bump @metamask/assets-controller from ^6.1.0 to ^6.2.0 (#8590)

Fixed

  • Fall back from Across to later pay strategies when Across quotes would require a first-time EIP-7702 authorization list (#8577)
  • BREAKING: Fix mUSD conversion for hardware wallets on EIP-7702 chains by gating relay and Across 7702 paths on the account keyring type via KeyringController:getState (#8388)
    • The TransactionPayControllerMessenger now requires KeyringController:getState permission.

Added

  • Add support for transaction config parameter accountOverride (#8454)

Changed

  • Bump @metamask/assets-controller from ^6.0.0 to ^6.1.0 (#8559)
  • Bump @metamask/assets-controllers from ^104.2.0 to ^104.3.0 (#8559)
  • Bump @metamask/bridge-controller from ^70.1.1 to ^70.2.0 (#8571)
  • Bump @metamask/bridge-status-controller from ^70.0.5 to ^71.0.0 (#8571)

Changed

  • Bump @metamask/assets-controllers from ^104.0.0 to ^104.2.0 (#8509, #8544)

Fixed

  • Ignore synthetic gas legs when determining Across support for perps direct deposits (#8527)
  • Route Across status polling through the configured Across API base and support depositTxnRef/fillTxnRef for Across status responses (#8512)

Fixed

  • Resolve correct networkClientId for source chain in Relay execute flow (#8492)
  • Stop double-counting subsidized fees in Relay quote target amounts (#8488)

Changed

  • Bump @metamask/ramps-controller from ^13.1.0 to ^13.2.0 (#8476)
  • Bump @metamask/transaction-controller from ^64.2.0 to ^64.3.0 (#8482)

Changed

  • Bump @metamask/assets-controller from ^5.0.1 to ^6.0.0 (#8474)
  • Bump @metamask/bridge-controller from ^70.1.0 to ^70.1.1 (#8474)

Fixed

  • Resolve the effective transaction type from nestedTransactions when the parent is a batch transaction (#8469)

Changed

  • Bump @metamask/base-controller from ^9.0.1 to ^9.1.0 (#8457)
  • Bump @metamask/assets-controller from ^5.0.0 to ^5.0.1 (#8466)
  • Bump @metamask/assets-controllers from ^103.1.1 to ^104.0.0 (#8466)
  • Bump @metamask/bridge-controller from ^70.0.1 to ^70.1.0 (#8466)

Changed

  • Bump @metamask/ramps-controller from ^13.0.0 to ^13.1.0 (#8407)
  • Bump @metamask/transaction-controller from ^64.0.0 to ^64.2.0 (#8432, #8447)

Fixed

  • Set submittedTime at the start of TransactionPayPublishHook before strategy execution for accurate mm_pay_time_to_complete_s metrics in intent-based flows (#8439)

Added

  • Support for perps deposit for Across (#8334)

Changed

  • Bump @metamask/assets-controller from ^4.0.0 to ^5.0.0 (#8406)

Fixed

  • Fix perps withdraw to Arbitrum USDC showing inflated transaction fee by bypassing same-token filter when isHyperliquidSource is set (#8387)

Changed

  • Bump @metamask/ramps-controller from ^12.1.0 to ^13.0.0 (#8380)
  • Bump @metamask/messenger from ^1.0.0 to ^1.1.1 (#8364, #8373)

Changed

  • Bump @metamask/bridge-controller from ^70.0.0 to ^70.0.1 (#8359)
  • Bump @metamask/bridge-status-controller from ^70.0.4 to ^70.0.5 (#8359)
  • Bump @metamask/transaction-controller from ^63.3.1 to ^64.0.0 (#8359)
  • Bump @metamask/controller-utils from ^11.19.0 to ^11.20.0 (#8344)
  • Bump @metamask/assets-controller from ^3.2.1 to ^4.0.0 (#8355, #8359)
  • Bump @metamask/assets-controllers from ^103.0.0 to ^103.1.1 (#8355, #8359)

Changed

  • Bump @metamask/bridge-controller from ^69.2.3 to ^70.0.0 (#8340)
  • Bump @metamask/bridge-status-controller from ^70.0.3 to ^70.0.4 (#8340)
  • Add route-based confirmations_pay strategy resolution (#8282)

Added

  • BREAKING: Add KeyringControllerSignTypedMessageAction to AllowedActions for HyperLiquid EIP-712 signing (#8314)
    • Clients must now provide KeyringController:signTypedMessage permission when constructing the controller messenger
  • Add HyperLiquid withdrawal submission via Relay (#8314)
  • Add HyperLiquid source quote support for Relay strategy (#8285)
  • Bump @metamask/assets-controller from ^3.2.0 to ^3.2.1 (#8325)
  • Bump @metamask/assets-controllers from ^102.0.0 to ^103.0.0 (#8325)
  • Bump @metamask/bridge-controller from ^69.2.2 to ^69.2.3 (#8325)
  • Bump @metamask/bridge-status-controller from ^70.0.2 to ^70.0.3 (#8325)

Changed

  • Bump @metamask/assets-controllers from ^101.0.1 to ^102.0.0 (#8317)
  • Bump @metamask/base-controller from ^9.0.0 to ^9.0.1 (#8317)
  • Bump @metamask/bridge-controller from ^69.2.1 to ^69.2.2 (#8317)
  • Bump @metamask/bridge-status-controller from ^70.0.1 to ^70.0.2 (#8317)
  • Bump @metamask/gas-fee-controller from ^26.1.0 to ^26.1.1 (#8317)
  • Bump @metamask/messenger from ^0.3.0 to ^1.0.0 (#8317)
  • Bump @metamask/network-controller from ^30.0.0 to ^30.0.1 (#8317)
  • Bump @metamask/ramps-controller from ^12.0.1 to ^12.1.0 (#8317)
  • Bump @metamask/remote-feature-flag-controller from ^4.1.0 to ^4.2.0 (#8317)
  • Bump @metamask/assets-controller from ^3.1.0 to ^3.2.0 (#8298, #8317)
  • Bump @metamask/transaction-controller from ^63.1.0 to ^63.3.1 (#8301, #8313, #8317)

Added

  • Add FiatStrategy to retrieve quotes via RampsController (#8121)

Changed

  • Bump @metamask/bridge-controller from ^69.1.1 to ^69.2.1 (#8265, #8288)
  • Bump @metamask/bridge-status-controller from ^70.0.0 to ^70.0.1 (#8288)
  • Bump @metamask/transaction-controller from ^63.0.0 to ^63.1.0 (#8272)
  • Bump @metamask/assets-controller from ^3.0.0 to ^3.1.0 (#8276)

Changed

  • BREAKING Bump @metamask/bridge-status-controller from ^69.0.0 to ^70.0.0 (#8252)
  • Bump @metamask/assets-controller from ^2.4.0 to ^3.0.0 (#8232)
  • Bump @metamask/assets-controllers from ^101.0.0 to ^101.0.1 (#8232)
  • Remove duplication in gas estimation for Relay and Across strategies (#8145)
  • Improve Across quote handling to decode supported destination calls into post-swap actions while sending transfer-only destinations directly to the destination recipient (#8208)

Added

  • New public wrapper methods: getDelegationTransaction(), getStrategy() (#8183)

Changed

  • Bump @metamask/assets-controller from ^2.3.0 to ^2.4.0 (#8225)
  • Bump @metamask/assets-controllers from ^100.2.1 to ^101.0.0 (#8225)
  • Bump @metamask/bridge-controller from ^69.1.0 to ^69.1.1 (#8225)
  • Bump @metamask/bridge-status-controller from ^68.1.0 to ^69.0.0 (#8225)
  • Bump @metamask/gas-fee-controller from ^26.0.3 to ^26.1.0 (#8225)
  • Bump @metamask/transaction-controller from ^62.22.0 to ^63.0.0 (#8225)

Added

  • BREAKING: Add AssetsControllerGetStateForTransactionPayAction to the AllowedActions messenger type (#8163)

Changed

  • getTokenBalance, getTokenInfo, and getTokenFiatRate now source token metadata, balances, and pricing from AssetsControllerGetStateForTransactionPayAction when the assetsUnifyState remote feature flag is enabled, falling back to individual controller state calls otherwise (#8163)
  • Zero out source network fees in Relay strategy when quote indicates execute flow (#8181)
  • Harden relay status polling (#8189)
    • Throw if status not recognised.
    • Support feature flags for polling interval and timeout.
    • Ignore transient network errors.
  • Bump @metamask/transaction-controller from ^62.21.0 to ^62.22.0 (#8217)

Added

  • Support gasless Relay deposits via execute endpoint (#8133)
  • Build Across post-swap transfer actions for predictDeposit quotes so Predict deposits can bridge swapped output into the destination proxy wallet (#8159)

Changed

  • Bump @metamask/assets-controllers from ^100.2.0 to ^100.2.1 (#8162)
  • Bump @metamask/bridge-controller from ^69.0.0 to ^69.1.0 (#8162, #8168)
  • Bump @metamask/bridge-status-controller from ^68.0.1 to ^68.1.0 (#8162, #8168)

Fixed

  • Support gasless withdraw for post-quote flows (e.g. Predict Withdraw) when transaction would provide sufficient token balance for gas fee token (#8146)

Changed

  • Bump @metamask/assets-controllers from ^100.1.0 to ^100.2.0 (#8140)
  • Bump @metamask/bridge-controller from ^68.0.0 to ^69.0.0 (#8140)
  • Bump @metamask/bridge-status-controller from ^68.0.0 to ^68.0.1 (#8140)
  • Bump @metamask/transaction-controller from ^62.20.0 to ^62.21.0 (#8140)

Added

  • Add a dedicated max-amount gas-station fallback flow for Relay quoting (#7927)
  • Add Across pay strategy support (#7886)
  • Add fiatPayment transaction state into transactionData and updateFiatPayment callback action (#8093)

Added

  • Add optional refundTo field to TransactionConfig, TransactionData, and QuoteRequest types, allowing callers to specify an address that receives refunds if a Relay transaction fails (#8112)

Changed

  • Bump @metamask/assets-controllers from ^100.0.3 to ^100.1.0 (#8107)
  • Bump @metamask/transaction-controller from ^62.19.0 to ^62.20.0 (#8104)

Changed

  • Bump @metamask/bridge-controller from ^67.4.0 to ^68.0.0 (#8101)
  • Bump @metamask/bridge-status-controller from ^67.0.1 to ^68.0.0 (#8101)

Fixed

  • Normalize Polygon native token addresses between Relay requests and MetaMask balance checks to avoid undefined token values in quote and submit flows (#8091)

Changed

  • Bump @metamask/bridge-controller from ^67.2.0 to ^67.4.0 (#8051, #8070)
  • Bump @metamask/remote-feature-flag-controller from ^4.0.0 to ^4.1.0 (#8041)

Fixed

  • Support gasless predict withdraw (#8067)

Added

  • Add metaMask fee field to TransactionPayFees (#8030)
  • Add ordered strategy fallback mechanism for quote retrieval (#7868)

Changed

  • Bump @metamask/transaction-controller from ^62.18.0 to ^62.19.0 (#8031)
  • Bump @metamask/bridge-controller from ^67.1.1 to ^67.2.0 (#8024)
  • Bump @metamask/assets-controllers from ^100.0.2 to ^100.0.3 (#8029)

Added

  • BREAKING: Add live on-chain balance validation for pay transactions (#7935)
    • Refresh payment token balance via chain before each quote update.
    • Validate source token balance via chain before submitting Relay deposits.
    • Requires NetworkController:getNetworkClientById messenger action permission in TransactionController publish hook.

Changed

  • Bump @metamask/transaction-controller from ^62.17.1 to ^62.18.0 (#8005)
  • Replace relayDeposit transaction type with predictRelayDeposit or perpsRelayDeposit based on the parent transaction type (#7947)
  • Bump @metamask/assets-controllers from ^100.0.1 to ^100.0.2 (#8004)

Changed

  • Bump @metamask/assets-controllers from ^100.0.0 to ^100.0.1 (#7996)
  • Bump @metamask/bridge-controller from ^67.1.0 to ^67.1.1 (#7996)
  • Bump @metamask/bridge-status-controller from ^67.0.0 to ^67.0.1 (#7996)
  • Bump @metamask/gas-fee-controller from ^26.0.2 to ^26.0.3 (#7996)
  • Bump @metamask/network-controller from ^29.0.0 to ^30.0.0 (#7996)
  • Bump @metamask/transaction-controller from ^62.17.0 to ^62.17.1 (#7996)

Changed

  • Bump @metamask/assets-controllers from ^99.4.0 to ^100.0.0 (#7995)
  • Bump @metamask/controller-utils from ^11.18.0 to ^11.19.0 (#7995)
  • Bump @metamask/bridge-controller from ^67.0.0 to ^67.1.0 (#7995)

Changed

  • Bump @metamask/bridge-controller from ^66.1.1 to ^67.0.0 (#7956, #7961)
  • Bump @metamask/bridge-status-controller from ^66.0.2 to ^67.0.0 (#7956, #7961)
  • Bump @metamask/assets-controllers from ^99.3.2 to ^99.4.0 (#7944)

Fixed

  • Estimate relay transactions separately and combine with original transaction gas at quote time (#7933)

Changed

  • BREAKING: Remove transactionGas from TransactionPayFees (#7929)
    • The original transaction's gas cost is now included in sourceNetwork for post-quote flows instead of being reported separately, so gas estimation and gas-fee-token detection cover both the Relay deposit and the user's original transaction

Changed

  • BREAKING: Add subsidized fee to Relay quote target amount if isMaxAmount (#7911)
    • Remove human and raw from targetAmount on TransactionPayQuote and TransactionPayTotals
    • Use amountFormatted as USD value for Relay quote target amount and subsidized fee when token is a stablecoin
    • Set provider fee to zero when subsidized fee is present
    • Add MUSD, USDC, USDT, and Hypercore USDC to stablecoins

Added

  • Add post-quote transaction support for withdrawal flows (#7783)
    • Add setTransactionConfig method replacing setIsMaxAmount and setIsPostQuote
    • Add TransactionConfig, TransactionConfigCallback types
    • Add isPostQuote to TransactionData and QuoteRequest
    • Support reversed source/destination in Relay quotes for post-quote flows
    • Add same-token-same-chain skip logic for post-quote transactions
    • Add source amount fields (sourceBalanceRaw, sourceChainId, sourceTokenAddress) to TransactionPaySourceAmount

Changed

  • Bump @metamask/bridge-controller from ^65.3.0 to ^66.1.1 (#7862, #7897, #7910)
  • Bump @metamask/transaction-controller from ^62.14.0 to ^62.17.0 (#7854, #7872, #7897)
  • Bump @metamask/assets-controllers from ^99.2.0 to ^99.3.2, (#7855, #7860, #7897)
  • Bump @metamask/bridge-status-controller from 66.0.0 to 66.0.2 (#7897, #7910)

Removed

  • BREAKING: Remove setIsMaxAmount method in favor of setTransactionConfig (#7783)

Added

  • Generate required tokens using requiredAssets from transaction metadata (#7820)

Changed

  • Bump @metamask/bridge-controller from ^65.2.0 to ^65.3.0 (#7837)
  • Bump @metamask/bridge-status-controller from ^65.0.1 to ^66.0.0 (#7850)

Changed

  • Bump @metamask/transaction-controller from ^62.11.0 to ^62.14.0 (#7775, #7802, #7832)
  • Bump @metamask/assets-controllers from ^99.1.0 to ^99.2.0 (#7802)
  • Bump @metamask/bridge-controller from ^65.1.0 to ^65.2.0 (#7802)
  • Poll Relay status for same-chain quotes with a single deposit step (#7761)

Changed

  • Bump @metamask/assets-controllers from ^99.0.0 to ^99.1.0 (#7771)
  • Bump @metamask/bridge-controller from ^65.0.1 to ^65.1.0 (#7763)
  • Bump @metamask/bridge-status-controller from ^65.0.0 to ^65.0.1 (#7763)
  • Bump @metamask/transaction-controller from ^62.10.0 to ^62.11.0 (#7760)

Fixed

  • Skip gas fee token in Relay strategy if chain does not support EIP-7702 (#7754)

Changed

  • Bump @metamask/assets-controllers from ^98.0.0 to ^99.0.0 (#7751)
  • Bump @metamask/bridge-controller from ^65.0.0 to ^65.0.1 (#7751)
  • Bump @metamask/transaction-controller from ^62.9.2 to ^62.10.0 (#7737)

Changed

  • Bump @metamask/assets-controllers from ^97.0.0 to ^98.0.0 (#7731)
  • Bump @metamask/bridge-controller from ^64.8.2 to ^65.0.0 (#7731)
  • Bump @metamask/bridge-status-controller from ^64.4.4 to ^64.4.5 (#7724)

Changed

  • Bump @metamask/assets-controllers from ^96.0.0 to ^97.0.0 (#7722)
  • Bump @metamask/bridge-controller from ^64.8.1 to ^64.8.2 (#7722)

Added

  • Add slippageTokens feature flag support for token-specific slippage configuration (#7673)

Changed

  • Bump @metamask/bridge-controller from ^64.5.1 to ^64.8.1 (#7667, #7672, #7694, #7700, #7704)
  • Bump @metamask/assets-controllers from ^95.3.0 to ^96.0.0 (#7704)
  • Bump @metamask/bridge-status-controller from ^64.4.3 to ^64.4.4 (#7704)

Changed

  • Bump @metamask/assets-controllers from ^95.1.0 to ^95.3.0 (#7622, #7642)
  • Bump @metamask/bridge-controller from ^64.4.1 to ^64.5.1 (#7622, #7642)
  • Bump @metamask/bridge-status-controller from ^64.4.2 to ^64.4.3 (#7642)
  • Bump @metamask/gas-fee-controller from ^26.0.1 to ^26.0.2 (#7642)
  • Bump @metamask/network-controller from ^28.0.0 to ^29.0.0 (#7642)
  • Bump @metamask/transaction-controller from ^62.9.1 to ^62.9.2 (#7642)

Changed

  • Bump @metamask/network-controller from ^27.2.0 to ^28.0.0 (#7604)
  • Bump @metamask/bridge-controller from ^64.4.0 to ^64.4.1 (#7604)
  • Bump @metamask/bridge-status-controller from ^64.4.1 to ^64.4.2 (#7604)
  • Bump @metamask/gas-fee-controller from ^26.0.0 to ^26.0.1 (#7604)
  • Bump @metamask/transaction-controller from ^62.9.0 to ^62.9.1 (#7604)

Added

  • BREAKING: Support max amount quotes (#7562)
    • Add TransactionPayController:setIsMaxAmount messenger action.
    • Add isMaxAmount property to TransactionData type.
    • Add targetAmount property to TransactionPayQuote and TransactionPayTotals.
    • Update Relay quote requests to use EXACT_INPUT trade type when max amount is selected.
    • Update totals calculation to account for max amount selection.

Changed

  • Bump @metamask/controller-utils from ^11.17.0 to ^11.18.0 (#7583)
  • Bump @metamask/network-controller from ^27.1.0 to ^27.2.0 (#7583)
  • Bump @metamask/assets-controllers from ^94.0.0 to ^95.1.0 (#7584, #7600)
  • Bump @metamask/transaction-controller from ^62.7.0 to ^62.9.0 (#7596, #7602)
  • Bump @metamask/bridge-controller from ^64.3.0 to ^64.4.0 (#7596)
  • Bump @metamask/bridge-status-controller from ^64.3.0 to ^64.4.1 (#7596, #7597)

Added

  • feat: add override functionality to remote feature flags (#7271)

Changed

  • Bump @metamask/remote-feature-flag-controller from ^3.1.0 to ^4.0.0 (#7546)
  • Upgrade @metamask/utils from ^11.8.1 to ^11.9.0 (#7511)
  • Poll relay status using static URL (#7535)
  • Bump @metamask/assets-controllers from ^93.1.0 to ^94.1.0 (#7444, #7488)
  • Bump @metamask/transaction-controller from ^62.6.0 to ^62.7.0 (#7494)
  • Bump @metamask/bridge-controller from ^64.1.0 to ^64.3.0 (#7509, #7574)
  • Bump @metamask/bridge-status-controller from ^64.1.0 to ^64.3.0 (#7509, #7574)
  • Bump @metamask/remote-feature-flag-controller from ^3.0.0 to ^3.1.0 (#7519)
  • Bump @metamask/network-controller from ^27.0.0 to ^27.1.0 (#7534)
  • Bump @metamask/controller-utils from ^11.16.0 to ^11.17.0 (#7534)

Changed

  • Bump @metamask/transaction-controller from ^62.5.0 to ^62.6.0 (#7430)
  • Bump @metamask/bridge-controller from ^64.0.0 to ^64.1.0 (#7422)
  • Estimate gas for Relay quotes using messenger actions (#7405)
    • Submit all Relay source transactions using same gas limits estimated from quote.

Changed

  • Bump @metamask/transaction-controller from ^62.4.0 to ^62.5.0 (#7325)
  • Bump @metamask/bridge-status-controller from ^63.1.0 to ^64.0.1 (#7295, #7307)
  • Bump @metamask/bridge-controller from ^63.2.0 to ^64.0.0 (#7295)
  • Skip delegation in Relay quotes if token transfer only (#7262)
  • Bump @metamask/assets-controllers from ^92.0.0 to ^93.1.0 (#7291, #7309)
  • Bump @metamask/remote-feature-flag-controller from ^2.0.1 to ^3.0.0 (#7309

Fixed

  • Fix source network fees for batch Relay deposits on EIP-7702 networks (#7323)
  • Improve Relay provider fees (#7313)
    • Include slippage from feature flag.
    • Read fee from totalImpact property.
    • Send dust in transaction quotes to token transfer recipient, if available.

Changed

  • Use overwriteUpgrade when adding transaction batches in Relay strategy (#7282)
  • Bump @metamask/network-controller from ^26.0.0 to ^27.0.0 (#7258)
  • Bump @metamask/transaction-controller from ^62.3.1 to ^62.4.0 (#7289)

Fixed

  • Include authorizationList in Relay deposit tranasction if source and target chain are the same, and EIP-7702 upgrade is needed (#7281)

Added

  • Use relayDisabledGasStationChains feature flag to disable gas station on specific source chains in Relay strategy (#7255)

Changed

  • Bump @metamask/assets-controllers from ^91.0.0 to ^92.0.0 (#7253)
  • Bump @metamask/bridge-status-controller from ^63.0.0 to ^63.1.0 (#7245)
  • Bump @metamask/transaction-controller from ^62.2.0 to ^62.3.1 (#7236, #7257)
  • Bump @metamask/bridge-controller from ^63.0.0 to ^63.2.0 (#7238, #7245)

Added

  • Use new feature flags to configure gas limit fallback for Relay quotes (#7229)
    • Use gas fee properties from Relay quotes.

Changed

  • Move peer dependencies for controller and service packages to direct dependencies (#7209, #7220)
    • The dependencies moved are:
      • @metamask/assets-controllers (^91.0.0)
      • @metamask/bridge-controller (^63.0.0)
      • @metamask/bridge-status-controller (^63.0.0)
      • @metamask/gas-fee-controller (^26.0.0)
      • @metamask/network-controller (^26.0.0)
      • @metamask/remote-feature-flag-controller (^2.0.1)
      • @metamask/transaction-controller (^62.2.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-a 1.0.0 and @metamask/controller-b 1.0.0, and @metamask/controller-b depends on @metamask/controller-a 1.1.0.
    • Note, however, that the versions specified in the client's package.json always "win", and you are expected to keep them up to date so as not to break controller and service intercommunication.

Added

  • Use gas fee token for Relay deposit transactions if insufficient native balance (#7193)
    • Add optional fees.isSourceGasFeeToken property to TransactionPayQuote and TransactionPayTotals type.

Changed

  • BREAKING: Bump @metamask/bridge-status-controller from ^62.0.0 to ^63.0.0 (#7207)
  • BREAKING: Bump @metamask/bridge-controller from ^62.0.0 to ^63.0.0 (#7207)
  • BREAKING: Bump @metamask/assets-controllers from ^90.0.0 to ^91.0.0 (#7207)

Changed

  • Bump @metamask/controller-utils from ^11.15.0 to ^11.16.0 (#7202)
  • BREAKING: Bump @metamask/transaction-controller from ^61.0.0 to ^62.0.0 (#7202)
  • BREAKING: Bump @metamask/network-controller from ^25.0.0 to ^26.0.0 (#7202)
  • BREAKING: Bump @metamask/gas-fee-controller from ^25.0.0 to ^26.0.0 (#7202)
  • BREAKING: Bump @metamask/bridge-status-controller from ^61.0.0 to ^62.0.0 (#7202)
  • BREAKING: Bump @metamask/bridge-controller from ^61.0.0 to ^62.0.0 (#7202)
  • BREAKING: Bump @metamask/assets-controllers from ^89.0.0 to ^90.0.0 (#7202)

Fixed

  • Ensure source network fee for Relay quotes includes all items and steps (#7191)

Changed

  • BREAKING: Bump @metamask/assets-controller from ^88.0.0 to ^89.0.0 (#7179)
  • BREAKING: Bump @metamask/bridge-controller from ^60.0.0 to ^61.0.0 (#7179)
  • BREAKING: Bump @metamask/bridge-status-controller from ^60.0.0 to ^61.0.0 (#7179)

Added

  • BREAKING: Add sourceAmount to TransactionPayQuote (#7159)
    • Add estimate and max properties to fee.sourceNetwork in TransactionPayQuote.
    • Add isTargetGasFeeToken to fee in TransactionPayQuote.
    • Add matching properties to TransactionPayTotals.
    • Use fixed fiat rate for Polygon USDCe and Arbitrum USDC.

Fixed

  • BREAKING: Always retrieve quote if using Relay strategy and required token is Arbitrum USDC, even if payment token matches (#7146)
    • Change getStrategy constructor option from asynchronous to synchronous.

Added

  • BREAKING: Include transactions in Relay quotes via EIP-7702 and delegation (#7122)
    • Requires new getDelegationTransaction constructor option.

Changed

  • Updated getBridgeBatchTransactions types to account for multichain approvals (#6862)

Fixed

  • Read Relay provider fees directly from response (#7098)

Added

  • Support Relay quotes with multiple transactions (#7089)

Changed

  • BREAKING: Bump @metamask/assets-controller from ^87.0.0 to ^88.0.0 (#7100)
  • BREAKING: Bump @metamask/bridge-controller from ^59.0.0 to ^60.0.0 (#7100)
  • BREAKING: Bump @metamask/bridge-status-controller from ^59.0.0 to ^60.0.0 (#7100)

Added

  • Calculate totals even if no quotes received (#7042)

Fixed

  • Fix bridging to native Polygon (#7053)
    • Use original quote if bridge quote fails to refresh during submit.
    • Only refresh quotes if transaction status is unapproved.

Changed

  • BREAKING: Bump @metamask/assets-controller from ^86.0.0 to ^87.0.0 (#7043)
  • BREAKING: Bump @metamask/bridge-controller from ^58.0.0 to ^59.0.0 (#7043)
  • BREAKING: Bump @metamask/bridge-status-controller from ^58.0.0 to ^59.0.0 (#7043)

Fixed

  • Prevent infinite loading after quotes are refreshed (#7020)

Fixed

  • Fix use of native Polygon as payment token in Bridge strategy (#7008)
    • Ignore required tokens with no quotes when calculating totals.
    • Use correct feature flag key.
    • Ensure isLoading state is cleared if quotes not updated.

Changed

  • BREAKING: Bump @metamask/assets-controller from ^85.0.0 to ^86.0.0 (#7011)
  • BREAKING: Bump @metamask/bridge-controller from ^57.0.0 to ^58.0.0 (#7011)
  • BREAKING: Bump @metamask/bridge-status-controller from ^57.0.0 to ^58.0.0 (#7011)

Added

  • Initial release (#6820)