{"_id":"@blockchainofthings/btc-output-descriptor","_rev":"2-e8fd9188efb15ff896a9076dd261dd24","name":"@blockchainofthings/btc-output-descriptor","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@blockchainofthings/btc-output-descriptor","version":"1.0.0","description":"Node.js library to handle Bitcoin output descriptors","author":{"name":"Cláudio Sá de Castro"},"keywords":["Bitcoin","output descriptor","descriptor","parse"],"main":"src/index.js","engines":{"node":"^12"},"scripts":{"prepublishOnly":"npm run test","test":"mocha","coverage":"nyc npm run test"},"dependencies":{"bitcoinjs-lib":"^5.2.0"},"devDependencies":{"chai":"^4.3.4","mocha":"^8.3.2","nyc":"^15.1.0"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+ssh://git@github.com/blockchainofthings/btc-output-descriptor.git"},"gitHead":"f12c48b7563d2be6c04297d18a4398b15c60719c","bugs":{"url":"https://github.com/blockchainofthings/btc-output-descriptor/issues"},"homepage":"https://github.com/blockchainofthings/btc-output-descriptor#readme","_id":"@blockchainofthings/btc-output-descriptor@1.0.0","_nodeVersion":"12.21.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-HuwQpeQ/mrcNottwTw47tUvJN78d4+OpFvu3oN5KzJraJQSLo/dIvpZQxaAmOMIkQgKZl1es6WMOwT0Smmc//w==","shasum":"7f82452b54c522e3d6582782e944c1578039a1ec","tarball":"https://registry.npmjs.org/@blockchainofthings/btc-output-descriptor/-/btc-output-descriptor-1.0.0.tgz","fileCount":25,"unpackedSize":55054,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgaIYzCRA9TVsSAnZWagAA6AAP/3Q5/x8ls9ViWcHKPYON\nHbaKaeWfC1BDFa9BTznjHC+WQ7l2tPxzTz9UKiuacB3hMa+9BxZvIEmn1Qdf\nawqJl180NTwoyNub7RiqjQDQfNtrHTg5Epg8b8jpYjXTKFdaCVvIBzERUOyK\n9GPXdFJQlQ9LplzMZvfM9m03OlanTJG7KFWuwGiUQtDGkhcLslhwVgToXbYz\n5su1YVO7au1Q7/CJ4Xmd1o5p5iEALbpNX7VabG2SVt2OLVz3FkvQd1ziWmQJ\nKmwbsHePlzv9mmOzoC+iojSJEE8OfbKzYeh9Om5gdx7Kg+wRjZa2R2N9I8Rx\n4Gok3+ja3+dhUlT6iYolo7PUmXM8yredkzFo1TGVnQGZUy3tF6ebTVjEVNwP\nz95NpFGKlHQpbV0E6q2sQ16YnJaQIyC+RFTusKF4Kb6mLKNjAOMs1UPGaG4v\nD0cAeM98mybYi2f6Wz00NJxTSmdXWGP0oQr6tJztILVyo7rmtDZJllXAB86c\nid2jM6DB92ziRRbjKXHMB/2104sArG3nr2SsyBdeNGDhCqNKTJtbsxjJvVAq\nzDl7jhljI0lQP4kvKWO/4PcZYfRYAjXKQtd+gkho+GS8iQVnw9vwXN/TaMUB\nzsraHr2MJkwz/s0X2aBPDXMJ6Orb8+Y8feSqgbKtTkZOB5Th5x7VEvm+nM00\nRN0d\r\n=gcLI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCGKLkVYaBQyS0mdyWcUkJUOx2r3Psd5bwwjHEk/NAGSgIhAMsI3GPCJIAQ5LD9Ajve8Sdt51kSmI3OcOPMEB+nkMmi"}]},"_npmUser":{"name":"catenisadmin","email":"info@blockchainofthings.com"},"directories":{},"maintainers":[{"name":"catenisadmin","email":"info@blockchainofthings.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/btc-output-descriptor_1.0.0_1617462834575_0.44324397186385234"},"_hasShrinkwrap":false},"1.0.1":{"name":"@blockchainofthings/btc-output-descriptor","version":"1.0.1","description":"Node.js library to handle Bitcoin output descriptors","author":{"name":"Cláudio Sá de Castro"},"keywords":["Bitcoin","output descriptor","descriptor","parse"],"main":"src/index.js","engines":{"node":">=12"},"scripts":{"prepublishOnly":"npm run test","test":"mocha","coverage":"nyc npm run test"},"dependencies":{"bitcoinjs-lib":"^5.2.0"},"devDependencies":{"chai":"^4.3.6","mocha":"^9.2.2","nyc":"^15.1.0"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+ssh://git@github.com/blockchainofthings/btc-output-descriptor.git"},"gitHead":"dc87ed68a6d92eab25fda721f74a3a07f328b7fe","bugs":{"url":"https://github.com/blockchainofthings/btc-output-descriptor/issues"},"homepage":"https://github.com/blockchainofthings/btc-output-descriptor#readme","_id":"@blockchainofthings/btc-output-descriptor@1.0.1","_nodeVersion":"12.22.12","_npmVersion":"6.14.16","dist":{"integrity":"sha512-0lhae7OWVO6QW0MR+PQW5V/dT3wCXmeVu4TcW+P42XWQdyprlmVVtHoVWKhyvpfeEQoROMADl12Y+5m0wpBgoA==","shasum":"c03e4b2c105b66a28a8f4c1f59e3807cfe024a72","tarball":"https://registry.npmjs.org/@blockchainofthings/btc-output-descriptor/-/btc-output-descriptor-1.0.1.tgz","fileCount":25,"unpackedSize":55060,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAUk8FJ0F9HkTOJiEG6JzQPO3S+BRaGLadrEVzFCj54KAiB5WiGxnwjCJ2BuS/R/ID2dt0TCJ6p7CEI12lx3PwckIA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjD6mCACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmryWg/+JZOCmkesWjFbj1TsxvzKSUVx0zlgYFcDMU/ToXXmXbBMLjQ2\r\n2ILqzfXYIYb2B4Y+Bjs2/Gamp9uH89q9mcC0CtMTcFHTv+X904otBrTXoKuo\r\n3Fk15KbS5AAiwRUlnzaPnWAmR5kp+unjJznuh+ii7CQ5hinibnjGQuSqR9h1\r\nDOMjk4RWIKHA60to8C8dcJJajhbjPyvsL8DRBcPnxORbS/slPgsXnLHDs2MW\r\nvAqPhfPaRrQXEI4xa5uF0XQ8TBsMlyIilPGDmKHBQR1JtUPvRgpyvTX5XAjU\r\nkv2vIeJNVsf0QNx02U1QT+cS91Ijcq5WLIE8cvycVUAX9kjs1k37zIv8VbZD\r\ng8E5vdd6mQso+/LRA4o6KZT2TBVRuM22NzFa/fCgKGECXPKadl441OtYBbnu\r\na7U1jqap1vDtFF5hrP/kGdFrR8Ay+gKTM3LsHze5EQzbOXscItEM+IZCd1SK\r\nnyxIVf1oji8RwicyZNwYUmpgmNgvqqNNDaisVC7Iwq4Ll7hi17SOWI60NXbi\r\nBCYeoapRlO4z5+vgAhP5TPLWVvkS1QTlSyHYvuVKXbHVthkevmkECB+XMtxy\r\n793/ynpX9seXbKZ9gp9yDNltQZFAxWFsuAra7xFu+udTZWLYOWdihz3pTz6H\r\nxOtzQz/LiMF6TG5nA8hKuCWyppBMEOnZ/xc=\r\n=ioFn\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"catenisadmin","email":"info@blockchainofthings.com"},"directories":{},"maintainers":[{"name":"catenisadmin","email":"info@blockchainofthings.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/btc-output-descriptor_1.0.1_1661970818433_0.5461751447505221"},"_hasShrinkwrap":false}},"time":{"created":"2021-04-03T15:13:54.397Z","1.0.0":"2021-04-03T15:13:54.754Z","modified":"2022-08-31T18:33:38.752Z","1.0.1":"2022-08-31T18:33:38.641Z"},"maintainers":[{"name":"catenisadmin","email":"info@blockchainofthings.com"}],"description":"Node.js library to handle Bitcoin output descriptors","homepage":"https://github.com/blockchainofthings/btc-output-descriptor#readme","keywords":["Bitcoin","output descriptor","descriptor","parse"],"repository":{"type":"git","url":"git+ssh://git@github.com/blockchainofthings/btc-output-descriptor.git"},"author":{"name":"Cláudio Sá de Castro"},"bugs":{"url":"https://github.com/blockchainofthings/btc-output-descriptor/issues"},"readme":"# Bitcoin Output Descriptor\n\nThis Node.js library is used to handle Bitcoin output descriptors.\n\nParticularly, it will parse any standard Bitcoin output descriptor (as defined\n[here](https://github.com/bitcoin/bitcoin/blob/master/doc/descriptors.md#reference)) and generate output (or *pubkey*)\nscripts and addresses that conform to that descriptor.\n\n## Installation\n\n```shell\nnpm install @blockchainofthings/btc-output-descriptor\n```\n\n## Usage\n\n### Parsing an output descriptor\n\n```javascript\nconst BtcOutDesc = require('@blockchainofthings/btc-output-descriptor');\n\nconst expression = BtcOutDesc.parse(\n    \"wpkh([d34db33f/44'/0'/0']xpub6ERApfZwUNrhLCkDtcHTcxd75RbzS1ed54G1LkBUHQVHQKqhMkhgbmJbZRkrgZw4koxb5JaHWkY4ALHY2grBGRjaDMzQLcgJvLJuZZvRcEL/1/*)\",\n    'main'\n);\n```\n\nThe second argument (`'main'` in the sample code above) is used to specify the Bitcoin network. Valid values:\n`main` (or `bitcoin`), `testnet`, `signet`, and `regtest`.\n\n> **Note**: if no Bitcoin network is specified, `'main'` is used.\n\n### Setting a key range\n\nWhen an output descriptor includes an extended (BIP32) public or private key with a derivation path that ends with `/*`\nor `*'` (as in the sample code above), a key range should be specified to restrict the set of output scripts and\naddresses that will be generated.\n\n```javascript\nif (expression.hasRangeKey) {\n    expression.keyRange = {\n        startIdx: 0,\n        count: 10\n    };\n}\n```\n\n> **Note**: if not explicitly set, the key range will include 1,000 key sets starting at index 0.\n\n### Generating output scripts\n\n```javascript\nconsole.log(expression.outputScripts);\n```\n\nSample output:\n\n```shell\n[\n  <Buffer 00 14 2a 05 c2 14 61 7c 9b 04 34 c9 2d 05 83 20 0a 85 ef 61 81 8f>,\n  <Buffer 00 14 49 b2 f8 1e ea 1e cb 5b c9 7d 78 f2 d8 f8 9d 9c 86 1c 3c f2>,\n  <Buffer 00 14 b6 37 5a 30 c7 83 3b 2f 28 e0 d5 5c 18 0d 12 b4 3d 4d fa a4>,\n  <Buffer 00 14 12 c7 cd f9 3e 29 95 32 e2 39 c4 21 42 20 dd da cd 67 db 55>,\n  <Buffer 00 14 17 c8 f3 69 b2 6c d7 70 ce b6 97 1e f5 ef a8 ff d7 c6 e1 47>,\n  <Buffer 00 14 0c 80 19 20 b8 23 2b 35 01 76 28 dc e9 22 8c 8e 67 a4 75 41>,\n  <Buffer 00 14 c1 d4 72 d4 eb 68 ea ac 57 0c 6a 93 54 1f 8b 78 75 b0 2e 8a>,\n  <Buffer 00 14 e0 2d 77 0c a0 88 ba 08 4b 34 45 c5 b9 48 41 13 21 36 22 23>,\n  <Buffer 00 14 3a 9a 28 8e f2 bd 4b 6d c5 2f 75 39 83 a4 7a ba 24 bf 57 37>,\n  <Buffer 00 14 68 26 b6 a0 37 40 59 5d 21 50 92 94 5e 0b 50 5f 58 64 a3 74>\n]\n```\n\n### Generating addresses\n\n```javascript\nconsole.log(expression.addresses);\n```\n\nSample output:\n\n```shell\n[\n  'bc1q9gzuy9rp0jdsgdxf95zcxgq2shhkrqv0wy2wek',\n  'bc1qfxe0s8h2rm94hjta0red37yanjrpc08jxsjzhg',\n  'bc1qkcm45vx8svaj728q64wpsrgjks75m74ytsz54h',\n  'bc1qztrum7f79x2n9c3ecss5ygxamtxk0k643jyxh7',\n  'bc1qzly0x6djdnthpn4kju00tmaglltudc284tpqgx',\n  'bc1qpjqpjg9cyv4n2qtk9rwwjg5v3en6ga2pggr3sj',\n  'bc1qc828948tdr42c4cvd2f4g8ut0p6mqt52gjal73',\n  'bc1quqkhwr9q3zaqsje5ghzmjjzpzvsnvg3r8du84d',\n  'bc1q82dz3rhjh49km3f0w5uc8fr6hgjt74ehgrzrcy',\n  'bc1qdqntdgphgpv46g2sj229uz6stavxfgm5ck33lg'\n]\n```\n\n> **Note**: in cases where no address is defined for that type of output—including `pk(...)`, `multi(...)`,\n> `sortedmulti(...)`, and some `raw(...)` descriptors—an empty array is returned.\n\n## License\n\nThis Node.js module is released under the [MIT License](LICENSE). Feel free to fork, and modify!\n\nCopyright © 2021-2022, Blockchain of Things Inc.\n","readmeFilename":"README.md"}