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.
- Allow Snap exports to have async initialization logic (#2918)
- Add support for
onSettingsPage
export (#2911)
- Add
isSecureContext
global (#2893)
- Remove unnecessary proxy for provider globals (#2850)
- Make fetch responses an instance of
Response
(#2889)
- Bump MetaMask dependencies (#2853)
- Reduce unnecessary JSON validation (#2844)
- Remove
eth_sign
(#2772)- This method was removed from the MetaMask extension, so any references to it in Snaps can be removed.
- Convert
createWindow
parameters to options bag (#2765)
- Add support for
metamask:
schemed URLs (#2719)
- Fix missing execution environment bundles (#2734)
- Fix invalid types in type declaration in some cases (#2714)
- Unblock
wallet_requestSnaps
(#2661)
- 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/json-rpc-engine
from^9.0.0
to^9.0.2
(#2593) - Bump
@metamask/snaps-utils
from^7.8.0
to^7.8.1
(#2595)
- 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
- Set
@metamask/providers
from^17.0.0
to17.0.0
(#2445)17.1.0
and17.1.1
introduce regressions.
- Support parameters in
setTimeout
andsetInterval
(#2513)
- Add origin to lifecycle hooks (#2441)
- Lifecycle hooks can now use the
origin
parameter to determine the origin of the installation or update.
- Lifecycle hooks can now use the
- Bump
@metamask/providers
from16.1.0
to17.0.0
(#2442)
- Add
context
field tosnap_createInterface
(#2413)
- Make
onUserInput
export optional (#2373)- Snaps will no longer crash when interacting with a user interface when the
Snap does not export
onUserInput
.
- Snaps will no longer crash when interacting with a user interface when the
Snap does not export
- Throw an error if starting Snap has no exports (#2357)
- Allow
null
inFormSubmitEventStruct
form state (#2333)
- BREAKING: Remove broken
ethereum
properties (#2296)- Snaps can no longer access
on
andremoveListener
onethereum
. - This feature was already non-functional.
- Snaps can no longer access
- Bump MetaMask dependencies (#2270)
- Bump LavaMoat packages (#2234)
- 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)
- Enforce JSON-RPC response size limits (#2201)
- Update several LavaMoat packages (#2173)
- BREAKING: Stop bundling offscreen execution environment (#2154)
- BREAKING: Deploy multiple bundles to AWS (#2150)
- From now on the bundles will be served at
https://execution.metamask.io/%BUILD_TYPE%/%VERSION%/index.html
.
- From now on the bundles will be served at
- Export
ProxySnapExecutor
(#2153) - Reduce executor bundle sizes (#2160)
- Bump MetaMask dependencies (#2129, #2132)
- Add support for signature insights (#2074)
- Bump
@metamask/providers
from14.0.1
to14.0.2
(#1992)
- Fix a few issues with passing non-JSON-serializable values (#1974)
- Pause request timer when
fetch
is called (#1756)
- Use
@metamask/snaps-sdk
package (#1930, #1946, #1949, #1954)- This package replaces the
@metamask/snaps-types
and @metamask/snaps-ui
packages.
- This package replaces the
- Add
OnHomePage
export (#1896)
- Await stream message delivery (#1928)
- Improve error handling (#1841)
- Snaps can now throw a
SnapError
, without causing the Snap to crash.
- Snaps can now throw a
- Standardise all errors thrown in execution environments (#1830)
- Add keyring export and endowment (#1787)
- BREAKING: Bump minimum Node.js version to
^18.16.0
(#1741)
- Allow passing
undefined
parameters torequest()
(#1776) - Fix an issue where errors would not correctly be returned (#1772)
- Initial stable release from main branch (#1757)
- Add
onNameLookup
export (#1394)
- Sanitize JSON before checking for blocked methods (#1762)
- Bump
@metamask/post-message-stream
from 6.1.2 to 7.0.0 (#1707, #1724) - Bump
@metamask/utils
and@metamask/snaps-registry
(#1694)
- Add hardening for
Request
,Headers
, andResponse
endowments (#1695)
- Bump
ses
to0.18.7
(#1666)
- Remove unused dependencies (#1680)
- Update LavaMoat packages to latest versions (#1657)
- Remove direct dependency on SES (#1660)
- It's now a dev dependency, as it's only used in development.
- Pass correct scuttle args (#1654)
- Fix deployment of the iframe execution environment (#1627)
- Release package independently (#1600)
- The version of the package no longer needs to match the version of all other MetaMask Snaps packages.