[ad_1]
After reading: https://bitcoindev.network/guides/bitcoinjs-lib/bitcoin-script-puzzles/ and reverting versions of some libraries I think I managed it with https://github.com/bitcoinjs/bitcoinjs-lib Unfortunately the transaction wasn’t accepted by the network, possibly because non-standard? Not sure. One day I’ll debug it.
main.js
#!/usr/bin/env node
// inputs
from_txid = '0f2084be761e258f9bdb00d546b44a173cc31951a7f8d1f64b63c4c5da73cdb4'
from_vout = 0
to_ammount = 63800
to_addr="3KRk7f2JgekF6x7QBqPHdZ3pPDuMdY3eWR"
to_ammount = 63800
// https://bitcoinfees.gitlab.io/
to_fee = 27 * 255
to_net = to_ammount - to_fee
const bitcoin = require('bitcoinjs-lib')
const network = bitcoin.networks.bitcoin
const redeemScript = bitcoin.script.compile([
bitcoin.opcodes.OP_ADD,
bitcoin.opcodes.OP_5,
bitcoin.opcodes.OP_EQUAL])
const p2wpkhAlice0 = bitcoin.payments.p2sh({ address: to_addr, network })
const txb = new bitcoin.TransactionBuilder(network)
txb.addInput(from_txid, from_vout)
txb.addOutput(p2wpkhAlice0.address, to_net)
console.error('p2wpkhAlice0.address: ' + require('util').inspect(p2wpkhAlice0.address));
const tx = txb.buildIncomplete()
const InputScriptP2SH = bitcoin.script.compile([bitcoin.opcodes.OP_2, bitcoin.opcodes.OP_3])
tx.setInputScript(0, InputScriptP2SH)
console.log(tx.toHex())
package.json
{
"name": "tmp",
"version": "1.0.0",
"license": "AGPL",
"dependencies": {
"bip32": "2.0.6",
"bip39": "2.6.0",
"bitcoinjs-lib": "5.2.0"
}
}
You have to use these versions of libraries with that code because interfaces changed a lot.
main.js produces a hex raw transaction which you can then try to submit with:
bitcoin-cli sendrawtransaction <hex>
[ad_2]
Source link