Browse Source

check for dust before creating transaction

hk-custom-address
Wei Lu 11 years ago
parent
commit
7c81bfef72
  1. 8
      src/wallet.js
  2. 18
      test/wallet.js

8
src/wallet.js

@ -179,6 +179,8 @@ var Wallet = function (seed, options) {
}
this.createTx = function(to, value, fixedFee) {
checkDust(value)
var tx = new Transaction()
tx.addOutput(to, value)
@ -206,6 +208,12 @@ var Wallet = function (seed, options) {
return tx
}
function checkDust(value){
if (isNullOrUndefined(value) || value < 5430) {
throw new Error("Value below dust threshold")
}
}
function estimateFeePadChangeOutput(tx){
var tmpTx = tx.clone()
tmpTx.addOutput(getChangeAddress(), 0)

18
test/wallet.js

@ -367,10 +367,6 @@ describe('Wallet', function() {
}
})
function fakeTxHash(i) {
return "txtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtx" + i
}
describe('choosing utxo', function(){
it('calculates fees', function(){
var tx = wallet.createTx(to, value)
@ -441,6 +437,20 @@ describe('Wallet', function() {
assert(Transaction.prototype.sign.calledWith(1, wallet.getPrivateKeyForAddress(address1)))
})
})
describe('when value is below dust threshold', function(){
it('throws an error', function(){
var value = 5429
assert.throws(function() {
wallet.createTx(to, value)
}, Error, 'Value below dust threshold')
})
})
function fakeTxHash(i) {
return "txtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtx" + i
}
})
function assertEqual(obj1, obj2){

Loading…
Cancel
Save