33 lines
1.2 KiB
JavaScript
33 lines
1.2 KiB
JavaScript
var bitcoin = require('../src/index.js')
|
|
var bscript = bitcoin.script
|
|
var crypto = bitcoin.crypto
|
|
var networks = bitcoin.networks
|
|
var TransactionBuilder = bitcoin.TransactionBuilder
|
|
|
|
var network = networks.testnet
|
|
var entropy = new Buffer('14bdfeac14bdfeac14bdfeac14bdfeac14bdfeac14bdfeac14bdfeac14bdfeac')
|
|
var root = bitcoin.HDNode.fromSeedBuffer(entropy, network)
|
|
var root2 = root.derive(1)
|
|
|
|
var pubkeyhash = crypto.hash160(root.keyPair.getPublicKeyBuffer())
|
|
|
|
var txid = 'aed14f8e918c6e7cc9347391b790f765030b07e6985fbb146bf3f6b25ddc0043'
|
|
var vout = 0
|
|
var txOut = {
|
|
script: bscript.pubKeyHash.output.encode(pubkeyhash),
|
|
value: 22000
|
|
}
|
|
|
|
var multisig = bscript.multisig.output.encode(2, [root.getPublicKeyBuffer(), root2.getPublicKeyBuffer()])
|
|
var p2shScript = bscript.witnessScriptHash.output.encode(crypto.sha256(multisig))
|
|
var scriptPubKey = bscript.scriptHash.output.encode(crypto.hash160(p2shScript))
|
|
|
|
var txb = new TransactionBuilder(network)
|
|
txb.addInput(txid, vout, 0xffffffff, txOut.script)
|
|
txb.addOutput(scriptPubKey, txOut.value - 5000)
|
|
txb.sign(0, root.keyPair)
|
|
var tx = txb.build()
|
|
console.log(tx.toBuffer().toString('hex'))
|
|
|
|
// b5e7c1d911b078c754770fc372bc92096ce2605ac6b785f91ec7df0a5034ec69
|