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 JSX
content
property tosnap_notify
(#2881)- This content will be displayed in an upcoming expanded view for notifications.
- Add
getClientCryptography
hook for specifying custom cryptography functions (#2909)
- Add
snap_getInterfaceContext
JSON-RPC method (#2902)
- Bump MetaMask dependencies (#2853)
- Remove support for JSX in
snap_notify
notifications (#2837)- This is technically a breaking change, but this feature was never actually implemented, so it should not affect any existing code.
- This will be re-implemented in a future release.
- Add
snap_experimentalProviderRequest
JSON-RPC method (#2773)- This method is experimental and will likely be removed in a future release.
- Allow updating interface context (#2809)
snap_updateInterface
now accepts acontext
parameter to update the context of an interface.
- Use
BigInt
to parse chain IDs (#2781)
- Add
snap_getCurrencyRate
JSON-RPC method (#2763)
- Add support for
metamask:
schemed URLs (#2719) - Add support for JSX in
snap_notify
notifications (#2706)
- Fix invalid types in type declaration in some cases (#2714)
- Fix ESM version of the package (#2682)
- This fixes the ESM version of the package to be fully compliant with the ESM standard.
- Bump
@metamask/utils
from^9.1.0
to^9.2.1
(#2680) - Bump other MetaMask dependencies (#2703)
- BREAKING: Add
snap_getPreferences
(#2607)- This is breaking because a
getPreferences
method hook is now required.
- This is breaking because a
- Bump
@metamask/json-rpc-engine
from^9.0.0
to^9.0.2
(#2593) - Bump
@metamask/permission-controller
from^10.0.1
to^11.0.0
(#2593) - Bump
@metamask/snaps-utils
from^7.8.0
to^7.8.1
(#2595)
- BREAKING:
snap_dialog
now takes therequestUserApproval
hook (#2509)- It should bind to the
addAndShowRequest
method of theApprovalController
. - Add type
DialogApprovalTypes
and objectDIALOG_APPROVAL_TYPES
.
- It should bind to the
- Bump
@metamask/key-tree
from^9.1.1
to^9.1.2
(#2445) - Bump
@metamask/permission-controller
from^10.0.0
to^10.0.1
(#2445) - Bump
@metamask/rpc-errors
from^6.2.1
to^6.3.1
(#2445) - Bump
@metamask/utils
from^8.3.0
to^9.1.0
(#2445)
- Replace
superstruct
with ESM-compatible@metamask/superstruct
^3.1.0
(#2445)- This fixes the issue of this package being unusable by any TypeScript project that uses
Node16
orNodeNext
as itsmoduleResolution
option.
- This fixes the issue of this package being unusable by any TypeScript project that uses
- Bump MetaMask dependencies (#2516)
- Bump MetaMask dependencies (#2460)
- Fix invalid
@metamask/snaps-sdk
imports (#2452)
- Bump
@metamask/key-tree
from9.1.0
to9.1.1
(#2431)
- Add
context
field tosnap_createInterface
(#2413)
- Add support for BIP-32-Ed25519 / CIP-3 key derivation (#2408)
- The
ed25519Bip32
curve is now supported forsnap_getBip32Entropy
andsnap_getBip32PublicKey
- The
- BREAKING: Use hooks in
wallet_invokeSnap
instead of remapping the request towallet_snap
(#2406)
- Add JSX support for custom UI (#2258)
- BREAKING: Refactor to support changes to encryption (#2316)
- No longer expects
encrypt
ordecrypt
, instead expectsupdateSnapState
andgetSnapState
to be asynchronous
- No longer expects
- Fix minor build configuration problems (#2220)
- BREAKING: Update ESM build to be fully compliant with the ESM standard (#2210)
- Bump
@metamask/rpc-errors
to^6.2.1
(#2209)
- BREAKING: Add support for dynamic user interfaces (#1465, #2144, #2143)
- This adds the
snap_createInterface
,snap_updateInterface
, andsnap_getInterfaceState
methods. - This is breaking because it changes the expected type of the
showDialog
RPC method hook.
- This adds the
- BREAKING: Update the permission format for the name lookup endowment (#2113)
- The new format is documented in SIP-12.
- Add endowment permission specifications to this package (#2155)
- Add
snap_getClientStatus
(#2051)
- BREAKING: Use origin bound hooks for
invokeKeyring
(#2090) - Bump several MetaMask dependencies (#2069, #2100)
- Add
wallet_getAllSnaps
method to get all installed Snaps (#2047)
- Use prototype
startsWith
for RPC method middleware (#2035)
- Bump several MetaMask dependencies (#1989)
- Use
@metamask/snaps-sdk
package (#1930, #1950, #1954)- This package replaces the
@metamask/snaps-types
and @metamask/snaps-ui
packages.
- This package replaces the
- BREAKING: Remove
DialogType
,ManageStateOperation
, andNotificationType
enums (#1930)- These are now defined in the
@metamask/snaps-sdk
package.
- These are now defined in the
- Add support for unencrypted storage using
snap_manageState
(#1902)
- Fix
assertLinksAreSafe
import (#1908)
- Add support for links in custom UI and notifications (#1814)
- Add keyring export and endowment (#1787)
- BREAKING: Bump minimum Node.js version to
^18.16.0
(#1741)
- Initial stable release from main branch (#1757)
- Bump
metamask/utils
andmetamask/snaps-registry
(#1738)
- Remove business-logic callbacks from
manageAccounts
(#1725) - Bump
@metamask/utils
and@metamask/snaps-registry
(#1694)
- Make
manageAccounts
arguments extendRestrictedMethodParameters
(#1687)
- Add
snap_getLocale
JSON-RPC method (#1557)- This will let snaps get the user locale from the client.
- Fix ed25519 public key derivation (#1678)
- Release package independently (#1600)
- The version of the package no longer needs to match the version of all other MetaMask Snaps packages.