rename BitcoinUtils -> WalletUtils

This commit is contained in:
Ivan Socolsky 2015-02-17 13:11:14 -03:00
parent b1a29f5005
commit 5161d96dd6
5 changed files with 19 additions and 14 deletions

View File

@ -3,7 +3,7 @@ var _ = require('lodash');
var log = require('npmlog');
var Bitcore = require('bitcore');
var BitcoinUtils = require('../bitcoinutils')
var WalletUtils = require('../walletutils')
var SignUtils = require('../signutils');
/*
@ -13,7 +13,7 @@ var SignUtils = require('../signutils');
function Verifier(opts) {};
Verifier.checkAddress = function(data, address) {
var local = BitcoinUtils.deriveAddress(data.publicKeyRing, address.path, data.m, data.network);
var local = WalletUtils.deriveAddress(data.publicKeyRing, address.path, data.m, data.network);
return (local.address == address.address && JSON.stringify(local.publicKeys) == JSON.stringify(address.publicKeys));
};
@ -54,9 +54,9 @@ Verifier.checkCopayers = function(copayers, walletPrivKey, myXPrivKey, n) {
Verifier.checkTxProposal = function(data, txp) {
var header = txp.toAddress + '|' + txp.amount + '|' + (txp.message || '');
var hash = WalletUtils.getProposalHash(txp.toAddress, txp.amount, txp.message);
var signingPubKey = Bitcore.PrivateKey.fromString(data.signingPrivKey).toPublicKey().toString();
if (!SignUtils.verify(header, txp.proposalSignature, signingPubKey)) return false;
if (!SignUtils.verify(hash, txp.proposalSignature, signingPubKey)) return false;
return Verifier.checkAddress(data, txp.changeAddress);
};

View File

@ -8,7 +8,7 @@ var Uuid = require('uuid');
var Address = require('./address');
var Copayer = require('./copayer');
var AddressManager = require('./addressmanager');
var BitcoinUtils = require('../bitcoinutils');
var WalletUtils = require('../walletutils');
var VERSION = '1.0.0';
@ -117,7 +117,7 @@ Wallet.prototype.createAddress = function(isChange) {
$.checkState(this.isComplete());
var path = this.addressManager.getNewAddressPath(isChange);
return new Address(BitcoinUtils.deriveAddress(this.publicKeyRing, path, this.m, this.network));
return new Address(WalletUtils.deriveAddress(this.publicKeyRing, path, this.m, this.network));
};

View File

@ -17,6 +17,7 @@ var Explorers = require('bitcore-explorers');
var ClientError = require('./clienterror');
var Utils = require('./utils');
var Storage = require('./storage');
var WalletUtils = require('./walletutils');
var SignUtils = require('./signutils');
var Wallet = require('./model/wallet');
@ -464,8 +465,8 @@ CopayServer.prototype.createTx = function(opts, cb) {
if (!wallet.isComplete()) return cb(new ClientError('Wallet is not complete'));
var copayer = wallet.getCopayer(self.copayerId);
var msg = opts.toAddress + '|' + opts.amount + '|' + (opts.message || '');
if (!self._verifySignature(msg, opts.proposalSignature, copayer.signingPubKey))
var hash = WalletUtils.getProposalHash(opts.toAddress, opts.amount, opts.message);
if (!self._verifySignature(hash, opts.proposalSignature, copayer.signingPubKey))
return cb(new ClientError('Invalid proposal signature'));
var toAddress;

View File

@ -1,12 +1,11 @@
var _ = require('lodash');
var Bitcore = require('bitcore');
var BitcoreAddress = Bitcore.Address;
function BitcoinUtils () {};
function WalletUtils() {};
BitcoinUtils.deriveAddress = function(publicKeyRing, path, m, network) {
WalletUtils.deriveAddress = function(publicKeyRing, path, m, network) {
var publicKeys = _.map(publicKeyRing, function(xPubKey) {
var xpub = new Bitcore.HDPublicKey(xPubKey);
@ -22,4 +21,8 @@ BitcoinUtils.deriveAddress = function(publicKeyRing, path, m, network) {
};
};
module.exports = BitcoinUtils;
WalletUtils.getProposalHash = function(toAddress, amount, message) {
return toAddress + '|' + amount + '|' + (message || '');
};
module.exports = WalletUtils;

View File

@ -11,6 +11,7 @@ var memdown = require('memdown');
var Bitcore = require('bitcore');
var Utils = require('../../lib/utils');
var WalletUtils = require('../../lib/walletutils');
var SignUtils = require('../../lib/signutils');
var Storage = require('../../lib/storage');
@ -176,9 +177,9 @@ helpers.createProposalOpts = function(toAddress, amount, message, signingKey) {
message: message,
proposalSignature: null,
};
var msg = opts.toAddress + '|' + opts.amount + '|' + (opts.message || '');
var hash = WalletUtils.getProposalHash(opts.toAddress, opts.amount, opts.message);
try {
opts.proposalSignature = SignUtils.sign(msg, signingKey);
opts.proposalSignature = SignUtils.sign(hash, signingKey);
} catch (ex) {}
return opts;