TransactionBuilder: move ABSURD_FEE to a constructor parameter
This commit is contained in:
parent
61be897429
commit
aeeee4f3ec
1 changed files with 7 additions and 6 deletions
|
@ -228,16 +228,17 @@ function buildInput (input, allowIncomplete) {
|
|||
return scriptSig
|
||||
}
|
||||
|
||||
function TransactionBuilder (network) {
|
||||
function TransactionBuilder (network, maximumFeeRate) {
|
||||
this.prevTxMap = {}
|
||||
this.network = network || networks.bitcoin
|
||||
|
||||
// WARNING: This is __NOT__ to be relied on, its just another potential safety mechanism (safety in-depth)
|
||||
this.maximumFeeRate = maximumFeeRate || 1000
|
||||
|
||||
this.inputs = []
|
||||
this.tx = new Transaction()
|
||||
}
|
||||
|
||||
TransactionBuilder.ABSURD_FEERATE = 1000
|
||||
|
||||
TransactionBuilder.prototype.setLockTime = function (locktime) {
|
||||
typeforce(types.UInt32, locktime)
|
||||
|
||||
|
@ -409,7 +410,7 @@ TransactionBuilder.prototype.__build = function (allowIncomplete) {
|
|||
|
||||
if (!allowIncomplete) {
|
||||
// do not rely on this, its merely a last resort
|
||||
if (this.__hasAbsurdFeeRate(tx.byteLength())) {
|
||||
if (this.__overMaximumFees(tx.byteLength())) {
|
||||
throw new Error('Transaction has absurd fees')
|
||||
}
|
||||
}
|
||||
|
@ -505,7 +506,7 @@ TransactionBuilder.prototype.__canModifyOutputs = function () {
|
|||
})
|
||||
}
|
||||
|
||||
TransactionBuilder.prototype.__hasAbsurdFeeRate = function (bytes) {
|
||||
TransactionBuilder.prototype.__overMaximumFees = function (bytes) {
|
||||
// not all inputs will have .value defined
|
||||
var incoming = this.inputs.reduce(function (a, x) { return a + (x.value >>> 0) }, 0)
|
||||
|
||||
|
@ -515,7 +516,7 @@ TransactionBuilder.prototype.__hasAbsurdFeeRate = function (bytes) {
|
|||
var fee = incoming - outgoing
|
||||
var feeRate = fee / bytes
|
||||
|
||||
return feeRate > TransactionBuilder.ABSURD_FEERATE
|
||||
return feeRate > this.maximumFeeRate
|
||||
}
|
||||
|
||||
module.exports = TransactionBuilder
|
||||
|
|
Loading…
Reference in a new issue