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) { this.createTx = function(to, value, fixedFee) {
checkDust(value)
var tx = new Transaction() var tx = new Transaction()
tx.addOutput(to, value) tx.addOutput(to, value)
@ -206,6 +208,12 @@ var Wallet = function (seed, options) {
return tx return tx
} }
function checkDust(value){
if (isNullOrUndefined(value) || value < 5430) {
throw new Error("Value below dust threshold")
}
}
function estimateFeePadChangeOutput(tx){ function estimateFeePadChangeOutput(tx){
var tmpTx = tx.clone() var tmpTx = tx.clone()
tmpTx.addOutput(getChangeAddress(), 0) 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(){ describe('choosing utxo', function(){
it('calculates fees', function(){ it('calculates fees', function(){
var tx = wallet.createTx(to, value) var tx = wallet.createTx(to, value)
@ -441,6 +437,20 @@ describe('Wallet', function() {
assert(Transaction.prototype.sign.calledWith(1, wallet.getPrivateKeyForAddress(address1))) 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){ function assertEqual(obj1, obj2){

Loading…
Cancel
Save