mirror of https://github.com/BTCPrivate/copay.git
fix tests
This commit is contained in:
parent
4cd90c45a2
commit
f13dea2376
1
copay.js
1
copay.js
|
@ -4,6 +4,7 @@ module.exports.PublicKeyRing = require('./js/models/core/PublicKeyRing');
|
|||
module.exports.TxProposals = require('./js/models/core/TxProposals');
|
||||
module.exports.PrivateKey = require('./js/models/core/PrivateKey');
|
||||
module.exports.Passphrase = require('./js/models/core/Passphrase');
|
||||
module.exports.Structure = require('./js/models/core/Structure');
|
||||
|
||||
|
||||
// components
|
||||
|
|
|
@ -7,7 +7,7 @@ var HK = bitcore.HierarchicalKey;
|
|||
var WalletKey = bitcore.WalletKey;
|
||||
var networks = bitcore.networks;
|
||||
var util = bitcore.util;
|
||||
var PublicKeyRing = require('./PublicKeyRing');
|
||||
var Structure = require('./Structure');
|
||||
|
||||
function PrivateKey(opts) {
|
||||
opts = opts || {};
|
||||
|
@ -20,7 +20,7 @@ function PrivateKey(opts) {
|
|||
|
||||
PrivateKey.prototype.getId = function() {
|
||||
if (!this.id) {
|
||||
var path = PublicKeyRing.IdFullBranch();
|
||||
var path = Structure.IdFullBranch;
|
||||
var idhk = this.bip.derive(path);
|
||||
this.id= idhk.eckey.public.toString('hex');
|
||||
}
|
||||
|
@ -29,7 +29,7 @@ PrivateKey.prototype.getId = function() {
|
|||
|
||||
PrivateKey.prototype.deriveBIP45Branch = function() {
|
||||
if (!this.bip45Branch) {
|
||||
this.bip45Branch = this.bip.derive(PublicKeyRing.BIP45_PUBLIC_PREFIX);
|
||||
this.bip45Branch = this.bip.derive(Structure.BIP45_PUBLIC_PREFIX);
|
||||
}
|
||||
return this.bip45Branch;
|
||||
}
|
||||
|
@ -62,8 +62,7 @@ PrivateKey.prototype._getHK = function(path) {
|
|||
};
|
||||
|
||||
PrivateKey.prototype.get = function(index,isChange) {
|
||||
console.log(PublicKeyRing);
|
||||
var path = PublicKeyRing.FullBranch(index, isChange);
|
||||
var path = Structure.FullBranch(index, isChange);
|
||||
var pk = this.privateKeyCache[path];
|
||||
if (!pk) {
|
||||
var derivedHK = this._getHK(path);
|
||||
|
|
|
@ -6,6 +6,7 @@ var imports = require('soop').imports();
|
|||
var bitcore = require('bitcore');
|
||||
var HK = bitcore.HierarchicalKey;
|
||||
var PrivateKey = require('./PrivateKey');
|
||||
var Structure = require('./Structure');
|
||||
var Address = bitcore.Address;
|
||||
var Script = bitcore.Script;
|
||||
var coinUtil = bitcore.util;
|
||||
|
@ -37,40 +38,6 @@ function PublicKeyRing(opts) {
|
|||
this.copayerIds = [];
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Based on https://github.com/maraoz/bips/blob/master/bip-NNNN.mediawiki
|
||||
* m / purpose' / cosigner_index / change / address_index
|
||||
*/
|
||||
var PURPOSE = 45;
|
||||
var MAX_NON_HARDENED = 0x8000000 - 1;
|
||||
|
||||
var SHARED_INDEX = MAX_NON_HARDENED - 0;
|
||||
var ID_INDEX = MAX_NON_HARDENED - 1;
|
||||
|
||||
var BIP45_PUBLIC_PREFIX = 'm/'+ PURPOSE+'\'';
|
||||
PublicKeyRing.BIP45_PUBLIC_PREFIX = BIP45_PUBLIC_PREFIX;
|
||||
|
||||
|
||||
PublicKeyRing.Branch = function(address_index, isChange, cosigner_index) {
|
||||
var ret = 'm/'+
|
||||
(typeof cosigner_index !== 'undefined'? cosigner_index: SHARED_INDEX)+'/'+
|
||||
(isChange?1:0)+'/'+
|
||||
address_index;
|
||||
return ret;
|
||||
};
|
||||
|
||||
PublicKeyRing.FullBranch = function(address_index, isChange, cosigner_index) {
|
||||
var sub = PublicKeyRing.Branch(address_index, isChange, cosigner_index);
|
||||
sub = sub.substring(2);
|
||||
return BIP45_PUBLIC_PREFIX + '/' + sub;
|
||||
};
|
||||
PublicKeyRing.IdFullBranch = function() {
|
||||
return PublicKeyRing.FullBranch(0, 0, ID_INDEX);
|
||||
};
|
||||
|
||||
|
||||
|
||||
PublicKeyRing.fromObj = function (data) {
|
||||
if (data instanceof PublicKeyRing) {
|
||||
throw new Error('bad data format: Did you use .toObj()?');
|
||||
|
@ -134,7 +101,7 @@ PublicKeyRing.prototype._newExtendedPublicKey = function () {
|
|||
};
|
||||
|
||||
PublicKeyRing.prototype._updateBip = function (index) {
|
||||
var hk = this.copayersHK[index].derive(PublicKeyRing.Branch(0, 0, ID_INDEX));
|
||||
var hk = this.copayersHK[index].derive(Structure.IdBranch);
|
||||
this.copayerIds[index]= hk.eckey.public.toString('hex');
|
||||
};
|
||||
|
||||
|
@ -176,7 +143,7 @@ PublicKeyRing.prototype.addCopayer = function(newEpk, nickname) {
|
|||
PublicKeyRing.prototype.getPubKeys = function(index, isChange) {
|
||||
this._checkKeys();
|
||||
|
||||
var path = PublicKeyRing.Branch(index, isChange);
|
||||
var path = Structure.Branch(index, isChange);
|
||||
var pubKeys = this.publicKeysCache[path];
|
||||
if (!pubKeys) {
|
||||
pubKeys = [];
|
||||
|
|
|
@ -628,7 +628,7 @@ Wallet.prototype.createTxSync = function(toAddress, amountSatStr, utxos, opts) {
|
|||
|
||||
var signRet;
|
||||
if (priv) {
|
||||
b.sign(priv.getAll(pkr.addressIndex, pkr.changeAddressIndex));
|
||||
var signed = b.sign(priv.getAll(pkr.addressIndex, pkr.changeAddressIndex));
|
||||
}
|
||||
var myId = this.getMyCopayerId();
|
||||
var now = Date.now();
|
||||
|
|
|
@ -28,10 +28,10 @@ describe('PrivateKey model', function() {
|
|||
});
|
||||
|
||||
it('should derive priv keys', function () {
|
||||
var w = new PrivateKey(config);
|
||||
var pk = new PrivateKey(config);
|
||||
for(var j=0; j<2; j++) {
|
||||
for(var i=0; i<3; i++) {
|
||||
var wk = w.get(i,j);
|
||||
var wk = pk.get(i,j);
|
||||
should.exist(wk);
|
||||
var o=wk.storeObj();
|
||||
should.exist(o);
|
||||
|
|
|
@ -42,7 +42,8 @@ describe('Wallet model', function() {
|
|||
requiredCopayers: c.requiredCopayers,
|
||||
totalCopayers: c.totalCopayers,
|
||||
});
|
||||
c.publicKeyRing.addCopayer(c.privateKey.getExtendedPublicKeyString());
|
||||
var copayerEPK = c.privateKey.deriveBIP45Branch().extendedPublicKeyString()
|
||||
c.publicKeyRing.addCopayer(copayerEPK);
|
||||
|
||||
c.txProposals = new copay.TxProposals({
|
||||
networkName: c.networkName,
|
||||
|
@ -102,11 +103,11 @@ describe('Wallet model', function() {
|
|||
for(var i=0; i<4; i++) {
|
||||
if (privateKeys) {
|
||||
var k=privateKeys[i];
|
||||
pkr.addCopayer(k?k.getExtendedPublicKeyString():null);
|
||||
}
|
||||
else
|
||||
pkr.addCopayer(k?k.deriveBIP45Branch().extendedPublicKeyString():null);
|
||||
} else {
|
||||
pkr.addCopayer();
|
||||
}
|
||||
}
|
||||
pkr.generateAddress(true);
|
||||
pkr.generateAddress(true);
|
||||
pkr.generateAddress(true);
|
||||
|
@ -125,20 +126,19 @@ describe('Wallet model', function() {
|
|||
unspentTest[0].address = w.publicKeyRing.getAddress(1, true).toString();
|
||||
unspentTest[0].scriptPubKey = w.publicKeyRing.getScriptPubKeyHex(1, true);
|
||||
|
||||
w.createTxSync(
|
||||
var ntxid = w.createTxSync(
|
||||
'15q6HKjWHAksHcH91JW23BJEuzZgFwydBt',
|
||||
'123456789',
|
||||
unspentTest
|
||||
);
|
||||
|
||||
var t = w.txProposals;
|
||||
console.log(t);
|
||||
var k = Object.keys(t.txps)[0];
|
||||
var tx = t.txps[k].builder.build();
|
||||
var txp = t.txps[ntxid];
|
||||
var tx = txp.builder.build();
|
||||
should.exist(tx);
|
||||
tx.isComplete().should.equal(false);
|
||||
Object.keys(t.txps[k].signedBy).length.should.equal(1);
|
||||
Object.keys(t.txps[k].seenBy).length.should.equal(1);
|
||||
Object.keys(txp.seenBy).length.should.equal(1);
|
||||
Object.keys(txp.signedBy).length.should.equal(1);
|
||||
});
|
||||
|
||||
it('#addressIsOwn', function () {
|
||||
|
|
Loading…
Reference in New Issue