Giter Site home page Giter Site logo

tx-builder's People

Contributors

ilyavf avatar

Watchers

 avatar

tx-builder's Issues

Add SegWit support

Add an option for building SegWit transactions.

Sources:

Details:

    // P2PKH output script
    DUP HASH160 ab68025513c3dbd2f7b92a94e0581f5d50f654e7 EQUALVERIFY CHECKSIG
    // P2WPKH output script (includes: a witness version 0)
    0 ab68025513c3dbd2f7b92a94e0581f5d50f654e7
    // To spend the Segregated Witness output:
    [...]
    "vin" : [{
        "txid": "0627052b6f28912f2703066a912ea577f2ce4da4caa5a5fbd8a57286c345c2f2",
        "vout": 0,
        "scriptSig": ""
    }]
    [...]
    "witness": "<Bob’s witness data>"
    [...]
  • Pay-to-Witness-Script-Hash (P2WSH)
    The second type of witness program corresponds to a Pay-to-Script-Hash (P2SH) script.
    Examples:
    // 1. P2SH
    // Includes 20-byte RIPEMD160(SHA256(script)) hash:
    HASH160 54c557e07dde5bb6cb791c7a540e0a4796f5e97e EQUAL

    // P2SH output being spent:
    "vout": 0,
     	 "scriptSig": “<SigA> <SigB> <2 PubA PubB PubC PubD PubE 5 CHECKMULTISIG>”,
    ]

    // 2. P2WSH output script
    // Includes a witness version (0) and 32-byte SHA256 hash of the redeem script.
    0 a9b7b38d972cabc7961dbfbcb841ad4508d133c47ba87457b4a0e8aae86dbb89

    // P2WSH output being spent with separate witness data
    "vout": 0,
     	 "scriptSig": “”,
    ]
    [...]
    "witness": "<SigA> <SigB> <2 PubA PubB PubC PubD PubE 5 CHECKMULTISIG>"
  • Wallet construction of P2WPKH
    • It is extremely important to note that P2WPKH should only be created by the payee (recipient) and not converted by the sender from a known public key, P2PKH script, or address. Sender does not know if the recipient has SegWit support.
    • P2WPKH outputs must be constructed from the hash of a compressed public key.

Transaction:

  • If all txins in a transaction are not associated with any witness data, the transaction MUST be serialized in the original transaction format.
  • Under segwit, each transaction will have 2 IDs.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.