minigun-sv
Version:
Lightweight Bitcoin Stress Test Tool.
46 lines (40 loc) • 1.28 kB
JavaScript
var bsv = require('bsv')
function createUTXOs(TX){
var tx = bsv.Transaction(TX)
var utxos = []
for(var i = 0; i < tx.outputs.length; i++){
utxos.push({
txId: tx.id,
vout: i,
satoshis: tx.outputs[i].satoshis,
address: tx.outputs[i].script.toAddress(),
script: tx.outputs[i].script.toHex()
})
}
return utxos
}
function getUTXOsFromBlock(block, script){
var transactions = block.transactions
var utxos = []
var address = script.toAddress()
transactions.forEach(tx=>{
for (var i = 0; i < tx.outputs.length; i++){
if (tx.outputs[i].script.equals(script)) {
utxos.push({
txId: tx.id,
vout: i,
satoshis: tx.outputs[i].satoshis,
address: address,
script: tx.outputs[i]._scriptBuffer.toString("hex")
})
}
}
})
return utxos
}
function createScript(address){
return bsv.Script.buildPublicKeyHashOut(address)
}
module.exports.createUTXOs = createUTXOs
module.exports.getUTXOsFromBlock = getUTXOsFromBlock
module.exports.createScript = createScript