Guest User

Untitled

a guest
Apr 26th, 2018
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.00 KB | None | 0 0
  1. // root seed buffer
  2. let rootSeed = BITBOX.Mnemonic.toSeed(mnemonic);
  3.  
  4. // master HDNode
  5. let masterHDNode = BITBOX.HDNode.fromSeed(rootSeed);
  6.  
  7. // instance of transaction builder
  8. let transactionBuilder = new BITBOX.TransactionBuilder('bitcoincash')
  9.  
  10. // amount of satoshis at vout
  11. let originalAmount = 1969;
  12.  
  13. // txid
  14. let txid = "c8e66ce653f6fda41bd7b4b32a215ee08ab9240f53d0686838a8d6c6125ffa7c";
  15.  
  16. // add input txid, vout index and amount of satoshis
  17. transactionBuilder.addInput(txid, 0)
  18.  
  19. // encode #BCHForEveryone as a buffer
  20. let buf = new Buffer('xxxxcxxxx');
  21. console.log("buf"+buf);
  22. // encode w/ OP_RETURN
  23. let data = BITBOX.Script.encode([
  24. BITBOX.Script.opcodes.OP_RETURN,
  25. Buffer.from('6d02', 'hex'),
  26. Buffer.from('My first memo message using OP_RETURN to write to the blockchain.')
  27. ])
  28.  
  29. // get size of tx to calculate fee
  30. let byteCount = BITBOX.BitcoinCash.getByteCount({ P2PKH: 1 }, { P2PKH: 4 });
  31.  
  32. // calculate fee @ 1 sat/B
  33. let sendAmount = originalAmount - byteCount;
  34.  
  35. // add cash address output
  36. transactionBuilder.addOutput("1LmqnQWgr581NS5X9nLn1TZgogTbi8Mf4U", sendAmount)
  37.  
  38. // add OP_RETURN and data as output w/ 0 satoshis
  39. transactionBuilder.addOutput(data, 0)
  40. // xpriv
  41. //let xpriv = 'xprvA3ro4jZgoTiA2qFS9hRvvK34b4osrZqrVv4khnV4EqmJFUhogRdyweM7xMHTNWJG1LfsVoWzSiNiAZXYaWx4Do1HtiH4186udfAXx1FxYq1';
  42.  
  43.  
  44. let node = BITBOX.HDNode.derivePath(masterHDNode, "m/44'/145'/0'/0/0");
  45. let keyPair = BITBOX.HDNode.toKeyPair(node);
  46.  
  47. let legacy = BITBOX.HDNode.toLegacyAddress(node)
  48. console.log("legacy: "+legacy)
  49. //'1DErBHB1HXNJvW3b4dP3iyE85AR8toMvUd'
  50.  
  51. let cashAddr = BITBOX.HDNode.toCashAddress(node)
  52. console.log("cashaddress: "+cashAddr)
  53. //'bitcoincash:qzrrla7dulccne05k8xsrud44f47fv9kvuzpwsa5qp'
  54.  
  55.  
  56. // instance of bip44BCHAccount node
  57. //let node = BITBOX.HDNode.fromXPriv(xpriv);
  58.  
  59. // first external change address node
  60. //let key = BITBOX.HDNode.toKeyPair(node);
  61.  
  62. let redeemScript;
  63. // sign tx
  64. transactionBuilder.sign(0, keyPair, redeemScript, transactionBuilder.hashTypes.SIGHASH_ALL, originalAmount)
  65.  
  66. // to raw hex
  67. let hex = transactionBuilder.build().toHex()
  68. console.log("hex: BITBOX.RawTransactions.sendRawTransaction(\"" + hex + "\").then((result) => { console.log(\"Broadcast Result: \"+result); }, (err) => { console.log(\"Broadcast Error: \"+err); });");
  69.  
  70. // POST to full $BCH node
  71. BITBOX.RawTransactions.sendRawTransaction(hex).then((result) => { console.log(result); }, (err) => { console.log(err); });
  72. // 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