Package Exports
- @ceramicnetwork/anchor-listener
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@ceramicnetwork/anchor-listener) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Ceramic Anchor listener
Getting started
Installation
$ npm install @ceramicnetwork/anchor-listenerUsage
import {
createBlockProofsListener,
createBlocksProofsLoader,
createAncestorBlocksProofsLoader,
} from '@ceramicnetwork/anchor-listener'
import { take, timeout } from 'rxjs'
// Listen to new block events on the provider and load anchor proofs
const subsription = createBlockProofsListener({ chainId: 'eip155:1', confirmations: 20, provider: ... }).subscribe({
next(event) {
// event contains the `block` and `proofs`
}
})
// Unsubscribe to stop listening
subscription.unsubscribe()
// Load proofs for a range of blocks
createBlocksProofsLoader({ chainId: 'eip155:1', fromBlock: 100, toBlock: 120, provider: ... }).subscribe({
next(event) {
// event contains the `block` and `proofs`
}
})
// Load proofs for blocks, walking up the parents until the expected ancestor hash is found
createAncestorBlocksProofsLoader({ chainId: 'eip155:1', initialBlock: 'latest', targetAncestorHash: '...', provider: ... }).pipe(
// Operators can be used to add stopping conditions
take(50), // attempt to load maximum 50 blocks
timeout(300_000), // timeout after 5 minutes
).subscribe({
next(event) {
// event contains the `block` and `proofs`
// unless interrupted, `block.parentHash` will be `targetAncestorHash` in the last event
}
})Development
Run tests:
npm testRun linter:
npm run lintContributing
We are happy to accept small and large contributions. Make sure to check out the Ceramic specifications for details of how the protocol works.
License
MIT or Apache-2.0