Skip to content

37.0.0

Choose a tag to compare

@github-actions github-actions released this 05 Jun 21:27
c69a751

@metamask/connect-evm 2.0.0

Added

  • Validate @metamask/connect-multichain peer version at runtime and warn on mismatch (#253)
  • Announce the MMConnect-managed EIP-1193 provider through EIP-6963 by default when native MetaMask has not already announced, with skipAutoAnnounce and announceProvider() for manual control. (#304)

Changed

  • BREAKING: @metamask/connect-multichain is now a peer dependency.
    Add it to your own dependencies (e.g. npm install @metamask/connect-multichain)
    — it is no longer installed transitively.
  • Adopts breaking removal of the public transport accessor in @metamask/connect-multichain. (#318)

Removed

  • BREAKING Remove the transport.onNotification option from createEVMClient(). The option was a fan-out of typed events already exposed via the EIP-1193 provider (accountsChanged, chainChanged, connect, disconnect, display_uri) and via eventHandlers. Migrate to those listeners instead (#318)

Fixed

  • MWP-backed EIP-1193 requests now surface wallet errors through rejected promises consistently with the default transport, so EvmClient.switchChain() no longer has to handle returned error payloads. (#311)
  • Return spec-compatible values from additional intercepted EIP-1193 provider requests: wallet_requestPermissions now resolves to requested permissions, while successful wallet_switchEthereumChain and wallet_addEthereumChain requests resolve to null. (#310)

@metamask/connect-multichain 1.0.0

Added

  • Add version getter to MultichainCore and MetaMaskConnectMultichain that returns the runtime package version (#253)
  • Warn at runtime when an existing singleton has a different version than the newly requested instance, indicating duplicate @metamask/connect-multichain resolutions (#253)

Changed

  • This release promotes @metamask/connect-multichain to a stable 1.0. From here it follows semver strictly — 1.x minor and patch releases will be backward-compatible, and breaking changes will only land in a future major. This lets the ecosystem packages (connect-evm, connect-solana, any future ecosystem packages) depend on ^1.0.0 and pick up all future 1.x improvements without a coordinated re-release, and gives consumers a dependable compatibility contract. (#317)
  • Rename the storage API methods for the persisted transport type from getTransport, setTransport, and removeTransport to getTransportType, setTransportType, and removeTransportType. The existing multichain-transport storage key is unchanged, so no persisted data migration is required. (#307)
  • getVersion() now returns the real package version injected at build time via __PACKAGE_VERSION__, instead of a hardcoded '0.0.0' (#253)
  • Refactor MWPTransport.connect() and other internals to replace deeply nested new Promise() and event-callback patterns with deferred promises, reducing nesting and breaking connect() into smaller helpers. No behavior change. (#305)

Removed

  • BREAKING: Remove the transport.onNotification constructor option from createMultichainClient(). The option was a fan-out of every typed event already exposed via client.on(...). Migrate to the typed event API: client.on('stateChanged' | 'wallet_sessionChanged' | 'metamask_accountsChanged' | 'metamask_chainChanged' | 'display_uri', handler). (#318)
  • BREAKING: Remove the public transport accessor from MultichainCore and MetaMaskConnectMultichain. Consumers that previously reached the underlying transport to invoke EIP-1193 / legacy provider methods (wallet_addEthereumChain, wallet_switchEthereumChain, eth_accounts) should now go through client.invokeMethod({ scope, request: { method, params } }). RequestRouter recognizes those methods as EIP-1193 passthroughs and forwards the raw payload to the active transport's sendEip1193Message, so behavior is preserved. All other RPCs continue to flow through invokeMethod unchanged. (#318)

Fixed

  • Restrict EIP-6963 extension detection to native MetaMask RDNS values so MMConnect-managed provider announcements do not select the browser-extension transport. (#304)
  • Failed createMultichainClient() singleton initialization now rethrows after clearing the stored singleton promise, preventing the cleanup path from resolving to undefined and preserving retry behavior. (#306)
  • MWPTransport.request() and sendEip1193Message() now reject wallet response errors returned as result.error, matching DefaultTransport error handling and preserving wallet error codes. (#311)
  • MetaMaskConnectMultichain.#headlessConnect() now removes the dappClient session_request listener once the connection settles, preventing each headless connect() call from leaking a listener that would re-emit display_uri with stale deeplinks for every subsequent session request. (#314)

@metamask/connect-solana 2.0.0

Added

  • Validate @metamask/connect-multichain peer version at runtime and warn on mismatch (#253)

Changed

  • BREAKING: @metamask/connect-multichain is now a peer dependency.
    Add it to your own dependencies (e.g. npm install @metamask/connect-multichain)
    — it is no longer installed transitively.
  • Bump workspace dependencies:
    • @metamask/connect-multichain@1.0.0

@metamask/browser-playground 0.8.0

Added

  • Add an EIP-6963 validation panel for observing provider announcements, dispatching eip6963:requestProvider, manually re-announcing the legacy EVM SDK provider, and distinguishing the MMConnect-managed provider from native/provider-discovery entries. (#304)

Changed

  • Opt the browser playground wagmi connector out of automatic EIP-6963 provider announcement to avoid duplicate MMConnect-managed announcements while validating the direct legacy EVM SDK path. (#304)
  • Bump workspace dependencies:
    • @metamask/connect-evm@2.0.0
    • @metamask/connect-multichain@1.0.0

Fixed

  • Fixed Connected Network cards not appearing automatically after refresh (#313)