Skip to content

Latest commit

 

History

History
711 lines (434 loc) · 30.8 KB

File metadata and controls

711 lines (434 loc) · 30.8 KB

Changelog

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.

Fixed

  • Simplify endowment handling (#4012)

Added

  • Export endowment factories via @metamask/snaps-execution-environments/endowments (#3957)

Changed

  • Bump @metamask/utils from 11.10.0 to 11.11.0 (#3935)
  • Bump @metamask/json-rpc-engine from 10.2.3 to 10.2.4 (#3925)
  • Bump @lavamoat/webpack from 2.0.0 to 2.1.1 (#3945)

Changed

  • Bump lavamoat from 10.1.1 to 11.0.0 (#3908)
  • Bump @lavamoat/webpack from 1.5.8 to 2.0.0 (#3909)

Changed

  • Bump ses from 1.14.0 to 1.15.0 (#3880)

Changed

  • BREAKING: Pass executor parameters by object (#3803)

Fixed

  • Inspect wallet_invokeMethod requests before sending (#3819)
  • Block metamask_sendDomainMetadata (#3818)

Added

  • Add Multichain API support (#3759)

Changed

  • Bump @metamask/json-rpc-engine from 10.2.0 to 10.2.1 (#3804)
  • Bump @metamask/utils from 11.8.1 to 11.9.0 (#3783)

Added

  • Add support for DateTimePicker component (#3698)

Changed

  • Bump @lavamoat/webpack from 1.5.3 to 1.5.4 (#3751)
  • Bump lavamoat from 10.0.1 to 10.0.2 (#3752)

Fixed

  • Input change events in onUserInput now accepts null values (#3722)

Changed

Changed

  • Bump ses from 1.13.1 to 1.14.0 (#3557)

Fixed

  • Ignore "Premature close" stream messages (#3074)

Added

  • Add support for onActive and onInactive lifecycle hooks (#3542)

Added

  • Add non-fungible assets support to onAssetsLookup and onAssetsMarketData (#3527)

Added

  • BREAKING: Market data is now fetched through onAssetsMarketData instead of onAssetConversion (#3496)
    • Previously, onAssetConversion could return a marketData property, which contained market data for the asset being converted. This property has been removed, and onAssetsMarketData should be used instead.

Added

  • Add support for the onWebSocketEvent handler (#3450)
  • Add support for the onStart handler (#3455)

Changed

  • BREAKING: Drop support for Node.js 18 and 21 (#3447)
  • Bump ses from 1.12.0 to 1.13.0 (#3438)

Added

  • Add support for AccountSelector component (#3088)

Added

  • Add support for wallet_switchEthereumChain (#2634)
  • Add support for SIP-31 onClientRequest handler (#3394)

Fixed

  • Fix deployment of execution environments (#3386)

Changed

  • BREAKING: Build Snaps execution environments with Webpack (#3322)
    • The execution environments are now in dist/webpack instead of dist/browserify.
    • The node-process and node-thread environments can now be imported as @metamask/snaps-execution-environments/node-process and @metamask/snaps-execution-environments/node-thread respectively.
  • Change request notification order (#3381)
  • Bump @metamask/post-message-stream from 9.0.0 to 10.0.0 (#3322)
  • Bump @metamask/providers from 22.0.1 to 22.1.0 (#3363)

Removed

  • BREAKING: Remove web worker execution environment (#3371)

Fixed

  • Reduce unnecessary validation on responses (#3350)
  • Return early from executor if possible to avoid unnecessary checks (#3349)
  • Stop unnecessarily encoding messages in web view executor (#3347)

Fixed

  • Add missing includeMarketData param to onAssetsConversion handler (#3323)

Added

  • Add support for market data to onAssetsConversion handler (#3299)
  • Add support for onAssetHistoricalPrice handler (#3282)

Added

  • Add support for the AddressInput component (#3129)
  • Add support for the AssetSelector component (#3166)

Changed

  • Bump @metamask/snaps from 20.0.0to21.0.0` (#3247)
  • Bump nanoid from 3.1.31 to 3.3.10 (#3228, #3255)

Changed

  • BREAKING: Use a WebView per Snap on mobile (#3085)
    • The WebView bundle no longer supports proxy executor calls and functions as a single executor.
  • BREAKING: Encode messages in WebViewMessageStream as byte arrays (#3077)
    • A version of snaps-controllers that supports this encoding is required.
  • Bump MetaMask dependencies (#3091, #3057, #3050)

Added

  • Add onProtocolRequest handler (#2875)
  • Add URLSearchParams as a default endowment (#3047)

Added

  • Add Intl as a default global (#3035)
  • Add support for onAssetsLookup and onAssetsConversion handlers (#3028)

Changed

Fixed

  • Skip unnecesary provider initialization (#2967)

Added

  • Allow Snap exports to have async initialization logic (#2918)
  • Add support for onSettingsPage export (#2911)

Added

  • Add isSecureContext global (#2893)

Fixed

  • Remove unnecessary proxy for provider globals (#2850)
  • Make fetch responses an instance of Response (#2889)

Changed

  • Bump MetaMask dependencies (#2853)

Fixed

  • Reduce unnecessary JSON validation (#2844)

Removed

  • Remove eth_sign (#2772)
    • This method was removed from the MetaMask extension, so any references to it in Snaps can be removed.

Changed

  • Convert createWindow parameters to options bag (#2765)

Added

  • Add support for metamask: schemed URLs (#2719)

Fixed

  • Fix missing execution environment bundles (#2734)

Fixed

  • Fix invalid types in type declaration in some cases (#2714)

Changed

  • Unblock wallet_requestSnaps (#2661)

Fixed

  • 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)

Changed

  • 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)

Changed

  • 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)

Fixed

  • 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 or NodeNext as its moduleResolution option.
  • Set @metamask/providers from ^17.0.0 to 17.0.0 (#2445)
    • 17.1.0 and 17.1.1 introduce regressions.

Changed

  • Inline LavaMoat in WebView bundle (#2528, #2564)

Added

Fixed

  • Support parameters in setTimeout and setInterval (#2513)

Changed

  • Update onNameLookup response to include domainName (#2484)
  • Bump MetaMask dependencies (#2460)

Added

  • Add origin to lifecycle hooks (#2441)
    • Lifecycle hooks can now use the origin parameter to determine the origin of the installation or update.

Changed

  • Bump @metamask/providers from 16.1.0 to 17.0.0 (#2442)

Added

  • Add context field to snap_createInterface (#2413)

Changed

  • Unblock eth_sendRawTransaction (#2362)
  • Bump @metamask/providers from 16.0.0 to 16.1.0 (#2386)

Fixed

  • Make onUserInput export optional (#2373)
    • Snaps will no longer crash when interacting with a user interface when the Snap does not export onUserInput.

Fixed

  • Throw an error if starting Snap has no exports (#2357)

Fixed

  • Allow null in FormSubmitEventStruct form state (#2333)

Removed

  • BREAKING: Remove broken ethereum properties (#2296)
    • Snaps can no longer access on and removeListener on ethereum.
    • This feature was already non-functional.

Changed

  • Bump MetaMask dependencies (#2270)

Changed

  • Bump @metamask/providers to ^15.0.0 (#2231)
  • Bump @metamask/json-rpc-engine to ^7.3.3 (#2247)

Changed

  • Bump LavaMoat packages (#2234)

Fixed

  • Fix minor build configuration problems (#2220)

Changed

  • BREAKING: Update ESM build to be fully compliant with the ESM standard (#2210)
  • Bump @metamask/rpc-errors to ^6.2.1 (#2209)

Fixed

  • Enforce JSON-RPC response size limits (#2201)

Changed

  • Update several LavaMoat packages (#2173)

Added

  • Add WebView execution environment (#2005)
  • Add support for dynamic user interfaces (#1465)

Changed

  • 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.
  • Export ProxySnapExecutor (#2153)
  • Reduce executor bundle sizes (#2160)
  • Bump MetaMask dependencies (#2129, #2132)

Added

  • Add support for signature insights (#2074)

Changed

  • Bump SES and LavaMoat (#2105)
  • Bump several MetaMask dependencies (#2054, #2100)

Changed

  • Move iframe bundle to HTML body (#2045)
  • Bump @metamask/json-rpc-engine from 7.3.0 to 7.3.1 (#2065)

Changed

  • Bump @metamask/providers from 14.0.1 to 14.0.2 (#1992)

Changed

  • Block wallet_revokePermissions (#1978)
  • Bump several MetaMask dependencies (#1964)

Fixed

  • Fix a few issues with passing non-JSON-serializable values (#1974)

Changed

  • Pause request timer when fetch is called (#1756)

Changed

  • Use @metamask/snaps-sdk package (#1930, #1946, #1949, #1954)
    • This package replaces the @metamask/snaps-types and
    • @metamask/snaps-ui packages.

Added

  • Add OnHomePage export (#1896)

Fixed

  • Await stream message delivery (#1928)

Changed

  • Improve error handling (#1841)
    • Snaps can now throw a SnapError, without causing the Snap to crash.
  • Standardise all errors thrown in execution environments (#1830)

Added

  • Add keyring export and endowment (#1787)

Changed

  • BREAKING: Bump minimum Node.js version to ^18.16.0 (#1741)

Changed

  • Remove unmaintained OpenRPC doc for execution environment (#1782)
  • Update LavaMoat (#1754)

Fixed

  • Allow passing undefined parameters to request() (#1776)
  • Fix an issue where errors would not correctly be returned (#1772)

Changed

  • Initial stable release from main branch (#1757)

Added

  • Add onNameLookup export (#1394)

Changed

  • Remove pump (#1730)
  • Bump metamask/utils and metamask/snaps-registry (#1738)

Fixed

  • Sanitize JSON before checking for blocked methods (#1762)

Changed

  • Bump @metamask/post-message-stream from 6.1.2 to 7.0.0 (#1707, #1724)
  • Bump @metamask/utils and @metamask/snaps-registry (#1694)

Fixed

  • Add hardening for Request, Headers, and Response endowments (#1695)

Changed

  • Bump ses to 0.18.7 (#1666)

Fixed

  • Remove unused dependencies (#1680)

Changed

  • Update LavaMoat packages to latest versions (#1657)

Removed

  • Remove direct dependency on SES (#1660)
    • It's now a dev dependency, as it's only used in development.

Fixed

  • Pass correct scuttle args (#1654)

Added

  • Add onInstall and onUpdate lifecycle hooks (#1643)
  • Unblock personal_sign JSON-RPC method (#1601)

Fixed

  • Fix deployment of the iframe execution environment (#1627)

Changed

  • Release package independently (#1600)
    • The version of the package no longer needs to match the version of all other MetaMask Snaps packages.