wallet: Move dust and fee per kb into networks.js

This commit is contained in:
Wei Lu 2014-06-17 12:03:14 +08:00
parent 562a492079
commit 45a72416c9
2 changed files with 15 additions and 11 deletions

View file

@ -9,7 +9,9 @@ module.exports = {
}, },
pubKeyHash: 0x00, pubKeyHash: 0x00,
scriptHash: 0x05, scriptHash: 0x05,
wif: 0x80 wif: 0x80,
dustThreshold: 5430, //should be 546 https://github.com/bitcoin/bitcoin/pull/2760/files
feePerKb: 20000
}, },
dogecoin: { dogecoin: {
magicPrefix: '\x19Dogecoin Signed Message:\n', magicPrefix: '\x19Dogecoin Signed Message:\n',
@ -19,7 +21,9 @@ module.exports = {
}, },
pubKeyHash: 0x1e, pubKeyHash: 0x1e,
scriptHash: 0x16, scriptHash: 0x16,
wif: 0x9e wif: 0x9e,
dustThreshold: 1000000,
feePerKb: 100000000
}, },
litecoin: { litecoin: {
magicPrefix: '\x19Litecoin Signed Message:\n', magicPrefix: '\x19Litecoin Signed Message:\n',
@ -29,7 +33,9 @@ module.exports = {
}, },
pubKeyHash: 0x30, pubKeyHash: 0x30,
scriptHash: 0x05, scriptHash: 0x05,
wif: 0xb0 wif: 0xb0,
dustThreshold: 1000,
feePerKb: 100000
}, },
testnet: { testnet: {
magicPrefix: '\x18Bitcoin Signed Message:\n', magicPrefix: '\x18Bitcoin Signed Message:\n',
@ -39,6 +45,8 @@ module.exports = {
}, },
pubKeyHash: 0x6f, pubKeyHash: 0x6f,
scriptHash: 0xc4, scriptHash: 0xc4,
wif: 0xef wif: 0xef,
dustThreshold: 5430,
feePerKb: 20000
} }
} }

View file

@ -20,9 +20,6 @@ function Wallet(seed, network) {
this.addresses = [] this.addresses = []
this.changeAddresses = [] this.changeAddresses = []
// Dust value
this.dustThreshold = 5430
// Transaction output data // Transaction output data
this.outputs = {} this.outputs = {}
@ -182,7 +179,7 @@ function Wallet(seed, network) {
} }
this.createTx = function(to, value, fixedFee, changeAddress) { this.createTx = function(to, value, fixedFee, changeAddress) {
assert(value > this.dustThreshold, value + ' must be above dust threshold (' + this.dustThreshold + ' Satoshis)') assert(value > network.dustThreshold, value + ' must be above dust threshold (' + network.dustThreshold + ' Satoshis)')
var utxos = getCandidateOutputs(value) var utxos = getCandidateOutputs(value)
var accum = 0 var accum = 0
@ -206,7 +203,7 @@ function Wallet(seed, network) {
if (accum >= subTotal) { if (accum >= subTotal) {
var change = accum - subTotal var change = accum - subTotal
if (change > this.dustThreshold) { if (change > network.dustThreshold) {
tx.addOutput(changeAddress || getChangeAddress(), change) tx.addOutput(changeAddress || getChangeAddress(), change)
} }
@ -235,13 +232,12 @@ function Wallet(seed, network) {
return sortByValueDesc return sortByValueDesc
} }
var feePerKb = 20000
function estimateFeePadChangeOutput(tx) { function estimateFeePadChangeOutput(tx) {
var tmpTx = tx.clone() var tmpTx = tx.clone()
tmpTx.addOutput(getChangeAddress(), 0) tmpTx.addOutput(getChangeAddress(), 0)
var byteSize = tmpTx.toBuffer().length var byteSize = tmpTx.toBuffer().length
return feePerKb * Math.ceil(byteSize / 1000) return network.feePerKb * Math.ceil(byteSize / 1000)
} }
function getChangeAddress() { function getChangeAddress() {