Does createrawtransaction have the ability to create a transaction with custom scripts?

[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

Leave a Comment