check for dust before creating transaction

This commit is contained in:
Wei Lu 2014-03-24 01:42:36 +08:00
parent 913b48e87f
commit 7c81bfef72
2 changed files with 22 additions and 4 deletions

View file

@ -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)

View file

@ -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){