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.
- Bump
@metamask/eth-json-rpc-provider
from^4.1.1
to^4.1.5
(#273)
- Bump
@metamask/eth-json-rpc-provider
from^4.1.0
to^4.1.1
(#261) - Bump
@metamask/safe-event-emitter
from^3.0.0
to^3.1.1
(#261) - Bump
@metamask/utils
from^8.1.0
to^9.1.0
(#261)
- BREAKING: Adapt to EIP-1193 provider changes by using
request
method of provider instead ofsendAsync
(#252)- This change included in
10.1.0
was mistakenly categorised as a non-breaking change. - This requires provider object to have the
request
method. You need to upgrade to minimum4.1.0
of@metamask/eth-json-rpc-provider
so that therequest
method is available.
- This change included in
10.1.0 [DEPRECATED]
- Adapt to EIP-1193 provider changes (#252)
- Deprecated
sendAsync
method is replaced withrequest
method
- Deprecated
- Bump
@metamask/eth-json-rpc-provider
from^4.0.0
to^4.1.0
(#252)
- BREAKING: Drop support for Node.js v16; add support for Node.js v20, v22 (#245)
- Update
@metamask/eth-json-rpc-provider
from^3.0.2
to^4.0.0
(#247)
- Update dependency
@metamask/eth-json-rpc-engine
from^7.1.1
to^8.0.2
(#235) - Update dependency
@metamask/eth-json-rpc-provider
from^2.3.1
to^3.0.2
(#235)
- Put back missing empty
params
toeth_blockNumber
call removed in 9.0.1 (#198)
- Concurrency fix: Prevent multiple simultaneous polling loops (#208)
- Bump
@metamask/eth-json-rpc-provider
from^2.1.0
to^2.3.1
(#198) (#217)
- Rename package from
eth-block-tracker
to@metamask/eth-block-tracker
(#183)
- Typescript: Add
checkForLatestBlock
function toBlockTracker
interface (#184)
- Bump @metamask/utils from ^5.0.2 to ^8.1.0 (#178)
- BREAKING: Bump @metamask/eth-json-rpc-provider from ^1.0.0 to ^2.1.0 (#174)
- BREAKING: Increase minimum Node.js version to 16 (#173)
- Typescript: Export
BlockTracker
interface (#168)
- Dependency Updates: (#165)
- Bump pify from ^3.0.0 to ^5.0.0
- Bump @metamask/utils from ^5.0.1 to ^5.0.2
- Add
usePastBlocks
to constructor (#151)- Optional flag. When set to true, it allows blocks less than the current block number to be cached and returned.
- Dependency updates:
- BREAKING: The type of the
provider
option forPollingBlockTracker
andSubscribeBlockTracker
has changed (#130)- The
provider
option must be compatible with theSafeEventEmitterProvider
type from@metamask/eth-json-rpc-middleware
. - The new provider type should be mostly equivalent, except that it's now expected to have a
send
method. We don't use thatsend
method in this package though.
- The
- BREAKING: Remove the
Provider
exported type (#130)- We now use
@metamask/eth-json-rpc-provider
for this instead, so there was no need to re-export it.
- We now use
- Add back Provider type that was accidentally removed in 6.0.0 (#117)
- Align Provider type with
eth-json-rpc-middleware
to prevent typecasting (#117)
- Add logging (#112)
- You will not be able to see log messages by default, but you can turn them on for this library by setting the
DEBUG
environment variable tometamask:eth-block-tracker:*
ormetamask:*
.
- You will not be able to see log messages by default, but you can turn them on for this library by setting the
- Add
destroy
method to block tracker classes (#106) - Update PollingBlockTracker to support new
blockResetDuration
option (#103) - Expose types that represent options to PollingBlockTracker and SubscribeBlockTracker constructors (#103)
- BREAKING: Require Node >= 14 (#113)
- BREAKING: Make BaseBlockTracker abstract (#103)
- If you are using this class directly, you must only use PollingBlockTracker or SubscribeBlockTracker.
- BREAKING: Make options for BaseBlockTracker required (#103)
- Subclasses must pass a set of options to
super
in their constructors.
- Subclasses must pass a set of options to
- Make argument to
removeAllListeners
in BaseBlockTracker optional (#103) - BREAKING: Update signatures for
_start
and_end
in BaseBlockTracker (#103)- Subclasses must provide an implementation for both of these methods; they are no longer no-ops.
- Both methods must return a promise.
- Update SubscribeBlockTracker to not pass empty
newHeads
parameter toeth_subscribe
call (#108)- This change was made because OpenEthereum does not support this parameter. While we've done our best to confirm that this will not be a breaking change for other Ethereum implementations, you will want to confirm no breakages for yours.
- Add
@lavamoat/allow-scripts
to ensure that install scripts are opt-in for dependencies (#97)
5.0.1 - 2021-03-25
- Add missing
types
field topackage.json
(#75)
5.0.0 - 2021-03-25
- (BREAKING) Refactor exports (#71)
- (BREAKING) Target ES2017, remove ES5 builds (#71)
- Migrate to TypeScript (#71)
- Update various dependencies (#44, #49, #54, #59, #61, #62, #63, #70, #72)
4.4.3 - 2019-08-30
- Add SubscribeBlockTracker
- Change events so that they now only return the block number (internal polling is done via
eth_blockNumber
) - Add
retryTimeout
andkeepEventLoopActive
to constructor - Update block trackers to inherit from
safe-event-emitter
rather than EventEmitter
- Remove
block
event- Please use
latest
orsync
.
- Please use
4.0.0 - 2018-04-26
- Add isRunning method
- Add
error
event
- Significantly rewrite
eth-block-tracker
(primarily due to optimizing network IO) - Rename
awaitCurrentBlock
togetLatestBlock
- Remove
stop
/start
methods from BlockTrackers- BlockTrackers now automatically start and stop based on listener count for the
latest
andsync
events. You can force a stop by calling theEventEmitter
methodremoveAllListeners
.
- BlockTrackers now automatically start and stop based on listener count for the
- Remove tx body from block
- Remove getTrackingBlock
- Remove start/stop
- Remove test/util/testBlockMiddleware
3.0.0 - 2018-04-16
- Update published version so main module now exports unprocessed source
- Module includes dist:
- Bundle:
dist/EthBlockTracker.js
- ES5 source:
dist/es5/
- Bundle:
- Rename
lib
tosrc
- Update RpcBlockTracker to be a normal
EventEmitter
- It no longer provides a callback to event handlers.
- Fix
awaitCurrentBlock
return value
2.0.0 - 2017-06-14
- Expose EventEmitter interface (via
async-eventemitter
) - Add
getTrackingBlock
,getCurrentBlock
,start
, andstop
- Add events:
block
,latest
,sync
1.0.0 - 2017-02-03
- Add RpcBlockTracker