Skip to content

Releases: MetaMask/connect-monorepo

17.0.0

Choose a tag to compare

@github-actions github-actions released this 24 Feb 21:05
37195e4

@metamask/connect-evm 0.5.0

Changed

  • BREAKING Standardize chainId to use Hex format throughout the public API (#150)
    • connect(), connectAndSign(), and connectWith() now expect chainIds as hex strings instead of decimal numbers
    • connect() now returns { accounts, chainId: Hex } instead of { accounts, chainId: number }
    • switchChain() now expects chainId: Hex instead of chainId: number | Hex
    • createEVMClient() param option api.supportedNetworks now expects hex chain IDs as keys (e.g., '0x1') instead of CAIP chain IDs
    • Event handler types for connectAndSign and connectWith now use Hex for chainId
  • BREAKING getInfuraRpcUrls now returns a rpc url map keyed by hex chain ID rather than CAIP Chain ID (#152)
  • The debug option param used by createEVMClient() now enables console debug logs of the underlying MultichainClient instance (#149)
  • update connect() and createEVMClient() typings to be more accurate (#153)
  • update switchChain() to return Promise<void> (#153)
  • Make ConnectEvm rely on wallet_sessionChanged events from ConnectMultichain rather than explicit connect/disconnect events (#157)
  • Chain add/switch deeplink now calls openSimpleDeeplinkIfNeeded() instead of openDeeplinkIfNeeded() to align with @metamask/connect-multichain changes (#176)

Fixed

  • Fix display_uri and wallet_sessionChanged events not firing after disconnect and reconnect in headless mode (#170)

@metamask/connect-multichain 0.6.0

Added

  • When ConnectMultichain.connect() is called while a connection is already pending, the user is re-prompted with the pending connection deeplink. (#176)

Changed

  • BREAKING createMultichainClient() now returns a singleton. Any incoming constructor params on subsequent calls to createMultichainClient() will be applied to the existing singleton instance except for the dapp, storage, and ui.factory param options. (#157)
  • BREAKING ConnectMultichain.openDeeplinkIfNeeded() is renamed to openSimpleDeeplinkIfNeeded() (#176)
  • ConnectMultichain.connect() now throws an 'Existing connection is pending. Please check your MetaMask Mobile app to continue.' error if there is already an pending connection attempt. Previously it would abort that ongoing connection in favor of a new one. (#157)
  • ConnectMultichain.connect() adds newly requested scopes and accounts onto any existing permissions rather than fully replacing them. (#157)
  • ConnectMultichain.disconnect() accepts an optional array of scopes. When provided, only those scopes will be revoked from the existing permissions. If no scopes remain after a partial revoke, then the underly connection is fully discarded. If no scopes are specified ()[]), then all scopes will be removed. By default all scopes will be removed. (#157)

Fixed

  • ConnectMultichain now waits 10 seconds (rather than 2 minutes) when attempting to resume a pending connection on initial instantiation via createMultichainClient() (#175)
  • Fix beforeunload event listener not being properly removed on disconnect due to .bind() creating different function references, causing a listener leak on each connect/disconnect cycle (#170)
  • Rename StoreAdapterWeb.DB_NAME from mmsdk to mmconnect to prevent IndexedDB collisions when the legacy MetaMask SDK and MM Connect run in the same browser context (#177)
  • Clean up stale MWP session from KVStore on connection rejection so subsequent QR code connection attempts are not blocked (#180)
  • Fix bug with JSON-RPC requests where previously used id value could be re-used causing the wallet to ignore the request when a dapp was refreshed/reloaded. (#183)

@metamask/connect-solana 0.2.0

Added

  • Add node.js builds #169

Changed

  • BREAKING: Automatically register as MetaMask to Solana Wallet Standard registry upon instantiation - with option to skip auto-registration #178 (#179)

@metamask/browser-playground 0.3.0

Added

  • Add disconnect buttons to cards (#157)
  • Add data-testid attributes to Solana components (#174)
  • Add data-testid attributes to Legacy EVM and Wagmi disconnect buttons (#174)

Changed

  • Patch @solana/wallet-adapter-react to work with android native browser (#174)
  • Remove manual registration of connect-solana (#178)
  • Bump workspace dependencies:
    • @metamask/connect-evm@0.5.0
    • @metamask/connect-multichain@0.6.0
    • @metamask/connect-solana@0.2.0

Removed

  • Remove the explicit ActiveProviderStorage pattern. Now all providers (cards) are "Active" even without user input to connect to a specific ecosystem (#157)

Fixed

  • Fixes EVM Provider setChainId and setAccounts to also use the connect event (#157)
  • Multichain Card and button properly reflect initial instantiation connecting status (#157)

@metamask/react-native-playground 0.1.2

Changed

  • Add Metro bundler configuration with Node.js module shims to support APK bundling (#182)
  • Enable unstable_transformImportMeta in Babel config for import.meta support in dependencies (#182)
  • Set explicit Android package identifier for APK builds (#182)
  • Add dotenv and readable-stream as dev dependencies for Metro config (#182)
  • Bump workspace dependencies:
    • @metamask/connect-evm@0.5.0
    • @metamask/connect-multichain@0.6.0

Fixed

  • Make sure Multichain UI card is rendered after Multichain connection established by aligning the SDKProvider with the browser playground's event-emitter pattern, broken after merging in Connect Multichain Singleton PR which caused the React Native SDKProvider's transport.onNotification callback to be silently dropped, preventing session and status updates from ever reaching the UI (#181)
  • Fix JSON parse error on startup by replacing createSyncStoragePersister with createAsyncStoragePersister for React Native's async AsyncStorage API (#182)
  • Fix Connect (Multichain) button not rendering by correcting useSDK() destructuring (state -> status: state) (#182)

16.0.0

Choose a tag to compare

@github-actions github-actions released this 05 Feb 10:41
5f4dccb

@metamask/connect-multichain 0.5.3

Added

  • createMultichainClient() now accepts an optional debug param option which enables console debug logs when set to true. Defaults to false. (#149)

Fixed

  • Fix sessionProperties not being passed to wallet_createSession when recreating a session after scope/account changes (#123)

@metamask/connect-solana 0.1.0

Added

  • Initial release

@metamask/browser-playground 0.2.0

Added

  • Add Solana wallet standard integration (#123)

Changed

  • BREAKING: Update connect/disconnect button labels to include connector names ("Connect" → "Connect (Multichain)", "Disconnect" → "Disconnect (Multichain)" / "Disconnect All") for clarity and consistency with other connector buttons (#161)

@metamask/react-native-playground 0.1.1

Changed

  • Bump workspace dependencies:
    • @metamask/connect-multichain@0.5.3
  • BREAKING: Update connect/disconnect button labels to include connector names ("Connect" → "Connect (Multichain)", "Disconnect" → "Disconnect (Multichain)" / "Disconnect All") for clarity and consistency with other connector buttons (#161)
  • Update to use hex chain ID format for @metamask/connect-evm API compatibility (#150)

15.0.0

Choose a tag to compare

@github-actions github-actions released this 02 Feb 14:57
a8eeacd

@metamask/browser-playground 0.1.1

Added

  • Track active provider via local storage state (#154)

Changed

  • Update to use hex chain ID format for @metamask/connect-evm API compatibility (#150)

14.0.0

Choose a tag to compare

@github-actions github-actions released this 29 Jan 10:09
ce3212f

@metamask/connect-multichain 0.5.2

Changed

  • ConnectMultichain.connect() will send sessionProperties as undefined when called with an empty object {} in order to ensure that the initial wallet_createSession request does not fail immediately (#138)

@metamask/browser-playground 0.1.0

Added

  • Initial release

@metamask/react-native-playground 0.1.0

Added

  • Initial release

13.0.0

Choose a tag to compare

@github-actions github-actions released this 27 Jan 23:00
47aeca3

@metamask/connect-evm 0.4.1

Fixed

  • createEVMClient now ensures session resumption is properly awaited before returning the client instance. Previously there was a race condition which made it possible to make requests to the EIP-1193 provider before the underlying session was fully ready (#141)

12.0.0

Choose a tag to compare

@github-actions github-actions released this 23 Jan 23:10
6668986

@metamask/connect-evm 0.4.0

Added

  • createEVMClient now accepts ui in its param options. See @metamask/connect-multichain for examples of usage (#140)

11.0.0

Choose a tag to compare

@github-actions github-actions released this 22 Jan 23:06
1112ea6

@metamask/connect-evm 0.3.1

Fixed

  • Fix ConnectEvm.connect() not being able to establish an initial connection due to empty object sessionProperties (#138)

10.0.0

Choose a tag to compare

@github-actions github-actions released this 22 Jan 19:38
5ec3b0c

@metamask/connect-evm 0.3.0

Added

  • Add ConnectEvm.status property which exposes the current ConnectionStatus (#136)

Fixed

  • Fix eth_chainId requests not being resolved from local cached state when using the EIP-1193 Provider request() method over the MwpTransport (#124)

@metamask/connect-multichain 0.5.1

Fixed

  • fix: Resolve Buffer polyfill requirement for browser/React Native consumers (#121)

9.0.0

Choose a tag to compare

@github-actions github-actions released this 22 Jan 13:55
34bbe5b

@metamask/connect-evm 0.2.0

Added

  • Add display_uri event support for custom QR code UI implementations (#130)
    • display_uri event on EIP1193Provider emitted when QR code link is available
    • displayUri callback in EventHandlers for event-based subscriptions
    • Forwarded from @metamask/connect-multichain core to EIP-1193 provider layer
  • Add mobile.preferredOpenLink option support for React Native deeplink handling in wagmi connector (#118)
    • Allows React Native apps to use Linking.openURL() instead of window.location.href for opening MetaMask deeplinks
    • Required for wagmi connector usage in React Native environments
  • Add legacy compatibility methods to EIP1193Provider for broader ecosystem compatibility (#102)
    • chainId getter (alias for selectedChainId)
    • sendAsync() for callback/promise-based JSON-RPC requests
    • send() for callback-based JSON-RPC requests

Changed

  • BREAKING Rename createMetamaskConnectEVM to createEVMClient for a cleaner naming convention (#114)

Removed

  • Revert: Fix local state not correctly being reset when establishing a new connection when there is an existing active session (#119)

Fixed

  • Fix selected chainId incorrectly reverting to Ethereum Mainnet after page refresh by caching the selected chainId and retrieving it from storage instead of assuming the first permitted chain is selected (#113)
  • Update #attemptSessionRecovery() to check to state before attempting recovery (#107)
  • Bind all public methods in EIP1193Provider constructor to ensure stable this context when methods are extracted or passed as callbacks (#102)

@metamask/connect-multichain 0.5.0

Added

  • Add display_uri event emission for QR code links to support custom UI implementations (#130)
    • Emitted when QR code link is generated during connection
    • Emitted when QR code is regenerated on expiration
    • Emitted for deeplink connections on mobile web
  • Add onDisplayUri callback to InstallWidgetProps for notifying when QR codes are generated/regenerated (#130)
  • Add headless mode support that emits display_uri without rendering modal UI (#130)
  • Add sessionProperties parameter to connect() method for passing custom session configuration to wallets(#80)
  • Introduce MultichainApiClientWrapperTransport to provide the provider interface before connection is established(#80)

Changed

  • BREAKING Rename state property to status on MultichainCore for improved clarity (#125)
  • BREAKING Rename createMetamaskConnect to createMultichainClient for a cleaner naming convention (#114)
  • Provider is now always available via sdk.provider regardless of connection state (wrapper handles disconnected state internally)(#80)

Fixed

  • Fix wallet_sessionChanged events subsequent to the initial connection not being persisted (#100)
  • Fix hanging when attempting to resume a previous connection initialization in which the wallet does not send any response at all (#103)

8.0.0

Choose a tag to compare

@github-actions github-actions released this 07 Jan 12:01
6792c0f

@metamask/connect-evm 0.1.2

Added

  • BREAKING Replace chainId property on connect method with chainIds to support for connecting to multiple chains (#77)

Changed

  • Bump @metamask/connect-multichain removing enable flag from analytics (#92)
  • BREAKING Change connectWithMessage() to expect param object with message and optional chainIds property (#82)
    • message should be the value that the user will prompted to sign with their selected account after connecting. message is required.
    • chainIds should be an array of chainIds that the wallet will prompt the user to grant permisson for. chainIds is optional.

Fixed

  • Fix duplicate onNotification listener (#81)
  • Fixed addEthereumChain not being prompted on mobile native browsers after a switch chain failure (#79)

@metamask/connect-multichain 0.4.0

Changed

  • BREAKING Remove opt-out of analytics from connect-multichain. MultichainOptions removes the enable flag from analytics config object (#92)

Fixed

  • Fix potential listener leak on MultichainCore.deeplinkConnect and duplicate dappClient.on('message') on MWPTransport (#81)
  • Reverted: Fix mobile deeplink bug that occurred when MultichainSDK.connect() was called and the transport was already connected (#74)
  • Fix rejections of the initial permission approval for deeplink connections not correctly updating the connection status to disconnected (#75)
  • Fix connect() not working for mobile deeplink and QR connections when a previous connection attempt gets stuck (#85)
  • Fix connect() improperly wrapping errors resulting in them being serialized to [object Object] (#86)

@metamask/multichain-ui 0.3.0

Changed

  • BREAKING Change stencil loader export path to ./loader for previous paths ./dist/loader/index.js and ./dist/loader/index.cjs.js (#73)