ethereumjs / ethereumjs-blockstream

Reliable stream of Ethereum blocks
MIT License
80 stars 19 forks source link

Changes logs added/removed callbacks to receive an array of all logs in a particular block. #26

Closed MicahZoltu closed 5 years ago

MicahZoltu commented 5 years ago

Also fires callback with empty array when block contains no logs matching filters.

Also includes blockHash with callback.

This change makes it easier for consumers to know when they are done receiving logs for a particular block. With this knowledge, they can now process block + logs as a single atomic operation if they desire by saving off the block and waiting for a matching set of logs to come through (or notification of block removal in case log fetching fails).

This change somewhat constrains the problem being solved by this library to just "getting ordering right", rather than trying to provide a nice interface into the stream. It isn't difficult for users of this library to split apart the logs into multiple callbacks with a very tiny callback wrapper, yet this change opens the doors to a number of new use cases.