@icgio/icg-exchanges-wrapper 1.9.46 → 1.9.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/functions/get-exchanges-trades.js +107 -0
- package/index.js +4 -4
- package/package.json +3 -3
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
const _ = require('lodash')
|
|
2
|
+
|
|
3
|
+
const INVALID_EXCHANGES_LIST = ['Bitforex', 'Thinkbit', 'Kkcoin']
|
|
4
|
+
const TRADES_TIMEFRAME = 10 * 60 * 1000
|
|
5
|
+
|
|
6
|
+
let first_time = {}, exchange_pair_trades = {}, status = {}
|
|
7
|
+
module.exports.get_exchanges_trades = function (Exchanges, exchange_pair_dict, cb, ws_enabled=true) {
|
|
8
|
+
if (!Array.isArray(Exchanges)) {
|
|
9
|
+
console.error('Exchanges should be an array')
|
|
10
|
+
return
|
|
11
|
+
} else {
|
|
12
|
+
for (let exchange of Exchanges) {
|
|
13
|
+
let exchange_name = exchange.name, exchange_id = exchange.exchange_id
|
|
14
|
+
if (!exchange_pair_dict[exchange_name]) {
|
|
15
|
+
continue
|
|
16
|
+
}
|
|
17
|
+
let pair_list = exchange_pair_dict[exchange_name]
|
|
18
|
+
for (let pair of pair_list) {
|
|
19
|
+
_.set(status, [exchange + pair], false)
|
|
20
|
+
}
|
|
21
|
+
if (_.includes(INVALID_EXCHANGES_LIST, exchange_name)) {
|
|
22
|
+
continue
|
|
23
|
+
} else if (exchange.get_all_trades_ws) {
|
|
24
|
+
if (exchange.ws_status().trading === 'n-opened')
|
|
25
|
+
exchange.ws_account()
|
|
26
|
+
exchange.get_all_trades_ws(TRADES_TIMEFRAME, function (res) {
|
|
27
|
+
for (let pair of pair_list) {
|
|
28
|
+
_.set(status, [exchange + pair], true)
|
|
29
|
+
}
|
|
30
|
+
if (res.success) {
|
|
31
|
+
res.body(trade => {
|
|
32
|
+
let pair = trade.pair
|
|
33
|
+
if (!_.get(exchange_pair_trades, [exchange, pair])) {
|
|
34
|
+
_.set(exchange_pair_trades, [exchange_id, pair], [])
|
|
35
|
+
}
|
|
36
|
+
exchange_pair_trades[exchange][pair].push(trade)
|
|
37
|
+
})
|
|
38
|
+
_.set(exchange_pair_trades, [exchange_id, pair], res.body)
|
|
39
|
+
} else {
|
|
40
|
+
if (exchange_pair_trades[exchange]) {
|
|
41
|
+
delete exchange_pair_trades[exchange]
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (!_.includes(_.values(status), false)) {
|
|
45
|
+
cb(exchange_pair_trades)
|
|
46
|
+
}
|
|
47
|
+
})
|
|
48
|
+
} else if (exchange.get_all_trades) {
|
|
49
|
+
exchange.get_all_trades(TRADES_TIMEFRAME, function (res) {
|
|
50
|
+
for (let pair of pair_list) {
|
|
51
|
+
_.set(status, [exchange + pair], true)
|
|
52
|
+
}
|
|
53
|
+
if (res.success) {
|
|
54
|
+
res.body(trade => {
|
|
55
|
+
let pair = trade.pair
|
|
56
|
+
if (!_.get(exchange_pair_trades, [exchange_id, pair])) {
|
|
57
|
+
_.set(exchange_pair_trades, [exchange_id, pair], [])
|
|
58
|
+
}
|
|
59
|
+
exchange_pair_trades[exchange][pair].push(trade)
|
|
60
|
+
})
|
|
61
|
+
} else {
|
|
62
|
+
if (exchange_pair_trades[exchange]) {
|
|
63
|
+
delete exchange_pair_trades[exchange][pair]
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (!_.includes(_.values(status), false)) {
|
|
67
|
+
cb(exchange_pair_trades)
|
|
68
|
+
}
|
|
69
|
+
})
|
|
70
|
+
} else if (exchange.get_trades_ws) {
|
|
71
|
+
if (exchange.ws_status().trading === 'n-opened')
|
|
72
|
+
exchange.ws_account()
|
|
73
|
+
for (let pair of pair_list) {
|
|
74
|
+
exchange.get_trades_ws(pair, TRADES_TIMEFRAME, function (res) {
|
|
75
|
+
_.set(status, [exchange + pair], true)
|
|
76
|
+
if (res.success) {
|
|
77
|
+
_.set(exchange_pair_trades, [exchange_id, pair], res.body)
|
|
78
|
+
} else {
|
|
79
|
+
if (exchange_pair_trades[exchange]) {
|
|
80
|
+
delete exchange_pair_trades[exchange][pair]
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
if (!_.includes(_.values(status), false)) {
|
|
84
|
+
cb(exchange_pair_trades)
|
|
85
|
+
}
|
|
86
|
+
})
|
|
87
|
+
}
|
|
88
|
+
} else if (exchange.get_trades) {
|
|
89
|
+
for (let pair of pair_list) {
|
|
90
|
+
exchange.get_trades(pair, TRADES_TIMEFRAME, function (res) {
|
|
91
|
+
_.set(status, [exchange + pair], true)
|
|
92
|
+
if (res.success) {
|
|
93
|
+
_.set(exchange_pair_trades, [exchange_id, pair], res.body)
|
|
94
|
+
} else {
|
|
95
|
+
if (exchange_pair_trades[exchange]) {
|
|
96
|
+
delete exchange_pair_trades[exchange][pair]
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (!_.includes(_.values(status), false)) {
|
|
100
|
+
cb(exchange_pair_trades)
|
|
101
|
+
}
|
|
102
|
+
})
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
package/index.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
const get_exchanges_balance = require('./functions/get-exchanges-balance.js')
|
|
2
|
-
const get_exchanges_open_orders = require('./functions/get-exchanges-open-orders.js')
|
|
3
1
|
const get_exchanges_rates = require('./functions/get-exchanges-rates-market-history.js').get_exchanges_rates
|
|
4
2
|
const get_exchanges_market_history = require('./functions/get-exchanges-rates-market-history.js').get_exchanges_market_history
|
|
3
|
+
const get_exchanges_balance = require('./functions/get-exchanges-balance.js')
|
|
4
|
+
const get_exchanges_open_orders = require('./functions/get-exchanges-open-orders.js')
|
|
5
5
|
const get_exchanges_trades = require('./functions/get-exchanges-trades.js')
|
|
6
6
|
|
|
7
7
|
module.exports.functions = {
|
|
8
|
-
get_exchanges_balance,
|
|
9
|
-
get_exchanges_open_orders,
|
|
10
8
|
get_exchanges_rates,
|
|
11
9
|
get_exchanges_market_history,
|
|
10
|
+
get_exchanges_balance,
|
|
11
|
+
get_exchanges_open_orders,
|
|
12
12
|
get_exchanges_trades
|
|
13
13
|
}
|
|
14
14
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@icgio/icg-exchanges-wrapper",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.47",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
},
|
|
18
18
|
"homepage": "https://github.com/icgio/icg-exchanges-wrapper#readme",
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@icgio/icg-exchanges": "^1.27.
|
|
21
|
-
"@icgio/icg-exchanges-data": "^1.6.
|
|
20
|
+
"@icgio/icg-exchanges": "^1.27.33",
|
|
21
|
+
"@icgio/icg-exchanges-data": "^1.6.19",
|
|
22
22
|
"@icgio/icg-utils": "^1.7.9",
|
|
23
23
|
"influx": "^5.7.0",
|
|
24
24
|
"lodash": "^4.17.20",
|