The essense of Bitcoin Cash is all about sending and receiving transactions. The ability to move any amount of money to anyone on EARTH for nearly free is truly revolutionary. Today we’re very happy to introduce the TransactionBuilder class so developers can quickly send $BCH transactions from their apps.

TransactionBuilder

// create 256 bit BIP39 mnemonic let mnemonic = BITBOX . Mnemonic . generate ( 256 ) // root seed buffer let rootSeed = BITBOX . Mnemonic . toSeed ( mnemonic ); // master HDNode let masterHDNode = BITBOX . HDNode . fromSeed ( rootSeed , 'bitcoincash' ); // HDNode of BIP44 account let account = BITBOX . HDNode . derivePath ( masterHDNode , "m/44'/145'/0'" ); // derive the first external change address HDNode which is going to spend utxo let change = BITBOX . HDNode . derivePath ( account , "0/0" ); // instance of transaction builder let transactionBuilder = new BITBOX . TransactionBuilder (); // original amount of satoshis in vin let originalAmount = result [ 0 ]. satoshis ; // index of vout let vout = result [ 0 ]. vout ; // txid of vout let txid = result [ 0 ]. txid ; // add input with txid and index of vout transactionBuilder . addInput ( txid , vout ); // get byte count to calculate fee. paying 1 sat/byte let byteCount = BITBOX . BitcoinCash . getByteCount ({ P2PKH : 1 }, { P2PKH : 1 }); // 192 // amount to send to receiver. It's the original amount - 1 sat/byte for tx size let sendAmount = originalAmount - byteCount ; // add output w/ address and amount to send transactionBuilder . addOutput ( cashAddress , sendAmount ); // keypair let keyPair = BITBOX . HDNode . toKeyPair ( change ); // sign w/ HDNode let redeemScript ; transactionBuilder . sign ( 0 , keyPair , redeemScript , transactionBuilder . hashTypes . SIGHASH_ALL , originalAmount ); // build tx let tx = transactionBuilder . build (); // output rawhex let hex = tx . toHex (); // sendRawTransaction to running BCH node BITBOX . RawTransactions . sendRawTransaction ( hex ). then (( result ) => { console . log ( result ); }, ( err ) => { console . log ( err ); });

Limitations

TransactionBuilder currently only supports 1-to-1, 1-to-many and many-to-1 P2PKH SIGHASH_ALL scripts. More advanced scripts such as P2SH/P2MS are in the works.

Summary

BITBOX now lets you generate entropy, mnemonics, root seeds, HDNodes, transactions and send them to the network. It’s now easier than ever to add $BCH functionality to your applications.

More Info

TransactionBuilder