updates model and tests to newest bitcore version

This commit is contained in:
Matias Alejo Garcia 2014-07-24 21:18:38 -03:00
commit 2d481dd406
5 changed files with 84 additions and 71 deletions

View file

@ -127,6 +127,17 @@ TxProposal.prototype.mergeMetadata = function(v1, author) {
};
//This should be on bitcore / Transaction
TxProposal.prototype.countSignatures = function() {
var tx = this.builder.build();
var ret=0;
for(var i in tx.ins) {
ret += tx.countInputSignatures(i);
}
return ret;
};
module.exports = require('soop')(TxProposal);

View file

@ -35,8 +35,8 @@ function Wallet(opts) {
self[k] = opts[k];
});
if (copayConfig.forceNetwork && this.getNetworkName() !== copayConfig.networkName)
throw new Error('Network forced to '+copayConfig.networkName+
' and tried to create a Wallet with network '+ this.getNetworkName());
throw new Error('Network forced to ' + copayConfig.networkName +
' and tried to create a Wallet with network ' + this.getNetworkName());
this.log('creating ' + opts.requiredCopayers + ' of ' + opts.totalCopayers + ' wallet');
@ -122,7 +122,6 @@ Wallet.prototype._handlePublicKeyRing = function(senderId, data, isInbound) {
Wallet.prototype._handleTxProposal = function(senderId, data) {
preconditions.checkArgument(senderId);
this.log('RECV TXPROPOSAL:', data);
var inTxp = TxProposals.TxProposal.fromObj(data.txProposal);
@ -509,6 +508,7 @@ Wallet.prototype.reject = function(ntxid) {
};
Wallet.prototype.sign = function(ntxid, cb) {
preconditions.checkState(typeof this.getMyCopayerId() !== 'undefined');
var self = this;
@ -522,11 +522,11 @@ Wallet.prototype.sign = function(ntxid, cb) {
var keys = self.privateKey.getForPaths(txp.inputChainPaths);
var b = txp.builder;
var before = b.signaturesAdded;
var before = txp.countSignatures();
b.sign(keys);
var ret = false;
if (b.signaturesAdded > before) {
if (txp.countSignatures() > before) {
txp.signedBy[myId] = Date.now();
self.sendTxProposal(ntxid);
self.store();
@ -697,15 +697,9 @@ Wallet.prototype.createTxSync = function(toAddress, amountSatStr, comment, utxos
var priv = this.privateKey;
opts = opts || {};
var amountSat = bignum(amountSatStr);
preconditions.checkArgument(new Address(toAddress).network().name === this.getNetworkName());
if (!pkr.isComplete()) {
throw new Error('publicKeyRing is not complete');
}
if (comment && comment.length > 100) {
throw new Error("comment can't be longer that 100 characters");
}
preconditions.checkState(pkr.isComplete());
if (comment) preconditions.checkArgument(comment.length <= 100);
if (!opts.remainderOut) {
opts.remainderOut = {
@ -717,7 +711,7 @@ Wallet.prototype.createTxSync = function(toAddress, amountSatStr, comment, utxos
.setUnspent(utxos)
.setOutputs([{
address: toAddress,
amountSat: amountSat
amountSatStr: amountSatStr,
}]);
var selectedUtxos = b.getSelectedUnspent();
@ -735,7 +729,9 @@ Wallet.prototype.createTxSync = function(toAddress, amountSatStr, comment, utxos
var now = Date.now();
var me = {};
if (priv && b.signaturesAdded) me[myId] = now;
var tx = b.build();
if (priv && tx.countInputSignatures(0)) me[myId] = now;
var meSeen = {};
if (priv) meSeen[myId] = now;