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.
- BREAKING: Remove duplicate CAIP types (#3071)
- The following functions, values, types, and structs were removed from
@metamask/snaps-utils
:CHAIN_ID_REGEX
ACCOUNT_ID_REGEX
ACCOUNT_ADDRESS_REGEX
parseChainId
parseAccountId
LimitedString
ChainIdStringStruct
ChainIdStruct
AccountIdStruct
AccountIdArrayStruct
AccountAddressStruct
AccountAddress
ChainStruct
Chain
NamespaceStruct
Namespace
NamespaceIdStruct
NamespaceId
isNamespaceId
isChainId
isAccountId
isAccountIdArray
isNamespace
- The following functions, values, types, and structs were removed from
- Bump MetaMask dependencies (#3091, #3082, #3050)
- Correct validation for scopes on
endowment:assets
permission (#3039)
- Add support for
onAssetsLookup
andonAssetsConversion
handlers (#3028) - Add
Intl
as a default global (#3035)
- Add Massa derivation path (#2979)
- Bump MetaMask dependencies (#2946, #2999, #3003, #2996, #2989)
- Make
jobs
property fully optional in the cronjob endowment (#3005)
- Bump
@metamask/key-tree
from^9.1.2
to^10.0.1
(#2909)
- Add
isSecureContext
global (#2893)
- Add line beginning to origin regex (#2876)
- Use regular import to reference package.json (#2871)
- Bump MetaMask dependencies (#2853)
- Add
isSnapId
utility function (#2808)
- Add
currency
struct (#2763)
- Convert
createWindow
parameters to options bag (#2765)
- Update
package.json
struct to allowrepository.directory
(#2754)
- Add support for
metamask:
schemed URLs (#2719) - Add support for JSX in
snap_notify
notifications (#2706)
- Validate list of emails in
validateLink
function (#2750)
- Fix invalid types in type declaration in some cases (#2714)
- Add Bitcoin Taproot derivation paths (#2695)
- Improve
validateLink
error handling (#2702)
- 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)
- Bump
@metamask/slip44
to 4.0.0 (#2624)
- BREAKING: Improve manifest validation output (#2605, #2572)
- This is breaking as it removes exports such as
validateNpmSnap
.
- This is breaking as it removes exports such as
- Bump
fast-xml-parser
(#2610)
- Bump
@metamask/base-controller
from^6.0.1
to^6.0.2
(#2593) - Bump
@metamask/permission-controller
from^10.0.1
to^11.0.0
(#2593)
- Move
serialiseJsx
function fromsnaps-jest
tosnaps-utils
(#2409)
- Bump
@metamask/base-controller
from^6.0.0
to^6.0.1
(#2445) - 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/snaps-registry
from^3.1.0
to^3.2.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
- Fix
allowedOrigins
bypass caused by unterminated regex (#2576)
- Support conditional children in most JSX components (#2506)
- Support additional components inside forms (#2497)
- Improve validation of
endowment:rpc
(#2512)
- Support nested children in JSX (#2482)
- Fix a problem with converting legacy UIs that used
row()
(#2486) - Revert requiring at least one child in JSX components (#2470)
- Require at least 1 child in JSX components (#2466)
- Fix invalid
@metamask/snaps-sdk
imports (#2452)
- Add support for BIP-32-Ed25519 / CIP-3 key derivation (#2408)
- Fix build producing invalid JSX types (#2410)
- Add JSX support for custom UI (#2258, #2383)
- This adds utility functions for working with JSX in Snaps.
- Bump
@metamask/base-controller
from5.0.1
to5.0.2
(#2375)
- Add
getJsonSizeUnsafe
(#2342)
- Add derivation path for Nimiq (#2309)
- Disable GitHub flavored Markdown when lexing (#2317)
- Bump MetaMask dependencies (#2270)
- Allow
maxRequestTime
onendowment:rpc
(#2291)
- Update markdown parsing for better link validation (#2261)
- Bump
@metamask/snaps-registry
to^3.0.1
(#2255)
- Remove usage of
Buffer
from browser entrypoint (#2238)
- BREAKING: Update ESM build to be fully compliant with the ESM standard (#2210)
- BREAKING: Move Node.js exports to separate export (#2210)
- The default export is now browser-compatible.
- Node.js APIs can be imported from
<package>/node
.
- Bump
@metamask/rpc-errors
to^6.2.1
(#2209)
- BREAKING: Move
file
struct to CLI (#2207)- The previously exported
file
struct can now be found in@metamask/snaps-cli
.
- The previously exported
- Add a manifest warning when no icon is found and when icon is not square (#2185)
- Add support for dynamic user interfaces (#1465, #2126)
- Add support for snap defined execution timeouts (#2098)
- BREAKING: Update name lookup type validation (#2113)
- The return value and the permission format has changed, see SIP-12 for more details.
- Speed up eval-worker for improved CLI performance (#2147)
- Update MetaMask dependencies (#2132, #2142)
- Fix initial permissions types (#2111)
- Add support for initial connections (#2048)
- Add support for preinstalled snaps (#2008)
- Add support for signature insights (#2074)
- Fix missing
global
during snap evaluation (#2072)
- Remove support for object-like syntax for cronjobs (#2057)
- Since this never worked in the first place we aren't marking it as breaking.
- Add
getSnapDerivationPathName
andgetSlip44ProtocolName
to be shared across clients (#2033)
- Bump
snaps-registry
(#2020)
- Bump several MetaMask dependencies (#1964)
- BREAKING: Move
enumValue
,literal
andunion
tosnaps-sdk
(#1968)
- Fix issues generating checksum with binary auxiliary files (#1975)
- Change
validateTextLinks
to only get URL in markdown links (#1914)
- Use
SubtleCrypto
for checksum calculation if available (#1953)- This reduces the time of the checksum calculation by up to 95% in some environments.
- Use
@metamask/snaps-sdk
package (#1930, #1946, #1950, #1949, #1954)- This package replaces the
@metamask/snaps-types
and @metamask/snaps-ui
packages, and is much more lightweight.
- This package replaces the
- BREAKING: Remove
ValidatedSnapId
andSnapId
types (#1930)ValidatedSnapId
was moved to the@metamask/snaps-sdk
package asSnapId
.SnapId
was an alias ofstring
, and is no longer needed.
- BREAKING: Remove
SnapError
(#1949)- This class was moved to the
@metamask/snaps-sdk
package.
- This class was moved to the
- BREAKING: Remove
EnumToUnion
type (#1930)- This type was moved to the
@metamask/snaps-sdk
package.
- This type was moved to the
- BREAKING: Remove
RequestedSnapPermissions
type (#1930)- This type was deprecated, and is now replaced by the
InitialPermissions
type from the@metamask/snaps-sdk
package.
- This type was deprecated, and is now replaced by the
- Include localization files in checksum calculations (#1956)
- Add support for links in custom UI and notifications (#1814)
- Add keyring export and endowment (#1787)
- Add optional
allowedOrigins
field toendowment:rpc
(#1822)- This can be used to only accept certain origins in your Snap.
- BREAKING: Bump minimum Node.js version to
^18.16.0
(#1741)
- Remove deprecated
endowment:long-running
(#1751)
- Initial stable release from main branch (#1757)
- Bump
metamask/utils
andmetamask/snaps-registry
(#1738)
- Bump
@metamask/post-message-stream
from 6.1.2 to 7.0.0 (#1707, #1724) - Bump
@metamask/utils
and@metamask/snaps-registry
(#1694)
- Remove unused dependencies (#1680)
- Update transaction insights response and add severity level enum (#1653)
- Snaps are now able to specify a
severity
for alongside their insights. - See SIP-11 for more information.
- Snaps are now able to specify a
- Add
onInstall
andonUpdate
lifecycle hooks (#1643)
- Release package independently (#1600)
- The version of the package no longer needs to match the version of all other MetaMask Snaps packages.