Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // root seed buffer
- let rootSeed = BITBOX.Mnemonic.toSeed(mnemonic);
- // master HDNode
- let masterHDNode = BITBOX.HDNode.fromSeed(rootSeed);
- // instance of transaction builder
- let transactionBuilder = new BITBOX.TransactionBuilder('bitcoincash')
- // amount of satoshis at vout
- let originalAmount = 1969;
- // txid
- let txid = "c8e66ce653f6fda41bd7b4b32a215ee08ab9240f53d0686838a8d6c6125ffa7c";
- // add input txid, vout index and amount of satoshis
- transactionBuilder.addInput(txid, 0)
- // encode #BCHForEveryone as a buffer
- let buf = new Buffer('xxxxcxxxx');
- console.log("buf"+buf);
- // encode w/ OP_RETURN
- let data = BITBOX.Script.encode([
- BITBOX.Script.opcodes.OP_RETURN,
- Buffer.from('6d02', 'hex'),
- Buffer.from('My first memo message using OP_RETURN to write to the blockchain.')
- ])
- // get size of tx to calculate fee
- let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 4 });
- // calculate fee @ 1 sat/B
- let sendAmount = originalAmount - byteCount;
- // add cash address output
- transactionBuilder.addOutput("1LmqnQWgr581NS5X9nLn1TZgogTbi8Mf4U", sendAmount)
- // add OP_RETURN and data as output w/ 0 satoshis
- transactionBuilder.addOutput(data, 0)
- // xpriv
- //let xpriv = 'xprvA3ro4jZgoTiA2qFS9hRvvK34b4osrZqrVv4khnV4EqmJFUhogRdyweM7xMHTNWJG1LfsVoWzSiNiAZXYaWx4Do1HtiH4186udfAXx1FxYq1';
- let node = BITBOX.HDNode.derivePath(masterHDNode, "m/44'/145'/0'/0/0");
- let keyPair = BITBOX.HDNode.toKeyPair(node);
- let legacy = BITBOX.HDNode.toLegacyAddress(node)
- console.log("legacy: "+legacy)
- //'1DErBHB1HXNJvW3b4dP3iyE85AR8toMvUd'
- let cashAddr = BITBOX.HDNode.toCashAddress(node)
- console.log("cashaddress: "+cashAddr)
- //'bitcoincash:qzrrla7dulccne05k8xsrud44f47fv9kvuzpwsa5qp'
- // instance of bip44BCHAccount node
- //let node = BITBOX.HDNode.fromXPriv(xpriv);
- // first external change address node
- //let key = BITBOX.HDNode.toKeyPair(node);
- let redeemScript;
- // sign tx
- transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount)
- // to raw hex
- let hex = transactionBuilder.build().toHex()
- console.log("hex: BITBOX.RawTransactions.sendRawTransaction(\"" + hex + "\").then((result) => { console.log(\"Broadcast Result: \"+result); }, (err) => { console.log(\"Broadcast Error: \"+err); });");
- // POST to full $BCH node
- BITBOX.RawTransactions.sendRawTransaction(hex).then((result) => { console.log(result); }, (err) => { console.log(err); });
- // BITBOX.RawTransactions.sendRawTransaction("02000000014e4e6d742b7f52f20f19f956940ef8a3ffff5614c2b65540ea5ead2051c0b7c4010000006b483045022100b53cffb6a70397f1965250339bb1d3d6a6a2df1dd0b74f494133c6214744fed30220741f723d4520ced3cee46af9e1c10562b870fb7fa103a1c9c2e95e1a51aa599541210202078bdbe3b60611a3c2b3b9c38b0b7bd6a22796173d8d2ccb481a3c130c9db5ffffffff02063d0000000000001976a9143fa1fad75c90e247899c970c099d49554b91d52e88ac00000000000000001c6a1a5265696e6861726474202d205468756e6465722773204669737400000000").then((result) => { console.log("Broadcast Result: "+result); }, (err) => { console.log("Broadcast Error: "+err); });
Add Comment
Please, Sign In to add comment