-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathtradingApi.js
More file actions
42 lines (35 loc) · 1.76 KB
/
Copy pathtradingApi.js
File metadata and controls
42 lines (35 loc) · 1.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
const request = require('request');
const ApiHelper = require('./apiHelper');
const create = (apiKey, secret, debug = false) => {
const PRIVATE_API_URL = 'https://poloniex.com/tradingApi';
function makeRequest(command, opts) {
const apiHelper = ApiHelper.create(apiKey, secret, debug);
const promise = new Promise((resolve, reject) => {
request.post(apiHelper.createOptions({
url: PRIVATE_API_URL,
queryString: apiHelper.createQueryString(command, opts),
method: opts.method || 'post' }), (err, res, body) => {
if (err) {
reject(err);
return;
}
debug && console.log('makeRequest resolve', res);
resolve(res);
});
});
return promise;
}
return {
returnBalances: () => makeRequest('returnBalances', {}),
returnCompleteBalances: () => makeRequest('returnCompleteBalances', {}),
buy: ({ currencyPair, amount, rate, fillOrKill, immediateOrCancel, postOnly }) => makeRequest('buy', { currencyPair, amount, rate, fillOrKill, immediateOrCancel, postOnly }),
sell: ({ currencyPair, amount, rate }) => makeRequest('sell', { currencyPair, amount, rate }),
returnTradeHistory: ({ currencyPair, start, end }) => makeRequest('returnTradeHistory', { currencyPair, start, end }),
cancelOrder: ({ orderNumber }) => makeRequest('cancelOrder', { orderNumber }),
returnOpenOrders: ({ currencyPair }) => makeRequest('returnOpenOrders', { currencyPair }),
returnDepositAddresses: () => makeRequest('returnDepositAddresses', {}),
generateNewAddress: ({ currency }) => makeRequest('generateNewAddress', { currency }),
returnAvailableAccountBalances: ({ account }) => makeRequest('returnAvailableAccountBalances', { account }),
};
};
module.exports.create = create;