I am trying to use the rpc command listunspent
to get all the UTXOs relevant to an address, and then I am trying to pass it to a 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 the transaction object.
What I want is to receive the transaction hash, which I can then broadcast.
Note: I am trying to run my core in regtest mode, I do not want to use livenet or testnet. I have also disclosed the public and private keys, as they do not hold any real value.
The first few lines of the output looks like this:
Transaction {
inputs:
[ PublicKeyInput {
witnesses: [],
output:
Output {
_satoshisBN:
BN { negative: 0, words: [ 16972032, 37 ], length: 2, red: null
},
_satoshis: 2500000000,
_scriptBuffer:
,
_script:
Script {
chunks:
[ { buf:
,
len: 33,
opcodenum: 33 },
{ opcodenum: 172 } ],
_isOutput: true } },
prevTxId:
,
outputIndex: 0,
sequenceNumber: 4294967295,
_script: Script { chunks: [], _isInput: true },
_scriptBuffer: },
PublicKeyInput {
witnesses: [],
output:
Output {
_satoshisBN: