No Particular Method

    bscript-assembler

    0.1.3 • Public • Published

    Node Bitcoin Script

    NPM Build Status

    Node Bitcoin script parser

    Installation

    $ npm i bscript-parser --save
    

    CLI Usage

    General help:

    $ bscript -h
    Usage: bscript [options] [command]
    
    Options:
      -v, --version                    output the version number
      -h, --help                       output usage information
    
    Commands:
      assemble [options] <raw-script>
      disassemble [options] <asm>
      getopcode <word>
      getword <opcode>
      isvalid <opcode-or-word>
      isdisabled <opcode-or-word>
      describe <opcode-or-word>
    

    Help for a specific command, e.g.:

    $ bscript assemble -h
    Usage: assemble [options] <raw-script>
    
    Options:
      -l, --literal-style [style]  Literal Style normal|brackets|prefixed|verbose (default: "normal")
      -e, --encoding [encoding]    Encoding ascii|base64|binary|hex|utf8 (default: "hex")
      -h, --help                   output usage information
    
    $ bscript assemble --literal-style normal 76a914306e2ea1eed91bf66dfe5d94f3957d4ba63bde8488acOP_DUP OP_HASH160 306e2ea1eed91bf66dfe5d94f3957d4ba63bde84 OP_EQUALVERIFY OP_CHECKSIG
    

    Module Usage

    You can parse raw hex string into an assembly string using:

    > const BScript = require('bscript-parser')
    undefined
    > BScript.rawToAsm('a914c664139327b98043febeab6434eba89bb196d1af87', 'hex')
    'OP_HASH160 c664139327b98043febeab6434eba89bb196d1af OP_EQUAL'

    You can parse an assembly string into a raw script hex string using:

    > BScript.asmToRaw('OP_HASH160 c664139327b98043febeab6434eba89bb196d1af OP_EQUAL', 'hex')
    'a914c664139327b98043febeab6434eba89bb196d1af87'

    The library also exposes several utility functions for getting information about bscript opcodes.

    Conversion between opcodes and asm terms

    > BScript.opcodes.opcodeForWord('OP_EQUAL')
    135
    > BScript.opcodes.wordForOpcode(135)
    'OP_EQUAL'

    Check if an opcode or asm term exists

    > bscript.opcodes.opcodeIsValid(135)
    true
    > bscript.opcodes.opcodeIsValid(256)
    false
    > bscript.opcodes.wordIsValid('OP_EQUAL')
    true
    > bscript.opcodes.wordIsValid('OP_CLONE')
    false

    Check if an opcode or asm term is disabled

    > bscript.opcodes.opcodeIsDisabled(135)
    false
    > bscript.opcodes.opcodeIsDisabled(126)
    true
    > bscript.opcodes.wordIsDisabled('OP_EQUAL')
    false
    > bscript.opcodes.wordIsDisabled('OP_CAT')
    true

    Retrieve descriptive information for an opcode or asm term

    Note: The data is taken from the bitcoin.it wiki.

    > bscript.opcodes.descriptionForOpcode(135)
    'Returns 1 if the inputs are exactly equal, 0 otherwise.'
    > bscript.opcodes.descriptionForWord('OP_HASH160')
    'The input is hashed twice: first with SHA-256 and then with RIPEMD-160.'
    > bscript.opcodes.inputDescriptionForOpcode(135)
    'x1 x2'
    > bscript.opcodes.inputDescriptionForWord('OP_HASH160')
    'in'
    > bscript.opcodes.outputDescriptionForOpcode(135)
    'True / false'
    > bscript.opcodes.outputDescriptionForWord('OP_HASH160')
    'hash'

    API Docs

    You can view the the API docs for this project by running npm run docs:serve in the project directory and then accessing the documentation in your browser.

    You can also access the pre-built API documentation as markdown here.
    To prepare the pre-built api docs to be committed after a change is made to the code, run npm run docs:build. The should be done before every release.

    Keywords

    none

    Install

    npm i bscript-assembler

    DownloadsWeekly Downloads

    3

    Version

    0.1.3

    License

    MIT

    Unpacked Size

    1.05 MB

    Total Files

    72

    Last publish

    Collaborators

    • jbaczuk