Ver Fonte

币安接口对接完成

龚成明 há 2 anos atrás
pai
commit
4d5e796768

+ 16 - 0
src/libs/binance/binance-kit.js

@@ -21,6 +21,22 @@ class Tik {
   static toFinalQueryURL(url, data, signature) {
     return `${url}?${Tik.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}]`
+  }
 }
 
 module.exports = Tik

+ 4 - 4
src/libs/binance/binance-spot.js

@@ -30,7 +30,7 @@ class BinanceSpot {
     this.secretKey = secretKey
   }
 
-  static async realPrice(symbol='BNB_USDT', side=BinanceSpot.TRADE_SIDE.BUY) {
+  static async realPrice(symbol='BNBUSDT', side=BinanceSpot.TRADE_SIDE.BUY) {
     const url = `${BinanceSpot.BASE_URL}/api/v3/depth?symbol=${symbol}&limit=${5}`
 
     const { data: rst } = await HttpKit.get(url)
@@ -46,8 +46,8 @@ class BinanceSpot {
     }
   }
 
-  static async exchangeInfo() {
-    const url = `${BinanceSpot.BASE_URL}/api/v3/exchangeInfo`
+  static async exchangeInfo(symbols=['BNBBUSD', 'BTCBUSD']) {
+    const url = `${BinanceSpot.BASE_URL}/api/v3/exchangeInfo?symbols=${BinanceKit.buildExchangeInfoSymbols(symbols)}`
 
     const { data: rst } = await HttpKit.get(url)
     return rst
@@ -91,7 +91,7 @@ class BinanceSpot {
     return rst
   }
 
-  async takeOrder(symbol='BTC_USDT', price, side, quantity, quoteOrderQty, type=BinanceSpot.TRADE_TYPE.MARKET) {
+  async takeOrder(symbol='BTCUSDT', price, side, quantity, quoteOrderQty, type=BinanceSpot.TRADE_TYPE.MARKET) {
     const url = `${BinanceSpot.BASE_URL}/api/v3/order`
     let timestamp = new Date().getTime()
     let data = {

+ 15 - 1
src/libs/binance/test/binance-spot-test.js

@@ -1,8 +1,22 @@
 const BinanceSpot = require('../binance-spot')
 const logger = require('../../../kit/logger')
+const {raw} = require("ethereumjs-tx/fake");
 
 async function realPriceTest() {
+  logger.info('real price test:')
   logger.info(await BinanceSpot.realPrice())
+  logger.info('')
 }
 
-realPriceTest()
+async function exchangeInfoTest() {
+  logger.info('exchange info test:')
+  logger.info(JSON.stringify(await BinanceSpot.exchangeInfo()))
+  logger.info('')
+}
+
+async function main() {
+  await realPriceTest()
+  await exchangeInfoTest()
+}
+
+main()