{"_id":"@cambrianprotocol/anchor-listener","_rev":"5-bd7519f53551b0780d7494db6584a988","name":"@cambrianprotocol/anchor-listener","dist-tags":{"next":"1.14.0-rc.0","latest":"1.14.0"},"versions":{"1.10.0-rc.0":{"name":"@cambrianprotocol/anchor-listener","version":"1.10.0-rc.0","description":"Ceramic anchor events listener","keywords":["ceramic","anchor"],"main":"./lib/index.js","types":"./lib/index.d.ts","type":"module","directories":{"lib":"./lib"},"sideEffects":false,"exports":{".":"./lib/index.js"},"scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules npx jest --silent --coverage","build":"npx tsc --project tsconfig.json","prepublishOnly":"npm run build","prebuild":"npm run clean","lint":"npx eslint ./src --ext .js,.jsx,.ts,.tsx","clean":"npx rimraf ./lib"},"author":{"name":"3Box Labs"},"license":"(Apache-2.0 OR MIT)","dependencies":{"@ceramicnetwork/anchor-utils":"^1.6.0","@ethersproject/providers":"^5.5.1","rxjs":"^7.5.2"},"devDependencies":{"@ceramicnetwork/common":"^2.23.0","@ethersproject/abi":"^5.7.0","@jest/globals":"^28.1.3","multiformats":"^11.0.1","uint8arrays":"^4.0.3"},"publishConfig":{"access":"public"},"gitHead":"1913908a5e09c769883a3f38c232a50130e133b0","_id":"@cambrianprotocol/anchor-listener@1.10.0-rc.0","_nodeVersion":"16.15.1","_npmVersion":"lerna/4.0.0/node@v16.15.1+x64 (win32)","dist":{"integrity":"sha512-5Zg6pMlbDkXKqNM0KyB2loFPLIO3aQK7LYslTTLiGsVPOFG/AZnB4Hfok8O9ufZn5tnYKZV/wB65/lnXeF9n2Q==","shasum":"7eb0d7c49b6b974b2ff62a5c9ada0d9d9591ae60","tarball":"https://registry.npmjs.org/@cambrianprotocol/anchor-listener/-/anchor-listener-1.10.0-rc.0.tgz","fileCount":22,"unpackedSize":32243,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBs8DYd7+9XTjEOf10GHnwCGzDyAsXvKtbPXTWt0WFKcAiB3oRBGICzFrj+Unz8TxzQgIqPwv7qx+jE6QtRI00M/aA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCGX1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrN2A/7Bq8b/dMnZHNdF+bNtgdnMrqLk15YooPFFEGSsfUEVqsQzQnH\r\n6k9PWW2IxwzzxsMUNyYxyWIvqVLLfG2/6yNKnzIHv4Mvtzq+PxVBrRSEuruv\r\nEkS2arNWcXZmSsw9LjrkBfvpZkDogZnoK2cATYU3Gm3q/CwBzgz0z1dyfQOC\r\nX8gkgknwpjF9v2DS8frvJJZsInu2U8ETDt64SgLH42lrPWXdS8Z1/ON+0y/F\r\nS/Nc3NDkUmQ/UcnqsbL55tD3MukzTrARsq1TN1ANbQcfF7pxyugvK6h4JHWA\r\n+X5Mth3XPJiEpN4XZKgQZldgEfbI2Ydm4Lq82juRjOmCoUbmZha+wi8qp+F+\r\nmZoZgPWTA6OAwBVRLib7QfNPDLb68DgEKvs//EWkXnWRzgSdNrPCHoIQMa2M\r\npA/WHe+zUbjNqbxykyUlY1b79C4sPty2aGbA75TWOxfbdQPBTknT0fXSInTa\r\n6qqyoI1A85xpLa8W7xs+oRLOkUmoVktKDal489q8LszYGnzR1lQL8Pqferct\r\n+Mib5xZ45bvnEjVWn+JAAthQjVSnhwVi9Egl2O4ctoNmuxa4hWCwrEt8LT4D\r\nl/s8IND1VV04pPaz3oJj1KSDuR4lBGIuA5fH6RtOgzTq+zeTU7Xrc+LL6loD\r\nMrN86zHntQMtYuijR7QKXJsVHPWnM9iolgk=\r\n=oWZg\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zktruth","email":"nic@cambrianprotocol.com"},"maintainers":[{"name":"zktruth","email":"nic@cambrianprotocol.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/anchor-listener_1.10.0-rc.0_1678271989346_0.7213620071144173"},"_hasShrinkwrap":false},"1.11.0-rc.0":{"name":"@cambrianprotocol/anchor-listener","version":"1.11.0-rc.0","description":"Ceramic anchor events listener","keywords":["ceramic","anchor"],"main":"./lib/index.js","types":"./lib/index.d.ts","type":"module","directories":{"lib":"./lib"},"sideEffects":false,"exports":{".":"./lib/index.js"},"scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules npx jest --silent --coverage","build":"npx tsc --project tsconfig.json","prepublishOnly":"npm run build","prebuild":"npm run clean","lint":"npx eslint ./src --ext .js,.jsx,.ts,.tsx","clean":"npx rimraf ./lib"},"author":{"name":"3Box Labs"},"license":"(Apache-2.0 OR MIT)","dependencies":{"@ceramicnetwork/anchor-utils":"^1.6.0","@ethersproject/providers":"^5.5.1","rxjs":"^7.5.2"},"devDependencies":{"@cambrianprotocol/common":"2.25.0-rc.0","@ethersproject/abi":"^5.7.0","@jest/globals":"^28.1.3","multiformats":"^11.0.1","uint8arrays":"^4.0.3"},"publishConfig":{"access":"public"},"gitHead":"d7cebc7257f14a8b65514249d81a0d369ce33ed1","readme":"# Ceramic Anchor listener\r\n\r\n![ceramicnetwork](https://circleci.com/gh/ceramicnetwork/js-ceramic.svg?style=shield)\r\n[![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://lbesson.mit-license.org/)\r\n[![](https://img.shields.io/badge/Chat%20on-Discord-orange.svg?style=flat)](https://discord.gg/6VRZpGP)\r\n[![Twitter](https://img.shields.io/twitter/follow/ceramicnetwork?label=Follow&style=social)](https://twitter.com/ceramicnetwork)\r\n\r\n## Getting started\r\n\r\n### Installation\r\n\r\n```\r\n$ npm install @ceramicnetwork/anchor-listener\r\n```\r\n\r\n### Usage\r\n\r\n```ts\r\nimport {\r\n  createBlockProofsListener,\r\n  createBlocksProofsLoader,\r\n  createAncestorBlocksProofsLoader,\r\n} from '@ceramicnetwork/anchor-listener'\r\nimport { take, timeout } from 'rxjs'\r\n\r\n// Listen to new block events on the provider and load anchor proofs\r\nconst subsription = createBlockProofsListener({ chainId: 'eip155:1', confirmations: 20, provider: ... }).subscribe({\r\n  next(event) {\r\n    // event contains the `block` and `proofs`\r\n  }\r\n})\r\n// Unsubscribe to stop listening\r\nsubscription.unsubscribe()\r\n\r\n// Load proofs for a range of blocks\r\ncreateBlocksProofsLoader({ chainId: 'eip155:1', fromBlock: 100, toBlock: 120, provider: ...  }).subscribe({\r\n  next(event) {\r\n    // event contains the `block` and `proofs`\r\n  }\r\n})\r\n\r\n// Load proofs for blocks, walking up the parents until the expected ancestor hash is found\r\ncreateAncestorBlocksProofsLoader({ chainId: 'eip155:1', initialBlock: 'latest', targetAncestorHash: '...', provider: ...  }).pipe(\r\n  // Operators can be used to add stopping conditions\r\n  take(50), // attempt to load maximum 50 blocks\r\n  timeout(300_000), // timeout after 5 minutes\r\n).subscribe({\r\n  next(event) {\r\n    // event contains the `block` and `proofs`\r\n    // unless interrupted, `block.parentHash` will be `targetAncestorHash` in the last event\r\n  }\r\n})\r\n```\r\n\r\n## Development\r\n\r\nRun tests:\r\n\r\n```shell\r\nnpm test\r\n```\r\n\r\nRun linter:\r\n\r\n```shell\r\nnpm run lint\r\n```\r\n\r\n## Contributing\r\n\r\nWe are happy to accept small and large contributions. Make sure to check out the\r\n[Ceramic specifications](https://github.com/ceramicnetwork/ceramic/blob/main/SPECIFICATION.md)\r\nfor details of how the protocol works.\r\n\r\n## License\r\n\r\nMIT or Apache-2.0\r\n","readmeFilename":"README.md","_id":"@cambrianprotocol/anchor-listener@1.11.0-rc.0","_nodeVersion":"16.15.1","_npmVersion":"lerna/4.0.0/node@v16.15.1+x64 (win32)","dist":{"integrity":"sha512-nbTeHQy07a9ZYnFoSvTiDwzVm/g9lEUCpTwpq/0cmy4mH9p/Pw1x0RGt2x2qyCDMz59GBIc9vlZ2R5Y0MPVlkw==","shasum":"b6d702111efebfac4cfa139029395fd352c89f02","tarball":"https://registry.npmjs.org/@cambrianprotocol/anchor-listener/-/anchor-listener-1.11.0-rc.0.tgz","fileCount":22,"unpackedSize":32213,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDsBoNljKClAg/9upnpQWedBdvAoLYVySC4QdGxVmFDKgIhANFKc1bfT9wScZ+1u2A8oit5Gi4avqSNXA5tvwDSV6OZ"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCHPAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoQlxAAlqjYFP56161vvD/1yN0T4aSPk8bDxAsm73ywkdbCJfFUPrtj\r\njxsZCCvE0/FGoexlO3/6jwnVxWlaNYdsqxdq4LVXfj5w0IzIPn0sfhg6lGmi\r\nvH8qnGrLeLpCbfNBsR5K11bokHJhibBCeOeJBI6ChzZ1spuBTGJbgDxnFO46\r\nNE86P1cZ7AKXXo/1v8gGpnHpp3y4ViDF+Meo8L0oA+YJgEiTmCHiskFHZobg\r\nsAa69mRi27B9TJRBrrVDmkeAEc8XOMycy0sG4gLpxN8dmhw/sWUx7l69CxKR\r\n+fxqdSqCHA8+Ef554EiQ2NiUCbe6GUfc7HX4pA6epK48LveH5PnGVUMx5nGx\r\nGinLpnWiIKT4L/DqSBoJ44qDLOkhy/iwlvjZMp8jijRaQOzwR9ViWbVTEgwl\r\nwUbF4RuJiblb12fw/bAZoyYA+H5LQwuM0DzjgvfgL1EpwesfxtZLptdMhrl0\r\nHVc/X8eNt4U/wF7BnK5AF/li0B4Lvlpw4IPyx0pHf48RhOp7JgkMyis59k6c\r\nEJfZeTSNNIIvuaMc1ZLHzjBaGvsiyTeu56RdbUQWsXNLLE+JnE1ns+919IQd\r\nVpr4jGzMU3TfQwFFD5S5DgzGHXjlC06vj1YRIihWvk5Ter1X56SxIsI+n2hZ\r\n86ry0WntdcSQmVjWz9dBCcaE7XMHXZeiQN4=\r\n=k3pw\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zktruth","email":"nic@cambrianprotocol.com"},"maintainers":[{"name":"zktruth","email":"nic@cambrianprotocol.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/anchor-listener_1.11.0-rc.0_1678275519878_0.8640586993250361"},"_hasShrinkwrap":false},"1.12.0-rc.0":{"name":"@cambrianprotocol/anchor-listener","version":"1.12.0-rc.0","description":"Ceramic anchor events listener","keywords":["ceramic","anchor"],"main":"./lib/index.js","types":"./lib/index.d.ts","type":"module","directories":{"lib":"./lib"},"sideEffects":false,"exports":{".":"./lib/index.js"},"scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules npx jest --silent --coverage","build":"npx tsc --project tsconfig.json","prepublishOnly":"npm run build","prebuild":"npm run clean","lint":"npx eslint ./src --ext .js,.jsx,.ts,.tsx","clean":"npx rimraf ./lib"},"author":{"name":"3Box Labs"},"license":"(Apache-2.0 OR MIT)","dependencies":{"@ceramicnetwork/anchor-utils":"^1.6.0","@ethersproject/providers":"^5.5.1","rxjs":"^7.5.2"},"devDependencies":{"@cambrianprotocol/common":"2.25.0-rc.0","@ethersproject/abi":"^5.7.0","@jest/globals":"^28.1.3","multiformats":"^11.0.1","uint8arrays":"^4.0.3"},"publishConfig":{"access":"public"},"gitHead":"eb1d02da12564f5a0a3dcd73bffeec71d144c209","readme":"# Ceramic Anchor listener\r\n\r\n![ceramicnetwork](https://circleci.com/gh/ceramicnetwork/js-ceramic.svg?style=shield)\r\n[![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://lbesson.mit-license.org/)\r\n[![](https://img.shields.io/badge/Chat%20on-Discord-orange.svg?style=flat)](https://discord.gg/6VRZpGP)\r\n[![Twitter](https://img.shields.io/twitter/follow/ceramicnetwork?label=Follow&style=social)](https://twitter.com/ceramicnetwork)\r\n\r\n## Getting started\r\n\r\n### Installation\r\n\r\n```\r\n$ npm install @ceramicnetwork/anchor-listener\r\n```\r\n\r\n### Usage\r\n\r\n```ts\r\nimport {\r\n  createBlockProofsListener,\r\n  createBlocksProofsLoader,\r\n  createAncestorBlocksProofsLoader,\r\n} from '@ceramicnetwork/anchor-listener'\r\nimport { take, timeout } from 'rxjs'\r\n\r\n// Listen to new block events on the provider and load anchor proofs\r\nconst subsription = createBlockProofsListener({ chainId: 'eip155:1', confirmations: 20, provider: ... }).subscribe({\r\n  next(event) {\r\n    // event contains the `block` and `proofs`\r\n  }\r\n})\r\n// Unsubscribe to stop listening\r\nsubscription.unsubscribe()\r\n\r\n// Load proofs for a range of blocks\r\ncreateBlocksProofsLoader({ chainId: 'eip155:1', fromBlock: 100, toBlock: 120, provider: ...  }).subscribe({\r\n  next(event) {\r\n    // event contains the `block` and `proofs`\r\n  }\r\n})\r\n\r\n// Load proofs for blocks, walking up the parents until the expected ancestor hash is found\r\ncreateAncestorBlocksProofsLoader({ chainId: 'eip155:1', initialBlock: 'latest', targetAncestorHash: '...', provider: ...  }).pipe(\r\n  // Operators can be used to add stopping conditions\r\n  take(50), // attempt to load maximum 50 blocks\r\n  timeout(300_000), // timeout after 5 minutes\r\n).subscribe({\r\n  next(event) {\r\n    // event contains the `block` and `proofs`\r\n    // unless interrupted, `block.parentHash` will be `targetAncestorHash` in the last event\r\n  }\r\n})\r\n```\r\n\r\n## Development\r\n\r\nRun tests:\r\n\r\n```shell\r\nnpm test\r\n```\r\n\r\nRun linter:\r\n\r\n```shell\r\nnpm run lint\r\n```\r\n\r\n## Contributing\r\n\r\nWe are happy to accept small and large contributions. Make sure to check out the\r\n[Ceramic specifications](https://github.com/ceramicnetwork/ceramic/blob/main/SPECIFICATION.md)\r\nfor details of how the protocol works.\r\n\r\n## License\r\n\r\nMIT or Apache-2.0\r\n","readmeFilename":"README.md","_id":"@cambrianprotocol/anchor-listener@1.12.0-rc.0","_nodeVersion":"16.15.1","_npmVersion":"lerna/4.0.0/node@v16.15.1+x64 (win32)","dist":{"integrity":"sha512-ew5WRWCIN4+zqWdvdgtYUAY0UG35IDSaa5SLFTbX2FfHArh4CLekqVkEq13RquuzL4TAeDcc+RnDt8v30BCJ6g==","shasum":"719cbb279a8d5a719c4a99049555cb8a1669f8d1","tarball":"https://registry.npmjs.org/@cambrianprotocol/anchor-listener/-/anchor-listener-1.12.0-rc.0.tgz","fileCount":22,"unpackedSize":32217,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBnEgkk6LFG21oMrOmY9g5HENaiGXvQcS0AVgpLm7ZTNAiBRATb0hNAOEmyjuuSNF0fx4Cz9pDW0lLUXIiHSFXNepA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCJ4WACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrHQg/7BbzfKU9J8ahnkdpQuReN1nqg6grro2XuVgoc7ugRPfM1Zhzj\r\nTwtOPdU0rMZK5wrMCY+DEDzpoDfU7kJDUIfyCLJl13TdfgwgOp8sa9TlzfNM\r\n5ihUO8yFEwOwtpaK/dZpuJZ4k/qGm0m284oIzSgltkCBCAbgqdwAzOYThDij\r\n4ffsdA7C8FVGMoVp78ll5LxMETBPBrFWvcEpn4ix92g3aNYQ3ClKEFyT0cMF\r\nUk4usKWhyUsJYkHacxdg2nmn5l+ycgH3fIWg3HdQSG5/tAk5lqTNtt7i5MbB\r\nn3aHBXiTkYfaRBI4tamquPRuSHGxZ+ldmZIr94+R0WA/gSfF0Vvyx2DukerL\r\nJl+kcBeT7nIEp9dwRIdBR0rLPf9MQZlyfzcBz/7dYxG9U4dLyVOF5WIcdg0t\r\nkxLXe8uAvjOcLaDwwqH+cgKPIW5Zt0n4AZ2uc9yjfJwI1pcZzH00c1qY6r1/\r\niP0TiJRRmUj6F+pJd7yvpWtpkuMW9sdWfpAW4vGREdlNoX9ow8XjC6fgsg61\r\n9OaxaYbSteoTHNzl8l8DoUg/bZ9p9B2Gon+DtRIOfPRhhUenOQI273RUZdRs\r\n/rk/kdwVVNckHE0iXy5CD/OGafXiQxN7DmAodhWTC2Z76LsB3YKOEjQQA2TM\r\n3+aS4j1mV+9lcDM081VnIWvqD5haKmd4Ss0=\r\n=butk\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zktruth","email":"nic@cambrianprotocol.com"},"maintainers":[{"name":"zktruth","email":"nic@cambrianprotocol.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/anchor-listener_1.12.0-rc.0_1678286358064_0.5001020114023089"},"_hasShrinkwrap":false},"1.13.0-rc.0":{"name":"@cambrianprotocol/anchor-listener","version":"1.13.0-rc.0","description":"Ceramic anchor events listener","keywords":["ceramic","anchor"],"main":"./lib/index.js","types":"./lib/index.d.ts","type":"module","directories":{"lib":"./lib"},"sideEffects":false,"exports":{".":"./lib/index.js"},"scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules npx jest --silent --coverage","build":"npx tsc --project tsconfig.json","prepublishOnly":"npm run build","prebuild":"npm run clean","lint":"npx eslint ./src --ext .js,.jsx,.ts,.tsx","clean":"npx rimraf ./lib"},"author":{"name":"3Box Labs"},"license":"(Apache-2.0 OR MIT)","dependencies":{"@ceramicnetwork/anchor-utils":"^1.6.0","@ethersproject/providers":"^5.5.1","rxjs":"^7.5.2"},"devDependencies":{"@cambrianprotocol/common":"^2.26.0-rc.0","@ethersproject/abi":"^5.7.0","@jest/globals":"^28.1.3","multiformats":"^11.0.1","uint8arrays":"^4.0.3"},"publishConfig":{"access":"public"},"gitHead":"0903cc3a6c0e7d6fe4109ef2ac07b836bca75552","readme":"# Ceramic Anchor listener\r\n\r\n![ceramicnetwork](https://circleci.com/gh/ceramicnetwork/js-ceramic.svg?style=shield)\r\n[![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://lbesson.mit-license.org/)\r\n[![](https://img.shields.io/badge/Chat%20on-Discord-orange.svg?style=flat)](https://discord.gg/6VRZpGP)\r\n[![Twitter](https://img.shields.io/twitter/follow/ceramicnetwork?label=Follow&style=social)](https://twitter.com/ceramicnetwork)\r\n\r\n## Getting started\r\n\r\n### Installation\r\n\r\n```\r\n$ npm install @ceramicnetwork/anchor-listener\r\n```\r\n\r\n### Usage\r\n\r\n```ts\r\nimport {\r\n  createBlockProofsListener,\r\n  createBlocksProofsLoader,\r\n  createAncestorBlocksProofsLoader,\r\n} from '@ceramicnetwork/anchor-listener'\r\nimport { take, timeout } from 'rxjs'\r\n\r\n// Listen to new block events on the provider and load anchor proofs\r\nconst subsription = createBlockProofsListener({ chainId: 'eip155:1', confirmations: 20, provider: ... }).subscribe({\r\n  next(event) {\r\n    // event contains the `block` and `proofs`\r\n  }\r\n})\r\n// Unsubscribe to stop listening\r\nsubscription.unsubscribe()\r\n\r\n// Load proofs for a range of blocks\r\ncreateBlocksProofsLoader({ chainId: 'eip155:1', fromBlock: 100, toBlock: 120, provider: ...  }).subscribe({\r\n  next(event) {\r\n    // event contains the `block` and `proofs`\r\n  }\r\n})\r\n\r\n// Load proofs for blocks, walking up the parents until the expected ancestor hash is found\r\ncreateAncestorBlocksProofsLoader({ chainId: 'eip155:1', initialBlock: 'latest', targetAncestorHash: '...', provider: ...  }).pipe(\r\n  // Operators can be used to add stopping conditions\r\n  take(50), // attempt to load maximum 50 blocks\r\n  timeout(300_000), // timeout after 5 minutes\r\n).subscribe({\r\n  next(event) {\r\n    // event contains the `block` and `proofs`\r\n    // unless interrupted, `block.parentHash` will be `targetAncestorHash` in the last event\r\n  }\r\n})\r\n```\r\n\r\n## Development\r\n\r\nRun tests:\r\n\r\n```shell\r\nnpm test\r\n```\r\n\r\nRun linter:\r\n\r\n```shell\r\nnpm run lint\r\n```\r\n\r\n## Contributing\r\n\r\nWe are happy to accept small and large contributions. Make sure to check out the\r\n[Ceramic specifications](https://github.com/ceramicnetwork/ceramic/blob/main/SPECIFICATION.md)\r\nfor details of how the protocol works.\r\n\r\n## License\r\n\r\nMIT or Apache-2.0\r\n","readmeFilename":"README.md","_id":"@cambrianprotocol/anchor-listener@1.13.0-rc.0","_nodeVersion":"16.15.1","_npmVersion":"lerna/4.0.0/node@v16.15.1+x64 (win32)","dist":{"integrity":"sha512-zo4RCf38Zfc6y5GHyByiZM1Igs5RrWuR6yCb0mmZUPXDYdIXtYcn0sJGuRd10SAKMo6LUdI6HQzQleJV7nFmcA==","shasum":"8089cb284b79d6eb8b36cb4b24570dd95f197e48","tarball":"https://registry.npmjs.org/@cambrianprotocol/anchor-listener/-/anchor-listener-1.13.0-rc.0.tgz","fileCount":22,"unpackedSize":32218,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAUb3xUVUjzKu118QvXKtyEsE02UdDw+oPguvOuLl07RAiEAx9xfnH3xQUxQXnd56uzA7WTpNW5axbB2JD8INFKklck="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCK1QACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrtDhAAh5lwt51g24v9KEffu6NYPR2896V89MZolszXTtHMMrqx6cIc\r\nkdyaCO6prKGWeUtD9dTkXm3XJ8686pjiD1PUDyA9DpCq+ZTg6ghBmidS1mV4\r\n0RqmZLsUWk8aaAmg3GzSvjqqJdKbVHx7EOCOBrauCQGWW4+asO8SLicP5JrW\r\naQ9SF0u6Sp6QiJU1DJRf0+YOYT7wSNgMnKuqlIa6m3NB2E2VbwberzE2OKJc\r\nToxwfz1ttif3SHXAuSvQQe2iZRzpN9F66yXbo3NZATGB2SKmkTZWdHh2411u\r\nLQMa1v4FXoGl/mCdfP6XVy4OBeYDddU5WMz87zkk2YcGlqh8GSciLCcMTfjz\r\nIkgeHDYQuStCtU8krAwH1pKo9hA6gXazbs/ftZHy5HB9alvzdPN+nIpy6FZH\r\nZL1Yk3AzaOvpUqWzrFCTMPnV9fT7SSR/YFTF2fYHWk6mj9XVHdBBvE2VftVb\r\nvl/2CS7NmyBiAo7FiNAgP48k+cBOP4Dc9spsoBUoRi6F2kGFI38i+KqOqUKV\r\nIB+qvUzDN5NRnJoKaagNiV3AKMXVoRoGm558MmX/R4Z5bKT4jmW0kBhij9fp\r\n7LHYiq+F3WioN9iLMbf6gNH3uKFNbi4Zx88sl5Shn0bMYUbTtpibfspog+yZ\r\nmk54TTqtk+ogiUtPx7MVkOgBMz+Ha1okXtQ=\r\n=YHim\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zktruth","email":"nic@cambrianprotocol.com"},"maintainers":[{"name":"zktruth","email":"nic@cambrianprotocol.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/anchor-listener_1.13.0-rc.0_1678290256211_0.9027158441865821"},"_hasShrinkwrap":false},"1.14.0-rc.0":{"name":"@cambrianprotocol/anchor-listener","version":"1.14.0-rc.0","description":"Ceramic anchor events listener","keywords":["ceramic","anchor"],"main":"./lib/index.js","types":"./lib/index.d.ts","type":"module","directories":{"lib":"./lib"},"sideEffects":false,"exports":{".":"./lib/index.js"},"scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules npx jest --silent --coverage","build":"npx tsc --project tsconfig.json","prepublishOnly":"npm run build","prebuild":"npm run clean","lint":"npx eslint ./src --ext .js,.jsx,.ts,.tsx","clean":"npx rimraf ./lib"},"author":{"name":"3Box Labs"},"license":"(Apache-2.0 OR MIT)","dependencies":{"@ceramicnetwork/anchor-utils":"^1.6.0","@ethersproject/providers":"^5.5.1","rxjs":"^7.5.2"},"devDependencies":{"@cambrianprotocol/common":"^2.27.0-rc.0","@ethersproject/abi":"^5.7.0","@jest/globals":"^28.1.3","multiformats":"^11.0.1","uint8arrays":"^4.0.3"},"publishConfig":{"access":"public"},"gitHead":"77d05e076af8f307dbe8ba3a675778d6ae33165c","readme":"# Ceramic Anchor listener\r\n\r\n![ceramicnetwork](https://circleci.com/gh/ceramicnetwork/js-ceramic.svg?style=shield)\r\n[![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://lbesson.mit-license.org/)\r\n[![](https://img.shields.io/badge/Chat%20on-Discord-orange.svg?style=flat)](https://discord.gg/6VRZpGP)\r\n[![Twitter](https://img.shields.io/twitter/follow/ceramicnetwork?label=Follow&style=social)](https://twitter.com/ceramicnetwork)\r\n\r\n## Getting started\r\n\r\n### Installation\r\n\r\n```\r\n$ npm install @ceramicnetwork/anchor-listener\r\n```\r\n\r\n### Usage\r\n\r\n```ts\r\nimport {\r\n  createBlockProofsListener,\r\n  createBlocksProofsLoader,\r\n  createAncestorBlocksProofsLoader,\r\n} from '@ceramicnetwork/anchor-listener'\r\nimport { take, timeout } from 'rxjs'\r\n\r\n// Listen to new block events on the provider and load anchor proofs\r\nconst subsription = createBlockProofsListener({ chainId: 'eip155:1', confirmations: 20, provider: ... }).subscribe({\r\n  next(event) {\r\n    // event contains the `block` and `proofs`\r\n  }\r\n})\r\n// Unsubscribe to stop listening\r\nsubscription.unsubscribe()\r\n\r\n// Load proofs for a range of blocks\r\ncreateBlocksProofsLoader({ chainId: 'eip155:1', fromBlock: 100, toBlock: 120, provider: ...  }).subscribe({\r\n  next(event) {\r\n    // event contains the `block` and `proofs`\r\n  }\r\n})\r\n\r\n// Load proofs for blocks, walking up the parents until the expected ancestor hash is found\r\ncreateAncestorBlocksProofsLoader({ chainId: 'eip155:1', initialBlock: 'latest', targetAncestorHash: '...', provider: ...  }).pipe(\r\n  // Operators can be used to add stopping conditions\r\n  take(50), // attempt to load maximum 50 blocks\r\n  timeout(300_000), // timeout after 5 minutes\r\n).subscribe({\r\n  next(event) {\r\n    // event contains the `block` and `proofs`\r\n    // unless interrupted, `block.parentHash` will be `targetAncestorHash` in the last event\r\n  }\r\n})\r\n```\r\n\r\n## Development\r\n\r\nRun tests:\r\n\r\n```shell\r\nnpm test\r\n```\r\n\r\nRun linter:\r\n\r\n```shell\r\nnpm run lint\r\n```\r\n\r\n## Contributing\r\n\r\nWe are happy to accept small and large contributions. Make sure to check out the\r\n[Ceramic specifications](https://github.com/ceramicnetwork/ceramic/blob/main/SPECIFICATION.md)\r\nfor details of how the protocol works.\r\n\r\n## License\r\n\r\nMIT or Apache-2.0\r\n","readmeFilename":"README.md","_id":"@cambrianprotocol/anchor-listener@1.14.0-rc.0","_nodeVersion":"16.15.1","_npmVersion":"lerna/4.0.0/node@v16.15.1+x64 (win32)","dist":{"integrity":"sha512-NZlbA0asRZ4biiDq7wNyE8XogEk522PvKZCvdZd9gK264bPT0BmJmv+FPhPRJjOnizuZ1AMNRNQ9//lSgEiAhg==","shasum":"73ebf23a6ebc64d2ff6ffc4630539134029ddba7","tarball":"https://registry.npmjs.org/@cambrianprotocol/anchor-listener/-/anchor-listener-1.14.0-rc.0.tgz","fileCount":22,"unpackedSize":32218,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC6WTjMpAF4r7lEyZVhh4iqwj+f4ZpnzZ8ScjMWGiiARAiEAkq/Gm7ivv+CeNJf/UMnzNFPCvcpp44sQs0tio7WZMdE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCLx1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqEFhAAjF9R1OR6Pr69copmNPGpCe1TaYngT516waBX9YyyuHhS2FGZ\r\nNa7t1P5wSaypDLnKIJQqU2zXcLXYp6tq00pvtYvH75LFnQGaeZ1eKD/yH2Sw\r\nX00g1HkNDkAR+93Si+OEZeWPdfwvzmNtYvXgYd3vLH37FLQotTQ/gQvvZgHp\r\nEHeJrnSinb2fUvCr5bd2PJUe6y9YOodfKPh75REruuK7ZeF880QJmeDd1gjQ\r\nQL6Ii5RpH/Inggrfv5n+SUU15GJcDcb1A1ScUR1gSnSv6N4qeGsdruuwuUdA\r\nHEc+CWj2+8MloUFXIQ/TbOfEkvC4RggvLleZKfmaQhlUqPiT5Gp/qUPWjB07\r\n6HjZpH0lgmaLjGQLo2r8w57GarZMQrEe00TsS/S34KbJFKzzdqpXN93E/GKg\r\nDpl29zZhLVSeow4blJvDjgJpYuLHONIzl89A74HxRiLqVOHKrm07V5GwBJEm\r\naHvI32sWY+eXrHloG0E3Bs8q13udNHZLFBVI6jlQMc8Td0nbRqr7K+uQ0QCy\r\n9b/TSKjzgljVwUNd1NadKtdVDI6D2s7JiNydsDkCIAUhbB8Rd5SPMOyzJbZZ\r\nHHoMFeHPV5IHZseSiabPBG7xgZ1uVNrWp0iRAVg0+J3bThUxItC56igQnn2L\r\npDmYv3uADxyzND6fyyWFOK3u3QiOABuRqzg=\r\n=7cq0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zktruth","email":"nic@cambrianprotocol.com"},"maintainers":[{"name":"zktruth","email":"nic@cambrianprotocol.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/anchor-listener_1.14.0-rc.0_1678294133205_0.43915333039865456"},"_hasShrinkwrap":false},"1.14.0":{"name":"@cambrianprotocol/anchor-listener","version":"1.14.0","description":"Ceramic anchor events listener","keywords":["ceramic","anchor"],"main":"./lib/index.js","types":"./lib/index.d.ts","type":"module","directories":{"lib":"./lib"},"sideEffects":false,"exports":{".":"./lib/index.js"},"scripts":{"test":"NODE_OPTIONS=--experimental-vm-modules npx jest --silent --coverage","build":"npx tsc --project tsconfig.json","prepublishOnly":"npm run build","prebuild":"npm run clean","lint":"npx eslint ./src --ext .js,.jsx,.ts,.tsx","clean":"npx rimraf ./lib"},"author":{"name":"3Box Labs"},"license":"(Apache-2.0 OR MIT)","dependencies":{"@ceramicnetwork/anchor-utils":"^1.6.0","@ethersproject/providers":"^5.5.1","rxjs":"^7.5.2"},"devDependencies":{"@cambrianprotocol/common":"^2.27.0","@ethersproject/abi":"^5.7.0","@jest/globals":"^28.1.3","multiformats":"^11.0.1","uint8arrays":"^4.0.3"},"publishConfig":{"access":"public"},"gitHead":"7fec99b17e8e28e93ef34002755d5240db492a32","_id":"@cambrianprotocol/anchor-listener@1.14.0","_nodeVersion":"16.15.1","_npmVersion":"lerna/4.0.0/node@v16.15.1+x64 (win32)","dist":{"integrity":"sha512-0kWlwLBXdkaF/CZfoSYOnVCoelmna0xBTqx8wHgFNyEfZawTV1tOdCVvV9+mmUsN4Vv+Ld4ydk5C+mG+nyalog==","shasum":"40ff544feba0c2b2e2655ffc46caf0fa01666eb0","tarball":"https://registry.npmjs.org/@cambrianprotocol/anchor-listener/-/anchor-listener-1.14.0.tgz","fileCount":22,"unpackedSize":32208,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFQD14cJPjD2SYGs5BLFEbrTL6A76LeP2ZSjy5bBcvToAiEA5XX1sJNkgWh0lJWc4K+/gAMy1Lb1fy96MwyMFADtxN8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCMKgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqQfQ/9GNdCslTfIEEfSgSraSYFicb2WQFb8ANqDdEkYl6N1yRpoyRw\r\nYO8++LJ3OPAWK/jCvdftrn9Mzc9ixIk+EhJveeGb5jLYWMhQ/GoXvIT4admK\r\nISF5ZXMf/G/geLshTgp905pJyhobXpOZw4tx1CBT96Wh++GlG5ALAB/tbZ+v\r\nWD7KWRXzKZPa+5rVMWrAnMPpwFc+glVbT4nZRoNYZ7hAZX48J7ZAIq7OV4gd\r\nAH4p/ZKpDdAKfsCSgZjAlsf0rztmlj485luRuM3d7dStZxS7a+QyXQNyNZlv\r\nbp4gDfH4jr1g3XXp8drJ6aMpxEV7zeTHDLCtTJmhG0W++vIvRBmpb5Y2ESof\r\nR9FqQ+YUWi4G9jzCYPuRgUuI18CYCTbmJhpHSp8SFWGwSqlEogjmsR6bd0KX\r\nw8CcfO5dSafFXTEsAKEIrcwxopKMtYm9czO1K4aDBCU9R9l1GqRilys2K2u7\r\n108+1ajXW9iJYBm5ifsHHGTD7s1+uyGI9/DQ/bHwF6XyHrwOhvnaChSk7jbW\r\n1KnHJO8BMUB9m2if0/e3i4mL3zPATCbgJTUU1Ww1dW3RsNoTqCWM/gmPodyf\r\n5+rYKFdHioS2hShO571AkheQ1fV5Yd45tpjjztQCqkfHRRYiuSlIeIwu6SKh\r\nUG40BnDjTeBIBiJ7ecgxIbOgQ6eMy/gdG8o=\r\n=IGk1\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zktruth","email":"nic@cambrianprotocol.com"},"maintainers":[{"name":"zktruth","email":"nic@cambrianprotocol.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/anchor-listener_1.14.0_1678295712211_0.6080332177682419"},"_hasShrinkwrap":false}},"time":{"created":"2023-03-08T10:39:49.199Z","1.10.0-rc.0":"2023-03-08T10:39:49.520Z","modified":"2023-03-08T17:15:12.524Z","1.11.0-rc.0":"2023-03-08T11:38:40.154Z","1.12.0-rc.0":"2023-03-08T14:39:18.245Z","1.13.0-rc.0":"2023-03-08T15:44:16.426Z","1.14.0-rc.0":"2023-03-08T16:48:53.379Z","1.14.0":"2023-03-08T17:15:12.421Z"},"maintainers":[{"name":"zktruth","email":"nic@cambrianprotocol.com"}],"description":"Ceramic anchor events listener","keywords":["ceramic","anchor"],"author":{"name":"3Box Labs"},"license":"(Apache-2.0 OR MIT)","readme":"# Ceramic Anchor listener\r\n\r\n![ceramicnetwork](https://circleci.com/gh/ceramicnetwork/js-ceramic.svg?style=shield)\r\n[![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://lbesson.mit-license.org/)\r\n[![](https://img.shields.io/badge/Chat%20on-Discord-orange.svg?style=flat)](https://discord.gg/6VRZpGP)\r\n[![Twitter](https://img.shields.io/twitter/follow/ceramicnetwork?label=Follow&style=social)](https://twitter.com/ceramicnetwork)\r\n\r\n## Getting started\r\n\r\n### Installation\r\n\r\n```\r\n$ npm install @ceramicnetwork/anchor-listener\r\n```\r\n\r\n### Usage\r\n\r\n```ts\r\nimport {\r\n  createBlockProofsListener,\r\n  createBlocksProofsLoader,\r\n  createAncestorBlocksProofsLoader,\r\n} from '@ceramicnetwork/anchor-listener'\r\nimport { take, timeout } from 'rxjs'\r\n\r\n// Listen to new block events on the provider and load anchor proofs\r\nconst subsription = createBlockProofsListener({ chainId: 'eip155:1', confirmations: 20, provider: ... }).subscribe({\r\n  next(event) {\r\n    // event contains the `block` and `proofs`\r\n  }\r\n})\r\n// Unsubscribe to stop listening\r\nsubscription.unsubscribe()\r\n\r\n// Load proofs for a range of blocks\r\ncreateBlocksProofsLoader({ chainId: 'eip155:1', fromBlock: 100, toBlock: 120, provider: ...  }).subscribe({\r\n  next(event) {\r\n    // event contains the `block` and `proofs`\r\n  }\r\n})\r\n\r\n// Load proofs for blocks, walking up the parents until the expected ancestor hash is found\r\ncreateAncestorBlocksProofsLoader({ chainId: 'eip155:1', initialBlock: 'latest', targetAncestorHash: '...', provider: ...  }).pipe(\r\n  // Operators can be used to add stopping conditions\r\n  take(50), // attempt to load maximum 50 blocks\r\n  timeout(300_000), // timeout after 5 minutes\r\n).subscribe({\r\n  next(event) {\r\n    // event contains the `block` and `proofs`\r\n    // unless interrupted, `block.parentHash` will be `targetAncestorHash` in the last event\r\n  }\r\n})\r\n```\r\n\r\n## Development\r\n\r\nRun tests:\r\n\r\n```shell\r\nnpm test\r\n```\r\n\r\nRun linter:\r\n\r\n```shell\r\nnpm run lint\r\n```\r\n\r\n## Contributing\r\n\r\nWe are happy to accept small and large contributions. Make sure to check out the\r\n[Ceramic specifications](https://github.com/ceramicnetwork/ceramic/blob/main/SPECIFICATION.md)\r\nfor details of how the protocol works.\r\n\r\n## License\r\n\r\nMIT or Apache-2.0\r\n","readmeFilename":"README.md"}