update controllers to new virtual TX model

This commit is contained in:
Matias Alejo Garcia 2014-01-27 13:10:59 -03:00
parent 66e3dd977b
commit 243f22381d
4 changed files with 13 additions and 33 deletions

View File

@ -3,7 +3,7 @@
/** /**
* Module dependencies. * Module dependencies.
*/ */
var Transaction = require('../models/Transaction'); var Transaction = require('../models/Transaction').class();
var Block = require('../models/Block'); var Block = require('../models/Block');
var Address = require('../models/Address'); var Address = require('../models/Address');
var async = require('async'); var async = require('async');
@ -139,32 +139,8 @@ exports.list = function(req, res, next) {
}); });
} }
else { else {
Transaction res.jsonp({
.find() txs: [],
.limit(limit) });
.sort('-time')
.exec(function(err, txs) {
if (err) {
res.status(500).send(err);
} else {
var txids = [];
for(var i=0;i<txs.length;i++) {
txids.push(txs[i].txid);
}
async.mapSeries(txids, getTransaction, function(err, alltxs) {
if (err) {
console.log(err);
res.status(404).send('TX not found');
}
res.jsonp({
txs: alltxs,
length: alltxs.length
});
});
}
});
} }
}; };

View File

@ -8,7 +8,8 @@ var mongoose = require('mongoose'),
RpcClient = require('bitcore/RpcClient').class(), RpcClient = require('bitcore/RpcClient').class(),
util = require('bitcore/util/util'), util = require('bitcore/util/util'),
BitcoreBlock= require('bitcore/Block').class(), BitcoreBlock= require('bitcore/Block').class(),
Transaction = require('./Transaction'), Transaction = require('./Transaction').class(),
TransactionItem = require('./TransactionItem'),
config = require('../../config/config') config = require('../../config/config')
; ;
@ -57,7 +58,7 @@ BlockSchema.statics.customCreate = function(block, cb) {
newBlock.nextBlockHash = block.nextBlockHash; newBlock.nextBlockHash = block.nextBlockHash;
Transaction.createFromArray(block.tx, newBlock.time, function(err, inserted_txs) { TransactionItem.createFromArray(block.tx, function(err, inserted_txs) {
if (err) return cb(err); if (err) return cb(err);
newBlock.save(function(err) { newBlock.save(function(err) {

View File

@ -6,6 +6,7 @@
var mongoose = require('mongoose'), var mongoose = require('mongoose'),
async = require('async'), async = require('async'),
Transaction = require('./Transaction').class(), Transaction = require('./Transaction').class(),
sockets = require('../controllers/socket.js'),
Schema = mongoose.Schema; Schema = mongoose.Schema;
var CONCURRENCY = 15; var CONCURRENCY = 15;
@ -154,13 +155,15 @@ TransactionItemSchema.statics.explodeTransactionItems = function(txid, cb) {
TransactionItemSchema.statics.createFromArray = function(txs, next) { TransactionItemSchema.statics.createFromArray = function(txs, next) {
var Self = this;
if (!txs) return next(); if (!txs) return next();
var inserted_txs = []; var inserted_txs = [];
async.forEachLimit(txs, CONCURRENCY, function(txid, cb, was_new) { async.forEachLimit(txs, CONCURRENCY, function(txid, cb, was_new) {
TransactionItemSchema.explodeTransactionItems( txid, function(err, addrs) { Self.explodeTransactionItems( txid, function(err, addrs) {
if (err) return next(err); if (err) return next(err);
if (addrs) { if (addrs) {
async.each(addrs, function(addr){ async.each(addrs, function(addr){

View File

@ -7,7 +7,7 @@ function spec() {
var mongoose = require('mongoose'); var mongoose = require('mongoose');
var config = require('../config/config'); var config = require('../config/config');
var Block = require('../app/models/Block'); var Block = require('../app/models/Block');
var Transaction = require('../app/models/Transaction'); var TransactionItem = require('../app/models/TransactionItem');
var sockets = require('../app/controllers/socket.js'); var sockets = require('../app/controllers/socket.js');
var async = require('async'); var async = require('async');
@ -94,7 +94,7 @@ function spec() {
Sync.prototype.storeTxs = function(txs, cb) { Sync.prototype.storeTxs = function(txs, cb) {
var self = this; var self = this;
Transaction.createFromArray(txs, function(err, inserted_txs) { TransactionItem.createFromArray(txs, function(err, inserted_txs) {
if (!err && inserted_txs && self.opts.broadcast_txs) { if (!err && inserted_txs && self.opts.broadcast_txs) {
inserted_txs.forEach(function(tx) { inserted_txs.forEach(function(tx) {