Merge pull request #159 from williamcotton/master
fixed issues with testnet and createTx
This commit is contained in:
commit
d65a3c36e2
2 changed files with 33 additions and 5 deletions
|
@ -2,6 +2,7 @@ var convert = require('./convert')
|
|||
var Transaction = require('./transaction').Transaction
|
||||
var HDNode = require('./hdwallet.js')
|
||||
var rng = require('secure-random')
|
||||
var Network = require('./network')
|
||||
|
||||
function Wallet(seed, options) {
|
||||
if (!(this instanceof Wallet)) { return new Wallet(seed, options); }
|
||||
|
@ -169,11 +170,11 @@ function Wallet(seed, options) {
|
|||
})
|
||||
}
|
||||
|
||||
this.createTx = function(to, value, fixedFee) {
|
||||
this.createTx = function(to, value, fixedFee, changeAddress) {
|
||||
checkDust(value)
|
||||
|
||||
var tx = new Transaction()
|
||||
tx.addOutput(to, value)
|
||||
tx.addOutput(to, value, Network[network])
|
||||
|
||||
var utxo = getCandidateOutputs(value)
|
||||
var totalInValue = 0
|
||||
|
@ -189,7 +190,7 @@ function Wallet(seed, options) {
|
|||
|
||||
var change = totalInValue - value - fee
|
||||
if(change > 0 && !isDust(change)) {
|
||||
tx.addOutput(getChangeAddress(), change)
|
||||
tx.addOutput(changeAddress || getChangeAddress(), change, Network[network])
|
||||
}
|
||||
break
|
||||
}
|
||||
|
@ -245,7 +246,7 @@ function Wallet(seed, options) {
|
|||
|
||||
function estimateFeePadChangeOutput(tx){
|
||||
var tmpTx = tx.clone()
|
||||
tmpTx.addOutput(getChangeAddress(), 0)
|
||||
tmpTx.addOutput(getChangeAddress(), 0, Network[network])
|
||||
return tmpTx.estimateFee()
|
||||
}
|
||||
|
||||
|
@ -265,7 +266,7 @@ function Wallet(seed, options) {
|
|||
tx.ins.forEach(function(inp,i) {
|
||||
var output = me.outputs[inp.outpoint.hash + ':' + inp.outpoint.index]
|
||||
if (output) {
|
||||
tx.sign(i, me.getPrivateKeyForAddress(output.address))
|
||||
tx.sign(i, me.getPrivateKeyForAddress(output.address), false, Network[network])
|
||||
}
|
||||
})
|
||||
return tx
|
||||
|
|
|
@ -458,6 +458,33 @@ describe('Wallet', function() {
|
|||
})
|
||||
})
|
||||
|
||||
describe('testnet', function(){
|
||||
it('should create transaction', function(){
|
||||
var to = 'mt7MyTVVEWnbwpF5hBn6fgnJcv95Syk2ue'
|
||||
var wallet = new Wallet(seed, {network: 'testnet'})
|
||||
var tx = wallet.createTx(to, value)
|
||||
assert.equal(tx.outs.length, 1)
|
||||
})
|
||||
})
|
||||
|
||||
describe('changeAddress', function(){
|
||||
it('should allow custom changeAddress', function(){
|
||||
var wallet = new Wallet(seed, {network: 'testnet'})
|
||||
var address = wallet.generateAddress()
|
||||
utxo = {
|
||||
"hash":"b3c5fde139dc0a3bba2729bfd5b9e16f5894131dc3dc46a91151da3053e7e3a5",
|
||||
"outputIndex": 0,
|
||||
"address" : address,
|
||||
"value": 100000
|
||||
}
|
||||
var to = "mt7MyTVVEWnbwpF5hBn6fgnJcv95Syk2ue"
|
||||
var changeAddress = 'mfrFjnKZUvTcvdAK2fUX5D8v1Epu5H8JCk'
|
||||
wallet.setUnspentOutputs([utxo])
|
||||
var tx = wallet.createTx(to, 10000, 1000, changeAddress)
|
||||
assert.equal(tx.outs.length, 2)
|
||||
})
|
||||
})
|
||||
|
||||
describe('transaction outputs', function(){
|
||||
it('includes the specified address and amount', function(){
|
||||
var tx = wallet.createTx(to, value)
|
||||
|
|
Loading…
Reference in a new issue