Bitcoin

json rpc – How to properly use the rpc command `listunspent` with `bitcore-lib` to create a transaction and get the transaction hash?

You are trying to use the rpc command. listunspent I want to get all UTXOs associated with an address and then pass them to the transaction using bitcore-lib. Below is my code.

const Client = require('bitcoin-core');
const bitcore = require('bitcore-lib');
const client = new Client( 
  network: 'regtest', 
  username: 'bitcoinuser', 
  password: 'bitcoinpass', 
  port: 18443 
);

var tx = new bitcore.Transaction();

var sourceAddress = ("mwkT2k1o6k4dF7ZZQ2VBbw7VedBkQA2CBK");
var minconf = 6;
var maxconf = 999999;
var targetAddress = "2Mw3iwZdVXjeb7BN5hWqegFs8VdfZo5Rmdo";
var privateKey = "cQqVxdtPz95monJe8QJUE4h5JVtSSAjTQ1SU6z8PL9pmFj5V7ieA";

var txns = ();
client.listUnspent(minconf, maxconf, sourceAddress)
    .then(function(help)
    txns = help.slice();
    return txns;
  ).then(function(txns)
    return tx.from(txns).to(targetAddress, 15000).sign(privateKey);
  ).then(function(result)
    console.log(result);
  );

The result is similar to a transaction object.

What I want to do is receive the transaction hash and broadcast it.

Note: We are trying to run the core in regtest mode. I don’t want to use livenet or testnet. The public and private keys also have no real value, so I made them public.

The first few lines of output are:

Transaction {
  inputs:
   ( PublicKeyInput 
       witnesses: (),
       output:
        Output 
          _satoshisBN:
           BN  negative: 0, words: ( 16972032, 37 ), length: 2, red: null 
,
          _satoshis: 2500000000,
          _scriptBuffer:
           <Buffer 21 02 0b 0f c0 79 9d 39 8d 83 be 39 08 2c 72 49 0a 57 00 0e c2 f5 e0 01 ab a1 ee 9b 07 19 cc bd fb e3 ac>,
          _script:
           Script 
             chunks:
              (  buf:
                   <Buffer 02 0b 0f c0 79 9d 39 8d 83 be 39 08 2c 72 49 0a 57 00 0e c2 f5 e0 01 ab a1 ee 9b 07 19 cc bd fb e3>,
                  len: 33,
                  opcodenum: 33 ,
                 opcodenum: 172  ),
             _isOutput: true  ,
       prevTxId:
        <Buffer e1 45 8a fb cd df 9b 8b aa 4c a7 a0 13 b7 f6 d3 91 87 8f a3 02 94 78 92 ef 59 03 0e 40 f5 51 00>,
       outputIndex: 0,
       sequenceNumber: 4294967295,
       _script: Script  chunks: (), _isInput: true ,
       _scriptBuffer: <Buffer > ,
     PublicKeyInput {
       witnesses: (),
       output:
        Output {
          _satoshisBN:

Related Articles

Back to top button