From e39fb861acd18b7b1d05b1992bf646c51c16c0c6 Mon Sep 17 00:00:00 2001 From: Manuel Araoz Date: Fri, 20 Mar 2015 12:16:12 -0300 Subject: [PATCH] advance --- config/default.yml | 2 +- index.js | 2 + lib/Rpc.js | 119 ------------------------------------------ lib/services/block.js | 3 +- 4 files changed, 4 insertions(+), 122 deletions(-) delete mode 100644 lib/Rpc.js diff --git a/config/default.yml b/config/default.yml index 2eb74ad5..dac9711e 100644 --- a/config/default.yml +++ b/config/default.yml @@ -10,4 +10,4 @@ RPC: pass: password protocol: http host: 127.0.0.1 - port: 18332 + port: 8322 diff --git a/index.js b/index.js index 1f05bdae..c7958dd4 100644 --- a/index.js +++ b/index.js @@ -3,6 +3,8 @@ var BitcoreNode = require('./lib/node'); var reporters = require('./lib/reporters'); var bitcore = require('bitcore'); +var Promise = require('bluebird'); +Promise.longStackTraces(); BitcoreNode.errors = require('./lib/errors'); diff --git a/lib/Rpc.js b/lib/Rpc.js deleted file mode 100644 index f81f3721..00000000 --- a/lib/Rpc.js +++ /dev/null @@ -1,119 +0,0 @@ -'use strict'; - -var imports = require('soop').imports(); - -var bitcore = require('bitcore'), - RpcClient = bitcore.RpcClient, - BitcoreBlock = bitcore.Block, - util = require('util'), - config = require('../config/config'); - -var bitcoreRpc = imports.bitcoreRpc || new RpcClient(config.bitcoind); - -function Rpc() { -} - -Rpc._parseTxResult = function(info) { - var b = new Buffer(info.hex,'hex'); - - // remove fields we dont need, to speed and adapt the information - delete info.hex; - - // Inputs => add index + coinBase flag - var n =0; - info.vin.forEach(function(i) { - i.n = n++; - if (i.coinbase) info.isCoinBase = true; - }); - - // Outputs => add total - var valueOutSat = 0; - info.vout.forEach( function(o) { - o.value = o.value.toFixed(8); - valueOutSat += o.value * bitcore.util.COIN; - }); - info.valueOut = valueOutSat.toFixed(0) / bitcore.util.COIN; - info.size = b.length; - - return info; -}; - - -Rpc.errMsg = function(err) { - var e = err; - e.message += util.format(' [Host: %s:%d User:%s Using password:%s]', - bitcoreRpc.host, - bitcoreRpc.port, - bitcoreRpc.user, - bitcoreRpc.pass?'yes':'no' - ); - return e; -}; - -Rpc.getTxInfo = function(txid, doNotParse, cb) { - var self = this; - - if (typeof doNotParse === 'function') { - cb = doNotParse; - doNotParse = false; - } - - bitcoreRpc.getRawTransaction(txid, 1, function(err, txInfo) { - // Not found? - if (err && err.code === -5) return cb(); - if (err) return cb(self.errMsg(err)); - - var info = doNotParse ? txInfo.result : self._parseTxResult(txInfo.result); - return cb(null,info); - }); -}; - - -Rpc.blockIndex = function(height, cb) { - var self = this; - - bitcoreRpc.getBlockHash(height, function(err, bh){ - if (err) return cb(self.errMsg(err)); - cb(null, { blockHash: bh.result }); - }); -}; - -Rpc.getBlock = function(hash, cb) { - var self = this; - - bitcoreRpc.getBlock(hash, function(err,info) { - // Not found? - if (err && err.code === -5) return cb(); - if (err) return cb(self.errMsg(err)); - - - if (info.result.height) - info.result.reward = BitcoreBlock.getBlockValue(info.result.height) / bitcore.util.COIN ; - - return cb(err,info.result); - }); -}; - -Rpc.sendRawTransaction = function(rawtx, cb) { - bitcoreRpc.sendRawTransaction(rawtx, function(err, txid) { - if (err) return cb(err); - - return cb(err, txid.result); - }); -}; - -Rpc.verifyMessage = function(address, signature, message, cb) { - var self = this; - bitcoreRpc.verifyMessage(address, signature, message, function(err, message) { - if (err && (err.code === -3 || err.code === -5)) - return cb(err); // -3 = invalid address, -5 = malformed base64 / etc. - if (err) - return cb(self.errMsg(err)); - - return cb(err, message.result); - }); -}; - -module.exports = require('soop')(Rpc); - - diff --git a/lib/services/block.js b/lib/services/block.js index bc6dabc6..661c0159 100644 --- a/lib/services/block.js +++ b/lib/services/block.js @@ -97,7 +97,6 @@ BlockService.prototype.unlock = function() { BlockService.blockRPCtoBitcore = function(blockData) { console.log(blockData); $.checkArgument(blockData, 'blockData is required'); - $.checkArgument(blockData.previousblockhash, 'blockData.previousblockhash is required'); var block = new bitcore.Block({ header: new bitcore.BlockHeader({ version: blockData.version, @@ -296,7 +295,7 @@ BlockService.prototype._confirmBlock = function(block) { }).then(function() { return self.database.batchAsync(ops); - + }).then(this.unlock.bind(this)); };