Skip to content

Latest commit

 

History

History
205 lines (174 loc) · 10.9 KB

CHANGELOG.md

File metadata and controls

205 lines (174 loc) · 10.9 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.

8.1.1 - 2021-05-12

Changed

  • Rename package to @metamask/providers (#168)

Fixed

  • Restore networkChanged event in MetaMaskInpageProvider (#171)

8.1.0 - 2021-05-05

Added

  • BaseProvider, implementing EIP-1193 without any legacy features (#144)
  • createExternalExtensionProvider, from the extension-provider package (#152)

8.0.4 - 2021-02-04

Fixed

  • Fix warning on second currentProvider access (#138)

8.0.3 - 2021-01-20

Fixed

  • Restore 'data' provider event (#135)

8.0.2 - 2021-01-12

Changed

  • Reduce window.web3 shim console noise (#133)

8.0.1 - 2020-12-08

Fixed

  • Fix 8.0.0 types (#127)

8.0.0 - 2020-12-07

Added

  • Add logger parameter to initializeProvider (#116)
  • Add window.web3 shim, shimWeb3 export (#113, #115)
    • This is to maintain window.web3.currentProvider once MetaMask stops injecting window.web3 (very soon), and to log attempts to access any properties on the shim other than currentProvider.
    • initializeWeb3 now has a shouldShimWeb3 argument, which causes the shim to be set as window.web3 if true.

Changed

  • (BREAKING) Rename initProvider export to initializeProvider (#114)
  • (BREAKING) Replace ethereum.publicConfigStore with new set of JSON-RPC notifications (#109)

Removed

  • (BREAKING) Remove _metamask.isEnabled and _metamask.isApproved (#112)
  • (BREAKING) Remove the chainIdChanged event (#111)
  • (BREAKING) Remove ethereum.publicConfigStore (#109)
  • (BREAKING) Remove web3.js-related functionality (#106)
    • This functionality caused the page to reload if there was a web3.js instance at window.web3, and kept web3.eth.defaultAccount in sync with ethereum.selectedAddress.
    • This functionality is replicated in @metamask/legacy-web3.

Fixed

  • Correctly implement connect and disconnect events (#120)
    • See EIP-1193 for the specification of these events.
    • disconnect emits with an RPC error. Like all such errors emitted by this module, they have a code property with a number value. There are currently two codes:
      • 1013 indicates that MetaMask is attempting to reestablish the connection
      • 1011 indicates that a page reload is required
  • Send page metadata even if page is already loaded (#119)
  • Convert MetaMaskInpageProvider logger to instance variable (#118)
    • Previously, it was erroneously a singleton across all class instances.
  • Stop emitting state change events on initialization (#117)
    • Includes accountsChanged, chainChanged, and networkChanged.
    • This prevents sites that handle any of these events by reloading the page from entering into a reload loop.

7.0.0 - 2020-09-08

Changed

  • (BREAKING) Changed casing of Metamask in all exports to MetaMask
    • A brand is a brand ¯\_(ツ)_/¯

6.3.0 - 2020-09-04

Added

  • Types

Changed

  • ethereum.networkVersion and .chainId now default to null instead of undefined
  • Improved JSDoc comments and tags

6.2.0 - 2020-08-04

Added

  • Package consumers can now provide a logger object to the provider constructor, to override the default logger
    • The default logger is the console global
    • The following methods are required: debug, error, info, log, trace

6.1.1 - 2020-07-28

Changed

  • Updated dependencies, which produces a smaller bundle size

6.1.0 - 2020-07-21

Changed

  • Only emit data event for notifications present in ^4.0.0 (#73)
    • Some consumers make assumptions about the shape of the object emitted with the event that do not hold for all notifications in ^6.0.0.
  • Select icon using rel~="icon" when retrieving site metadata (#76)
    • This is instead of defaulting to rel="shortcut icon".

Fixed

  • Emit accountsChanged event after all related state has been updated (#72)
    • For example, ethereum.selectedAddress will now have been updated by the time the event is emitted.
  • Enable retrieval of site icons not hosted on the same origin (#78)
    • For example, icons hosted on assets.foo.com that are used on foo.com will now be retrieved successfully.

6.0.1 - 2020-07-15

Fixed

  • Warning message for the data event
    • This deprecated event was added back in 6.0.0, but the warning message was not defined.
  • Restore publicConfigStore property as alias for _publicConfigStore
    • The _publicConfigStore was named publicConfigStore before 4.0.0. The original property turned out to be used by consumers. The store is scheduled to be removed completely, and accessing publicConfigStore emits a warning.

6.0.0 - 2020-07-04

Added

  • The data event
    • This event was removed in 4.0.0, as it was thought to only be used internally. This assumption was incorrect, and the event is now restored.

Changed

  • (BREAKING) Restore the notification event value to its pre-4.0.0 state
    • Prior to 4.0.0 this event was emitted by code in the MetaMask extension. Its value was inadvertently changed when it was moved to this package.

5.2.1 - 2020-06-29

Changed

  • Un-deprecate isConnected method.

5.2.0 - 2020-06-24

Changed

  • Remove property protections
    • Unless we lock down the entire provide object, which we can't do, a determined consumer can break our provider. Thus, protected properties are pointless.
  • Fix requests params type checks
  • Update deprecation warning messages per most recent deprecation plans

5.1.0 - 2020-06-01

Changed

  • Update request params type to unknown[] | object
    • This is not breaking in practice, since no RPC methods with other params values exist.

5.0.2 - 2020-05-22

Changed

  • Fix ethereum.send return value for certain argument combination
    • Reverted to pre-4.0.0 state
  • Stop protecting overwrites of the following properties, that existed prior to 4.0.0:
    • ethereum.isMetaMask
    • ethereum._metamask
  • Protect the following new, private properties required for ethereum.request to work:
    • ethereum._rpcRequest
    • ethereum._rpcEngine

5.0.1 - 2020-05-11

Changed

  • Rename package to @metamask/inpage-provider
  • Prevent overwrite of certain properties on the Provider
    • ethereum.request
    • ethereum.isMetaMask
    • ethereum._metamask

5.0.0 - 2020-04-22

Added

  • The most recent EIP 1193 API (#30)
    • The method request
    • The events disconnect and message
  • A global initialization event, ethereum#initialized, for asynchronous injection (#31)
  • Helper methods for initializing the provider (#31)

Changed

  • (BREAKING) Use named instead of default exports (#31)
  • (BREAKING) MetaMaskInpage constructor now takes a connectionStream and an options object (#31)
  • (BREAKING) _metamask.sendBatch -> _metamask.requestBatch (#30)
  • (BREAKING) Revert send to match provider in v7.7.8 of metamask-extension (#29)
  • The connect event now emits with a ProviderConnectInfo object per EIP 1193 (#30)
  • Deprecated the send method (#30)
  • Deprecated the events close, networkChanged, and notification, and added deprecation warnings for them (#30)
  • Un-deprecated sendAsync (#29)