lamassu-admin
Advanced tools
Comparing version 0.5.1 to 0.5.2
@@ -7,9 +7,9 @@ var PriceData = Backbone.Model.extend({ //this model keeps a current record of price data from various sources | ||
self.sources = ['bitstamp', 'bitpay'] | ||
self.sources = ['bitstamp', 'bitpay', 'coindesk', 'bitcoinaverage'] | ||
self.sources.forEach(function(source){ | ||
var price_update = 'latest_price:' + source | ||
var price_update = 'latest_price:' + source; | ||
ss.event.on(price_update, function(price){ | ||
self.set(source, price) | ||
}) | ||
}); | ||
}) | ||
@@ -16,0 +16,0 @@ }, |
{ | ||
"name": "lamassu-admin", | ||
"description": "Lamassu admin server. First part of Lamassu stack you need to install.", | ||
"version": "0.5.1", | ||
"version": "0.5.2", | ||
"author": "Lamassu (https://lamassu.is)", | ||
@@ -19,3 +19,7 @@ "engines": { | ||
"yargs": "^1.2.1", | ||
"ip": "^0.3.0" | ||
"ip": "^0.3.0", | ||
"lamassu-coindesk": "~0.2.0", | ||
"lamassu-bitcoinaverage": "~0.2.0", | ||
"lamassu-bitstamp": "~0.2.0", | ||
"lamassu-bitpay": "~0.3.0" | ||
}, | ||
@@ -22,0 +26,0 @@ "scripts": { |
@@ -0,8 +1,12 @@ | ||
'use strict'; | ||
var ss = require('socketstream'); | ||
var ss = require('socketstream') | ||
var request = require('request') | ||
var _ = require('lodash') | ||
var _config = require('../config'); | ||
var _currency = 'USD'; | ||
var _currency = null; | ||
var _tickers = ['bitpay', 'bitstamp', 'coindesk', 'bitcoinaverage']; | ||
var _tickerModules = _tickers.map(function (ticker) { | ||
return require('lamassu-' + ticker).ticker.factory(); | ||
}); | ||
var _cache = {}; | ||
@@ -12,2 +16,5 @@ _config.load(function(err, config) { | ||
_currency = config.exchanges.settings.currency; | ||
setInterval(pollTickers, 60000); | ||
setInterval(updateRates, 1000); | ||
pollTickers(); | ||
}); | ||
@@ -19,63 +26,29 @@ | ||
_currency = config.exchanges.settings.currency; | ||
pollTickers(); | ||
}); | ||
}); | ||
setInterval(function(){ | ||
function pollTickers() { | ||
console.log('DEBUG in pollTickers'); | ||
if (!_currency) return; | ||
_tickers.forEach(function (ticker, index) { | ||
var tickerModule = _tickerModules[index]; | ||
tickerModule.ticker([_currency], function (err, rates) { | ||
if (err) return console.log(err.message); | ||
var rateRec = rates[_currency]; | ||
console.dir(rates); | ||
console.log(_currency); | ||
var rate = rateRec ? | ||
Math.round(parseFloat(rateRec.rate) * 100) : | ||
null; | ||
_cache[ticker] = rate; | ||
}); | ||
}); | ||
} | ||
//get bitstamp | ||
request.get("https://www.bitstamp.net/api/transactions?timedelta=5", function(error, response, body){ | ||
if (error || response.statusCode != 200) { return } | ||
var trades = null | ||
try{ | ||
trades = JSON.parse(body) | ||
} | ||
catch (e) { | ||
console.log("Error parsing BitStamp response: " + e) | ||
return | ||
} | ||
var latest_price = _currency === 'USD' ? | ||
Math.round(trades[0].price * 100) : | ||
null; | ||
ss.api.publish.all('latest_price:bitstamp', {rate: latest_price, currency: _currency}) | ||
}) | ||
//get bitpay | ||
request.get("https://bitpay.com/api/rates", function(error, response, body){ | ||
if (error || response.statusCode != 200) { return } | ||
var rates = null | ||
try{ | ||
rates = JSON.parse(body) | ||
} | ||
catch (e) { | ||
console.log("Error parsing BitPay response: " + e) | ||
return | ||
} | ||
var rate = (_.filter(rates, {code: _currency}))[0].rate | ||
var latest_price = Math.round(rate * 100) | ||
ss.api.publish.all('latest_price:bitpay', {rate: latest_price, currency: _currency}); | ||
}) | ||
}, 2500) | ||
function updateRates() { | ||
_tickers.forEach(function (ticker) { | ||
var rate = _cache[ticker]; | ||
ss.api.publish.all('latest_price:' + ticker, {rate: rate, currency: _currency}); | ||
}); | ||
} |
Sorry, the diff of this file is not supported yet
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
NPM Shrinkwrap
Supply chain riskPackage contains a shrinkwrap file. This may allow the package to bypass normal install procedures.
Found 1 instance in 1 package
0
746713
14
76
14544
4
+ Addedlamassu-bitpay@~0.3.0
+ Addedlamassu-bitstamp@~0.2.0
+ Addedlamassu-coindesk@~0.2.0
+ Addedasync@0.8.0(transitive)
+ Addedbitstamp@0.1.10(transitive)
+ Addedlamassu-bitcoinaverage@0.2.0(transitive)
+ Addedlamassu-bitpay@0.3.0(transitive)
+ Addedlamassu-bitstamp@0.2.0(transitive)
+ Addedlamassu-coindesk@0.2.0(transitive)
+ Addedunderscore@1.4.4(transitive)