Skip to content

Latest commit

 

History

History
218 lines (180 loc) · 12.2 KB

CHANGELOG.md

File metadata and controls

218 lines (180 loc) · 12.2 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

  • Bump @metamask/eth-json-rpc-provider from ^4.1.1 to ^4.1.5 (#273)

Changed

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

Changed

  • BREAKING: Adapt to EIP-1193 provider changes by using request method of provider instead of sendAsync (#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 minimum 4.1.0 of @metamask/eth-json-rpc-provider so that the request method is available.

10.1.0 [DEPRECATED]

Changed

  • Adapt to EIP-1193 provider changes (#252)
    • Deprecated sendAsync method is replaced with request method
  • Bump @metamask/eth-json-rpc-provider from ^4.0.0 to ^4.1.0 (#252)

Changed

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

Fixed

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

Fixed

  • Put back missing empty params to eth_blockNumber call removed in 9.0.1 (#198)

Fixed

  • Concurrency fix: Prevent multiple simultaneous polling loops (#208)
  • Bump @metamask/eth-json-rpc-provider from ^2.1.0 to ^2.3.1 (#198) (#217)

Changed

  • Rename package from eth-block-tracker to @metamask/eth-block-tracker (#183)

Changed

  • Typescript: Add checkForLatestBlock function to BlockTracker interface (#184)

Changed

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

Added

  • Typescript: Export BlockTracker interface (#168)

Changed

  • Dependency Updates: (#165)
    • Bump pify from ^3.0.0 to ^5.0.0
    • Bump @metamask/utils from ^5.0.1 to ^5.0.2

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.

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)

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.

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)

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 - 2021-03-25

Fixed

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

5.0.0 - 2021-03-25

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

  • Remove unused production dependencies (#60, #68)

4.4.3 - 2019-08-30

Added

  • Add SubscribeBlockTracker

Changed

  • Change events so that they now only return the block number (internal polling is done via eth_blockNumber)
  • Add retryTimeout and keepEventLoopActive to constructor
  • Update block trackers to inherit from safe-event-emitter rather than EventEmitter

Removed

  • Remove block event
    • Please use latest or sync.

4.0.0 - 2018-04-26

Added

  • Add isRunning method
  • Add error event

Changed

  • Significantly rewrite eth-block-tracker (primarily due to optimizing network IO)
  • Rename awaitCurrentBlock to getLatestBlock

Removed

  • Remove stop/start methods from BlockTrackers
    • BlockTrackers 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.
  • Remove tx body from block
  • Remove getTrackingBlock
  • Remove start/stop
  • Remove test/util/testBlockMiddleware

3.0.0 - 2018-04-16

Changed

  • Update published version so main module now exports unprocessed source
  • Module includes dist:
    • Bundle: dist/EthBlockTracker.js
    • ES5 source: dist/es5/
  • Rename lib to src
  • Update RpcBlockTracker to be a normal EventEmitter
    • It no longer provides a callback to event handlers.

Fixed

  • Fix awaitCurrentBlock return value

2.0.0 - 2017-06-14

Added

  • Expose EventEmitter interface (via async-eventemitter)
  • Add getTrackingBlock, getCurrentBlock, start, and stop
  • Add events: block, latest, sync

1.0.0 - 2017-02-03

Added

  • Add RpcBlockTracker