Browse Source

use constants from Bitcore

activeAddress
Ivan Socolsky 10 years ago
parent
commit
51e453730f
  1. 23
      lib/server.js

23
lib/server.js

@ -25,9 +25,6 @@ var Address = require('./model/address');
var TxProposal = require('./model/txproposal'); var TxProposal = require('./model/txproposal');
var Notification = require('./model/Notification'); var Notification = require('./model/Notification');
var MINIMUM_FEE_SAT = 10000;
var DUST_THRESHOLD = 5430;
var initialized = false; var initialized = false;
var storage; var storage;
@ -427,16 +424,16 @@ CopayServer.prototype._selectUtxos = function(txp, utxos) {
selected.push(inputs[i]); selected.push(inputs[i]);
total += this._inputSatoshis(inputs[i]); total += this._inputSatoshis(inputs[i]);
if (total >= txp.amount + MINIMUM_FEE_SAT) { if (total >= txp.amount + Bitcore.Transaction.FEE_PER_KB) {
try { try {
// Check if there are enough fees // Check if there are enough fees
txp.inputs = selected; txp.inputs = selected;
var raw = txp.getRawTx(); var raw = txp.getRawTx();
return; return;
} catch (ex) { } catch (ex) {
//if (ex.name != 'bitcore.ErrorTransactionFeeError') {} if (ex.name != 'bitcore.ErrorTransactionFeeError') {
//if (ex.name != 'bitcore.ErrorTransactionDustOutputs') {} throw ex.message;
console.log(ex); }
} }
} }
i++; i++;
@ -480,7 +477,7 @@ CopayServer.prototype.createTx = function(opts, cb) {
if (toAddress.network != wallet.getNetworkName()) if (toAddress.network != wallet.getNetworkName())
return cb(new ClientError('INVALIDADDRESS', 'Incorrect address network')); return cb(new ClientError('INVALIDADDRESS', 'Incorrect address network'));
if (opts.amount < DUST_THRESHOLD) if (opts.amount < Bitcore.Transaction.DUST_AMOUNT)
return cb(new ClientError('DUSTAMOUNT', 'Amount below dust threshold')); return cb(new ClientError('DUSTAMOUNT', 'Amount below dust threshold'));
self._getUtxos(function(err, utxos) { self._getUtxos(function(err, utxos) {
@ -502,11 +499,15 @@ CopayServer.prototype.createTx = function(opts, cb) {
requiredRejections: Math.min(wallet.m, wallet.n - wallet.m + 1), requiredRejections: Math.min(wallet.m, wallet.n - wallet.m + 1),
}); });
self._selectUtxos(txp, utxos); try {
if (!txp.inputs) { self._selectUtxos(txp, utxos);
return cb(new ClientError('INSUFFICIENTFUNDS', 'Insufficient funds')); } catch (ex) {
return cb(new ClientError(ex));
} }
if (!txp.inputs)
return cb(new ClientError('INSUFFICIENTFUNDS', 'Insufficient funds'));
txp.inputPaths = _.pluck(txp.inputs, 'path'); txp.inputPaths = _.pluck(txp.inputs, 'path');
self.storage.storeAddressAndWallet(wallet, changeAddress, function(err) { self.storage.storeAddressAndWallet(wallet, changeAddress, function(err) {

Loading…
Cancel
Save