mirror of https://github.com/BTCPrivate/copay.git
Revert "Delete BuilderMockV0"
This is a combination of 3 commits: * Revertion of commitb39a683339
. * Revertion of commit61aea8db3d
. * Revertion of commit5f666aef66
.
This commit is contained in:
parent
3b16eaabe7
commit
00774b62fd
|
@ -0,0 +1,26 @@
|
|||
'use strict';
|
||||
|
||||
|
||||
var bitcore = require('bitcore');
|
||||
var Transaction = bitcore.Transaction;
|
||||
|
||||
function BuilderMockV0 (data) {
|
||||
this.vanilla = data;
|
||||
this.tx = new Transaction();
|
||||
this.tx.parse(new Buffer(data.tx, 'hex'));
|
||||
};
|
||||
|
||||
BuilderMockV0.prototype.build = function() {
|
||||
return this.tx;
|
||||
};
|
||||
|
||||
|
||||
BuilderMockV0.prototype.getSelectedUnspent = function() {
|
||||
return [];
|
||||
};
|
||||
|
||||
BuilderMockV0.prototype.toObj = function() {
|
||||
return this.vanilla;
|
||||
};
|
||||
|
||||
module.exports = BuilderMockV0;
|
|
@ -4,6 +4,7 @@ var bitcore = require('bitcore');
|
|||
var _ = require('underscore');
|
||||
var util = bitcore.util;
|
||||
var Transaction = bitcore.Transaction;
|
||||
var BuilderMockV0 = require('./BuilderMockV0');;
|
||||
var TransactionBuilder = bitcore.TransactionBuilder;
|
||||
var Script = bitcore.Script;
|
||||
var Key = bitcore.Key;
|
||||
|
@ -147,7 +148,12 @@ TxProposal.fromObj = function(o, forceOpts) {
|
|||
try {
|
||||
o.builder = TransactionBuilder.fromObj(o.builderObj);
|
||||
} catch (e) {
|
||||
throw new Error("Invalid or Incompatible Backup Detected.");
|
||||
|
||||
// backwards (V0) compatatibility fix.
|
||||
if (!o.version) {
|
||||
o.builder = new BuilderMockV0(o.builderObj);
|
||||
o.readonly = 1;
|
||||
};
|
||||
}
|
||||
return new TxProposal(o);
|
||||
};
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
'use strict';
|
||||
|
||||
var BuilderMockV0 = require('./BuilderMockV0');;
|
||||
var bitcore = require('bitcore');
|
||||
var util = bitcore.util;
|
||||
var Transaction = bitcore.Transaction;
|
||||
var TxProposal = require('./TxProposal');
|
||||
var BuilderMockV0 = require('./BuilderMockV0');;
|
||||
var TxProposal = require('./TxProposal');;
|
||||
var Script = bitcore.Script;
|
||||
var Key = bitcore.Key;
|
||||
var buffertools = bitcore.buffertools;
|
||||
|
|
|
@ -120,7 +120,7 @@ describe('TxProposal', function() {
|
|||
builderObj: b.toObj(),
|
||||
inputChainPaths: ['m/1'],
|
||||
});
|
||||
}).should.throw('Invalid or Incompatible Backup Detected');
|
||||
}).should.throw('Invalid');
|
||||
});
|
||||
it('sets force opts', function() {
|
||||
var b = new FakeBuilder();
|
||||
|
@ -134,7 +134,7 @@ describe('TxProposal', function() {
|
|||
};
|
||||
(function() {
|
||||
txp = TxProposal.fromObj(o,{pepe:100});
|
||||
}).should.throw('Invalid or Incompatible Backup Detected');
|
||||
}).should.throw('Invalid tx proposal: no ins');
|
||||
o.builderObj.opts.should.deep.equal({juan:1, pepe:100, feeSat:undefined, fee:undefined});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -432,13 +432,16 @@ describe('WalletFactory model', function() {
|
|||
wf.network.start.getCall(0).args[0].privkey.length.should.equal(64); //privkey is hex of private key buffer
|
||||
});
|
||||
});
|
||||
describe('break backwards compatibility with older versions', function() {
|
||||
it('should\'nt be able to import unencrypted legacy wallet TxProposal: v0', function() {
|
||||
describe('dont break backwards compatibility of wallets', function() {
|
||||
it('should be able to import unencrypted legacy wallet TxProposal: v0', function() {
|
||||
var wf = new WalletFactory(config, '0.0.5');
|
||||
var w = wf.fromObj(JSON.parse(legacyO));
|
||||
|
||||
(function() {
|
||||
var wf = new WalletFactory(config, '0.0.5');
|
||||
var w = wf.fromObj(JSON.parse(legacyO));
|
||||
}).should.throw('Invalid or Incompatible Backup Detected');
|
||||
should.exist(w);
|
||||
w.id.should.equal('55d4bd062d32f90a');
|
||||
should.exist(w.publicKeyRing.getCopayerId);
|
||||
should.exist(w.txProposals.toObj());
|
||||
should.exist(w.privateKey.toObj());
|
||||
});
|
||||
|
||||
it('should be able to import simple 1-of-1 encrypted legacy testnet wallet', function(done) {
|
||||
|
|
Loading…
Reference in New Issue