1.0.0 • Published 5 years ago

@codex_one/codex-api-node v1.0.0

Weekly downloads
1
License
ISC
Repository
github
Last release
5 years ago

Codex Rest API library

Installation

npm install -s codex-api-node

Getting started

const Codex = require('codex-api-node');
const codex = new Codex(
    "<public key>",
    "<secret key>",
    "<baseUrl>", //optional
    "<logger>" //optional, console.log by default
);
//or pass arguments as object:
const codex = new Codex({
    apiKey: "<public key>",
    apiSecret: "<secret key>",
    baseUrl: "<baseUrl>", //optional
    logger: "<logger>" //optional, console.log by default
  }
);

Get exchange information

codex.getInfo().then((information) => {
    console.log(information);
}).catch((error) => {
    console.error(error);
});

Get server time

codex.getServerTime().then((serverTime) => {
    console.log(serverTime);
}).catch((error) => {
    console.error(error);
});

Cancel order by id

codex.cancelOrder('f74b35c8-23a9-49b7-88b5-da7f1673f45a').then((canceledOrder) => {
    console.log(canceledOrder);
}).catch((error) => {
    console.error(error);
});

Cancel orders by market

codex.cancelOrders('eosbtc').then((canceledOrders) => {
    console.log(canceledOrders);
}).catch((error) => {
    console.error(error);
});

Cancel orders by market and side

codex.cancelOrders('eosbtc', 'ask').then((canceledOrders) => {
    console.log(canceledOrders);
}).catch((error) => {
    console.error(error);
});

Get trades with limit by timeframe

Limit of number of returned trades and timeranges are required parameters.

codex.getTrades(2, '1551477606', '1553086806').then((trades) => {
    console.log(trades);
}).catch((error) => {
    console.error(error);
});
</details>

#### Get next page of trades with limit by timeframe
Used if number of trades by specified timeframe is larger than limit. Send page token returned by previos getTrades request. Page is last if page token is empty string.
```javascript
codex.getTrades(2, '1551477606', '1553086806', 'AAPQACAAAAAWTFW7HNYAGYTJMQIEPH3KH234IRSBQ73TMXTVFFFGX4D7777734D777772===').then((trades) => {
    console.log(trades);
}).catch((error) => {
    console.error(error);
});
</details>

#### Get trades by market and side without page token
```javascript
codex.getTrades(2, '1541477606', '1553086806', undefined, 'eosbtc', 'bid', 2).then((trades) => {
    console.log(trades);
}).catch((error) => {
    console.error(error);
});

Get orders by market

codex.getOrders('ethusdt').then((orders) => {
    console.log(orders);
}).catch((error) => {
    console.error(error);
});
</details>

#### Get orders by market and status
Available values : active, wait
```javascript
codex.getOrders('ethusdt', 'active').then((orders) => {
    console.log(orders);
}).catch((error) => {
    console.error(error);
});

Get orders by market, status and side

codex.getOrders('ethusdt', 'active', 'bid').then((orders) => {
    console.log(orders);
}).catch((error) => {
    console.error(error);
});

Get orders by market, status, side and type

Available values : market, limit, stop, stoplimit

codex.getOrders('ethusdt', 'active', 'bid', 'limit').then((orders) => {
    console.log(orders);
}).catch((error) => {
    console.error(error);
});

Get orders by market, status, side and type with limit and timeframe

codex.getOrders('market', 'status', 'side', 'type', 2, '1541477606', '1553086806').then((orders) => {
    console.log(orders);
}).catch((error) => {
    console.error(error);
});

Place orders

const orders = [
  {
    "market": "btcusdt",
    "side": "ask",
    "amount": "0.1",
    "type": "market"
  },
  {
    "market": "btcusdt",
    "side": "ask",
    "amount": "0.1",
    "price": "3894",
    "type": "limit"
  },
  {
    "market": "btcusdt",
    "side": "ask",
    "amount": "0.1",
    "stop_price": "3894",
    "type": "market"
  },
  {
    "market": "btcusdt",
    "side": "ask",
    "amount": "0.1",
    "price": "3894",
    "stop_price": "3893",
    "type": "limit"
  }
]
codex.placeOrders(orders).then((order) => {
    console.log(order);
}).catch((error) => {
    console.error(error);
});
</details>

#### Get balances
```javascript
codex.getBalances().then((balances) => {
    console.log(balances);
}).catch((error) => {
    console.error(error);
});

Get tickers

codex.getTicker().then((tickers) => {
    console.log(tickers);
}).catch((error) => {
    console.error(error);
});

Get rates

codex.getRates().then((rates) => {
    console.log(rates);
}).catch((error) => {
    console.error(error);
});

Get currencies

codex.getCurrencies().then((currencies) => {
    console.log(currencies);
}).catch((error) => {
    console.error(error);
});

Get markets

codex.getMarkets().then((markets) => {
    console.log(markets);
}).catch((error) => {
    console.error(error);
});

Get deposit address

codex.getDepositAddress('eos').then((address) => {
    console.log(address);
}).catch((error) => {
    console.error(error);
});
</details>

#### Withdraw
```javascript
codex.withdraw('eos', 'binancecleos', 50, '106518724').then((withdraw) => {
    console.log(withdraw);
}).catch((error) => {
    console.error(error);
});

{"id":970,"uuid":"77febdde-a4bd-4128-9926-c7c7c105d520","usr_uuid":"22eh7379-8885-431d-8f65-c12452ec04d6","currency_code":"EOS","status":"created","amount":"50","tx_hash":"","confirmations":0,"source":"transfer","created_at":1553082968}

</details>

#### Get withdraw history
```javascript
codex.withdrawHistory('btc').then((withdrawHistory) => {
    console.log(withdrawHistory);
}).catch((error) => {
    console.error(error);
});
</details>

## WebSocket API

#### Connection
```javascript
codex.websocket.connect(callback);

Disconnection

codex.websocket.disconnect();

Start get order book for market

codex.websocket.startGetOrderBook('cdxbtc');

Stop get order book for market

codex.websocket.stopGetOrderBook('cdxbtc');

Start get tickers

codex.websocket.startGetTickers();

Stop get tickers

codex.websocket.stopGetTickers();

Start get trades for market

codex.websocket.startGetTrades('cdxbtc');

Stop get trades for market

codex.websocket.stopGetTrades('cdxbtc');