| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- const CryptoJS = require('crypto')
- module.exports = class BinanceKit {
- // 创建签名
- static createSignature(secretKey, data) {
- const hmac = CryptoJS.createHmac('sha256', secretKey)
- hmac.update(BinanceKit.toQueryString(data))
- return hmac.digest('hex')
- }
- // 将map转换为queryString
- static toQueryString(data) {
- let queryString = ''
- for (let key in data) {
- queryString = queryString + `${key}=${data[key]}&`
- }
- return queryString.substring(0, queryString.length - 1)
- }
- // 获取最终QueryURL
- static toFinalQueryURL(url, data, signature) {
- return `${url}?${BinanceKit.toQueryString(data)}&signature=${signature}`
- }
- static buildExchangeInfoSymbols(symbols) {
- let buffer = ''
- let isFirst = true
- for (const symbol of symbols) {
- if (isFirst) {
- isFirst = false
- buffer = `["${symbol}"`
- } else {
- buffer = `${buffer},"${symbol}"`
- }
- }
- return `${buffer}]`
- }
- static parsePriceTickFilterMap(pairInfoList) {
- if (pairInfoList === undefined) throw new Error('exchange info symbols is undefined!')
- const filterMap = {}
- pairInfoList.forEach(function (pairInfo) {
- const priceTickFilter = pairInfo.filters.filter(filterObj => filterObj.filterType === 'PRICE_FILTER')[0]
- filterMap[pairInfo.symbol] = Math.log10(1 / parseFloat(priceTickFilter.tickSize))
- })
- return filterMap
- }
- }
|