{"_id":"@alakipalaki/alakiobservation-extractor","_rev":"48-f18c8cb56e1158d8a4174696a09b3d13","name":"@alakipalaki/alakiobservation-extractor","dist-tags":{"alpha":"0.0.0-alpha.0","test-ci3-cli":"20.0.1-test-ci3-cli.0","next":"31.0.0-next.0","new-next":"31.0.0-new-next.0","ergo":"31.0.0-ergo.0","e60da6a8":"31.0.0-e60da6a8.0","004503a3":"31.0.0-004503a3.0","ergo-00450333":"31.0.0-ergo-00450333.0","ergo-15803ba5":"31.0.0-ergo-15803ba5.0","ergo-004456cb":"31.0.0-ergo-004456cb.0","ergo-2e9afad3":"31.0.0-ergo-2e9afad3.0","ergo-da459585":"31.0.0-ergo-da459585.0","ergo-5640203b":"31.0.0-ergo-5640203b.0","ergo-a88768b4":"31.0.0-ergo-a88768b4.0","ergo-aafee967":"31.0.0-ergo-aafee967.0","ergo-9a716f10":"31.0.0-ergo-9a716f10.0","ergo-7a7d13b9":"31.0.0-ergo-7a7d13b9.0","ergo-34e1a3e0":"31.0.0-ergo-34e1a3e0.0","next-21433950b604fcf80e793f2148144ad859bd93e3":"1.0.4","next-6f574c16d576af0712543951cacc26f19d172051":"1.0.5-next-6f574c16d576af0712543951cacc26f19d172051.0","next-ca77db72e61b5979a8a2394220d45ebc539905d6":"61.0.0-next-ca77db72e61b5979a8a2394220d45ebc539905d6.0","next-54dfeb5":"62.0.0-next-54dfeb5.0","next-03eba3d":"63.0.0-next-03eba3d.0","next-aefe774":"63.0.0-next-aefe774.0","latest":"63.0.0","next-fa4e4ab":"63.0.0-next-fa4e4ab.0","next-5957980":"63.0.0-next-5957980.0"},"versions":{"1.0.1":{"name":"@alakipalaki/alakiobservation-extractor","version":"1.0.1","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@1.0.1","maintainers":[{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"1f5cd929a5cc73a9aadcde49033790404d87abeb","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-1.0.1.tgz","fileCount":41,"integrity":"sha512-r5bjyFA7jUM4RAfTuqcGEDgncoJQj0vPZiglfnc8x9+475erPoFp1YqKu69GNM6HDSsXTIHjrQxp3HkuFJuW8A==","signatures":[{"sig":"MEYCIQDAg38oQg5jbV0w4HaitxsR5AJJGcep61iEngWtkcIDuQIhAPqRFr6fRaNmEzbof8Dd20F/7S889fH4lw0/BOEjtcFl","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"5bccdac99b5ecf7bb7777c66bdc4361b327b4bc1","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run test && npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"9.5.1","description":"### Table of Contents","directories":{},"_nodeVersion":"18.16.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@rosen-bridge/scanner":"^1.0.1","@cardano-ogmios/schema":"^5.5.7","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_1.0.1_1684673185988_0.4602591894252255","host":"s3://npm-registry-packages"}},"10.0.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"10.0.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@10.0.0","maintainers":[{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"e3969ab212a2da4f99201374afda752d1042b553","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-10.0.0.tgz","fileCount":41,"integrity":"sha512-4lbG/HZwgz+76uXaW0SNzCzr2bitgCYeoDc8ecqrYBbYe+1Sc3zQUSGge8trmm4QRDuWyXzqUAfh/FECMJrVfQ==","signatures":[{"sig":"MEUCIAd7ZJ/Srrc/6CJM5fMZZadaObZy1vrM6s59J8h1yy5JAiEAkxoB81p7XBDTbsZUafsBjTHs/gq0+ZTqOzK2AivF958=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88490},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"05bf3880b968e02ef16962ce00e2d6ac13605b69","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run test && npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"9.5.1","description":"### Table of Contents","directories":{},"_nodeVersion":"18.16.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@rosen-bridge/scanner":"^1.0.1","@cardano-ogmios/schema":"^5.5.7","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_10.0.0_1684748417227_0.4899809542085829","host":"s3://npm-registry-packages"}},"11.0.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"11.0.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@11.0.0","maintainers":[{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"33ac1c551d6ac0e5f11a980b72392014c0c1238a","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-11.0.0.tgz","fileCount":41,"integrity":"sha512-FLBYC3pXuejrD1iROpXQ6Nc7+xmbsb60LI4ZYv6HFHoHEkjiLaE9ea9lVADPpQKLzeQ5EHVzoHbf4UM51rQbFA==","signatures":[{"sig":"MEYCIQD8ue3VyuFZMRUKJf3dj9WBs3EF+ATJZtnoZij8rDdT+gIhAJXuiC0njk+yb8XK/7TNkpKgGWe4CFBurC6DNzbIwus7","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88490},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"c1a4536b14b9dd17ba63c32a6fdd94bfffbe2596","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run test && npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"9.5.1","description":"### Table of Contents","directories":{},"_nodeVersion":"18.16.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@rosen-bridge/scanner":"^1.0.1","@cardano-ogmios/schema":"^5.5.7","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_11.0.0_1684749478932_0.11102397998318692","host":"s3://npm-registry-packages"}},"13.0.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"13.0.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@13.0.0","maintainers":[{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"ba2483aa71c1277ccf339ac5ab8277df36a978e6","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-13.0.0.tgz","fileCount":41,"integrity":"sha512-IhCRzhIkHAMwLm11Xzum6PaRNWQC+CrKyDlN4XTi7K0imbSicNXJUtjdyBLKALxaGpdOYkmCf5TFYsX/mFrf7g==","signatures":[{"sig":"MEUCIQCBVOhfTRR3EjLgHjPhPGPmtvzz4NI2Vh6YeBAs85tKuQIgN/hyqkkr2zlw+lXKtkhnZZKSwZS4Z6d64JTX4kTDuQ0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88490},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"e80be0d5006dcc85610a4bd97d064ec83dc8c083","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run test && npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"9.5.1","description":"### Table of Contents","directories":{},"_nodeVersion":"18.16.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@rosen-bridge/scanner":"^1.0.1","@cardano-ogmios/schema":"^5.5.7","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_13.0.0_1685783284195_0.06173209481610642","host":"s3://npm-registry-packages"}},"15.0.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"15.0.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@15.0.0","maintainers":[{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"2dbfd171f8f413c34c9e8968525370ec321ac6f7","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-15.0.0.tgz","fileCount":41,"integrity":"sha512-6RfHJQqmHOvjkO0gN4f6FzH/IzqaLkPS76ozhfZ1XDv7PB8uv+8R+2Ziz/f3mIkiq3G9m5z6DeZKDPeOcE81Nw==","signatures":[{"sig":"MEQCIBk2vCi8VEOC8rjc3sJgTKUvXU1gyejTUAPSCPCojBmjAiAI/aicYghYEMDx8qFS2ljfN5wuuYitCGEmxfuWT7BwGg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88474},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"b6d537e63c37116b026d2b97b67264627187b01b","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"9.2.0","description":"### Table of Contents","directories":{},"_nodeVersion":"18.13.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@rosen-bridge/scanner":"^1.0.1","@cardano-ogmios/schema":"^5.5.7","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_15.0.0_1685800873031_0.008530782763685352","host":"s3://npm-registry-packages"}},"16.0.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"16.0.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@16.0.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"5c8095b10d573684c5190767bc87f5b4a4575143","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-16.0.0.tgz","fileCount":41,"integrity":"sha512-sZT8qwJYe8Ey2XTWF1xLzLeIlaJfWxi1gJbyYFu5xbezfpuv4s3OIOcOxnV2gKPpvvOE+tJj5BsiBt2W/lpHUg==","signatures":[{"sig":"MEYCIQCZT57Gi/62Dso4oIs1shO1035MdL/cL6biO+EkZEIj1AIhAOsEDZzlmYozdy1TmdcnHZPjQ7kxCh9qNaSPf3Qojzah","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88528},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"bd52e6fc951857bfbaade42707103f92a5ab037b","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},"_npmVersion":"8.12.1","description":"### Table of Contents","directories":{},"_nodeVersion":"16.14.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@cardano-ogmios/schema":"^5.5.7","@alakipalaki/alakiscanner":"^16.0.0","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_16.0.0_1685960867754_0.9778572730042199","host":"s3://npm-registry-packages"}},"18.0.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"18.0.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@18.0.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"f0e403b3ea80323d072c9f1dad020921390e056e","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-18.0.0.tgz","fileCount":41,"integrity":"sha512-npIALFfCYEn5lb/iz+JpBCAvj/4zdrATF2J5qgk8MrV9rorP0KjTaWtFcC/AP97Z+pzLtIVNg2o0+XJ7CF8gYw==","signatures":[{"sig":"MEMCHwvZGg7R2tbx+EYbOeCx6VOJVMSmQaQDB5p73J5rvIoCICJoEN/yNZnsXNFlw4ZwP5KBBy99E5/DeWwTDkx+miIZ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88580},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"bec220570fd9127d07ba4396afcc5b9767b01cd7","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},"_npmVersion":"9.5.1","description":"### Table of Contents","directories":{},"_nodeVersion":"18.16.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@cardano-ogmios/schema":"^5.5.7","@alakipalaki/alakiscanner":"^18.0.0","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_18.0.0_1685962072042_0.5154722453541136","host":"s3://npm-registry-packages"}},"0.0.0-20230605112024":{"name":"@alakipalaki/alakiobservation-extractor","version":"0.0.0-20230605112024","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@0.0.0-20230605112024","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"e73365dc17428ddafa08e35ceff675e0cd4c387f","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-0.0.0-20230605112024.tgz","fileCount":41,"integrity":"sha512-wrk75Xgp4eeyP4IyDLnKDdo+QuAjiQCQK9/gCwq1dA+4LuLSVYYrchjlu1ob0AzLQxcqoMOFmr21Nc7AxtJjOQ==","signatures":[{"sig":"MEUCIBqhUYgt6TNHUBlf1aHv4rRW9Gk4UhoCGE4Tmyxhr6dHAiEA9gJq9qWu448bsF2CvV6pcPC6C6m8p1bvRbBpO6Jiedo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88632},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"b8da2a83674088acf413ebbf4eaafaf4b18b0e54","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},"_npmVersion":"9.5.1","description":"### Table of Contents","directories":{},"_nodeVersion":"18.16.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@cardano-ogmios/schema":"^5.5.7","@alakipalaki/alakiscanner":"^18.0.0","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_0.0.0-20230605112024_1685964973650_0.3738670237218633","host":"s3://npm-registry-packages"}},"0.0.0-alpha.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"0.0.0-alpha.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@0.0.0-alpha.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"7b8cb75afa07f01fa1e5b92deb15492d9e55ae08","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-0.0.0-alpha.0.tgz","fileCount":41,"integrity":"sha512-OrCdDpGqR8eQh8JNqywP2HOq9WGrwn/nlgKWm3D1U1+wSe0iAdSS5gQwTxMhdJ1BPMo9pJsTFc/HuTdPGt4wgw==","signatures":[{"sig":"MEYCIQCWj0vFjRSDZ10YQzDj8gQD9KKjju2jbCtS3wWEJ+lo8QIhAJhgztPlvKXoVniM/AXrBMZhlHp6+FDTELYZ1WVsuLOX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88625},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","readme":"# Observation Extractor\n\n### Table of Contents\n\n- [Description](#description)\n- [Related Projects](#related-projects)\n- [How to Use the Observation Extractor](#how-to-use-the-observation-extractor)\n  - [Install](#install)\n  - [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n<a name=\"headers\"/>\n\n## Description\n\nData extractors are modules that are integrated within a scanner. They drive the required information from the scanned blocks and store them in their own database. The observation extractor is designed to fulfill a watcher's main task: observing user payments in source networks. The bridge payment transaction has its own structure, and the observation extractor searches for this pattern occurrence in source chains and stores all needed information for a watcher commitment creation and revealment.\n\n## Related Projects\n\nThis module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. The address scanner is currently used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the valid source chain observations.\n\n## How to Use the Observation Extractor\n\n### Install\n\nThis project is written in node-js using Esnext module and typeorm database. Extractors are not standalone projects and should be used as scanner modules. You can easily install it using npm with the command:\n\n```shell\nnpm install @rosen-bridge/observation-extractor\n```\n\nAlternatively, you can build and use it manually by cloning the project and running:\n\n```shell\nnpm install\nnpm run build\n```\n\n### Usage\n\nIn the first step, you need to create a scanner instance; follow the steps [here](https://github.com/rosen-bridge/scanner) to create a running instance of the scanner. Then you need to instantiate your address extractor and register it to your scanner:\n\n```javascript\nconst ergoObsesrvationExtractor = new ErgoObservationExtractor(\n   dataSource,\n   <tokens.json>,\n   <lock_address>\n)\nergoScanner.registerExtractor(ergoObsesrvationExtractor)\n```\n\nWhere the `token.json` is a source-target map of token ids that are exchanged in the bridge.\n\nOr similarly for cardano:\n\n```javascript\nconst cardanoObsesrvationExtractor = new CardanoObservationExtractor(\n    dataSource,\n    <tokens.json>,\n    <lock_address>\n)\ncardanoScanner.registerExtractor(cardanoObsesrvationExtractor)\n```\n\n## Contributing\n\nTBD\n\n## License\n\nTBD\n","gitHead":"8b7f852002ffdb9e80d403f965a7cd7c8c18bc89","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},"_npmVersion":"9.5.1","description":"### Table of Contents","directories":{},"_nodeVersion":"18.16.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@cardano-ogmios/schema":"^5.5.7","@alakipalaki/alakiscanner":"^18.0.0","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_0.0.0-alpha.0_1685967105820_0.7887215016308338","host":"s3://npm-registry-packages"}},"0.0.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"0.0.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@0.0.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"9e40f4dd79292e0ca1db6b55b3302219a2e0745a","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-0.0.0.tgz","fileCount":41,"integrity":"sha512-4L9x3sTX2frgCHeFfywkuRtTA0T62lVzw2YpftK6fLikiw6qMzv0oDZ1olK87vW9Y8GVpQLgNf+n1uhICXciRw==","signatures":[{"sig":"MEQCIH1cetdckQLMnJw0RfD7XTb/mx9d2768B6w19Q/EPTdNAiAZMio82mDEtSNGDQPenGMzcSuNfHo0NFcn9zdndzHkzg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88617},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"11579bd793de9167ee9b84c010bd414f51d259fc","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},"_npmVersion":"9.5.1","description":"### Table of Contents","directories":{},"_nodeVersion":"18.16.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@cardano-ogmios/schema":"^5.5.7","@alakipalaki/alakiscanner":"^18.0.0","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_0.0.0_1685967703479_0.6138392431285027","host":"s3://npm-registry-packages"}},"0.1.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"0.1.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@0.1.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"ca631cf3dd0098e371c4dd9b2a7d19ac1aa6e380","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-0.1.0.tgz","fileCount":41,"integrity":"sha512-npXS06VvBT4r2HdFJ73fTSvYjlF48VoKBs/6chznfiOssWy3mx76dDdv2LLky70F2jGcUVZvtGfZjW/W4JQT3w==","signatures":[{"sig":"MEUCIQChI+pe4diA4zj8uXFUs4ZP9GVbTtr4HNnojSrNiBXZRwIgPsc9RuDrj892tLvqSjhmQ5V/2crsj7GeBCroNF+dJZk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88568},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"adb044205bc21aa35981a03d7d00929cb4c82231","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},"_npmVersion":"9.5.1","description":"### Table of Contents","directories":{},"_nodeVersion":"18.16.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@cardano-ogmios/schema":"^5.5.7","@alakipalaki/alakiscanner":"^18.0.0","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_0.1.0_1686037941014_0.8060977818311683","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"1.0.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@1.0.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"91f09125a07b4b7ec36367fe2af99b77887ac05c","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-1.0.0.tgz","fileCount":41,"integrity":"sha512-h98hAxyaBbbcjstG4xoQq45Ujmp/UdqtKdY+LFVH060TYvt/a2QfjkVSWqvou5gUjE+/2mpmJgVb/N0XGa2c6A==","signatures":[{"sig":"MEUCIEAjyjz7lB6kILki8Rr9WA3v2WokSMo4DVKzywIrG49vAiEAvpTo1i2viBLPfbnV8iyBqU2QDKhac7CzIQ18qTkTR1k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88568},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"a409ce5c5d3a0b1d13cc2da4231b745eb06db0a9","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},"_npmVersion":"9.5.1","description":"### Table of Contents","directories":{},"_nodeVersion":"18.16.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@cardano-ogmios/schema":"^5.5.7","@alakipalaki/alakiscanner":"^18.0.0","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_1.0.0_1686039988184_0.39717554510117603","host":"s3://npm-registry-packages"}},"19.0.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"19.0.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@19.0.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"2a323250dedd6d601a1f1e82bed9a96ff73e0db2","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-19.0.0.tgz","fileCount":41,"integrity":"sha512-8zgqlnYAepZmDX9ZZOSNJ3gFg9Vb77MdZ/uhMAp4FrzycEt4iRYCVe0oFf5i3fTUHJxymWeNppXeBUe/7TQx1w==","signatures":[{"sig":"MEUCIDCLrmz6arjmdZAr9Rk59pbt4jWlNL1BCIEmvMK5ta6iAiEA355OsULiSqp+iXPzBXlOpUzCXaLQU7IcRU85Fy/4Bso=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88528},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"96809e09afd6191f119bd80a616c4dd8abcab4f8","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"9.5.1","description":"### Table of Contents","directories":{},"_nodeVersion":"18.16.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@cardano-ogmios/schema":"^5.5.7","@alakipalaki/alakiscanner":"^18.1.0","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_19.0.0_1686216636242_0.7061804591752043","host":"s3://npm-registry-packages"}},"20.0.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"20.0.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@20.0.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"ec28222dc861fef007384a2b2a426aa03d111747","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-20.0.0.tgz","fileCount":41,"integrity":"sha512-FTEzfUvrme11n9qHloZ5GyFt9Gyk8iattn0UZV4Opfd6z7LBIDoXiLRmW6+EgOHVCOOf0MdsmzdGdTwXcOEaIA==","signatures":[{"sig":"MEUCIQChAyOv2gN5QlYWa22qccYPfoXu+FCD6LbBQpWw9APTngIgEIL9B7E+hTi6sWLq+9m0HEDk/SUT+TB5aTaJNFldDtU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88580},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"6ecc0ae83d66b35b6e264d816ce9fdc5ae0b6ab6","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"9.5.1","description":"### Table of Contents","directories":{},"_nodeVersion":"18.16.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@cardano-ogmios/schema":"^5.5.7","@alakipalaki/alakiscanner":"^20.0.0","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_20.0.0_1686326191179_0.22528951565470945","host":"s3://npm-registry-packages"}},"22.0.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"22.0.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@22.0.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"315c13b71e23bcb2df265b346efb496a64b2f8fc","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-22.0.0.tgz","fileCount":41,"integrity":"sha512-ZkGhRnqZ+g1dCaeliERy1ZDwwuGmUpsymrfCXnR6fxi+1x1qGIJcKrTV+XYWdYjLNqVxI3dIp1IdiarRHmk2Uw==","signatures":[{"sig":"MEYCIQCeCNCyFVga7NIGh9024S+g1djm2xO0nr9byCvHIcHeIQIhALrjOohElrv5LT5AaFCZJVhISHyMzsDB1265jSB7yIuE","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88580},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"6b97e0eabe36453d44eac4be4afcb5c9ca114dfc","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"9.5.1","description":"### Table of Contents","directories":{},"_nodeVersion":"18.16.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@cardano-ogmios/schema":"^5.5.7","@alakipalaki/alakiscanner":"^21.0.0","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_22.0.0_1686338090971_0.08695804176147148","host":"s3://npm-registry-packages"}},"20.0.1-test-ci3-cli.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"20.0.1-test-ci3-cli.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@20.0.1-test-ci3-cli.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"d6e189adda24d82a02ff7afe291ddca8cb368a67","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-20.0.1-test-ci3-cli.0.tgz","fileCount":41,"integrity":"sha512-v7K6D9oAlMbFxmsO6rPCjSFscnwvz1kEIWvRF6tkHkaH4vylCKOsyJhRfRdJio4Xnv+Iodxwawr5gB7ENYQobQ==","signatures":[{"sig":"MEUCIQD48/wB7vb6c32zk8B0VJcRaPS8I/PXSiFqUixHfHjNIQIgYxhwe5MVuVFWehlSUKp0mtQa8nddcGmgM4dlmL3CFEc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88610},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","readme":"# Observation Extractor\n\n### Table of Contents\n\n- [Description](#description)\n- [Related Projects](#related-projects)\n- [How to Use the Observation Extractor](#how-to-use-the-observation-extractor)\n  - [Install](#install)\n  - [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n<a name=\"headers\"/>\n\n## Description\n\nData extractors are modules that are integrated within a scanner. They drive the required information from the scanned blocks and store them in their own database. The observation extractor is designed to fulfill a watcher's main task: observing user payments in source networks. The bridge payment transaction has its own structure, and the observation extractor searches for this pattern occurrence in source chains and stores all needed information for a watcher commitment creation and revealment.\n\n## Related Projects\n\nThis module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. The address scanner is currently used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the valid source chain observations.\n\n## How to Use the Observation Extractor\n\n### Install\n\nThis project is written in node-js using Esnext module and typeorm database. Extractors are not standalone projects and should be used as scanner modules. You can easily install it using npm with the command:\n\n```shell\nnpm install @rosen-bridge/observation-extractor\n```\n\nAlternatively, you can build and use it manually by cloning the project and running:\n\n```shell\nnpm install\nnpm run build\n```\n\n### Usage\n\nIn the first step, you need to create a scanner instance; follow the steps [here](https://github.com/rosen-bridge/scanner) to create a running instance of the scanner. Then you need to instantiate your address extractor and register it to your scanner:\n\n```javascript\nconst ergoObsesrvationExtractor = new ErgoObservationExtractor(\n   dataSource,\n   <tokens.json>,\n   <lock_address>\n)\nergoScanner.registerExtractor(ergoObsesrvationExtractor)\n```\n\nWhere the `token.json` is a source-target map of token ids that are exchanged in the bridge.\n\nOr similarly for cardano:\n\n```javascript\nconst cardanoObsesrvationExtractor = new CardanoObservationExtractor(\n    dataSource,\n    <tokens.json>,\n    <lock_address>\n)\ncardanoScanner.registerExtractor(cardanoObsesrvationExtractor)\n```\n\n## Contributing\n\nTBD\n\n## License\n\nTBD\n","gitHead":"3195b4296cb769b70308362b87652bfae6257a2c","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"9.5.1","description":"### Table of Contents","directories":{},"_nodeVersion":"18.16.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@cardano-ogmios/schema":"^5.5.7","@alakipalaki/alakiscanner":"^20.1.0-test-ci3-cli.0","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_20.0.1-test-ci3-cli.0_1687586909739_0.8556334972926551","host":"s3://npm-registry-packages"}},"22.0.0-next.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"22.0.0-next.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@22.0.0-next.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"60ca04019dca3a0fbb45f34c911b7a782fb2bc41","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-22.0.0-next.0.tgz","fileCount":2,"integrity":"sha512-uiEEKFRK+e7+UxnNm51ORXPJQabDKK2Oln4qwuYMy4f+VjM2nlpyVMDxqbN+2Zh5io8Tj8hgHk8NsW+Lyjy9QQ==","signatures":[{"sig":"MEUCIFsERitqHuPej7+BxCEMtqS/5zZgZ5PtEmfH+6FtfiC4AiEA+u7rpO1nAk35sbBh0DZxMZbEjGWCo47lA2Blr4Z1b/A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3902},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","readme":"# Observation Extractor\n\n### Table of Contents\n\n- [Description](#description)\n- [Related Projects](#related-projects)\n- [How to Use the Observation Extractor](#how-to-use-the-observation-extractor)\n  - [Install](#install)\n  - [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n<a name=\"headers\"/>\n\n## Description\n\nData extractors are modules that are integrated within a scanner. They drive the required information from the scanned blocks and store them in their own database. The observation extractor is designed to fulfill a watcher's main task: observing user payments in source networks. The bridge payment transaction has its own structure, and the observation extractor searches for this pattern occurrence in source chains and stores all needed information for a watcher commitment creation and revealment.\n\n## Related Projects\n\nThis module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. The address scanner is currently used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the valid source chain observations.\n\n## How to Use the Observation Extractor\n\n### Install\n\nThis project is written in node-js using Esnext module and typeorm database. Extractors are not standalone projects and should be used as scanner modules. You can easily install it using npm with the command:\n\n```shell\nnpm install @rosen-bridge/observation-extractor\n```\n\nAlternatively, you can build and use it manually by cloning the project and running:\n\n```shell\nnpm install\nnpm run build\n```\n\n### Usage\n\nIn the first step, you need to create a scanner instance; follow the steps [here](https://github.com/rosen-bridge/scanner) to create a running instance of the scanner. Then you need to instantiate your address extractor and register it to your scanner:\n\n```javascript\nconst ergoObsesrvationExtractor = new ErgoObservationExtractor(\n   dataSource,\n   <tokens.json>,\n   <lock_address>\n)\nergoScanner.registerExtractor(ergoObsesrvationExtractor)\n```\n\nWhere the `token.json` is a source-target map of token ids that are exchanged in the bridge.\n\nOr similarly for cardano:\n\n```javascript\nconst cardanoObsesrvationExtractor = new CardanoObservationExtractor(\n    dataSource,\n    <tokens.json>,\n    <lock_address>\n)\ncardanoScanner.registerExtractor(cardanoObsesrvationExtractor)\n```\n\n## Contributing\n\nTBD\n\n## License\n\nTBD\n","gitHead":"55a83b838c12561161bfee807f3cc1a30bc7f259","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"9.5.1","description":"### Table of Contents","directories":{},"_nodeVersion":"18.16.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@cardano-ogmios/schema":"^5.5.7","@alakipalaki/alakiscanner":"^22.0.0-next.0","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_22.0.0-next.0_1687680899791_0.5590093109612939","host":"s3://npm-registry-packages"}},"30.0.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"30.0.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@30.0.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"16193fcce44e0d3e7a8d33736c5f541a230ba474","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-30.0.0.tgz","fileCount":41,"integrity":"sha512-u1MYHlt//vICI5z4XscmtIkmj+bX9ydm5lJlO7wnCB9dwpXPEuvccPDkiBgvzlilTJoFOnyvrxaWSE2GSwK7zQ==","signatures":[{"sig":"MEUCIQDOaG6AnhmI+nUQUkRQkbjRml8zrcHvnjwaIR+hnpWSygIgMmimV84rZwqeUYjoo7ASpGeE1CD6P/8AndLpQzFOm7A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88580},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"d8beba91b5b24895c2d0b8287da55b1f7f82e18a","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"9.5.1","description":"### Table of Contents","directories":{},"_nodeVersion":"18.16.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@cardano-ogmios/schema":"^5.5.7","@alakipalaki/alakiscanner":"^30.0.0","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_30.0.0_1687681969887_0.2622165018873115","host":"s3://npm-registry-packages"}},"31.0.0-next.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"31.0.0-next.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@31.0.0-next.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"896e0bd63bbd18132a4d5bce70f1a1d2df3fa041","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-31.0.0-next.0.tgz","fileCount":2,"integrity":"sha512-p87r0J+Ox7UgUUeJht94c03CDHoDlzMyZNhqxDtQYBxtAjy+/dGA9DNJhVJMUApKEBn5O0vzqkdYVFlPmQVsCw==","signatures":[{"sig":"MEYCIQCt8T5TShZ8okK29F1O6n1knPTsArFRX7y/iXkjgW4VugIhAJDNWSWimIjH1DRxnjzp2K3Kjcctl66+pJsCvmRcGFSQ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3902},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","readme":"# Observation Extractor\n\n### Table of Contents\n\n- [Description](#description)\n- [Related Projects](#related-projects)\n- [How to Use the Observation Extractor](#how-to-use-the-observation-extractor)\n  - [Install](#install)\n  - [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n<a name=\"headers\"/>\n\n## Description\n\nData extractors are modules that are integrated within a scanner. They drive the required information from the scanned blocks and store them in their own database. The observation extractor is designed to fulfill a watcher's main task: observing user payments in source networks. The bridge payment transaction has its own structure, and the observation extractor searches for this pattern occurrence in source chains and stores all needed information for a watcher commitment creation and revealment.\n\n## Related Projects\n\nThis module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. The address scanner is currently used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the valid source chain observations.\n\n## How to Use the Observation Extractor\n\n### Install\n\nThis project is written in node-js using Esnext module and typeorm database. Extractors are not standalone projects and should be used as scanner modules. You can easily install it using npm with the command:\n\n```shell\nnpm install @rosen-bridge/observation-extractor\n```\n\nAlternatively, you can build and use it manually by cloning the project and running:\n\n```shell\nnpm install\nnpm run build\n```\n\n### Usage\n\nIn the first step, you need to create a scanner instance; follow the steps [here](https://github.com/rosen-bridge/scanner) to create a running instance of the scanner. Then you need to instantiate your address extractor and register it to your scanner:\n\n```javascript\nconst ergoObsesrvationExtractor = new ErgoObservationExtractor(\n   dataSource,\n   <tokens.json>,\n   <lock_address>\n)\nergoScanner.registerExtractor(ergoObsesrvationExtractor)\n```\n\nWhere the `token.json` is a source-target map of token ids that are exchanged in the bridge.\n\nOr similarly for cardano:\n\n```javascript\nconst cardanoObsesrvationExtractor = new CardanoObservationExtractor(\n    dataSource,\n    <tokens.json>,\n    <lock_address>\n)\ncardanoScanner.registerExtractor(cardanoObsesrvationExtractor)\n```\n\n## Contributing\n\nTBD\n\n## License\n\nTBD\n","gitHead":"b970be4549542f68b332e90e92ec90ce4540ded7","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"8.15.0","description":"### Table of Contents","directories":{},"_nodeVersion":"16.17.1","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@cardano-ogmios/schema":"^5.5.7","@alakipalaki/alakiscanner":"^31.0.0-next.0","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_31.0.0-next.0_1687686687988_0.08469283305407926","host":"s3://npm-registry-packages"}},"31.0.0-new-next.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"31.0.0-new-next.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@31.0.0-new-next.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"1e197c6600884fece58b7f2fad4b296c675335fa","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-31.0.0-new-next.0.tgz","fileCount":2,"integrity":"sha512-6RnAAgAyseP2LJrQeXWv1wOkTh0FCo5EV/HQcB34bfN57bryaDvdA97l+RMW3uFMjNEDd+znq1ubPPc2nIWYjw==","signatures":[{"sig":"MEUCICTk4Vn2W+uBwtLZ57JEExQL26B1xf1rd7Pd1eWfCoC/AiEA/Pfe+6hL6glwFGgjg7ICYQtgLML8iAYar2iL1EFeTgM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3910},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","readme":"# Observation Extractor\n\n### Table of Contents\n\n- [Description](#description)\n- [Related Projects](#related-projects)\n- [How to Use the Observation Extractor](#how-to-use-the-observation-extractor)\n  - [Install](#install)\n  - [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n<a name=\"headers\"/>\n\n## Description\n\nData extractors are modules that are integrated within a scanner. They drive the required information from the scanned blocks and store them in their own database. The observation extractor is designed to fulfill a watcher's main task: observing user payments in source networks. The bridge payment transaction has its own structure, and the observation extractor searches for this pattern occurrence in source chains and stores all needed information for a watcher commitment creation and revealment.\n\n## Related Projects\n\nThis module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. The address scanner is currently used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the valid source chain observations.\n\n## How to Use the Observation Extractor\n\n### Install\n\nThis project is written in node-js using Esnext module and typeorm database. Extractors are not standalone projects and should be used as scanner modules. You can easily install it using npm with the command:\n\n```shell\nnpm install @rosen-bridge/observation-extractor\n```\n\nAlternatively, you can build and use it manually by cloning the project and running:\n\n```shell\nnpm install\nnpm run build\n```\n\n### Usage\n\nIn the first step, you need to create a scanner instance; follow the steps [here](https://github.com/rosen-bridge/scanner) to create a running instance of the scanner. Then you need to instantiate your address extractor and register it to your scanner:\n\n```javascript\nconst ergoObsesrvationExtractor = new ErgoObservationExtractor(\n   dataSource,\n   <tokens.json>,\n   <lock_address>\n)\nergoScanner.registerExtractor(ergoObsesrvationExtractor)\n```\n\nWhere the `token.json` is a source-target map of token ids that are exchanged in the bridge.\n\nOr similarly for cardano:\n\n```javascript\nconst cardanoObsesrvationExtractor = new CardanoObservationExtractor(\n    dataSource,\n    <tokens.json>,\n    <lock_address>\n)\ncardanoScanner.registerExtractor(cardanoObsesrvationExtractor)\n```\n\n## Contributing\n\nTBD\n\n## License\n\nTBD\n","gitHead":"cd00a83184eccf5609e8ddfa28b631d5ea4cc3fe","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"8.15.0","description":"### Table of Contents","directories":{},"_nodeVersion":"16.17.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@cardano-ogmios/schema":"^5.5.7","@alakipalaki/alakiscanner":"^31.0.0-new-next.0","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_31.0.0-new-next.0_1687687647046_0.4977453624027459","host":"s3://npm-registry-packages"}},"31.0.0-ergo.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"31.0.0-ergo.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@31.0.0-ergo.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"4d16c9cd3a8c1c25c415505fde63b4a868ea7db7","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-31.0.0-ergo.0.tgz","fileCount":2,"integrity":"sha512-iIqYJ9aqPn+zHNgqkgOkDVB4THImKIQJMTdwv1A26v0Uh6tTV0dqFLFmbjEmtH4jL7LViXiYGAGO0VIGm2qsjA==","signatures":[{"sig":"MEUCIErhUsXf2dKy7/SICgN8Mj24PnjTdPRrVV/jHBx3soZpAiEA+0av00vHQAsi8Vfv3XciFYGLP6pYzhHPfGeWWAHOC/M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3902},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","readme":"# Observation Extractor\n\n### Table of Contents\n\n- [Description](#description)\n- [Related Projects](#related-projects)\n- [How to Use the Observation Extractor](#how-to-use-the-observation-extractor)\n  - [Install](#install)\n  - [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n<a name=\"headers\"/>\n\n## Description\n\nData extractors are modules that are integrated within a scanner. They drive the required information from the scanned blocks and store them in their own database. The observation extractor is designed to fulfill a watcher's main task: observing user payments in source networks. The bridge payment transaction has its own structure, and the observation extractor searches for this pattern occurrence in source chains and stores all needed information for a watcher commitment creation and revealment.\n\n## Related Projects\n\nThis module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. The address scanner is currently used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the valid source chain observations.\n\n## How to Use the Observation Extractor\n\n### Install\n\nThis project is written in node-js using Esnext module and typeorm database. Extractors are not standalone projects and should be used as scanner modules. You can easily install it using npm with the command:\n\n```shell\nnpm install @rosen-bridge/observation-extractor\n```\n\nAlternatively, you can build and use it manually by cloning the project and running:\n\n```shell\nnpm install\nnpm run build\n```\n\n### Usage\n\nIn the first step, you need to create a scanner instance; follow the steps [here](https://github.com/rosen-bridge/scanner) to create a running instance of the scanner. Then you need to instantiate your address extractor and register it to your scanner:\n\n```javascript\nconst ergoObsesrvationExtractor = new ErgoObservationExtractor(\n   dataSource,\n   <tokens.json>,\n   <lock_address>\n)\nergoScanner.registerExtractor(ergoObsesrvationExtractor)\n```\n\nWhere the `token.json` is a source-target map of token ids that are exchanged in the bridge.\n\nOr similarly for cardano:\n\n```javascript\nconst cardanoObsesrvationExtractor = new CardanoObservationExtractor(\n    dataSource,\n    <tokens.json>,\n    <lock_address>\n)\ncardanoScanner.registerExtractor(cardanoObsesrvationExtractor)\n```\n\n## Contributing\n\nTBD\n\n## License\n\nTBD\n","gitHead":"826bdc0fa4105bab37358197966df53b91d22129","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"8.15.0","description":"### Table of Contents","directories":{},"_nodeVersion":"16.17.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@cardano-ogmios/schema":"^5.5.7","@alakipalaki/alakiscanner":"^31.0.0-ergo.0","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_31.0.0-ergo.0_1687689596066_0.3078799481237968","host":"s3://npm-registry-packages"}},"31.0.0-e60da6a8.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"31.0.0-e60da6a8.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@31.0.0-e60da6a8.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"d2b06d110e5ee8421c98a0ab32aab78802bd56c8","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-31.0.0-e60da6a8.0.tgz","fileCount":2,"integrity":"sha512-FglsPmJoHK6v7+B4xQ0HLlLaj4DcYKJ0ediE269cY02tZ/Dt2rOpquydjtfPc6ReO0rgJ96eD6gAQMnRHyFhTg==","signatures":[{"sig":"MEQCICBey19EwcbLlSRetbDAu8FLM4JZJygwpvihy0jIRIgqAiBUxNkU+cJiSj01GzUXTNCMfoLTa/wWX0RHU+cMOGSz2A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3910},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","readme":"# Observation Extractor\n\n### Table of Contents\n\n- [Description](#description)\n- [Related Projects](#related-projects)\n- [How to Use the Observation Extractor](#how-to-use-the-observation-extractor)\n  - [Install](#install)\n  - [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n<a name=\"headers\"/>\n\n## Description\n\nData extractors are modules that are integrated within a scanner. They drive the required information from the scanned blocks and store them in their own database. The observation extractor is designed to fulfill a watcher's main task: observing user payments in source networks. The bridge payment transaction has its own structure, and the observation extractor searches for this pattern occurrence in source chains and stores all needed information for a watcher commitment creation and revealment.\n\n## Related Projects\n\nThis module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. The address scanner is currently used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the valid source chain observations.\n\n## How to Use the Observation Extractor\n\n### Install\n\nThis project is written in node-js using Esnext module and typeorm database. Extractors are not standalone projects and should be used as scanner modules. You can easily install it using npm with the command:\n\n```shell\nnpm install @rosen-bridge/observation-extractor\n```\n\nAlternatively, you can build and use it manually by cloning the project and running:\n\n```shell\nnpm install\nnpm run build\n```\n\n### Usage\n\nIn the first step, you need to create a scanner instance; follow the steps [here](https://github.com/rosen-bridge/scanner) to create a running instance of the scanner. Then you need to instantiate your address extractor and register it to your scanner:\n\n```javascript\nconst ergoObsesrvationExtractor = new ErgoObservationExtractor(\n   dataSource,\n   <tokens.json>,\n   <lock_address>\n)\nergoScanner.registerExtractor(ergoObsesrvationExtractor)\n```\n\nWhere the `token.json` is a source-target map of token ids that are exchanged in the bridge.\n\nOr similarly for cardano:\n\n```javascript\nconst cardanoObsesrvationExtractor = new CardanoObservationExtractor(\n    dataSource,\n    <tokens.json>,\n    <lock_address>\n)\ncardanoScanner.registerExtractor(cardanoObsesrvationExtractor)\n```\n\n## Contributing\n\nTBD\n\n## License\n\nTBD\n","gitHead":"e60da6a88d07344c707efbebb217def56c6ef790","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"8.15.0","description":"### Table of Contents","directories":{},"_nodeVersion":"16.17.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@cardano-ogmios/schema":"^5.5.7","@alakipalaki/alakiscanner":"^31.0.0-e60da6a8.0","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_31.0.0-e60da6a8.0_1687690459993_0.03966598178650971","host":"s3://npm-registry-packages"}},"31.0.0-004503a3.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"31.0.0-004503a3.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@31.0.0-004503a3.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"e24aa8c6a57c6018eb76bf164a07b5b60fd49a20","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-31.0.0-004503a3.0.tgz","fileCount":2,"integrity":"sha512-idVZZ+SSPu4xBHTwwBV6fq1c9Ncv8Qp++9B/qK6UonvvwKBYRO7FykvccMZgnIo+XigEyqz6EfvGXeh02MDwbQ==","signatures":[{"sig":"MEUCIFM9pnwaazq6BrQ4LzlP5THOmJUUNmk4L1Refmj8zh9kAiEA6m3wCXwrALYTDam7UaYxD9NHyNBUoEwFOjBk3W6RgtM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3910},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","readme":"# Observation Extractor\n\n### Table of Contents\n\n- [Description](#description)\n- [Related Projects](#related-projects)\n- [How to Use the Observation Extractor](#how-to-use-the-observation-extractor)\n  - [Install](#install)\n  - [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n<a name=\"headers\"/>\n\n## Description\n\nData extractors are modules that are integrated within a scanner. They drive the required information from the scanned blocks and store them in their own database. The observation extractor is designed to fulfill a watcher's main task: observing user payments in source networks. The bridge payment transaction has its own structure, and the observation extractor searches for this pattern occurrence in source chains and stores all needed information for a watcher commitment creation and revealment.\n\n## Related Projects\n\nThis module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. The address scanner is currently used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the valid source chain observations.\n\n## How to Use the Observation Extractor\n\n### Install\n\nThis project is written in node-js using Esnext module and typeorm database. Extractors are not standalone projects and should be used as scanner modules. You can easily install it using npm with the command:\n\n```shell\nnpm install @rosen-bridge/observation-extractor\n```\n\nAlternatively, you can build and use it manually by cloning the project and running:\n\n```shell\nnpm install\nnpm run build\n```\n\n### Usage\n\nIn the first step, you need to create a scanner instance; follow the steps [here](https://github.com/rosen-bridge/scanner) to create a running instance of the scanner. Then you need to instantiate your address extractor and register it to your scanner:\n\n```javascript\nconst ergoObsesrvationExtractor = new ErgoObservationExtractor(\n   dataSource,\n   <tokens.json>,\n   <lock_address>\n)\nergoScanner.registerExtractor(ergoObsesrvationExtractor)\n```\n\nWhere the `token.json` is a source-target map of token ids that are exchanged in the bridge.\n\nOr similarly for cardano:\n\n```javascript\nconst cardanoObsesrvationExtractor = new CardanoObservationExtractor(\n    dataSource,\n    <tokens.json>,\n    <lock_address>\n)\ncardanoScanner.registerExtractor(cardanoObsesrvationExtractor)\n```\n\n## Contributing\n\nTBD\n\n## License\n\nTBD\n","gitHead":"9ea20fc5e5d9d107c1a78e1c6c77ce050dce327c","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"8.15.0","description":"### Table of Contents","directories":{},"_nodeVersion":"16.17.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@cardano-ogmios/schema":"^5.5.7","@alakipalaki/alakiscanner":"^31.0.0-004503a3.0","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_31.0.0-004503a3.0_1687691830949_0.19997097843245792","host":"s3://npm-registry-packages"}},"31.0.0-ergo-00450333.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"31.0.0-ergo-00450333.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@31.0.0-ergo-00450333.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"1be05dfb6b68c134b193fb46ac0b449160767243","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-31.0.0-ergo-00450333.0.tgz","fileCount":41,"integrity":"sha512-isaWJr4egaqmAc3+LC03lzcRtO52Ktj07tBocA+soNd5vi5m2yxphmfCMiE6tPdvazDqDP8rsXA+aVWfjZTCMA==","signatures":[{"sig":"MEYCIQDo03gFT1r/g7PTW/HzGBwwCvDMtwSsgVEoR0LTsXyUHQIhAM+M43Bwhvg+bzQoVfPtoy4rN+HDXaOaNnAw2MPrJZ/Q","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88612},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","readme":"# Observation Extractor\n\n### Table of Contents\n\n- [Description](#description)\n- [Related Projects](#related-projects)\n- [How to Use the Observation Extractor](#how-to-use-the-observation-extractor)\n  - [Install](#install)\n  - [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n<a name=\"headers\"/>\n\n## Description\n\nData extractors are modules that are integrated within a scanner. They drive the required information from the scanned blocks and store them in their own database. The observation extractor is designed to fulfill a watcher's main task: observing user payments in source networks. The bridge payment transaction has its own structure, and the observation extractor searches for this pattern occurrence in source chains and stores all needed information for a watcher commitment creation and revealment.\n\n## Related Projects\n\nThis module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. The address scanner is currently used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the valid source chain observations.\n\n## How to Use the Observation Extractor\n\n### Install\n\nThis project is written in node-js using Esnext module and typeorm database. Extractors are not standalone projects and should be used as scanner modules. You can easily install it using npm with the command:\n\n```shell\nnpm install @rosen-bridge/observation-extractor\n```\n\nAlternatively, you can build and use it manually by cloning the project and running:\n\n```shell\nnpm install\nnpm run build\n```\n\n### Usage\n\nIn the first step, you need to create a scanner instance; follow the steps [here](https://github.com/rosen-bridge/scanner) to create a running instance of the scanner. Then you need to instantiate your address extractor and register it to your scanner:\n\n```javascript\nconst ergoObsesrvationExtractor = new ErgoObservationExtractor(\n   dataSource,\n   <tokens.json>,\n   <lock_address>\n)\nergoScanner.registerExtractor(ergoObsesrvationExtractor)\n```\n\nWhere the `token.json` is a source-target map of token ids that are exchanged in the bridge.\n\nOr similarly for cardano:\n\n```javascript\nconst cardanoObsesrvationExtractor = new CardanoObservationExtractor(\n    dataSource,\n    <tokens.json>,\n    <lock_address>\n)\ncardanoScanner.registerExtractor(cardanoObsesrvationExtractor)\n```\n\n## Contributing\n\nTBD\n\n## License\n\nTBD\n","gitHead":"9a487fad4d7ac5127337c3655bfb4923795ee8c9","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"8.15.0","description":"### Table of Contents","directories":{},"_nodeVersion":"16.17.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@cardano-ogmios/schema":"^5.5.7","@alakipalaki/alakiscanner":"^31.0.0-ergo-00450333.0","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_31.0.0-ergo-00450333.0_1687692177000_0.7934264698496221","host":"s3://npm-registry-packages"}},"31.0.0-ergo-15803ba5.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"31.0.0-ergo-15803ba5.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@31.0.0-ergo-15803ba5.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"d17a4d5fd159c088807d09e57a2b7fc3dce2596b","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-31.0.0-ergo-15803ba5.0.tgz","fileCount":2,"integrity":"sha512-If5afVdsq9d4w9pHV6LQ6M7eO3h7hkN42GoE7RueAIiLjolUamn5D7o88+9j94xKYlwUJs97tetgIwSOvh6p2g==","signatures":[{"sig":"MEUCIGXK3RySy2Prwcl39UjWAB3/4k3nMAjK+kiZTVCk9b/SAiEA5WTv4aoTbU6PAu+7/vkhaaVrwmzNPVFyJJXIWAjcirs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3920},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","readme":"# Observation Extractor\n\n### Table of Contents\n\n- [Description](#description)\n- [Related Projects](#related-projects)\n- [How to Use the Observation Extractor](#how-to-use-the-observation-extractor)\n  - [Install](#install)\n  - [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n<a name=\"headers\"/>\n\n## Description\n\nData extractors are modules that are integrated within a scanner. They drive the required information from the scanned blocks and store them in their own database. The observation extractor is designed to fulfill a watcher's main task: observing user payments in source networks. The bridge payment transaction has its own structure, and the observation extractor searches for this pattern occurrence in source chains and stores all needed information for a watcher commitment creation and revealment.\n\n## Related Projects\n\nThis module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. The address scanner is currently used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the valid source chain observations.\n\n## How to Use the Observation Extractor\n\n### Install\n\nThis project is written in node-js using Esnext module and typeorm database. Extractors are not standalone projects and should be used as scanner modules. You can easily install it using npm with the command:\n\n```shell\nnpm install @rosen-bridge/observation-extractor\n```\n\nAlternatively, you can build and use it manually by cloning the project and running:\n\n```shell\nnpm install\nnpm run build\n```\n\n### Usage\n\nIn the first step, you need to create a scanner instance; follow the steps [here](https://github.com/rosen-bridge/scanner) to create a running instance of the scanner. Then you need to instantiate your address extractor and register it to your scanner:\n\n```javascript\nconst ergoObsesrvationExtractor = new ErgoObservationExtractor(\n   dataSource,\n   <tokens.json>,\n   <lock_address>\n)\nergoScanner.registerExtractor(ergoObsesrvationExtractor)\n```\n\nWhere the `token.json` is a source-target map of token ids that are exchanged in the bridge.\n\nOr similarly for cardano:\n\n```javascript\nconst cardanoObsesrvationExtractor = new CardanoObservationExtractor(\n    dataSource,\n    <tokens.json>,\n    <lock_address>\n)\ncardanoScanner.registerExtractor(cardanoObsesrvationExtractor)\n```\n\n## Contributing\n\nTBD\n\n## License\n\nTBD\n","gitHead":"15803ba5c24d4af3b17b31684a27a8bb8e2d7f46","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"8.15.0","description":"### Table of Contents","directories":{},"_nodeVersion":"16.17.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@cardano-ogmios/schema":"^5.5.7","@alakipalaki/alakiscanner":"^31.0.0-ergo-15803ba5.0","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_31.0.0-ergo-15803ba5.0_1687696438368_0.1942337800314471","host":"s3://npm-registry-packages"}},"31.0.0-ergo-004456cb.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"31.0.0-ergo-004456cb.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@31.0.0-ergo-004456cb.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"95c4980130b7b41deb8f3f55e163b5f78c65754b","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-31.0.0-ergo-004456cb.0.tgz","fileCount":2,"integrity":"sha512-bZNNFwGwK99wFPmc8uR1zye37esdrYWAQhAYa5MnqmqHiErU2hMDx1s1+/ifAY9HLEAy7bXfIt+1R0QL+4BCAA==","signatures":[{"sig":"MEUCIFhqYygrur0iewmhIHu+Si0QuzqViK5fnHQfVXdkJRTsAiEA5cmCtW8kXdu+4NsWViXnkUfU++lTbx4K11MXWe0lISA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3920},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","readme":"# Observation Extractor\n\n### Table of Contents\n\n- [Description](#description)\n- [Related Projects](#related-projects)\n- [How to Use the Observation Extractor](#how-to-use-the-observation-extractor)\n  - [Install](#install)\n  - [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n<a name=\"headers\"/>\n\n## Description\n\nData extractors are modules that are integrated within a scanner. They drive the required information from the scanned blocks and store them in their own database. The observation extractor is designed to fulfill a watcher's main task: observing user payments in source networks. The bridge payment transaction has its own structure, and the observation extractor searches for this pattern occurrence in source chains and stores all needed information for a watcher commitment creation and revealment.\n\n## Related Projects\n\nThis module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. The address scanner is currently used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the valid source chain observations.\n\n## How to Use the Observation Extractor\n\n### Install\n\nThis project is written in node-js using Esnext module and typeorm database. Extractors are not standalone projects and should be used as scanner modules. You can easily install it using npm with the command:\n\n```shell\nnpm install @rosen-bridge/observation-extractor\n```\n\nAlternatively, you can build and use it manually by cloning the project and running:\n\n```shell\nnpm install\nnpm run build\n```\n\n### Usage\n\nIn the first step, you need to create a scanner instance; follow the steps [here](https://github.com/rosen-bridge/scanner) to create a running instance of the scanner. Then you need to instantiate your address extractor and register it to your scanner:\n\n```javascript\nconst ergoObsesrvationExtractor = new ErgoObservationExtractor(\n   dataSource,\n   <tokens.json>,\n   <lock_address>\n)\nergoScanner.registerExtractor(ergoObsesrvationExtractor)\n```\n\nWhere the `token.json` is a source-target map of token ids that are exchanged in the bridge.\n\nOr similarly for cardano:\n\n```javascript\nconst cardanoObsesrvationExtractor = new CardanoObservationExtractor(\n    dataSource,\n    <tokens.json>,\n    <lock_address>\n)\ncardanoScanner.registerExtractor(cardanoObsesrvationExtractor)\n```\n\n## Contributing\n\nTBD\n\n## License\n\nTBD\n","gitHead":"004456cb811f33c58eb09e4b9fa584461a5923e2","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"8.15.0","description":"### Table of Contents","directories":{},"_nodeVersion":"16.17.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@cardano-ogmios/schema":"^5.5.7","@alakipalaki/alakiscanner":"^31.0.0-ergo-004456cb.0","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_31.0.0-ergo-004456cb.0_1687697636966_0.651462058216242","host":"s3://npm-registry-packages"}},"31.0.0-ergo-2e9afad3.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"31.0.0-ergo-2e9afad3.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@31.0.0-ergo-2e9afad3.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"86ae3167dbb4b3e08fb3f4c4fbdd285e430a862f","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-31.0.0-ergo-2e9afad3.0.tgz","fileCount":41,"integrity":"sha512-jX4xfyM+cZxHtuhSEKN79SNXhiHCyZUgaWHU+vYQuPxK+UIPGTmT4LF0MbuZk0ed/0B76/s9C1u8BrZLWePukw==","signatures":[{"sig":"MEYCIQDI5eboLhpUZ35UWORSqt4Vr3cC3gfCzlBZ6+v6zjh4FgIhALg5tg9WOkrpfW0Mi83fQYzZl9Yt+WN1F14MX9Rfjv8Y","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88612},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","readme":"# Observation Extractor\n\n### Table of Contents\n\n- [Description](#description)\n- [Related Projects](#related-projects)\n- [How to Use the Observation Extractor](#how-to-use-the-observation-extractor)\n  - [Install](#install)\n  - [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n<a name=\"headers\"/>\n\n## Description\n\nData extractors are modules that are integrated within a scanner. They drive the required information from the scanned blocks and store them in their own database. The observation extractor is designed to fulfill a watcher's main task: observing user payments in source networks. The bridge payment transaction has its own structure, and the observation extractor searches for this pattern occurrence in source chains and stores all needed information for a watcher commitment creation and revealment.\n\n## Related Projects\n\nThis module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. The address scanner is currently used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the valid source chain observations.\n\n## How to Use the Observation Extractor\n\n### Install\n\nThis project is written in node-js using Esnext module and typeorm database. Extractors are not standalone projects and should be used as scanner modules. You can easily install it using npm with the command:\n\n```shell\nnpm install @rosen-bridge/observation-extractor\n```\n\nAlternatively, you can build and use it manually by cloning the project and running:\n\n```shell\nnpm install\nnpm run build\n```\n\n### Usage\n\nIn the first step, you need to create a scanner instance; follow the steps [here](https://github.com/rosen-bridge/scanner) to create a running instance of the scanner. Then you need to instantiate your address extractor and register it to your scanner:\n\n```javascript\nconst ergoObsesrvationExtractor = new ErgoObservationExtractor(\n   dataSource,\n   <tokens.json>,\n   <lock_address>\n)\nergoScanner.registerExtractor(ergoObsesrvationExtractor)\n```\n\nWhere the `token.json` is a source-target map of token ids that are exchanged in the bridge.\n\nOr similarly for cardano:\n\n```javascript\nconst cardanoObsesrvationExtractor = new CardanoObservationExtractor(\n    dataSource,\n    <tokens.json>,\n    <lock_address>\n)\ncardanoScanner.registerExtractor(cardanoObsesrvationExtractor)\n```\n\n## Contributing\n\nTBD\n\n## License\n\nTBD\n","gitHead":"2e9afad35182d337032f399244d9a009403d3a8d","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"8.15.0","description":"### Table of Contents","directories":{},"_nodeVersion":"16.17.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@cardano-ogmios/schema":"^5.5.7","@alakipalaki/alakiscanner":"^31.0.0-ergo-2e9afad3.0","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_31.0.0-ergo-2e9afad3.0_1687703228540_0.37913810927159064","host":"s3://npm-registry-packages"}},"31.0.0-ergo-da459585.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"31.0.0-ergo-da459585.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@31.0.0-ergo-da459585.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"996fa7d44544491c336dab33544f8494ea899a72","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-31.0.0-ergo-da459585.0.tgz","fileCount":41,"integrity":"sha512-GJURCc+gvA9JeGZM4UPQU8bTR4wgauLk3BHucZanQipqRYaGkjNVhusMoZc3Zzl0ANpanHi3DWL8ARqj2sALyw==","signatures":[{"sig":"MEUCIQDkUhZDDdzSn8jGgF7lG8Q/a2iJHsIx1WCqqyibvgEhrQIgeqLYJXCO1d88vhekYRnvaugtLhq8l7lwxonsYjdWmoE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88612},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","readme":"# Observation Extractor\n\n### Table of Contents\n\n- [Description](#description)\n- [Related Projects](#related-projects)\n- [How to Use the Observation Extractor](#how-to-use-the-observation-extractor)\n  - [Install](#install)\n  - [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n<a name=\"headers\"/>\n\n## Description\n\nData extractors are modules that are integrated within a scanner. They drive the required information from the scanned blocks and store them in their own database. The observation extractor is designed to fulfill a watcher's main task: observing user payments in source networks. The bridge payment transaction has its own structure, and the observation extractor searches for this pattern occurrence in source chains and stores all needed information for a watcher commitment creation and revealment.\n\n## Related Projects\n\nThis module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. The address scanner is currently used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the valid source chain observations.\n\n## How to Use the Observation Extractor\n\n### Install\n\nThis project is written in node-js using Esnext module and typeorm database. Extractors are not standalone projects and should be used as scanner modules. You can easily install it using npm with the command:\n\n```shell\nnpm install @rosen-bridge/observation-extractor\n```\n\nAlternatively, you can build and use it manually by cloning the project and running:\n\n```shell\nnpm install\nnpm run build\n```\n\n### Usage\n\nIn the first step, you need to create a scanner instance; follow the steps [here](https://github.com/rosen-bridge/scanner) to create a running instance of the scanner. Then you need to instantiate your address extractor and register it to your scanner:\n\n```javascript\nconst ergoObsesrvationExtractor = new ErgoObservationExtractor(\n   dataSource,\n   <tokens.json>,\n   <lock_address>\n)\nergoScanner.registerExtractor(ergoObsesrvationExtractor)\n```\n\nWhere the `token.json` is a source-target map of token ids that are exchanged in the bridge.\n\nOr similarly for cardano:\n\n```javascript\nconst cardanoObsesrvationExtractor = new CardanoObservationExtractor(\n    dataSource,\n    <tokens.json>,\n    <lock_address>\n)\ncardanoScanner.registerExtractor(cardanoObsesrvationExtractor)\n```\n\n## Contributing\n\nTBD\n\n## License\n\nTBD\n","gitHead":"da459585e7f9041dac1d442954eba7dd179c8408","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"8.15.0","description":"### Table of Contents","directories":{},"_nodeVersion":"16.17.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@cardano-ogmios/schema":"^5.5.7","@alakipalaki/alakiscanner":"^31.0.0-ergo-da459585.0","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_31.0.0-ergo-da459585.0_1687703487287_0.9138960379591663","host":"s3://npm-registry-packages"}},"31.0.0-ergo-5640203b.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"31.0.0-ergo-5640203b.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@31.0.0-ergo-5640203b.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"b29b2fda9b36f970d713d40c40379b2e351d6bbd","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-31.0.0-ergo-5640203b.0.tgz","fileCount":41,"integrity":"sha512-rxUwIJXaiFQ90RX3QVMOOCnKQOvB2OTBMqGHOi/IO2JqR+9s82PUgNDhF242Trgi6LwJG2BaUaty2yq6JHE2iQ==","signatures":[{"sig":"MEUCIEEHqvATnQVB2LyAz5zKOZ6n/wclLG3yq3ZWo23GSbOQAiEAmoukyemXztOHpcJDpc/UtpjJ2gBAizNwIPPcpoNGHI4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88612},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","readme":"# Observation Extractor\n\n### Table of Contents\n\n- [Description](#description)\n- [Related Projects](#related-projects)\n- [How to Use the Observation Extractor](#how-to-use-the-observation-extractor)\n  - [Install](#install)\n  - [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n<a name=\"headers\"/>\n\n## Description\n\nData extractors are modules that are integrated within a scanner. They drive the required information from the scanned blocks and store them in their own database. The observation extractor is designed to fulfill a watcher's main task: observing user payments in source networks. The bridge payment transaction has its own structure, and the observation extractor searches for this pattern occurrence in source chains and stores all needed information for a watcher commitment creation and revealment.\n\n## Related Projects\n\nThis module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. The address scanner is currently used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the valid source chain observations.\n\n## How to Use the Observation Extractor\n\n### Install\n\nThis project is written in node-js using Esnext module and typeorm database. Extractors are not standalone projects and should be used as scanner modules. You can easily install it using npm with the command:\n\n```shell\nnpm install @rosen-bridge/observation-extractor\n```\n\nAlternatively, you can build and use it manually by cloning the project and running:\n\n```shell\nnpm install\nnpm run build\n```\n\n### Usage\n\nIn the first step, you need to create a scanner instance; follow the steps [here](https://github.com/rosen-bridge/scanner) to create a running instance of the scanner. Then you need to instantiate your address extractor and register it to your scanner:\n\n```javascript\nconst ergoObsesrvationExtractor = new ErgoObservationExtractor(\n   dataSource,\n   <tokens.json>,\n   <lock_address>\n)\nergoScanner.registerExtractor(ergoObsesrvationExtractor)\n```\n\nWhere the `token.json` is a source-target map of token ids that are exchanged in the bridge.\n\nOr similarly for cardano:\n\n```javascript\nconst cardanoObsesrvationExtractor = new CardanoObservationExtractor(\n    dataSource,\n    <tokens.json>,\n    <lock_address>\n)\ncardanoScanner.registerExtractor(cardanoObsesrvationExtractor)\n```\n\n## Contributing\n\nTBD\n\n## License\n\nTBD\n","gitHead":"5640203ba5a531be604b82c837cf29cba5f6eb59","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"8.15.0","description":"### Table of Contents","directories":{},"_nodeVersion":"16.17.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@cardano-ogmios/schema":"^5.5.7","@alakipalaki/alakiscanner":"^31.0.0-ergo-5640203b.0","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_31.0.0-ergo-5640203b.0_1687703718975_0.25373206058828","host":"s3://npm-registry-packages"}},"31.0.0-ergo-a88768b4.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"31.0.0-ergo-a88768b4.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@31.0.0-ergo-a88768b4.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"7b1cae0af6d382673214345804327ad1d7627dda","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-31.0.0-ergo-a88768b4.0.tgz","fileCount":41,"integrity":"sha512-zFkjt9KnQJJ1HZJS9noua8LZgT+Rvo5VM1V3v+me47fcjML8TsszZyvEsNnj+8WL8LIBiDxfF5kkyaVECJrTQQ==","signatures":[{"sig":"MEUCIGVprCRmoYT2OWH//OulBYb4DsaAcjc7lGgfjEmCZ4G9AiEApfbvWq8PlZLKVd18o5A5AfH5GYGmEt1EHNWU4S4Wwxs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88612},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","readme":"# Observation Extractor\n\n### Table of Contents\n\n- [Description](#description)\n- [Related Projects](#related-projects)\n- [How to Use the Observation Extractor](#how-to-use-the-observation-extractor)\n  - [Install](#install)\n  - [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n<a name=\"headers\"/>\n\n## Description\n\nData extractors are modules that are integrated within a scanner. They drive the required information from the scanned blocks and store them in their own database. The observation extractor is designed to fulfill a watcher's main task: observing user payments in source networks. The bridge payment transaction has its own structure, and the observation extractor searches for this pattern occurrence in source chains and stores all needed information for a watcher commitment creation and revealment.\n\n## Related Projects\n\nThis module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. The address scanner is currently used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the valid source chain observations.\n\n## How to Use the Observation Extractor\n\n### Install\n\nThis project is written in node-js using Esnext module and typeorm database. Extractors are not standalone projects and should be used as scanner modules. You can easily install it using npm with the command:\n\n```shell\nnpm install @rosen-bridge/observation-extractor\n```\n\nAlternatively, you can build and use it manually by cloning the project and running:\n\n```shell\nnpm install\nnpm run build\n```\n\n### Usage\n\nIn the first step, you need to create a scanner instance; follow the steps [here](https://github.com/rosen-bridge/scanner) to create a running instance of the scanner. Then you need to instantiate your address extractor and register it to your scanner:\n\n```javascript\nconst ergoObsesrvationExtractor = new ErgoObservationExtractor(\n   dataSource,\n   <tokens.json>,\n   <lock_address>\n)\nergoScanner.registerExtractor(ergoObsesrvationExtractor)\n```\n\nWhere the `token.json` is a source-target map of token ids that are exchanged in the bridge.\n\nOr similarly for cardano:\n\n```javascript\nconst cardanoObsesrvationExtractor = new CardanoObservationExtractor(\n    dataSource,\n    <tokens.json>,\n    <lock_address>\n)\ncardanoScanner.registerExtractor(cardanoObsesrvationExtractor)\n```\n\n## Contributing\n\nTBD\n\n## License\n\nTBD\n","gitHead":"a88768b40df2f09825faa735b36fddf90a349f26","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"8.15.0","description":"### Table of Contents","directories":{},"_nodeVersion":"16.17.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@cardano-ogmios/schema":"^5.5.7","@alakipalaki/alakiscanner":"^31.0.0-ergo-a88768b4.0","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_31.0.0-ergo-a88768b4.0_1687776889038_0.8417904905976767","host":"s3://npm-registry-packages"}},"31.0.0-ergo-aafee967.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"31.0.0-ergo-aafee967.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@31.0.0-ergo-aafee967.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"77db3db0ce40b80d59665107d3c00f3e9d23d57c","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-31.0.0-ergo-aafee967.0.tgz","fileCount":2,"integrity":"sha512-0MES4X5eiwYfZgDf2m9JtGUSqhmUFeMlrmnfNAWacWEBoH7R/WrdfbMkPhG8IZGwYPnJkrkHWlrWaZ5AN5QZrw==","signatures":[{"sig":"MEUCIGnf+klW4dM/IIAg+d2WfuIZ44qEfZTSa6VU1Si7tRxEAiEA19gLdiofvEhgw8RAEV9ez/AuIU6mf7iPU/N+mvBTiy0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3920},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","readme":"# Observation Extractor\n\n### Table of Contents\n\n- [Description](#description)\n- [Related Projects](#related-projects)\n- [How to Use the Observation Extractor](#how-to-use-the-observation-extractor)\n  - [Install](#install)\n  - [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n<a name=\"headers\"/>\n\n## Description\n\nData extractors are modules that are integrated within a scanner. They drive the required information from the scanned blocks and store them in their own database. The observation extractor is designed to fulfill a watcher's main task: observing user payments in source networks. The bridge payment transaction has its own structure, and the observation extractor searches for this pattern occurrence in source chains and stores all needed information for a watcher commitment creation and revealment.\n\n## Related Projects\n\nThis module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. The address scanner is currently used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the valid source chain observations.\n\n## How to Use the Observation Extractor\n\n### Install\n\nThis project is written in node-js using Esnext module and typeorm database. Extractors are not standalone projects and should be used as scanner modules. You can easily install it using npm with the command:\n\n```shell\nnpm install @rosen-bridge/observation-extractor\n```\n\nAlternatively, you can build and use it manually by cloning the project and running:\n\n```shell\nnpm install\nnpm run build\n```\n\n### Usage\n\nIn the first step, you need to create a scanner instance; follow the steps [here](https://github.com/rosen-bridge/scanner) to create a running instance of the scanner. Then you need to instantiate your address extractor and register it to your scanner:\n\n```javascript\nconst ergoObsesrvationExtractor = new ErgoObservationExtractor(\n   dataSource,\n   <tokens.json>,\n   <lock_address>\n)\nergoScanner.registerExtractor(ergoObsesrvationExtractor)\n```\n\nWhere the `token.json` is a source-target map of token ids that are exchanged in the bridge.\n\nOr similarly for cardano:\n\n```javascript\nconst cardanoObsesrvationExtractor = new CardanoObservationExtractor(\n    dataSource,\n    <tokens.json>,\n    <lock_address>\n)\ncardanoScanner.registerExtractor(cardanoObsesrvationExtractor)\n```\n\n## Contributing\n\nTBD\n\n## License\n\nTBD\n","gitHead":"aafee967bab5b01a8684f52b63fb46ef8b71ace3","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"8.15.0","description":"### Table of Contents","directories":{},"_nodeVersion":"16.17.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@cardano-ogmios/schema":"^5.5.7","@alakipalaki/alakiscanner":"^31.0.0-ergo-aafee967.0","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_31.0.0-ergo-aafee967.0_1687783332950_0.17286231205190394","host":"s3://npm-registry-packages"}},"31.0.0-ergo-9a716f10.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"31.0.0-ergo-9a716f10.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@31.0.0-ergo-9a716f10.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"74d5d8d0d20ffaa6638f0b1650f299cc6004d4e7","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-31.0.0-ergo-9a716f10.0.tgz","fileCount":41,"integrity":"sha512-o8O81kbWiBW5jLnBAVxIJImN2upvq5oExkFs6Fg0whERN2WDlmTBA9OZzdGyFEK0q+yMDBi8GPAUFNSOR1MxuQ==","signatures":[{"sig":"MEUCIEFENjoFn2T1ztVF/m6AKJjtq/LQViBYUFVVl1T35H+3AiEA7wYaUNjiRaGkDGZsNNLeIJuyJrlbBeYI12xXHDPQs4g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88612},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","readme":"# Observation Extractor\n\n### Table of Contents\n\n- [Description](#description)\n- [Related Projects](#related-projects)\n- [How to Use the Observation Extractor](#how-to-use-the-observation-extractor)\n  - [Install](#install)\n  - [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n<a name=\"headers\"/>\n\n## Description\n\nData extractors are modules that are integrated within a scanner. They drive the required information from the scanned blocks and store them in their own database. The observation extractor is designed to fulfill a watcher's main task: observing user payments in source networks. The bridge payment transaction has its own structure, and the observation extractor searches for this pattern occurrence in source chains and stores all needed information for a watcher commitment creation and revealment.\n\n## Related Projects\n\nThis module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. The address scanner is currently used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the valid source chain observations.\n\n## How to Use the Observation Extractor\n\n### Install\n\nThis project is written in node-js using Esnext module and typeorm database. Extractors are not standalone projects and should be used as scanner modules. You can easily install it using npm with the command:\n\n```shell\nnpm install @rosen-bridge/observation-extractor\n```\n\nAlternatively, you can build and use it manually by cloning the project and running:\n\n```shell\nnpm install\nnpm run build\n```\n\n### Usage\n\nIn the first step, you need to create a scanner instance; follow the steps [here](https://github.com/rosen-bridge/scanner) to create a running instance of the scanner. Then you need to instantiate your address extractor and register it to your scanner:\n\n```javascript\nconst ergoObsesrvationExtractor = new ErgoObservationExtractor(\n   dataSource,\n   <tokens.json>,\n   <lock_address>\n)\nergoScanner.registerExtractor(ergoObsesrvationExtractor)\n```\n\nWhere the `token.json` is a source-target map of token ids that are exchanged in the bridge.\n\nOr similarly for cardano:\n\n```javascript\nconst cardanoObsesrvationExtractor = new CardanoObservationExtractor(\n    dataSource,\n    <tokens.json>,\n    <lock_address>\n)\ncardanoScanner.registerExtractor(cardanoObsesrvationExtractor)\n```\n\n## Contributing\n\nTBD\n\n## License\n\nTBD\n","gitHead":"9a716f10d3e847c739b5387cc212326da48e60ec","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"8.15.0","description":"### Table of Contents","directories":{},"_nodeVersion":"16.17.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@cardano-ogmios/schema":"^5.5.7","@alakipalaki/alakiscanner":"^31.0.0-ergo-9a716f10.0","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_31.0.0-ergo-9a716f10.0_1687786147351_0.11313974969753171","host":"s3://npm-registry-packages"}},"31.0.0-ergo-7a7d13b9.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"31.0.0-ergo-7a7d13b9.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@31.0.0-ergo-7a7d13b9.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"d90cd5b2589aa04ba256469935ec5e8dbfe30157","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-31.0.0-ergo-7a7d13b9.0.tgz","fileCount":41,"integrity":"sha512-ri+ABky/PxNTGO2lnUBNQIUI6+dUMeJKpOnljzxgXjeoyu8mAouUVDHN30e0rioPtUbvtEelGb0StTDwOC++0A==","signatures":[{"sig":"MEYCIQDJF3Vnrr0lR4mNyi6NUCJx3ZYHovexfciQfGWUAbCzuQIhAK/6vgPsl3Et9FUjFqJRB5Ga1JYNZflILD7sZa/vW2z2","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88612},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","readme":"# Observation Extractor\n\n### Table of Contents\n\n- [Description](#description)\n- [Related Projects](#related-projects)\n- [How to Use the Observation Extractor](#how-to-use-the-observation-extractor)\n  - [Install](#install)\n  - [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n<a name=\"headers\"/>\n\n## Description\n\nData extractors are modules that are integrated within a scanner. They drive the required information from the scanned blocks and store them in their own database. The observation extractor is designed to fulfill a watcher's main task: observing user payments in source networks. The bridge payment transaction has its own structure, and the observation extractor searches for this pattern occurrence in source chains and stores all needed information for a watcher commitment creation and revealment.\n\n## Related Projects\n\nThis module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. The address scanner is currently used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the valid source chain observations.\n\n## How to Use the Observation Extractor\n\n### Install\n\nThis project is written in node-js using Esnext module and typeorm database. Extractors are not standalone projects and should be used as scanner modules. You can easily install it using npm with the command:\n\n```shell\nnpm install @rosen-bridge/observation-extractor\n```\n\nAlternatively, you can build and use it manually by cloning the project and running:\n\n```shell\nnpm install\nnpm run build\n```\n\n### Usage\n\nIn the first step, you need to create a scanner instance; follow the steps [here](https://github.com/rosen-bridge/scanner) to create a running instance of the scanner. Then you need to instantiate your address extractor and register it to your scanner:\n\n```javascript\nconst ergoObsesrvationExtractor = new ErgoObservationExtractor(\n   dataSource,\n   <tokens.json>,\n   <lock_address>\n)\nergoScanner.registerExtractor(ergoObsesrvationExtractor)\n```\n\nWhere the `token.json` is a source-target map of token ids that are exchanged in the bridge.\n\nOr similarly for cardano:\n\n```javascript\nconst cardanoObsesrvationExtractor = new CardanoObservationExtractor(\n    dataSource,\n    <tokens.json>,\n    <lock_address>\n)\ncardanoScanner.registerExtractor(cardanoObsesrvationExtractor)\n```\n\n## Contributing\n\nTBD\n\n## License\n\nTBD\n","gitHead":"7a7d13b99d8d6a666d6d65be56f8995e8ca5c68c","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"8.15.0","description":"### Table of Contents","directories":{},"_nodeVersion":"16.17.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@cardano-ogmios/schema":"^5.5.7","@alakipalaki/alakiscanner":"^31.0.0-ergo-7a7d13b9.0","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_31.0.0-ergo-7a7d13b9.0_1687786353814_0.673958364422192","host":"s3://npm-registry-packages"}},"31.0.0-ergo-34e1a3e0.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"31.0.0-ergo-34e1a3e0.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@31.0.0-ergo-34e1a3e0.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"3a412ce74309eaed828d503e962e38d21bd607fd","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-31.0.0-ergo-34e1a3e0.0.tgz","fileCount":41,"integrity":"sha512-9eNQFVuYBMrb5n0wmNpUeVhAknUj4GQ60Lwq653aDIQsJDqTbWwEQ9CtiJvttzXK7G8R2RRtYtWKW9uFtkyx4Q==","signatures":[{"sig":"MEUCIB2onV3gDGi7mdBqG/pmj6Rn4zQGOCHrK0F7zSfoQP8XAiEAko3CISOjE94OF1hfgsO7DldYxr4cj9lIZA0/aQMVxYc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88612},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","readme":"# Observation Extractor\n\n### Table of Contents\n\n- [Description](#description)\n- [Related Projects](#related-projects)\n- [How to Use the Observation Extractor](#how-to-use-the-observation-extractor)\n  - [Install](#install)\n  - [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n<a name=\"headers\"/>\n\n## Description\n\nData extractors are modules that are integrated within a scanner. They drive the required information from the scanned blocks and store them in their own database. The observation extractor is designed to fulfill a watcher's main task: observing user payments in source networks. The bridge payment transaction has its own structure, and the observation extractor searches for this pattern occurrence in source chains and stores all needed information for a watcher commitment creation and revealment.\n\n## Related Projects\n\nThis module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. The address scanner is currently used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the valid source chain observations.\n\n## How to Use the Observation Extractor\n\n### Install\n\nThis project is written in node-js using Esnext module and typeorm database. Extractors are not standalone projects and should be used as scanner modules. You can easily install it using npm with the command:\n\n```shell\nnpm install @rosen-bridge/observation-extractor\n```\n\nAlternatively, you can build and use it manually by cloning the project and running:\n\n```shell\nnpm install\nnpm run build\n```\n\n### Usage\n\nIn the first step, you need to create a scanner instance; follow the steps [here](https://github.com/rosen-bridge/scanner) to create a running instance of the scanner. Then you need to instantiate your address extractor and register it to your scanner:\n\n```javascript\nconst ergoObsesrvationExtractor = new ErgoObservationExtractor(\n   dataSource,\n   <tokens.json>,\n   <lock_address>\n)\nergoScanner.registerExtractor(ergoObsesrvationExtractor)\n```\n\nWhere the `token.json` is a source-target map of token ids that are exchanged in the bridge.\n\nOr similarly for cardano:\n\n```javascript\nconst cardanoObsesrvationExtractor = new CardanoObservationExtractor(\n    dataSource,\n    <tokens.json>,\n    <lock_address>\n)\ncardanoScanner.registerExtractor(cardanoObsesrvationExtractor)\n```\n\n## Contributing\n\nTBD\n\n## License\n\nTBD\n","gitHead":"34e1a3e046db2bbd0f017b0176757920722a0781","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"8.15.0","description":"### Table of Contents","directories":{},"_nodeVersion":"16.17.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@cardano-ogmios/schema":"^5.5.7","@alakipalaki/alakiscanner":"^31.0.0-ergo-34e1a3e0.0","@rosen-bridge/rosen-extractor":"^0.1.7","@rosen-bridge/logger-interface":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_31.0.0-ergo-34e1a3e0.0_1687786918507_0.05830766806144139","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"@alakipalaki/alakiobservation-extractor","version":"1.0.4","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@1.0.4","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"88c479958d73d22e47d3f6ea1546aeede367aac3","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-1.0.4.tgz","fileCount":41,"integrity":"sha512-9Imu1tV8YjEfCRURKfZmnb9P1C/KsmFUgYQ2TAv6ZsKA/gSGJxGe52JBqaenyl3jdyGUXOdd1r2FjuYngfPvwg==","signatures":[{"sig":"MEYCIQCAawvccCDb+rj4myHvRqTyyMNrGJAmaxhi34at8P4ibQIhAP6N/oQ9wAkean+IE1u7LqEMzQp8xjLtGGQbVkllgJ5X","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88489},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","readme":"# Observation Extractor\n\n### Table of Contents\n\n- [Description](#description)\n- [Related Projects](#related-projects)\n- [How to Use the Observation Extractor](#how-to-use-the-observation-extractor)\n  - [Install](#install)\n  - [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n<a name=\"headers\"/>\n\n## Description\n\nData extractors are modules that are integrated within a scanner. They drive the required information from the scanned blocks and store them in their own database. The observation extractor is designed to fulfill a watcher's main task: observing user payments in source networks. The bridge payment transaction has its own structure, and the observation extractor searches for this pattern occurrence in source chains and stores all needed information for a watcher commitment creation and revealment.\n\n## Related Projects\n\nThis module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. The address scanner is currently used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the valid source chain observations.\n\n## How to Use the Observation Extractor\n\n### Install\n\nThis project is written in node-js using Esnext module and typeorm database. Extractors are not standalone projects and should be used as scanner modules. You can easily install it using npm with the command:\n\n```shell\nnpm install @rosen-bridge/observation-extractor\n```\n\nAlternatively, you can build and use it manually by cloning the project and running:\n\n```shell\nnpm install\nnpm run build\n```\n\n### Usage\n\nIn the first step, you need to create a scanner instance; follow the steps [here](https://github.com/rosen-bridge/scanner) to create a running instance of the scanner. Then you need to instantiate your address extractor and register it to your scanner:\n\n```javascript\nconst ergoObsesrvationExtractor = new ErgoObservationExtractor(\n   dataSource,\n   <tokens.json>,\n   <lock_address>\n)\nergoScanner.registerExtractor(ergoObsesrvationExtractor)\n```\n\nWhere the `token.json` is a source-target map of token ids that are exchanged in the bridge.\n\nOr similarly for cardano:\n\n```javascript\nconst cardanoObsesrvationExtractor = new CardanoObservationExtractor(\n    dataSource,\n    <tokens.json>,\n    <lock_address>\n)\ncardanoScanner.registerExtractor(cardanoObsesrvationExtractor)\n```\n\n## Contributing\n\nTBD\n\n## License\n\nTBD\n","gitHead":"21433950b604fcf80e793f2148144ad859bd93e3","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run test && npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"9.5.1","description":"### Table of Contents","directories":{},"_nodeVersion":"18.16.1","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@rosen-bridge/scanner":"^1.0.4","@cardano-ogmios/schema":"^5.5.7","@rosen-bridge/rosen-extractor":"^0.1.8","@rosen-bridge/logger-interface":"^0.1.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_1.0.4_1688821537168_0.7181110229436694","host":"s3://npm-registry-packages"}},"1.0.5-next-6f574c16d576af0712543951cacc26f19d172051.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"1.0.5-next-6f574c16d576af0712543951cacc26f19d172051.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@1.0.5-next-6f574c16d576af0712543951cacc26f19d172051.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"982c9d52dc80b3961e84fb1b3e9d88db81755f13","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-1.0.5-next-6f574c16d576af0712543951cacc26f19d172051.0.tgz","fileCount":41,"integrity":"sha512-LCvXDjON44zQc4SDqzO0GWRx7PfVUWe72FFhnAq6cGmcMVXICBaRrvh69E3j0BeeE2k0P/GpVhbx7zHsf+LTgA==","signatures":[{"sig":"MEYCIQCC/fr4T61MMQsQQhWiehV1fWF05BvaH+HZs3m1LzMZeAIhAMH2b9XcGRaHYGgPMPruPLiMkOx7mgTZ4LMGrUFLJjWV","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88537},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","readme":"# Observation Extractor\n\n### Table of Contents\n\n- [Description](#description)\n- [Related Projects](#related-projects)\n- [How to Use the Observation Extractor](#how-to-use-the-observation-extractor)\n  - [Install](#install)\n  - [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n<a name=\"headers\"/>\n\n## Description\n\nData extractors are modules that are integrated within a scanner. They drive the required information from the scanned blocks and store them in their own database. The observation extractor is designed to fulfill a watcher's main task: observing user payments in source networks. The bridge payment transaction has its own structure, and the observation extractor searches for this pattern occurrence in source chains and stores all needed information for a watcher commitment creation and revealment.\n\n## Related Projects\n\nThis module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. The address scanner is currently used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the valid source chain observations.\n\n## How to Use the Observation Extractor\n\n### Install\n\nThis project is written in node-js using Esnext module and typeorm database. Extractors are not standalone projects and should be used as scanner modules. You can easily install it using npm with the command:\n\n```shell\nnpm install @rosen-bridge/observation-extractor\n```\n\nAlternatively, you can build and use it manually by cloning the project and running:\n\n```shell\nnpm install\nnpm run build\n```\n\n### Usage\n\nIn the first step, you need to create a scanner instance; follow the steps [here](https://github.com/rosen-bridge/scanner) to create a running instance of the scanner. Then you need to instantiate your address extractor and register it to your scanner:\n\n```javascript\nconst ergoObsesrvationExtractor = new ErgoObservationExtractor(\n   dataSource,\n   <tokens.json>,\n   <lock_address>\n)\nergoScanner.registerExtractor(ergoObsesrvationExtractor)\n```\n\nWhere the `token.json` is a source-target map of token ids that are exchanged in the bridge.\n\nOr similarly for cardano:\n\n```javascript\nconst cardanoObsesrvationExtractor = new CardanoObservationExtractor(\n    dataSource,\n    <tokens.json>,\n    <lock_address>\n)\ncardanoScanner.registerExtractor(cardanoObsesrvationExtractor)\n```\n\n## Contributing\n\nTBD\n\n## License\n\nTBD\n","gitHead":"6f574c16d576af0712543951cacc26f19d172051","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run test && npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"9.5.1","description":"### Table of Contents","directories":{},"_nodeVersion":"18.16.1","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@rosen-bridge/scanner":"^1.0.4","@cardano-ogmios/schema":"^5.5.7","@rosen-bridge/rosen-extractor":"^0.1.8","@rosen-bridge/logger-interface":"^0.1.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_1.0.5-next-6f574c16d576af0712543951cacc26f19d172051.0_1688825565564_0.4451984851558719","host":"s3://npm-registry-packages"}},"1.0.5":{"name":"@alakipalaki/alakiobservation-extractor","version":"1.0.5","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@1.0.5","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"a9d8035c17930505a30f2b68ea1355358c207afa","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-1.0.5.tgz","fileCount":2,"integrity":"sha512-qRBoxqPhgFFGSpwwa4VQJUs+L8sz9kG9Zk5Flrq5Bx++qlBuFXjwFV00LQJl9I7B9xefKaiwaGI56T6aCfyncg==","signatures":[{"sig":"MEYCIQDJ/dQ58lzcFgLNGHl5hCeOcOEmcMgxSqL4mbghqyP8iAIhAIOZLOiga9WSfmFYZb7Uct+eM/TogloHNp/x+0zhLzKK","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3849},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"c13db6eec2b58528dbd03ae5135137ef79a447ca","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run test && npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"9.5.1","description":"### Table of Contents","directories":{},"_nodeVersion":"18.16.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@rosen-bridge/scanner":"^1.0.4","@cardano-ogmios/schema":"^5.5.7","@rosen-bridge/rosen-extractor":"^0.1.8","@rosen-bridge/logger-interface":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_1.0.5_1689101581131_0.4741720071266817","host":"s3://npm-registry-packages"}},"61.0.0-next-ca77db72e61b5979a8a2394220d45ebc539905d6.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"61.0.0-next-ca77db72e61b5979a8a2394220d45ebc539905d6.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@61.0.0-next-ca77db72e61b5979a8a2394220d45ebc539905d6.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"f4da1ee9e21b911aa5eddd162f0f9d3eded984c7","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-61.0.0-next-ca77db72e61b5979a8a2394220d45ebc539905d6.0.tgz","fileCount":41,"integrity":"sha512-hjAXBh1UP42WWq4/iI7N4VdLY/hixpOjkG2iOXyJbLLGja63ix+wcdmrMSuVSDeKmBdzoTnTfOj40ZUhDS09JA==","signatures":[{"sig":"MEUCIQDbARIjlVhPJlEdhG4FOVgL1uFTeI5Ghfsa1eE/hqYH6AIgcSHUBcdkKssEoVxmA2fSDfzGhrWECsKx+EiY/DrHDIs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88538},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","readme":"# Observation Extractor\n\n### Table of Contents\n\n- [Description](#description)\n- [Related Projects](#related-projects)\n- [How to Use the Observation Extractor](#how-to-use-the-observation-extractor)\n  - [Install](#install)\n  - [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n<a name=\"headers\"/>\n\n## Description\n\nData extractors are modules that are integrated within a scanner. They drive the required information from the scanned blocks and store them in their own database. The observation extractor is designed to fulfill a watcher's main task: observing user payments in source networks. The bridge payment transaction has its own structure, and the observation extractor searches for this pattern occurrence in source chains and stores all needed information for a watcher commitment creation and revealment.\n\n## Related Projects\n\nThis module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. The address scanner is currently used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the valid source chain observations.\n\n## How to Use the Observation Extractor\n\n### Install\n\nThis project is written in node-js using Esnext module and typeorm database. Extractors are not standalone projects and should be used as scanner modules. You can easily install it using npm with the command:\n\n```shell\nnpm install @rosen-bridge/observation-extractor\n```\n\nAlternatively, you can build and use it manually by cloning the project and running:\n\n```shell\nnpm install\nnpm run build\n```\n\n### Usage\n\nIn the first step, you need to create a scanner instance; follow the steps [here](https://github.com/rosen-bridge/scanner) to create a running instance of the scanner. Then you need to instantiate your address extractor and register it to your scanner:\n\n```javascript\nconst ergoObsesrvationExtractor = new ErgoObservationExtractor(\n   dataSource,\n   <tokens.json>,\n   <lock_address>\n)\nergoScanner.registerExtractor(ergoObsesrvationExtractor)\n```\n\nWhere the `token.json` is a source-target map of token ids that are exchanged in the bridge.\n\nOr similarly for cardano:\n\n```javascript\nconst cardanoObsesrvationExtractor = new CardanoObservationExtractor(\n    dataSource,\n    <tokens.json>,\n    <lock_address>\n)\ncardanoScanner.registerExtractor(cardanoObsesrvationExtractor)\n```\n\n## Contributing\n\nTBD\n\n## License\n\nTBD\n","gitHead":"ca77db72e61b5979a8a2394220d45ebc539905d6","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run test && npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"9.5.1","description":"### Table of Contents","directories":{},"_nodeVersion":"18.16.1","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@rosen-bridge/scanner":"^1.0.4","@cardano-ogmios/schema":"^5.5.7","@rosen-bridge/rosen-extractor":"^0.1.8","@rosen-bridge/logger-interface":"^0.1.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_61.0.0-next-ca77db72e61b5979a8a2394220d45ebc539905d6.0_1689102564466_0.023444548470527016","host":"s3://npm-registry-packages"}},"61.0.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"61.0.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@61.0.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"c3b2d943ef1053644cd67d89e629d5c3b3ff4848","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-61.0.0.tgz","fileCount":41,"integrity":"sha512-GvIsfmjXOT7zBVHmWlkzx88KZSARoEKZAGJP8pdXCoHJdlnD8SvgQPkFrV7HWHu2RNmqMQ5pWsfr15FtyWVVQw==","signatures":[{"sig":"MEYCIQDl11E6NNm+dww4yFaNHfQqcCTfqS0ehTZVUBDMRjkHogIhALhuTQqwuR421vrTpDiAk6PgSYFUJ/8yXPCPzp4+i0KW","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88490},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"47fc6a7685b12421099d99af78aedaaae03ad11e","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run test && npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"9.5.1","description":"### Table of Contents","directories":{},"_nodeVersion":"18.16.1","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@rosen-bridge/scanner":"^1.0.4","@cardano-ogmios/schema":"^5.5.7","@rosen-bridge/rosen-extractor":"^0.1.8","@rosen-bridge/logger-interface":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_61.0.0_1689102908662_0.43952802641048505","host":"s3://npm-registry-packages"}},"62.0.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"62.0.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@62.0.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"eec7428caea43bd15a8174f73c3877c9fbb93ace","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-62.0.0.tgz","fileCount":41,"integrity":"sha512-F84zTUwj6cTe1gx51AJ/QhqmViq9g/UGCxbUkF2oVWvYREUQ5hWvbwwRaRS5snbWy7cJ9X0C3yBjanonXInWUQ==","signatures":[{"sig":"MEQCICBA3bKgfXcWEP2q8v7Vw/cJWC3QWJzcct+hIdwseQG3AiBoKzxfM/HRlc+RGkC0nI7MqdhHTBrqwy99m6z948YDrA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88490},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"4c5dca39951ce14c5e1cb18132ac8099450dd3f5","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run test && npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"9.6.7","description":"### Table of Contents","directories":{},"_nodeVersion":"18.17.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@rosen-bridge/scanner":"^1.0.4","@cardano-ogmios/schema":"^5.5.7","@rosen-bridge/rosen-extractor":"^0.1.8","@rosen-bridge/logger-interface":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_62.0.0_1692112371609_0.7764158940821713","host":"s3://npm-registry-packages"}},"62.0.0-next-54dfeb5.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"62.0.0-next-54dfeb5.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@62.0.0-next-54dfeb5.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"e8338960f8d5c4b855d73979e0a3ed7e29f28f67","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-62.0.0-next-54dfeb5.0.tgz","fileCount":41,"integrity":"sha512-eLqn1IQxAhRGx1FLrocabndx4N4W9UEoYmqB+2VmhldTOe4nakESoQdWeXFbSjG9iMEwgfKtQlOLDLEffgToyg==","signatures":[{"sig":"MEUCIAH/TBf/Gx3T7LfXFDFLZurhbAWhSr+dxlh70FOGZhJ3AiEAoeqUXoi3ovb3cbsKD5vVcC1lzywvTliDYAwNN9JBEa4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88505},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","readme":"# Observation Extractor\n\n### Table of Contents\n\n- [Description](#description)\n- [Related Projects](#related-projects)\n- [How to Use the Observation Extractor](#how-to-use-the-observation-extractor)\n  - [Install](#install)\n  - [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n<a name=\"headers\"/>\n\n## Description\n\nData extractors are modules that are integrated within a scanner. They drive the required information from the scanned blocks and store them in their own database. The observation extractor is designed to fulfill a watcher's main task: observing user payments in source networks. The bridge payment transaction has its own structure, and the observation extractor searches for this pattern occurrence in source chains and stores all needed information for a watcher commitment creation and revealment.\n\n## Related Projects\n\nThis module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. The address scanner is currently used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the valid source chain observations.\n\n## How to Use the Observation Extractor\n\n### Install\n\nThis project is written in node-js using Esnext module and typeorm database. Extractors are not standalone projects and should be used as scanner modules. You can easily install it using npm with the command:\n\n```shell\nnpm install @rosen-bridge/observation-extractor\n```\n\nAlternatively, you can build and use it manually by cloning the project and running:\n\n```shell\nnpm install\nnpm run build\n```\n\n### Usage\n\nIn the first step, you need to create a scanner instance; follow the steps [here](https://github.com/rosen-bridge/scanner) to create a running instance of the scanner. Then you need to instantiate your address extractor and register it to your scanner:\n\n```javascript\nconst ergoObsesrvationExtractor = new ErgoObservationExtractor(\n   dataSource,\n   <tokens.json>,\n   <lock_address>\n)\nergoScanner.registerExtractor(ergoObsesrvationExtractor)\n```\n\nWhere the `token.json` is a source-target map of token ids that are exchanged in the bridge.\n\nOr similarly for cardano:\n\n```javascript\nconst cardanoObsesrvationExtractor = new CardanoObservationExtractor(\n    dataSource,\n    <tokens.json>,\n    <lock_address>\n)\ncardanoScanner.registerExtractor(cardanoObsesrvationExtractor)\n```\n\n## Contributing\n\nTBD\n\n## License\n\nTBD\n","gitHead":"54dfeb57fed9a4617a42628df685dfeedeab5a80","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run test && npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"9.6.7","description":"### Table of Contents","directories":{},"_nodeVersion":"18.17.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@rosen-bridge/scanner":"^1.0.4","@cardano-ogmios/schema":"^5.5.7","@rosen-bridge/rosen-extractor":"^0.1.8","@rosen-bridge/logger-interface":"^0.1.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_62.0.0-next-54dfeb5.0_1692112454489_0.08493800684536068","host":"s3://npm-registry-packages"}},"63.0.0-next-03eba3d.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"63.0.0-next-03eba3d.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@63.0.0-next-03eba3d.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"7663f7c51ab7461bf30a39157aa111a32d88ad29","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-63.0.0-next-03eba3d.0.tgz","fileCount":41,"integrity":"sha512-CgYS3Ylz51iHGWeGFP/kl3C7wCPfNpey5QH42WV9FodjBopNCTrSQNDzaUMdH/AUoRs/UYIE+cmZl1Mk+wg34Q==","signatures":[{"sig":"MEYCIQCS3n8Yiy0938o2PypACqp0FIgWYCu20KJ93s24kzoP+gIhAIlKTUq+XTIQFbIMhTdh3FQiZHOcr00/G6xbaCTWePj8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88505},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","readme":"# Observation Extractor\n\n### Table of Contents\n\n- [Description](#description)\n- [Related Projects](#related-projects)\n- [How to Use the Observation Extractor](#how-to-use-the-observation-extractor)\n  - [Install](#install)\n  - [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n<a name=\"headers\"/>\n\n## Description\n\nData extractors are modules that are integrated within a scanner. They drive the required information from the scanned blocks and store them in their own database. The observation extractor is designed to fulfill a watcher's main task: observing user payments in source networks. The bridge payment transaction has its own structure, and the observation extractor searches for this pattern occurrence in source chains and stores all needed information for a watcher commitment creation and revealment.\n\n## Related Projects\n\nThis module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. The address scanner is currently used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the valid source chain observations.\n\n## How to Use the Observation Extractor\n\n### Install\n\nThis project is written in node-js using Esnext module and typeorm database. Extractors are not standalone projects and should be used as scanner modules. You can easily install it using npm with the command:\n\n```shell\nnpm install @rosen-bridge/observation-extractor\n```\n\nAlternatively, you can build and use it manually by cloning the project and running:\n\n```shell\nnpm install\nnpm run build\n```\n\n### Usage\n\nIn the first step, you need to create a scanner instance; follow the steps [here](https://github.com/rosen-bridge/scanner) to create a running instance of the scanner. Then you need to instantiate your address extractor and register it to your scanner:\n\n```javascript\nconst ergoObsesrvationExtractor = new ErgoObservationExtractor(\n   dataSource,\n   <tokens.json>,\n   <lock_address>\n)\nergoScanner.registerExtractor(ergoObsesrvationExtractor)\n```\n\nWhere the `token.json` is a source-target map of token ids that are exchanged in the bridge.\n\nOr similarly for cardano:\n\n```javascript\nconst cardanoObsesrvationExtractor = new CardanoObservationExtractor(\n    dataSource,\n    <tokens.json>,\n    <lock_address>\n)\ncardanoScanner.registerExtractor(cardanoObsesrvationExtractor)\n```\n\n## Contributing\n\nTBD\n\n## License\n\nTBD\n","gitHead":"03eba3d3650b612895bca559f85f98b8b33bae2f","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run test && npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"9.6.7","description":"### Table of Contents","directories":{},"_nodeVersion":"18.17.1","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@rosen-bridge/scanner":"^1.0.4","@cardano-ogmios/schema":"^5.5.7","@rosen-bridge/rosen-extractor":"^0.1.8","@rosen-bridge/logger-interface":"^0.1.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_63.0.0-next-03eba3d.0_1692179910247_0.6452058969474259","host":"s3://npm-registry-packages"}},"63.0.0-next-aefe774.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"63.0.0-next-aefe774.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@63.0.0-next-aefe774.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"bb1af305e016bdde90e4710171b8b153858722a8","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-63.0.0-next-aefe774.0.tgz","fileCount":41,"integrity":"sha512-o83uNyEzMuDDm2JcciUAkg7bAqLJz9TgOYS5Ik/CW1RFPTuVQb//6kiJxg0VlFiQ2UVFou1828//KR74iMVNrg==","signatures":[{"sig":"MEQCIAehND+FE5pq5MFpFqLvQb1yRX1G/wYPEDBVlCBXMA9qAiAuNFv94VTHu+mXwxg+ljfjHg0Slxw6G2S1J1YzZkDQUg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88505},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","readme":"# Observation Extractor\n\n### Table of Contents\n\n- [Description](#description)\n- [Related Projects](#related-projects)\n- [How to Use the Observation Extractor](#how-to-use-the-observation-extractor)\n  - [Install](#install)\n  - [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n<a name=\"headers\"/>\n\n## Description\n\nData extractors are modules that are integrated within a scanner. They drive the required information from the scanned blocks and store them in their own database. The observation extractor is designed to fulfill a watcher's main task: observing user payments in source networks. The bridge payment transaction has its own structure, and the observation extractor searches for this pattern occurrence in source chains and stores all needed information for a watcher commitment creation and revealment.\n\n## Related Projects\n\nThis module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. The address scanner is currently used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the valid source chain observations.\n\n## How to Use the Observation Extractor\n\n### Install\n\nThis project is written in node-js using Esnext module and typeorm database. Extractors are not standalone projects and should be used as scanner modules. You can easily install it using npm with the command:\n\n```shell\nnpm install @rosen-bridge/observation-extractor\n```\n\nAlternatively, you can build and use it manually by cloning the project and running:\n\n```shell\nnpm install\nnpm run build\n```\n\n### Usage\n\nIn the first step, you need to create a scanner instance; follow the steps [here](https://github.com/rosen-bridge/scanner) to create a running instance of the scanner. Then you need to instantiate your address extractor and register it to your scanner:\n\n```javascript\nconst ergoObsesrvationExtractor = new ErgoObservationExtractor(\n   dataSource,\n   <tokens.json>,\n   <lock_address>\n)\nergoScanner.registerExtractor(ergoObsesrvationExtractor)\n```\n\nWhere the `token.json` is a source-target map of token ids that are exchanged in the bridge.\n\nOr similarly for cardano:\n\n```javascript\nconst cardanoObsesrvationExtractor = new CardanoObservationExtractor(\n    dataSource,\n    <tokens.json>,\n    <lock_address>\n)\ncardanoScanner.registerExtractor(cardanoObsesrvationExtractor)\n```\n\n## Contributing\n\nTBD\n\n## License\n\nTBD\n","gitHead":"aefe774b03cb6809560443435c9fdbec14e98de5","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run test && npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"9.6.7","description":"### Table of Contents","directories":{},"_nodeVersion":"18.17.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@rosen-bridge/scanner":"^1.0.4","@cardano-ogmios/schema":"^5.5.7","@rosen-bridge/rosen-extractor":"^0.1.8","@rosen-bridge/logger-interface":"^0.1.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_63.0.0-next-aefe774.0_1692180027487_0.30295715715785887","host":"s3://npm-registry-packages"}},"63.0.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"63.0.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@63.0.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"add22b0814244b7c3ef983baab6dcaa7c4081601","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-63.0.0.tgz","fileCount":41,"integrity":"sha512-/080HOJ/75wVaUXe+Y28QqIy7Auavb+/opeDBW4fRJqeNLD85hv8weDjRsWEp9SMl1RSypMMxQZgRszOd4+fKQ==","signatures":[{"sig":"MEYCIQDj/sVLEMMMLup6hij8GW+/B2gKDgQgy6GGkSO21OxAwAIhALKokoiiNRKh62N8dcJ53cVVLJuIOK5FY3M/skAibI48","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88490},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","gitHead":"8be0c52763e9c7f8e3ece25e14045f88812ec13a","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run test && npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"9.6.7","description":"### Table of Contents","directories":{},"_nodeVersion":"18.17.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@rosen-bridge/scanner":"^1.0.4","@cardano-ogmios/schema":"^5.5.7","@rosen-bridge/rosen-extractor":"^0.1.8","@rosen-bridge/logger-interface":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_63.0.0_1692180177456_0.07892665701589574","host":"s3://npm-registry-packages"}},"63.0.0-next-fa4e4ab.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"63.0.0-next-fa4e4ab.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@63.0.0-next-fa4e4ab.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"0dd73d774820d4751e6ccec6143b18bc46fe7546","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-63.0.0-next-fa4e4ab.0.tgz","fileCount":41,"integrity":"sha512-QVoGjdo0+G/A4+448tUwzqPT8DQYDqw5+kWaDr+msZckP+Iv4OvBhX760Rnd3mfDEot8Ji1+eUZ2n4wWVBqAzA==","signatures":[{"sig":"MEUCIQDSZO4gur/c0JmjkXS2edDZOT8Y8HAT+cHHPdHcCDpDwgIgZ9mHWRqhvKuMWxgyD79HKz8tATzFrm9udU6NCDcreRI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88505},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","readme":"# Observation Extractor\n\n### Table of Contents\n\n- [Description](#description)\n- [Related Projects](#related-projects)\n- [How to Use the Observation Extractor](#how-to-use-the-observation-extractor)\n  - [Install](#install)\n  - [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n<a name=\"headers\"/>\n\n## Description\n\nData extractors are modules that are integrated within a scanner. They drive the required information from the scanned blocks and store them in their own database. The observation extractor is designed to fulfill a watcher's main task: observing user payments in source networks. The bridge payment transaction has its own structure, and the observation extractor searches for this pattern occurrence in source chains and stores all needed information for a watcher commitment creation and revealment.\n\n## Related Projects\n\nThis module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. The address scanner is currently used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the valid source chain observations.\n\n## How to Use the Observation Extractor\n\n### Install\n\nThis project is written in node-js using Esnext module and typeorm database. Extractors are not standalone projects and should be used as scanner modules. You can easily install it using npm with the command:\n\n```shell\nnpm install @rosen-bridge/observation-extractor\n```\n\nAlternatively, you can build and use it manually by cloning the project and running:\n\n```shell\nnpm install\nnpm run build\n```\n\n### Usage\n\nIn the first step, you need to create a scanner instance; follow the steps [here](https://github.com/rosen-bridge/scanner) to create a running instance of the scanner. Then you need to instantiate your address extractor and register it to your scanner:\n\n```javascript\nconst ergoObsesrvationExtractor = new ErgoObservationExtractor(\n   dataSource,\n   <tokens.json>,\n   <lock_address>\n)\nergoScanner.registerExtractor(ergoObsesrvationExtractor)\n```\n\nWhere the `token.json` is a source-target map of token ids that are exchanged in the bridge.\n\nOr similarly for cardano:\n\n```javascript\nconst cardanoObsesrvationExtractor = new CardanoObservationExtractor(\n    dataSource,\n    <tokens.json>,\n    <lock_address>\n)\ncardanoScanner.registerExtractor(cardanoObsesrvationExtractor)\n```\n\n## Contributing\n\nTBD\n\n## License\n\nTBD\n","gitHead":"fa4e4abf64b057fcbfbf1cc4c297d9c09e776190","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run test && npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"9.6.7","description":"### Table of Contents","directories":{},"_nodeVersion":"18.17.1","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@rosen-bridge/scanner":"^1.0.4","@cardano-ogmios/schema":"^5.5.7","@rosen-bridge/rosen-extractor":"^0.1.8","@rosen-bridge/logger-interface":"^0.1.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_63.0.0-next-fa4e4ab.0_1692181585479_0.09827437450383503","host":"s3://npm-registry-packages"}},"63.0.0-next-5957980.0":{"name":"@alakipalaki/alakiobservation-extractor","version":"63.0.0-next-5957980.0","author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","_id":"@alakipalaki/alakiobservation-extractor@63.0.0-next-5957980.0","maintainers":[{"name":"zargarzadehm","email":"moein.zargarzadeh@gmail.com"},{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"}],"dist":{"shasum":"ca0d3a39aae8fbb1af338e48b0d39daa8191c952","tarball":"https://registry.npmjs.org/@alakipalaki/alakiobservation-extractor/-/alakiobservation-extractor-63.0.0-next-5957980.0.tgz","fileCount":41,"integrity":"sha512-sWQd7ex6jcLFDvmXHpYJyH2SevIOiOCvTWNafWKcLjBiKIaj78U4kAXhlQYKX2w19Yu0G+TolRJIm1LfGkSwsQ==","signatures":[{"sig":"MEYCIQC+6Z3nI4cCc2tdNXEH/epAWEsq4msbXW9cj0zlealrcgIhAITdfZxF3/qfIlkRR38SN4IzpiiHKYah2RsDxBx+sPOp","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88505},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","readme":"# Observation Extractor\n\n### Table of Contents\n\n- [Description](#description)\n- [Related Projects](#related-projects)\n- [How to Use the Observation Extractor](#how-to-use-the-observation-extractor)\n  - [Install](#install)\n  - [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n<a name=\"headers\"/>\n\n## Description\n\nData extractors are modules that are integrated within a scanner. They drive the required information from the scanned blocks and store them in their own database. The observation extractor is designed to fulfill a watcher's main task: observing user payments in source networks. The bridge payment transaction has its own structure, and the observation extractor searches for this pattern occurrence in source chains and stores all needed information for a watcher commitment creation and revealment.\n\n## Related Projects\n\nThis module is used within the [Scanner](https://github.com/rosen-bridge/scanner) project. The address scanner is currently used in the [Watcher](https://github.com/rosen-bridge/watcher) service to drive the valid source chain observations.\n\n## How to Use the Observation Extractor\n\n### Install\n\nThis project is written in node-js using Esnext module and typeorm database. Extractors are not standalone projects and should be used as scanner modules. You can easily install it using npm with the command:\n\n```shell\nnpm install @rosen-bridge/observation-extractor\n```\n\nAlternatively, you can build and use it manually by cloning the project and running:\n\n```shell\nnpm install\nnpm run build\n```\n\n### Usage\n\nIn the first step, you need to create a scanner instance; follow the steps [here](https://github.com/rosen-bridge/scanner) to create a running instance of the scanner. Then you need to instantiate your address extractor and register it to your scanner:\n\n```javascript\nconst ergoObsesrvationExtractor = new ErgoObservationExtractor(\n   dataSource,\n   <tokens.json>,\n   <lock_address>\n)\nergoScanner.registerExtractor(ergoObsesrvationExtractor)\n```\n\nWhere the `token.json` is a source-target map of token ids that are exchanged in the bridge.\n\nOr similarly for cardano:\n\n```javascript\nconst cardanoObsesrvationExtractor = new CardanoObservationExtractor(\n    dataSource,\n    <tokens.json>,\n    <lock_address>\n)\ncardanoScanner.registerExtractor(cardanoObsesrvationExtractor)\n```\n\n## Contributing\n\nTBD\n\n## License\n\nTBD\n","gitHead":"595798098473039e72ecba4feb31e5d9d9579637","scripts":{"lint":"eslint --fix . && npm run prettify","test":"jest --detectOpenHandles","build":"tsc --build","release":"npm run test && npm run build && npm publish --access public","coverage":"jest --detectOpenHandles --coverage","prettify":"prettier --write . --ignore-path ../../.gitignore","type-check":"tsc --noEmit"},"_npmUser":{"name":"arsalanyavari","email":"arya48.yavari79@gmail.com"},"_npmVersion":"9.6.7","description":"### Table of Contents","directories":{},"_nodeVersion":"18.17.0","dependencies":{"blakejs":"^1.2.1","sqlite3":"^5.0.9","typeorm":"^0.3.7","lodash-es":"^4.17.21","reflect-metadata":"^0.1.13","@rosen-bridge/tokens":"^0.1.12","ergo-lib-wasm-nodejs":"^0.24.0-alpha-1f24f53","@rosen-bridge/scanner":"^1.0.4","@cardano-ogmios/schema":"^5.5.7","@rosen-bridge/rosen-extractor":"^0.1.8","@rosen-bridge/logger-interface":"^0.1.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^28.1.3","eslint":"^8.16.0","ts-jest":"^28.0.7","ts-node":"^10.9.1","prettier":"2.7.1","typescript":"^4.7.4","@types/jest":"^28.1.6","@types/node":"^18.0.6","@babel/preset-env":"^7.19.0","eslint-config-prettier":"^8.5.0","@typescript-eslint/parser":"^5.26.0","@typescript-eslint/eslint-plugin":"^5.30.7"},"_npmOperationalInternal":{"tmp":"tmp/alakiobservation-extractor_63.0.0-next-5957980.0_1692181589057_0.2840453639460523","host":"s3://npm-registry-packages"}}},"time":{"created":"2023-05-21T12:46:25.893Z","modified":"2025-08-14T14:08:27.914Z","1.0.1":"2023-05-21T12:46:26.238Z","10.0.0":"2023-05-22T09:40:17.400Z","11.0.0":"2023-05-22T09:57:59.089Z","13.0.0":"2023-06-03T09:08:04.402Z","15.0.0":"2023-06-03T14:01:13.229Z","16.0.0":"2023-06-05T10:27:47.950Z","18.0.0":"2023-06-05T10:47:52.246Z","0.0.0-20230605112024":"2023-06-05T11:36:13.815Z","0.0.0-alpha.0":"2023-06-05T12:11:46.007Z","0.0.0":"2023-06-05T12:21:43.756Z","0.1.0":"2023-06-06T07:52:21.169Z","1.0.0":"2023-06-06T08:26:28.321Z","19.0.0":"2023-06-08T09:30:36.490Z","20.0.0":"2023-06-09T15:56:31.397Z","22.0.0":"2023-06-09T19:14:51.246Z","20.0.1-test-ci3-cli.0":"2023-06-24T06:08:29.971Z","22.0.0-next.0":"2023-06-25T08:14:59.965Z","30.0.0":"2023-06-25T08:32:50.086Z","31.0.0-next.0":"2023-06-25T09:51:28.164Z","31.0.0-new-next.0":"2023-06-25T10:07:27.207Z","31.0.0-ergo.0":"2023-06-25T10:39:56.211Z","31.0.0-e60da6a8.0":"2023-06-25T10:54:20.171Z","31.0.0-004503a3.0":"2023-06-25T11:17:11.153Z","31.0.0-ergo-00450333.0":"2023-06-25T11:22:57.208Z","31.0.0-ergo-15803ba5.0":"2023-06-25T12:33:58.522Z","31.0.0-ergo-004456cb.0":"2023-06-25T12:53:57.122Z","31.0.0-ergo-2e9afad3.0":"2023-06-25T14:27:08.742Z","31.0.0-ergo-da459585.0":"2023-06-25T14:31:27.505Z","31.0.0-ergo-5640203b.0":"2023-06-25T14:35:19.210Z","31.0.0-ergo-a88768b4.0":"2023-06-26T10:54:49.199Z","31.0.0-ergo-aafee967.0":"2023-06-26T12:42:13.103Z","31.0.0-ergo-9a716f10.0":"2023-06-26T13:29:07.544Z","31.0.0-ergo-7a7d13b9.0":"2023-06-26T13:32:34.039Z","31.0.0-ergo-34e1a3e0.0":"2023-06-26T13:41:58.793Z","1.0.4":"2023-07-08T13:05:37.357Z","1.0.5-next-6f574c16d576af0712543951cacc26f19d172051.0":"2023-07-08T14:12:45.815Z","1.0.5":"2023-07-11T18:53:01.293Z","61.0.0-next-ca77db72e61b5979a8a2394220d45ebc539905d6.0":"2023-07-11T19:09:24.680Z","61.0.0":"2023-07-11T19:15:08.863Z","62.0.0":"2023-08-15T15:12:51.774Z","62.0.0-next-54dfeb5.0":"2023-08-15T15:14:14.655Z","63.0.0-next-03eba3d.0":"2023-08-16T09:58:30.448Z","63.0.0-next-aefe774.0":"2023-08-16T10:00:27.692Z","63.0.0":"2023-08-16T10:02:57.610Z","63.0.0-next-fa4e4ab.0":"2023-08-16T10:26:25.686Z","63.0.0-next-5957980.0":"2023-08-16T10:26:29.296Z"},"author":{"name":"Sahand Zoufan"},"license":"GPL-3.0","description":"### Table of Contents","maintainers":[{"email":"arya48.yavari79@gmail.com","name":"arsalanyavari"}],"readme":"","readmeFilename":""}