add test for sendTx

This commit is contained in:
Manuel Araoz 2014-06-09 17:52:08 -03:00
parent 697dea673a
commit 2fe08a258d
3 changed files with 24 additions and 10 deletions

View File

@ -487,17 +487,17 @@ Wallet.prototype.sendTx = function(ntxid, cb) {
var tx = txp.builder.build(); var tx = txp.builder.build();
if (!tx.isComplete()) return; if (!tx.isComplete()) return;
this.log('[Wallet.js.231] BROADCASTING TX!!!'); //TODO this.log('Broadcasting Transaction');
var scriptSig = tx.ins[0].getScript(); var scriptSig = tx.ins[0].getScript();
var size = scriptSig.serialize().length; var size = scriptSig.serialize().length;
var txHex = tx.serialize().toString('hex'); var txHex = tx.serialize().toString('hex');
this.log('[Wallet.js.261:txHex:]', txHex); //TODO this.log('Raw transaction: ', txHex);
var self = this; var self = this;
this.blockchain.sendRawTransaction(txHex, function(txid) { this.blockchain.sendRawTransaction(txHex, function(txid) {
self.log('BITCOIND txid:', txid); //TODO self.log('BITCOIND txid:', txid);
if (txid) { if (txid) {
self.txProposals.setSent(ntxid, txid); self.txProposals.setSent(ntxid, txid);
self.sendTxProposals(null, ntxid); self.sendTxProposals(null, ntxid);

View File

@ -18,7 +18,6 @@ var Wallet = require('./Wallet');
function WalletFactory(config, version) { function WalletFactory(config, version) {
var self = this; var self = this;
config = config || {}; config = config || {};
console.log('asd');
this.storage = new Storage(config.storage); this.storage = new Storage(config.storage);
this.network = new Network(config.network); this.network = new Network(config.network);

View File

@ -34,8 +34,10 @@ describe('Wallet model', function() {
throw (); throw ();
}); });
var createW = function(netKey) { var createW = function(netKey, N) {
var c = JSON.parse(JSON.stringify(config)); var c = JSON.parse(JSON.stringify(config));
if (!N) N = c.totalCopayers;
if (netKey) c.netKey = netKey; if (netKey) c.netKey = netKey;
c.privateKey = new copay.PrivateKey({ c.privateKey = new copay.PrivateKey({
@ -44,8 +46,8 @@ describe('Wallet model', function() {
c.publicKeyRing = new copay.PublicKeyRing({ c.publicKeyRing = new copay.PublicKeyRing({
networkName: c.networkName, networkName: c.networkName,
requiredCopayers: c.requiredCopayers, requiredCopayers: Math.min(N, c.requiredCopayers),
totalCopayers: c.totalCopayers, totalCopayers: N,
}); });
var copayerEPK = c.privateKey.deriveBIP45Branch().extendedPublicKeyString() var copayerEPK = c.privateKey.deriveBIP45Branch().extendedPublicKeyString()
c.publicKeyRing.addCopayer(copayerEPK); c.publicKeyRing.addCopayer(copayerEPK);
@ -101,14 +103,15 @@ describe('Wallet model', function() {
"confirmations": 7 "confirmations": 7
}]; }];
var createW2 = function(privateKeys) { var createW2 = function(privateKeys, N) {
if (!N) N = 3;
var netKey = 'T0FbU2JLby0='; var netKey = 'T0FbU2JLby0=';
var w = createW(netKey); var w = createW(netKey, N);
should.exist(w); should.exist(w);
var pkr = w.publicKeyRing; var pkr = w.publicKeyRing;
for (var i = 0; i < 4; i++) { for (var i = 0; i < N-1; i++) {
if (privateKeys) { if (privateKeys) {
var k = privateKeys[i]; var k = privateKeys[i];
pkr.addCopayer(k ? k.deriveBIP45Branch().extendedPublicKeyString() : null); pkr.addCopayer(k ? k.deriveBIP45Branch().extendedPublicKeyString() : null);
@ -459,5 +462,17 @@ describe('Wallet model', function() {
w.reject(ntxid); w.reject(ntxid);
}); });
}); });
it('should create & sign & send a transaction', function(done) {
var w = createW2(null, 1);
var utxo = createUTXO(w);
w.blockchain.fixUnspent(utxo);
w.createTx(toAddress, amountSatStr, function(ntxid) {
w.sendTx(ntxid, function(txid) {
txid.length.should.equal(64);
done();
});
});
});
}); });