Add Fides-ex market

This commit is contained in:
joeuhren
2020-11-23 15:30:34 -07:00
parent e63c005003
commit e4209231e3
5 changed files with 219 additions and 0 deletions
+6
View File
@@ -11,6 +11,7 @@ var mongoose = require('mongoose')
, settings = require('./settings')
, fs = require('fs')
, async = require('async')
, fides = require('./markets/fides')
, poloniex = require('./markets/poloniex')
, bittrex = require('./markets/bittrex')
, bleutrade = require('./markets/bleutrade')
@@ -190,6 +191,11 @@ function get_market_data(market, cb) {
return cb(err, obj);
});
break;
case 'fides':
fides.get_data(settings.markets.coin, settings.markets.exchange, function(err, obj){
return cb(err, obj);
});
break;
case 'poloniex':
poloniex.get_data(settings.markets.coin, settings.markets.exchange, function(err, obj){
return cb(err, obj);
+1
View File
@@ -143,6 +143,7 @@ exports.heavy_changein = "Reward change in approximately",
exports.heavy_key = "Key",
exports.heavy_lastxvotes = "Last 20 votes",
exports.fides = "Fides-ex",
exports.poloniex = "Poloniex",
exports.bittrex = "Bittrex",
exports.altmarkets = "AltMarkets",
+98
View File
@@ -0,0 +1,98 @@
var request = require('request');
var crypto = require('crypto');
//var settings = require('./settings-market-example.json');
var base_url = 'https://node1.fides-ex.com';
//
// Get Market From Fides-ex
//
function get_summary(coin, exchange, cb) {
var summary = {};
var url=base_url + '/market/get-market-summary/' + exchange.toUpperCase() + "_" + coin.toUpperCase();
request({uri: url, json: true}, function (error, response, body) {
if (error) {
return cb(error, null);
} else if (body.error !== true) {
summary['ask'] = parseFloat(body['data']['LowestAsk']).toFixed(8);
summary['bid'] = parseFloat(body['data']['HeighestBid']).toFixed(8);
summary['volume'] = parseFloat(body['data']['QuoteVolume']).toFixed(8);
summary['volume_btc'] = parseFloat(body['data']['BaseVolume']).toFixed(8);
summary['high'] = parseFloat(body['data']['High_24hr']).toFixed(8);
summary['low'] = parseFloat(body['data']['Low_24hr']).toFixed(8);
summary['last'] = parseFloat(body['data']['Last']).toFixed(8);
summary['change'] = parseFloat(body['data']['PercentChange']);
return cb(null, summary);
} else {
return cb(error, null);
}
});
}
// Get Trades
function get_trades(coin, exchange, cb) {
var req_url=base_url + '/market/get-trade-history/' + exchange.toUpperCase() + "_" + coin.toUpperCase();
request({uri: req_url, json: true}, function (error, response, body) {
if (body.error) {
return cb(body.error, []);
} else {
return cb(null, body['data']);
}
});
}
function get_orders_side(coin, exchange, side, cb){
var req_url = base_url + "/market/get-open-orders/" + exchange.toUpperCase() + "_" + coin.toUpperCase() +"/" + side.toUpperCase() + "/10";
console.log("sending request to - " + req_url)
request({uri: req_url, json:true}, function (error, response, body){
if(error)
return cb(error, null);
else if(body.error !== true){
var orders = [];
if(body['data'].Orders.length > 0){
for( var i = 0; i < body['data'].Orders.length; i++) {
var order = {
MarketType: body['data'].Orders[i].MarketType,
CurrencyType: body['data'].Orders[i].CurrencyType,
Type: body['data'].Type,
Pair: body['data'].Pair,
Rate: body['data'].Orders[i].Rate,
Volume: body['data'].Orders[i].Volume,
Total: body['data'].Orders[i].Rate * body['data'].Orders[i].Volume
}
orders.push(order);
}
return cb(null,orders);
}
}
});
}
//Get Orders
function get_orders(coin, exchange, cb) {
var buyorders = get_orders_side(coin, exchange, "buy", function(err, buys){
var sellorders = get_orders_side(coin, exchange, "sell", function(err, sells){
return cb(null, buys, sells);
})
})
}
module.exports = {
get_data: function(coin, exchange, cb) {
var error = null;
get_orders(coin, exchange, function(err, buys, sells) {
if (err) { error = err; }
get_trades(coin, exchange, function(err, trades) {
if (err) { error = err; }
get_summary(coin, exchange, function(err, stats) {
if (err) { error = err; }
//Note that chartdata is available for an API, but I can't get it to return anything
//return cb(error, {buys: buys, sells: sells, chartdata: [], trades: trades, stats: stats});
return cb(error, {buys: buys, sells: sells, chartdata: [], trades: trades, stats: stats});
});
});
});
}
};
+1
View File
@@ -133,6 +133,7 @@
"mkt_time_stamp": "Time Stamp",
// Markets
"fides": "Fides-ex",
"poloniex": "Poloniex",
"bittrex": "Bittrex",
"altmarkets": "AltMarkets",
+113
View File
@@ -0,0 +1,113 @@
extends menu
block market_view
.row
.col-md-12
.panel.panel-default
.panel-heading
strong #{settings.locale.fides} - #{marketdata.coin}/#{marketdata.exchange} - #{settings.locale.mkt_hours}
a(href='#')
span.fa.fa-line-chart.pull-right.view-chart-disabled.iquidus.market-toggle(data-toggle='tooltip', data-placement='bottom', title=settings.locale.mkt_no_chart)
table.table.table-bordered.summary-table
thead
tr
th #{settings.locale.mkt_high}
th #{settings.locale.mkt_low}
th #{settings.locale.mkt_volume}
th.hidden-xs #{settings.locale.mkt_top_bid}
th.hidden-xs #{settings.locale.mkt_top_ask}
th.hidden-xs #{settings.locale.mkt_last}
th #{settings.locale.mkt_change}
tbody
tr
td #{marketdata.data.summary.high}
td #{marketdata.data.summary.low}
td #{marketdata.data.summary.volume}
td.hidden-xs #{marketdata.data.summary.bid}
td.hidden-xs #{marketdata.data.summary.ask}
td.hidden-xs #{marketdata.data.summary.last}
- var fides_change = parseFloat(marketdata.data.summary.change).toFixed(4).replace(/(?:\.0+|(\.\d+?)0+)$/, "$1");
if fides_change >= 0
td.success +#{fides_change} %
else
td.danger #{fides_change} %
.row
.col-md-6.col-xs-12
.panel.panel-default
.panel-heading
h3.panel-title #{settings.locale.mkt_buy_orders}
table.table.table-hover.history-table.table-bordered(cellspacing="0")
thead
tr
th #{settings.locale.mkt_price} (#{marketdata.exchange})
th.hidden-xs #{settings.locale.mkt_total} (#{marketdata.coin})
th #{settings.locale.mkt_amount} (#{marketdata.exchange})
tbody
each buy in marketdata.data.buys
tr
td
=parseFloat(buy.Rate).toFixed(8)
td
=parseFloat(buy.Volume).toFixed(8)
td.hidden-xs
=parseFloat(buy.Total).toFixed(8)
.col-md-6.col-xs-12
.panel.panel-default
.panel-heading
h3.panel-title #{settings.locale.mkt_sell_orders}
table.table.table-hover.history-table.table-bordered(cellspacing="0")
thead
tr
th #{settings.locale.mkt_price} (#{marketdata.exchange })
th.hidden-xs #{settings.locale.mkt_total} (#{marketdata.coin })
th #{settings.locale.mkt_amount} (#{marketdata.exchange})
tbody
each sell in marketdata.data.sells
tr
td
=parseFloat(sell.Rate).toFixed(8)
td
=parseFloat(sell.Volume).toFixed(8)
td.hidden-xs
=parseFloat(sell.Total).toFixed(8)
.row
.col-md-12
.panel.panel-default
.panel-heading
h3.panel-title #{settings.locale.mkt_trade_history}
table.table.table-hover.history-table.table-bordered(cellspacing="0")
thead
tr
th.hidden-xs #{settings.locale.mkt_type}
th #{settings.locale.mkt_amount} (#{marketdata.coin})
th #{settings.locale.mkt_price} (#{marketdata.exchange})
th #{settings.locale.mkt_total} (#{marketdata.exchange})
th.hidden-xs #{settings.locale.mkt_time_stamp}
tbody
each result in marketdata.data.history
if result.Type == 'SELL'
tr.danger
td.hidden-xs
=result.Type
td
=result.Volume.toFixed(8)
td
=result.Rate.toFixed(8)
td
=result.Total.toFixed(8)
td.hidden-xs
=result.Date
else
tr.success
td.hidden-xs
=result.Type
td
=result.Volume.toFixed(8)
td
=result.Rate.toFixed(8)
td
=result.Total.toFixed(8)
td.hidden-xs
=result.Date
.footer-padding