createTX to wallet

This commit is contained in:
Matias Alejo Garcia 2014-03-27 12:14:49 -03:00
commit 88d8ad285c
2 changed files with 63 additions and 13 deletions

View file

@ -1,33 +1,40 @@
'use strict';
var chai = chai || require('chai');
var should = chai.should();
var bitcore = bitcore || require('../node_modules/bitcore');
var chai = chai || require('chai');
var should = chai.should();
var bitcore = bitcore || require('../node_modules/bitcore');
var Address = bitcore.Address;
var buffertools = bitcore.buffertools;
var cosign = cosign || {};
var fakeStorage = require('./FakeStorage');
var Wallet = cosign.Wallet || require('soop').load('../js/models/Wallet', {Storage: fakeStorage});
var cosign = cosign || {};
var aMasterPrivKey = 'tprv8ZgxMBicQKsPdSVTiWXEqCCzqRaRr9EAQdn5UVMpT9UHX67Dh1FmzEMbavPumpAicsUm2XvC6NTdcWB89yN5DUWx5HQ7z3KByUg7Ht74VRZ';
var Address = bitcore.Address;
var fakeStorage = require('./FakeStorage');
var Wallet = cosign.Wallet || require('soop').load('../js/models/Wallet', {Storage: fakeStorage});
var config = {
network:'livenet',
};
var createW = function () {
var createW = function (network, bytes) {
var config = {
network: network || 'livenet',
};
if (bytes) config.bytes = bytes;
var w = new Wallet(config);
should.exist(w);
var cosigners = [];
for(var i=0; i<4; i++) {
delete config['bytes'];
var c = new Wallet(config);
w.haveAllRequiredPubKeys().should.equal(false);
w.addCosignerExtendedPubKey(c.getMasterExtendedPubKey());
cosigners.push(c);
}
return {w:w, cosigners: cosigners};
};
@ -142,6 +149,48 @@ describe('Wallet model', function() {
}
});
it('should create a TX', function () {
var k = createW('testnet', aMasterPrivKey);
var w = k.w;
var as=[], j=0;
for(var isChange=0; isChange<2; isChange++)
for(var i=0; i<6; i++)
as[j++] = w.createAddress(isChange);
var utxos = [
{
address: as[0],
txid: "2ac165fa7a3a2b535d106a0041c7568d03b531e58aeccdd3199d7289ab12cfc1",
scriptPubKey: "76a9146ce4e1163eb18939b1440c42844d5f0261c0338288ac",
vout: 1,
amount: 1,
confirmations: 3
},
{
address: as[1],
txid: "2ac165fa7a3a2b535d106a0041c7568d03b531e58aeccdd3199d7289ab12cfc1",
scriptPubKey: "76a9146ce4e1163eb18939b1440c42844d5f0261c0338288ac",
vout: 1,
amount: 1.01,
confirmations: 7
},
];
var outs=[{
address: 'mfwSGKeLEGdd1YwsZ1TkoEeKNk8TTWqXLC',
amount: 1.5,
}];
var ret = w.createTx(utxos, outs, '2Mu1GwdF9X1LLxXNxtfNChi5ngBMJxi2csv');
var tx=ret.tx;
should.exist(tx);
tx.ins.length.should.equal(2);
tx.outs.length.should.equal(2);
buffertools.toHex(tx.serialize()).should.equal('0100000002c1cf12ab89729d19d3cdec8ae531b5038d56c741006a105d532b3a7afa65c12a0100000000ffffffffc1cf12ab89729d19d3cdec8ae531b5038d56c741006a105d532b3a7afa65c12a0100000000ffffffff0280d1f008000000001976a91404a154d56e5455dc87f15e293b8872f31d03a12c88acb00b0a030000000017a914134ce4e4ea92b6cb0008803cafe25f197ff1dcb98700000000');
});
});