{"_id":"@atomichub/antelope-ship-utils","_rev":"6-4f51b19fb8ed8903d9d5b7d2b21130fc","name":"@atomichub/antelope-ship-utils","dist-tags":{"latest":"2.2.0"},"versions":{"1.0.0":{"name":"@atomichub/antelope-ship-utils","version":"1.0.0","keywords":["antelope","eosio","ship","state-history","atomicassets","wax","eosio-ship-utils"],"author":{"url":"https://atomichub.io","name":"AtomicHub"},"license":"MIT","_id":"@atomichub/antelope-ship-utils@1.0.0","maintainers":[{"name":"robrigo","email":"rob@atomichub.io"}],"homepage":"https://github.com/atomicassets/antelope-ship-utils#readme","bugs":{"url":"https://github.com/atomicassets/antelope-ship-utils/issues"},"dist":{"shasum":"86cb91a3d5def9b864d7f1def71e9f8f3ffcb8b2","tarball":"https://registry.npmjs.org/@atomichub/antelope-ship-utils/-/antelope-ship-utils-1.0.0.tgz","fileCount":65,"integrity":"sha512-8w0AEF4DAfx0ZdiENb4NI3mJdNGJI3WI0qvRvOXcm7tEG8YlxWFZUEQn3OrYqFGpO3BxIVrlBDifyS9Cr/jhSA==","signatures":[{"sig":"MEQCIEQIIbMPe1wzsiC7VFyTvvdzjrhveppnlKtyauoRMocRAiArznRScvpyoTY7Ld57eHUX/weoU+1yggVnl+MshXbKXw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":165937},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"678f453e7528725861a3477676d2a8a1d588c4f3","scripts":{"knip":"knip","lint":"eslint .","test":"mocha 'src/**/*.test.ts'","build":"tsc -p tsconfig.json","clean":"rm -rf dist","prepack":"pnpm run clean && pnpm run build","pretest":"pnpm run build","check-types":"tsc --noEmit -p tsconfig.check.json","test:coverage":"c8 mocha 'src/**/*.test.ts'"},"_npmUser":{"name":"robrigo","email":"rob@atomichub.io"},"repository":{"url":"git+https://github.com/atomicassets/antelope-ship-utils.git","type":"git"},"_npmVersion":"11.16.0","description":"State History Plugin (SHIP) client for Antelope chains: connect, deserialize, and consume blocks, traces, and deltas","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"ws":"^8.20.1","p-queue":"^6.6.2","common-tags":"^1.8.2","@wharfkit/antelope":"^1.1.1","node-worker-threads-pool":"^1.5.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@11.13.1","devDependencies":{"c8":"11.0.0","chai":"^6.2.2","knip":"^5.88.1","mocha":"^11.7.5","sinon":"^21.0.1","eslint":"^9.39.2","globals":"^17.0.0","prettier":"^3.8.0","@types/ws":"^8.5.10","@eslint/js":"^9.39.2","typescript":"^6.0.0","@types/chai":"^5.2.3","@types/node":"^22","@types/mocha":"^10.0.10","@types/sinon":"^21.0.0","typescript-eslint":"^8.59.0","@swc-node/register":"^1.11.1","@types/common-tags":"^1.8.4","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/antelope-ship-utils_1.0.0_1787008432829_0.5917106024014778","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@atomichub/antelope-ship-utils","version":"1.0.1","keywords":["antelope","eosio","ship","state-history","atomicassets","wax","eosio-ship-utils"],"author":{"url":"https://atomichub.io","name":"AtomicHub"},"license":"MIT","_id":"@atomichub/antelope-ship-utils@1.0.1","maintainers":[{"name":"robrigo","email":"rob@atomichub.io"}],"homepage":"https://github.com/atomicassets/antelope-ship-utils#readme","bugs":{"url":"https://github.com/atomicassets/antelope-ship-utils/issues"},"dist":{"shasum":"0bbf5039525cb47e8c6efcefbe03a55cbf592dc3","tarball":"https://registry.npmjs.org/@atomichub/antelope-ship-utils/-/antelope-ship-utils-1.0.1.tgz","fileCount":65,"integrity":"sha512-/renKdUrQbEhgmiIrI3CNT7Mrnc+jwGjdYl+kafYltNPdtGP45phw2qXJ4qy5tqW7p35GAoOPhmK91u7/GW3IA==","signatures":[{"sig":"MEUCIQCSfpIxmp/efMvN1I5TthMIIr0Fb0nqTGiQOriF8I/RiAIgLZ2W1gZVzWL6QSgd/0y/KFQaWnoHJzXSVT+hQWjbOJI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomichub%2fantelope-ship-utils@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":166653},"main":"./dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"7dad5743ae6c854ef18b268e6fb39cd9476b9a1f","scripts":{"knip":"knip","lint":"eslint .","test":"mocha 'src/**/*.test.ts'","build":"tsc -p tsconfig.json","clean":"rm -rf dist","prepack":"pnpm run clean && pnpm run build","pretest":"pnpm run build","check-types":"tsc --noEmit -p tsconfig.check.json","test:coverage":"c8 mocha 'src/**/*.test.ts'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7e2dc029-d2b6-4f33-9ac6-fe4288ca8cd0"}},"repository":{"url":"git+https://github.com/atomicassets/antelope-ship-utils.git","type":"git"},"_npmVersion":"12.0.2","description":"State History Plugin (SHIP) client for Antelope chains: connect, deserialize, and consume blocks, traces, and deltas","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.20.1","p-queue":"^6.6.2","common-tags":"^1.8.2","@wharfkit/antelope":"^1.1.1","node-worker-threads-pool":"^1.5.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@11.13.1","devDependencies":{"c8":"11.0.0","chai":"^6.2.2","knip":"^5.88.1","mocha":"^11.7.5","sinon":"^21.0.1","eslint":"^9.39.2","globals":"^17.0.0","prettier":"^3.8.0","@types/ws":"^8.5.10","@eslint/js":"^9.39.2","typescript":"^6.0.0","@types/chai":"^5.2.3","@types/node":"^22","@types/mocha":"^10.0.10","@types/sinon":"^21.0.0","typescript-eslint":"^8.59.0","@swc-node/register":"^1.11.1","@types/common-tags":"^1.8.4","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/antelope-ship-utils_1.0.1_1787011934033_0.6636158627095567","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@atomichub/antelope-ship-utils","version":"2.0.0","keywords":["antelope","eosio","ship","state-history","atomicassets","wax","eosio-ship-utils"],"author":{"url":"https://atomichub.io","name":"AtomicHub"},"license":"MIT","_id":"@atomichub/antelope-ship-utils@2.0.0","maintainers":[{"name":"robrigo","email":"rob@atomichub.io"}],"homepage":"https://github.com/atomicassets/antelope-ship-utils#readme","bugs":{"url":"https://github.com/atomicassets/antelope-ship-utils/issues"},"dist":{"shasum":"45b4d4ff5d242b762fcc4e30ef73506be5a29396","tarball":"https://registry.npmjs.org/@atomichub/antelope-ship-utils/-/antelope-ship-utils-2.0.0.tgz","fileCount":69,"integrity":"sha512-nhTEmlDpADAl4o9cuZDVmyCerbzPEQ/N+QYRuDVSh6SECam+MUCEXNn034sdaBQ0HusUBnU9j9i9ajtoln3W7Q==","signatures":[{"sig":"MEUCIBVeqnFQKj9AgzRM/3Uh2qBFH8dA0QrCzMQOw/J7y2L8AiEAw6pieMsGtBMcLh43RybOGXXrdeCauNDMfi6JbOm+czs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomichub%2fantelope-ship-utils@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":174913},"main":"./dist/index.js","_from":"file:atomichub-antelope-ship-utils-2.0.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"knip":"knip","lint":"eslint .","test":"mocha 'src/**/*.test.ts'","build":"tsc -p tsconfig.json","clean":"rm -rf dist","prepack":"pnpm run clean && pnpm run build","pretest":"pnpm run build","check-types":"tsc --noEmit -p tsconfig.check.json","test:coverage":"c8 mocha 'src/**/*.test.ts'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7e2dc029-d2b6-4f33-9ac6-fe4288ca8cd0"}},"_resolved":"/home/runner/work/antelope-ship-utils/antelope-ship-utils/atomichub-antelope-ship-utils-2.0.0.tgz","_integrity":"sha512-nhTEmlDpADAl4o9cuZDVmyCerbzPEQ/N+QYRuDVSh6SECam+MUCEXNn034sdaBQ0HusUBnU9j9i9ajtoln3W7Q==","repository":{"url":"git+https://github.com/atomicassets/antelope-ship-utils.git","type":"git"},"_npmVersion":"12.0.2","description":"State History Plugin (SHIP) client for Antelope chains: connect, deserialize, and consume blocks, traces, and deltas","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.20.1","p-queue":"^6.6.2","common-tags":"^1.8.2","@wharfkit/antelope":"^1.1.1","node-worker-threads-pool":"^1.5.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@11.13.1","devDependencies":{"c8":"11.0.0","chai":"^6.2.2","knip":"^5.88.1","mocha":"^11.7.5","sinon":"^21.0.1","eslint":"^9.39.2","globals":"^17.0.0","prettier":"^3.8.0","@types/ws":"^8.5.10","@eslint/js":"^9.39.2","typescript":"^6.0.0","@types/chai":"^5.2.3","@types/node":"^22","@types/mocha":"^10.0.10","@types/sinon":"^21.0.0","typescript-eslint":"^8.59.0","@swc-node/register":"^1.11.1","@types/common-tags":"^1.8.4","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/antelope-ship-utils_2.0.0_1787335686608_0.31497327485321724","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@atomichub/antelope-ship-utils","version":"2.0.1","keywords":["antelope","eosio","ship","state-history","atomicassets","wax","eosio-ship-utils"],"author":{"url":"https://atomichub.io","name":"AtomicHub"},"license":"MIT","_id":"@atomichub/antelope-ship-utils@2.0.1","maintainers":[{"name":"robrigo","email":"rob@atomichub.io"}],"homepage":"https://github.com/atomicassets/antelope-ship-utils#readme","bugs":{"url":"https://github.com/atomicassets/antelope-ship-utils/issues"},"dist":{"shasum":"3b2cd5dcd17ead66f9b2e417be14c3e26f840e21","tarball":"https://registry.npmjs.org/@atomichub/antelope-ship-utils/-/antelope-ship-utils-2.0.1.tgz","fileCount":69,"integrity":"sha512-3zn/rhMjO21k84WU7KUorKeW+D8ME3bCdr3OcMcBttyII4FliV/ezkQVsUQrU2RW+o9q6iU43EJp0J1RRwqMrA==","signatures":[{"sig":"MEUCIQCdgsiZNbFe7pBQRF9WLDJFE4ZSyj/fUFucTG3ADIumgQIgMosvc30pjZ7ZajXr6WHX7gdyGztIhHBQPCsgwsv+5OI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD1XCuTODxXzErhVvEqyjvTVcVla78eXHdNqlsxLfR2jwIhAJb+7sKiJu9ppLtoiDrx3vSaPTjyhcMGw901T1xzvldy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomichub%2fantelope-ship-utils@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":178008},"main":"./dist/index.js","_from":"file:atomichub-antelope-ship-utils-2.0.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"knip":"knip","lint":"eslint .","test":"mocha 'src/**/*.test.ts'","build":"tsc -p tsconfig.json","clean":"rm -rf dist","prepack":"pnpm run clean && pnpm run build","pretest":"pnpm run build","check-types":"tsc --noEmit -p tsconfig.check.json","test:coverage":"c8 mocha 'src/**/*.test.ts'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7e2dc029-d2b6-4f33-9ac6-fe4288ca8cd0"}},"_resolved":"/home/runner/work/antelope-ship-utils/antelope-ship-utils/atomichub-antelope-ship-utils-2.0.1.tgz","_integrity":"sha512-3zn/rhMjO21k84WU7KUorKeW+D8ME3bCdr3OcMcBttyII4FliV/ezkQVsUQrU2RW+o9q6iU43EJp0J1RRwqMrA==","repository":{"url":"git+https://github.com/atomicassets/antelope-ship-utils.git","type":"git"},"_npmVersion":"12.0.2","description":"State History Plugin (SHIP) client for Antelope chains: connect, deserialize, and consume blocks, traces, and deltas","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.20.1","p-queue":"^6.6.2","common-tags":"^1.8.2","@wharfkit/antelope":"^1.1.1","node-worker-threads-pool":"^1.5.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@11.13.1","devDependencies":{"c8":"11.0.0","chai":"^6.2.2","knip":"^5.88.1","mocha":"^11.7.5","sinon":"^21.0.1","eslint":"^9.39.2","globals":"^17.0.0","prettier":"^3.8.0","@types/ws":"^8.5.10","@eslint/js":"^9.39.2","typescript":"^6.0.0","@types/chai":"^5.2.3","@types/node":"^22","@types/mocha":"^10.0.10","@types/sinon":"^21.0.0","typescript-eslint":"^8.59.0","@swc-node/register":"^1.11.1","@types/common-tags":"^1.8.4","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/antelope-ship-utils_2.0.1_1789234417466_0.09258587832220955","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@atomichub/antelope-ship-utils","version":"2.1.0","keywords":["antelope","eosio","ship","state-history","atomicassets","wax","eosio-ship-utils"],"author":{"url":"https://atomichub.io","name":"AtomicHub"},"license":"MIT","_id":"@atomichub/antelope-ship-utils@2.1.0","maintainers":[{"name":"robrigo","email":"rob@atomichub.io"}],"homepage":"https://github.com/atomicassets/antelope-ship-utils#readme","bugs":{"url":"https://github.com/atomicassets/antelope-ship-utils/issues"},"dist":{"shasum":"2148433e4c936645f86afaff881772fc42fbc866","tarball":"https://registry.npmjs.org/@atomichub/antelope-ship-utils/-/antelope-ship-utils-2.1.0.tgz","fileCount":69,"integrity":"sha512-j0E3c6Ns/RwwwWtcQcwqRilTFgeP72MIXcReyYQSby0ADyHqEIoSYLfL8jqjA4BsydYJY8MTnbDlWduMI9FiIg==","signatures":[{"sig":"MEUCIBniLc3rZxeJAHlyyR8sg0RTDMZ2XMDPo3r110xqOEjaAiEAllECn5eBsZHQOJBHWxb8RKs4AF3bceLYue8sIIbWros=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCdYrNsjuyceS8M551is3B3cbKN23lHguk6VSLzWyZzuwIhAJC1k6mlqrQ8NxV5HEc0Gl5XepUCKscGVI03bamFJdRU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomichub%2fantelope-ship-utils@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":183061},"main":"./dist/index.js","_from":"file:atomichub-antelope-ship-utils-2.1.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"knip":"knip","lint":"eslint .","test":"mocha 'src/**/*.test.ts'","build":"tsc -p tsconfig.json","clean":"rm -rf dist","prepack":"pnpm run clean && pnpm run build","pretest":"pnpm run build","check-types":"tsc --noEmit -p tsconfig.check.json","test:coverage":"c8 mocha 'src/**/*.test.ts'"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7e2dc029-d2b6-4f33-9ac6-fe4288ca8cd0"}},"_resolved":"/home/runner/work/antelope-ship-utils/antelope-ship-utils/atomichub-antelope-ship-utils-2.1.0.tgz","_integrity":"sha512-j0E3c6Ns/RwwwWtcQcwqRilTFgeP72MIXcReyYQSby0ADyHqEIoSYLfL8jqjA4BsydYJY8MTnbDlWduMI9FiIg==","repository":{"url":"git+https://github.com/atomicassets/antelope-ship-utils.git","type":"git"},"_npmVersion":"12.0.2","description":"State History Plugin (SHIP) client for Antelope chains: connect, deserialize, and consume blocks, traces, and deltas","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.20.1","p-queue":"^6.6.2","common-tags":"^1.8.2","@wharfkit/antelope":"^1.1.1","node-worker-threads-pool":"^1.5.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@11.13.1","devDependencies":{"c8":"11.0.0","chai":"^6.2.2","knip":"^5.88.1","mocha":"^11.7.5","sinon":"^21.0.1","eslint":"^9.39.2","globals":"^17.0.0","prettier":"^3.8.0","@types/ws":"^8.5.10","@eslint/js":"^9.39.2","typescript":"^6.0.0","@types/chai":"^5.2.3","@types/node":"^22","@types/mocha":"^10.0.10","@types/sinon":"^21.0.0","typescript-eslint":"^8.59.0","@swc-node/register":"^1.11.1","@types/common-tags":"^1.8.4","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/antelope-ship-utils_2.1.0_1789239850220_0.5243134565995946","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"_id":"@atomichub/antelope-ship-utils@2.2.0","bugs":{"url":"https://github.com/atomicassets/antelope-ship-utils/issues"},"dist":{"shasum":"ccda5c21d13b2266d989c4a61f58e3211c06161c","tarball":"https://registry.npmjs.org/@atomichub/antelope-ship-utils/-/antelope-ship-utils-2.2.0.tgz","fileCount":73,"integrity":"sha512-5P22OfXMjye+vvrJGD0wrrXl/8JNOCVPlo9/SrgkQpzVNR3GY0JGfJUNuvKsm34ObD0eMsnFcqQ2kdbxSPqdnA==","signatures":[{"sig":"MEUCIBK0D8ODNUyx8EdeB86ysSddZFz1DnEP953TXLphGjVFAiEA/vhUAJLaAOF/j8uIqXYOwgq5ISWEhfCa68hcc8c6noU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDH66rDPUtgy9H0Kv4m/kf7uGwDQKWdvO+aB0qq90MbfQIgfNMyS8AtA4ITu0Iicy/IxrO0/6lQB6gDgzBUZXAQmmA="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomichub%2fantelope-ship-utils@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":224657},"main":"./dist/index.js","name":"@atomichub/antelope-ship-utils","_from":"file:atomichub-antelope-ship-utils-2.2.0.tgz","types":"./dist/index.d.ts","author":{"url":"https://atomichub.io","name":"AtomicHub"},"engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"license":"MIT","scripts":{"knip":"knip","lint":"eslint .","test":"mocha 'src/**/*.test.ts'","build":"tsc -p tsconfig.json","clean":"rm -rf dist","prepack":"pnpm run clean && pnpm run build","pretest":"pnpm run build","check-types":"tsc --noEmit -p tsconfig.check.json","test:coverage":"c8 mocha 'src/**/*.test.ts'"},"version":"2.2.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7e2dc029-d2b6-4f33-9ac6-fe4288ca8cd0"}},"homepage":"https://github.com/atomicassets/antelope-ship-utils#readme","keywords":["antelope","eosio","ship","state-history","atomicassets","wax","eosio-ship-utils"],"_resolved":"/home/runner/work/antelope-ship-utils/antelope-ship-utils/atomichub-antelope-ship-utils-2.2.0.tgz","_integrity":"sha512-5P22OfXMjye+vvrJGD0wrrXl/8JNOCVPlo9/SrgkQpzVNR3GY0JGfJUNuvKsm34ObD0eMsnFcqQ2kdbxSPqdnA==","repository":{"url":"git+https://github.com/atomicassets/antelope-ship-utils.git","type":"git"},"_npmVersion":"12.0.2","description":"State History Plugin (SHIP) client for Antelope chains: connect, deserialize, and consume blocks, traces, and deltas","directories":{},"maintainers":[{"name":"robrigo","email":"rob@atomichub.io"}],"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.20.1","p-queue":"^6.6.2","common-tags":"^1.8.2","@wharfkit/antelope":"^1.1.1","node-worker-threads-pool":"^1.5.1"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@11.13.1","devDependencies":{"c8":"11.0.0","chai":"^6.2.2","knip":"^5.88.1","mocha":"^11.7.5","sinon":"^21.0.1","eslint":"^9.39.2","globals":"^17.0.0","prettier":"^3.8.0","@types/ws":"^8.5.10","@eslint/js":"^9.39.2","typescript":"^6.0.0","@types/chai":"^5.2.3","@types/node":"^22","@types/mocha":"^10.0.10","@types/sinon":"^21.0.0","typescript-eslint":"^8.59.0","@swc-node/register":"^1.11.1","@types/common-tags":"^1.8.4","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/antelope-ship-utils_2.2.0_1789345452217_0.8147052119997018"}}},"time":{"created":"2026-08-17T23:13:52.683Z","modified":"2026-09-14T00:24:12.656Z","1.0.0":"2026-08-17T23:13:52.977Z","1.0.1":"2026-08-18T00:12:14.199Z","2.0.0":"2026-08-21T18:08:06.746Z","2.0.1":"2026-09-12T17:33:37.567Z","2.1.0":"2026-09-12T19:04:10.300Z","2.2.0":"2026-09-14T00:24:12.302Z"},"bugs":{"url":"https://github.com/atomicassets/antelope-ship-utils/issues"},"author":{"url":"https://atomichub.io","name":"AtomicHub"},"license":"MIT","homepage":"https://github.com/atomicassets/antelope-ship-utils#readme","keywords":["antelope","eosio","ship","state-history","atomicassets","wax","eosio-ship-utils"],"repository":{"url":"git+https://github.com/atomicassets/antelope-ship-utils.git","type":"git"},"description":"State History Plugin (SHIP) client for Antelope chains: connect, deserialize, and consume blocks, traces, and deltas","maintainers":[{"name":"robrigo","email":"rob@atomichub.io"}],"readme":"# @atomichub/antelope-ship-utils\n\n[![npm version](https://img.shields.io/npm/v/@atomichub/antelope-ship-utils.svg)](https://www.npmjs.com/package/@atomichub/antelope-ship-utils)\n[![CI](https://github.com/atomicassets/antelope-ship-utils/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/atomicassets/antelope-ship-utils/actions/workflows/ci.yml)\n[![license](https://img.shields.io/npm/l/@atomichub/antelope-ship-utils.svg)](https://github.com/atomicassets/antelope-ship-utils/blob/main/LICENSE)\n\nA State History Plugin (SHIP) client for Antelope chains. It opens a\nwebsocket to a node's SHIP endpoint, deserializes the blocks, traces, and\ndeltas the node streams back, and drives a consumer over the result.\n\nThe package exports `StateHistoryConnection`, the websocket client that\nrequests blocks from SHIP and reconnects when the connection drops;\n`ShipConsumer`, which paces block delivery against an\n`IProcessedBlockRepository` so a restart resumes where it left off;\n`BlockProcessor`, which routes each block's traces and deltas to the trace\nand delta listeners registered on it; `EOSJsDeserializer`, which turns raw\nSHIP bytes into typed data and can run the deserialization in worker\nthreads; and `LocalAbiProvider`, an in-memory ABI cache backed by an\nAntelope RPC endpoint.\n\n## Install\n\n```sh\npnpm add @atomichub/antelope-ship-utils\n```\n\n## Usage\n\nThe shapes below come straight from the constructors in `src/`. Treat this\nas a sketch: a real consumer supplies its own repository, trace and delta\nlisteners, and error handling.\n\n```ts\nimport {\n    StateHistoryConnection,\n    ShipConsumer,\n    BlockProcessor,\n    EOSJsDeserializer,\n    LocalAbiProvider,\n    LocalBlockRepository,\n} from '@atomichub/antelope-ship-utils';\n\nconst deserializer = new EOSJsDeserializer({ threads: 4 });\n\nconst abiProvider = new LocalAbiProvider({\n    rpcEndpoint: 'https://wax.greymass.com',\n    fetchApi: fetch,\n});\n\nconst processor = new BlockProcessor({\n    deserializer,\n    abiProvider,\n    failOnDeserializationError: false,\n    traceListeners: [\n        {\n            account: 'atomicassets',\n            name: 'logmint',\n            processor: async ({ trace, block }) => {\n                // handle the deserialized trace\n            },\n        },\n    ],\n});\n\n// A real repository persists the cursor; this one starts from a fixed block.\nconst repository = new LocalBlockRepository(300000000);\n\nconst consumer = new ShipConsumer({ repository, processor, blockDelay: 0 });\n\nconst connection = new StateHistoryConnection({\n    endpoint: 'wss://wax.greymass.com/ship',\n    deserializer,\n});\n\nconnection.on('error', (err) => {\n    // see \"Error handling\" below: the queue does not resume on its own\n});\n\nawait connection.startProcessing(consumer);\n```\n\nABI `float32` and `float64` fields decode to JavaScript numbers rather than\nto the strings `@wharfkit/antelope` renders for them.\n`deserializeEosioType` runs its result through `objectifyNumericFloats`,\nwhich the package also exports for a consumer that objectifies a decoded\nvalue itself. The walk matches `Serializer.objectify` everywhere else, and a\n`float32` comes back as the stored 32-bit value widened to a double, so\n`0.6197762` reads as `0.61977618932724`. A `float128` keeps its hex string,\nand the 64-bit integers keep the shape `Serializer.objectify` gives them, a decimal\nstring above the 32-bit range and a number at or below it.\n\nThe serialization helpers behind `BlockProcessor` are exported for a\nconsumer that runs its own processing loop: `extractShipTraces` and\n`extractShipDeltas` turn a SHIP payload into flat traces and rows\n(`extractShipDeltas` returns only the delta names listed in its\n`serializedDeltas` argument, so pass `['contract_row']` for contract\nrows; the default list is empty and yields no rows),\n`getActionAbiType` and `getTableAbiType` resolve a struct name from an\nABI, `deserializeEosioType` and `serializeEosioType` decode and encode a\nvalue against it, and `deserializeAbi` decodes the bytes an\n`eosio::setabi` action publishes. `deserializeEosioType` takes an\n`ignoreInvalidUTF8` option as its fourth argument for a string field that\ncarries bytes no UTF-8 sequence allows; the default throws, as\n`@wharfkit/antelope` does.\n\n## Stored ABIs\n\n`StoredAbiProvider` keeps the ABI history of the accounts a consumer\nlistens to in a durable store, so a restart or a replay decodes each block\nwith the ABI a `setabi` published for it. The consumer implements `IAbiStore`\nover its own table and passes it as `store`, next to `accounts` (the\naccounts it registers listeners for), `rpcEndpoint`, and `fetchApi`.\n\nThe store holds published ABIs only: every row the provider saves comes\nfrom an `eosio::setabi` at that block. Every lookup, `loadLatestPerAccount`\nincluded, returns only rows that carry an ABI and sit above `block_num` 0,\nso a row another provider wrote at block 0 never answers as a published\nABI. `findOlder` returns rows strictly below its block, newest first, and\n`save` is idempotent on `(account, block_num)`.\n\n`init` loads the newest row for each account. `getAbi` answers from up to\neight rows per account held in memory, then from the store, then from the\nchain. A chain ABI is held in memory for the account and never saved, so\nthe table keeps published history only. `setAbi` saves the published row;\nwhen the save fails, the cached row keeps answering. Save calls reach the\nstore one at a time, in the order of the `setabi` actions, so the last\n`setabi` for an account in a block is the stored row.\n\n`accounts` limits only what `init` loads. The provider saves every\n`setabi` the processor passes it, and `BlockProcessor` passes the `setabi`\nof `eosio` and of every account a listener matches, so a wildcard listener\nmakes the `setabi` of every account on the chain a stored row. A consumer\nthat stores ABIs registers listeners for explicit accounts.\n\nThe provider is an `EventEmitter` and emits `warn` as\n`(message: string, error?: Error)`, the shape `BlockProcessor` uses, so one\nlistener serves both. It warns when it answers with a chain ABI, when a\nsave fails, and when `refresh` finds a chain ABI that differs from the\ncached one.\n\n`refresh(account, blockNum)` is an optional `IAbiProvider` method. With\n`failOnDeserializationError` on, `BlockProcessor` calls it once per account\nper block when a cached ABI lacks a table or action type, or when no stored\nABI decodes a row, and retries once with the ABI it returns. While the\nfailures persist, the provider fetches the chain ABI at most once per\naccount for each cached ABI in every `refreshIntervalBlocks` blocks, an\noptional constructor parameter with a default of 1200. It returns `null`\nwhen the chain ABI matches, and otherwise replaces the cached ABI in memory\nonly. A new `setabi` for the account, or a `rollback`, allows the next\nfetch inside the interval. When the reader runs behind the chain head, the\nchain ABI can be later than the block, so the replaced ABI can decode rows\nof that account with the later ABI or drop them. Each replacement emits\n`warn` and lasts until the next `setabi` for that account, a `rollback`\nbelow its block, or a restart.\n\n`rollback(blockNum)` drops every cached row above `blockNum`. It also\nrestores the published ABI of a row that a refresh above `blockNum`\nreplaced, and drops a chain ABI fetched for a block above `blockNum`, so\nmemory keeps nothing from a discarded block. Call it from the consumer's\nfork path before the replay starts. It does not touch the\nstore. If the consumer's store writes are not part of the transaction the\nfork rollback undoes, the store keeps the row from a forked-out block.\n\n## IShipConnectionOptions\n\nPassed as `connectionOptions` to `StateHistoryConnection`. Every field is\noptional; the defaults are the ones `StateHistoryConnection` applies.\n\n| Option | Default | Meaning |\n| --- | --- | --- |\n| `min_block_confirmation` | `1` | Blocks to accumulate before the client acks them back to the node. |\n| `allow_empty_traces` | `false` | Accept a block whose trace payload is empty instead of treating it as a stalled node and reconnecting. |\n| `allow_empty_deltas` | `false` | Same, for an empty delta payload. |\n| `allow_empty_blocks` | `false` | Same, for an empty block payload. |\n| `heartbeat_interval_ms` | `30000` | Interval between websocket pings while connected. |\n| `idle_timeout_ms` | `300000` | Terminate the socket, and reconnect, once this long passes with no message or pong, catching a half-open connection whose peer disappeared without a close frame. |\n| `max_blocks_queue` | `0` | Ceiling on the block queue: while the queue holds at least this many blocks the ack is withheld, so the node stops at `max_messages_in_flight` until the queue drains and the accumulated count goes out in one ack. A withheld ack does not trip the idle timeout, because the heartbeat pong keeps refreshing the activity clock. Zero applies no ceiling. |\n\n## Error handling\n\nA consumer rejection or a deserialization failure emits `'error'` on the\n`StateHistoryConnection` with a `ShipError`, then clears and pauses the\nblock queue and rejects the queued task that failed. The rejection is not\ncaught anywhere in the package, so it surfaces as an unhandled rejection in\nthe host process. Nothing in the package resumes the paused queue: a\nconsumer that wants to keep running past an error needs to call\n`startProcessing()` again after handling the failure.\n\n## Lineage\n\nThis package reworks [eosio-ship-utils](https://www.npmjs.com/package/eosio-ship-utils)\non npm, which is unmaintained, and carries the protocol's current name,\nAntelope, in place of the EOSIO name the predecessor used. See `NOTICE` for\nthe attribution. Use this package instead for SHIP clients on Antelope chains.\n\n## Development\n\n```sh\npnpm install\npnpm run build\npnpm test\npnpm run lint\npnpm run check-types\n```\n\n## Releasing\n\nSee [RELEASING.md](./RELEASING.md).\n","readmeFilename":"README.md"}