Skip to content

Instantly share code, notes, and snippets.

@anticlergygang
Created October 7, 2018 12:06
Show Gist options
  • Select an option

  • Save anticlergygang/af20ed3df0b3ce05d6ef2302d77e46df to your computer and use it in GitHub Desktop.

Select an option

Save anticlergygang/af20ed3df0b3ce05d6ef2302d77e46df to your computer and use it in GitHub Desktop.
const https = require('https')
const binanceAPI = options => {
return new Promise((resolve, reject) => {
try {
let requestObject = {
host: 'api.binance.com',
port: 443,
method: options.method
}
switch (`${options.method} ${options.endpoint}`) {
case 'GET /api/v1/ping':
{
requestObject.path = options.endpoint
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'GET /api/v1/time':
{
requestObject.path = options.endpoint
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'GET /api/v1/exchangeInfo':
{
requestObject.path = options.endpoint
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'GET /api/v1/depth':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'GET /api/v1/trades':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'GET /api/v1/historicalTrades':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'GET /api/v1/aggTrades':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'GET /api/v1/klines':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'GET /api/v1/ticker/24hr':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'GET /api/v1/ticker/price':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'GET /api/v1/ticker/bookTicker':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'GET /api/v3/order':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}&signature=${crypto.createHmac('sha256', process.env.BINANCESECRET).update(query).digest('hex')}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'POST /api/v3/order':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}&signature=${crypto.createHmac('sha256', process.env.BINANCESECRET).update(query).digest('hex')}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'GET /api/v3/openOrders':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}&signature=${crypto.createHmac('sha256', process.env.BINANCESECRET).update(query).digest('hex')}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'GET /api/v3/allOrders':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}&signature=${crypto.createHmac('sha256', process.env.BINANCESECRET).update(query).digest('hex')}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'GET /api/v3/account':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}&signature=${crypto.createHmac('sha256', process.env.BINANCESECRET).update(query).digest('hex')}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'GET /api/v3/myTrades':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}&signature=${crypto.createHmac('sha256', process.env.BINANCESECRET).update(query).digest('hex')}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'POST /api/v3/order/test':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}&signature=${crypto.createHmac('sha256', process.env.BINANCESECRET).update(query).digest('hex')}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
case 'DELETE /api/v3/order':
{
let query = querystring.stringify(options.parameters)
requestObject.path = `${options.endpoint}?${query}&signature=${crypto.createHmac('sha256', process.env.BINANCESECRET).update(query).digest('hex')}`
requestObject.headers = {
'X-MBX-APIKEY': process.env.BINANCEAPIKEY
}
let req = https.request(requestObject, res => {
let data = ''
res.on('data', (chunk) => {
data = data.concat(chunk)
})
res.on('end', () => {
try {
let jsonRes = JSON.parse(data)
resolve(jsonRes)
} catch (err) {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
}
})
req.on('error', (err) => {
reject(`binanceRequest err: ${util.inspect(err)}\nbinanceRequest data recieved b4 error: ${data}`)
})
})
req.end()
}
break
default:
{
console.log(`${options.method} ${options.endpoint}`)
}
}
} catch (error) {
reject(error)
}
})
}
// binanceAPI({ method: 'METHOD', endpoint: '/api/VERSION/ENDPOINT', parameters: { PARAMETER: 'VALUE' } }).then(out => {
// console.log(out)
// }).catch(err => {
// console.log(err)
// })
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment