README
sof-block-tracker
This module walks the Sophon blockchain, keeping track of the latest block. It uses a susyweb provider as a data source and will continuously poll for the next block.
const HttpProvider = require('sofjs-provider-http')
const BlockTracker = require('sof-block-tracker')
const provider = new HttpProvider('https://mainnet.infura.io')
const blockTracker = new BlockTracker({ provider })
blockTracker.on('block', console.log)
blockTracker.start()
methods
new BlockTracker({ provider, pollingInterval })
creates a new block tracker with provider
as a data source and
pollingInterval
(ms) timeout between polling for the latest block.
getCurrentBlock()
synchronous returns the current block. may be null
.
console.log(blockTracker.getCurrentBlock())
start({ fromBlock })
Start walking from the fromBlock
(default: 'latest'
) forward.
fromBlock
should be a number as a hex encoded string.
blockTracker.start()
blockTracker.start({ fromBlock: '0x00' })
stop()
Stop walking the blockchain.
blockTracker.stop()
EVENTS
block
The block
event is emitted for every block in order.
Use this event if you want to operate on every block without missing any.
blockTracker.on('block', (newBlock) => console.log(newBlock))
latest
The latest
event is emitted for every that is detected to be the latest block.
This means skipping a block if there were two created since the last polling period.
Use this event if you don't care about stale blocks.
blockTracker.on('latest', (newBlock) => console.log(newBlock))
sync
The sync
event is emitted the same as "latest" but includes the previous block.
blockTracker.on('latest', ({ newBlock, oldBlock }) => console.log(newBlock, oldBlock))
NOTES
Does not currently handle forks.