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
- Rename package to
@metamask/providers
(#168)
- Restore
networkChanged
event inMetaMaskInpageProvider
(#171)
8.1.0 - 2021-05-05
BaseProvider
, implementing EIP-1193 without any legacy features (#144)createExternalExtensionProvider
, from the extension-provider package (#152)
8.0.4 - 2021-02-04
- Fix warning on second
currentProvider
access (#138)
8.0.3 - 2021-01-20
- Restore 'data' provider event (#135)
8.0.2 - 2021-01-12
- Reduce
window.web3
shim console noise (#133)
8.0.1 - 2020-12-08
- Fix
8.0.0
types (#127)
8.0.0 - 2020-12-07
- Add
logger
parameter toinitializeProvider
(#116) - Add
window.web3
shim,shimWeb3
export (#113, #115)- This is to maintain
window.web3.currentProvider
once MetaMask stops injectingwindow.web3
(very soon), and to log attempts to access any properties on the shim other thancurrentProvider
. initializeWeb3
now has ashouldShimWeb3
argument, which causes the shim to be set aswindow.web3
iftrue
.
- This is to maintain
- (BREAKING) Rename
initProvider
export toinitializeProvider
(#114) - (BREAKING) Replace
ethereum.publicConfigStore
with new set of JSON-RPC notifications (#109)
- (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 atwindow.web3
, and keptweb3.eth.defaultAccount
in sync withethereum.selectedAddress
. - This functionality is replicated in @metamask/legacy-web3.
- This functionality caused the page to reload if there was a
- Correctly implement
connect
anddisconnect
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 acode
property with anumber
value. There are currently two codes:1013
indicates that MetaMask is attempting to reestablish the connection1011
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
, andnetworkChanged
. - This prevents sites that handle any of these events by reloading the page from entering into a reload loop.
- Includes
7.0.0 - 2020-09-08
- (BREAKING) Changed casing of
Metamask
in all exports toMetaMask
- A brand is a brand ¯\_(ツ)_/¯
6.3.0 - 2020-09-04
- Types
ethereum.networkVersion
and.chainId
now default tonull
instead ofundefined
- Improved JSDoc comments and tags
6.2.0 - 2020-08-04
- 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
- The default logger is the
6.1.1 - 2020-07-28
- Updated dependencies, which produces a smaller bundle size
6.1.0 - 2020-07-21
- 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
.
- Some consumers make assumptions about the shape of the object emitted with the event that do not hold for all notifications in
- Select icon using
rel~="icon"
when retrieving site metadata (#76)- This is instead of defaulting to
rel="shortcut icon"
.
- This is instead of defaulting to
- 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.
- For example,
- Enable retrieval of site icons not hosted on the same origin
(#78)
- For example, icons hosted on
assets.foo.com
that are used onfoo.com
will now be retrieved successfully.
- For example, icons hosted on
6.0.1 - 2020-07-15
- Warning message for the
data
event- This deprecated event was added back in
6.0.0
, but the warning message was not defined.
- This deprecated event was added back in
- Restore
publicConfigStore
property as alias for_publicConfigStore
- The
_publicConfigStore
was namedpublicConfigStore
before4.0.0
. The original property turned out to be used by consumers. The store is scheduled to be removed completely, and accessingpublicConfigStore
emits a warning.
- The
6.0.0 - 2020-07-04
- 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.
- This event was removed in
- (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.
- Prior to
5.2.1 - 2020-06-29
- Un-deprecate
isConnected
method.
5.2.0 - 2020-06-24
- 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
- Update
request
params
type tounknown[] | object
- This is not breaking in practice, since no RPC methods with other
params
values exist.
- This is not breaking in practice, since no RPC methods with other
5.0.2 - 2020-05-22
- Fix
ethereum.send
return value for certain argument combination- Reverted to pre-
4.0.0
state
- Reverted to pre-
- 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
- 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
- The most recent EIP 1193 API (#30)
- The method
request
- The events
disconnect
andmessage
- The method
- A global initialization event,
ethereum#initialized
, for asynchronous injection (#31) - Helper methods for initializing the provider (#31)
- (BREAKING) Use named instead of default exports (#31)
- (BREAKING)
MetaMaskInpage
constructor now takes aconnectionStream
and an options object (#31) - (BREAKING)
_metamask.sendBatch
->_metamask.requestBatch
(#30) - (BREAKING) Revert
send
to match provider in v7.7.8 ofmetamask-extension
(#29) - The
connect
event now emits with aProviderConnectInfo
object per EIP 1193 (#30) - Deprecated the
send
method (#30) - Deprecated the events
close
,networkChanged
, andnotification
, and added deprecation warnings for them (#30) - Un-deprecated
sendAsync
(#29)