Skip to content
This repository was archived by the owner on Oct 16, 2025. It is now read-only.

Releases: MetaMask/eth-block-tracker

7.1.0

12 Jul 08:09
f703689

Choose a tag to compare

Added

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

7.0.1

28 Apr 13:11
a2cdf81

Choose a tag to compare

Changed

  • Dependency updates:
    • Bump @metamask/utils from 5.0.1 to 5.0.2
    • Bump @metamask/safe-event-emitter from 2.0.0 to 3.0.0 (#143)

7.0.0

16 Feb 22:55
3f23e4e

Choose a tag to compare

Changed

  • BREAKING: The type of the provider option for PollingBlockTracker and SubscribeBlockTracker has changed (#130)
    • The provider option must be compatible with the SafeEventEmitterProvider 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 that send method in this package though.

Removed

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

6.1.0

07 Dec 18:10
32fc841

Choose a tag to compare

Added

  • Add back Provider type that was accidentally removed in 6.0.0 (#117)

Fixed

  • Align Provider type with eth-json-rpc-middleware to prevent typecasting (#117)

6.0.0

22 Aug 22:46
7c99edd

Choose a tag to compare

Added

  • 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 to metamask:eth-block-tracker:* or metamask:*.
  • 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)

Changed

  • 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.
  • 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 to eth_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.

Security

  • Add @lavamoat/allow-scripts to ensure that install scripts are opt-in for dependencies (#97)

5.0.1

25 Mar 17:35
daa262e

Choose a tag to compare

Fixed

  • Add missing types field to package.json (#75)

5.0.0

25 Mar 17:01
78da01d

Choose a tag to compare

Changed

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

Removed

  • Unused production dependencies (#60, #68)

4.4.3

25 Mar 17:00

Choose a tag to compare

Release not documented, kept for historical purposes.

4.0.0

25 Mar 16:59

Choose a tag to compare

Significant rewrite of eth-block-tracker. Primary reason was optimizing network IO.

BlockTrackers no longer have manual stop/start methods, they now automatically start and stop based on listener count for the latest and sync events. You can force a stop by calling the EventEmitter method removeAllListeners.

Events now only return the block number. Internal polling is done via eth_blockNumber.
The block event has been removed, please use latest or sync.

Changed

  • Added isRunning method
  • Added error event
  • Renamed awaitCurrentBlock -> getLatestBlock
  • Removed tx body from block
  • Removed getTrackingBlock
  • Removed start/stop
  • Removed block event
  • Removed test/util/testBlockMiddleware

3.0.0

25 Mar 16:59

Choose a tag to compare

Changed

  • npm module main now exports unprocessed source
  • Module includes dist:
    • Bundle: dist/EthBlockTracker.js
    • ES5 source: dist/es5/
  • Fixes awaitCurrentBlock return value
  • lib renamed to src
  • eth-block-tracker is now a normal EventEmitter, does not provide a callback to event handlers