Загальна інформація про WebSocket API
- Основна URL-адреса: wss://api-adapter.backend.currency.com/connect
- Основна URL-адреса, демо обліковий запис: wss://demo-api-adapter.backend.currency.com/connect
- Усі кінцеві точки повертають або об’єкт JSON, або масив.
- Усі поля, пов’язані з часом і міткою часу, подано в мілісекундах.
- З’єднання Websocket API закривається, якщо API не перевіряється протягом 30 секунд.
- Усі токенізовані активи, крім токенів компаній, токенізованих облігацій, токенів «KARMA.cx» і токенізованих активів із ринків Гонконгу, доступні в першій версії (v1) нашого API. У другій версії API (v2) також стали доступними ринки Гонконгу.
- Список активів, доступних для торгівлі кредитним плечем в API, можна знайти тут.
- Зверніть увагу, що в API WebSocket не передбачено певної частоти оновлень. Частота оновлень залежить від відповідної ринкової пари.
!Примітка. Для успішного створення підпису відсортуйте параметри в корисному навантаженні запиту відповідно до алфавітного порядку.
Зверніться до частини API WebSocket у Swagger, щоб отримати необхідну інформацію. Більше прикладів використання можна знайти тут.
Troubleshooting
Метод підписки
const ws = new WebSocket
('wss://api-adapter.backend.currency.com/connect',
{perMessageDeflate: true});
let responseList = [];
let request, response = Object();
Зворотні виклики
await ws.on('open', async function open() {
console.log("connected");
});
ws.on('close', async function close() {
console.log('disconnected');
});
ws.on('error', async function error(data) {
console.log('error');
console.log(data);
});
ws.on('message', async function incoming(data) {
response = JSON.parse(data);
responseList.push(response);
});
Ідентифікатор кореляції
Цей ідентифікатор потрібен для відображення асинхронної відповіді із запитом
request.correlationId = request.correlationId + 1;
Модель запиту
//Destination
request.destination = "/api/v1/leverageSettings";
//Request payload
request.payload = {"symbol": ETH/USD,
"timestamp": Date.now(),
"apiKey": apiKey};
request.payload.signature = getHash(request);
function getHash(request) {
let payload = "";
Object.keys(request.payload).sort().forEach(function(key) {
payload += key + "=" + request.payload[key] + "&";
});
payload = payload.substring(0, payload.length - 1);
console.log(payload);
let hash = CryptoJS.HmacSHA256(payload, apiSecret).toString();
console.log(hash);
return hash;
}
//Send request
message = JSON.stringify(request);
ws.send(message);
await sleep(5000);
index = responseList.findIndex(i =>
i.correlationId ===
request.correlationId.toString());
console.log('============================');
console.log('index: ' + index);
console.log(responseList[index]);
console.log('============================');
Опис параметра 'Symbol'
Як для біржового, так і для кредитного режимів торгівлі параметр 'symbol' може бути перевірений у потоці exchangeInfo.
Режим біржової торгівлі: використовувати символ потоку exchangeInfo;
Режим торгівлі з кредитним плечем: подивіться на 'symbol' із потоку exchangeInfo. Якщо в назві 'symbol' є валюти, слід використовувати такий формат: «BTC%2FUSD_LEVERAGE». Якщо 'symbol' має лише назву активу, правильний такий формат: «Oil%20-%20Brent».
ENUM визначення
Типи ордерів (orderTypes, тип):
- LIMIT
- MARKET
- STOP
Напрям ордера (сторона):
- BUY
- SELL
Час чинності (timeInForce):
- GTC
- IOC
- FOK
Інтервали графіка Kline/Candlestick:
m -> хвилини; h -> години; d -> дні; w -> тижні
- 1m
- 5m
- 15m
- 30m
- 1h
- 4h
- 1d
- 1w
Зверніть увагу, що якщо при використанні кінцевої точки wss:OHLCMarketData.subscribe не вказано значення "intervals", то за замовчуванням встановлюється значення '1хв'.