bybit-api
Advanced tools
Comparing version 1.2.1 to 1.2.2
@@ -9,4 +9,5 @@ { | ||
"**/node_modules/*", | ||
"coverage" | ||
"coverage", | ||
"doc" | ||
] | ||
} |
@@ -1,4 +0,2 @@ | ||
const assert = require('assert'); | ||
const RequestWrapper = require('./util/requestWrapper'); | ||
@@ -57,2 +55,13 @@ | ||
return await this.request.post('v2/private/order/replace', params); | ||
} | ||
/** | ||
* @deprecated use replaceActiveOrder() | ||
*/ | ||
async replaceActiveOrderOld(params) { | ||
assert(params, 'No params passed'); | ||
assert(params.order_id || params.order_link_id, 'Parameter order_id OR order_link_id is required'); | ||
assert(params.symbol, 'Parameter symbol is required'); | ||
return await this.request.post('open-api/order/replace', params); | ||
@@ -75,3 +84,21 @@ } | ||
assert(params.qty, 'Parameter qty is required'); | ||
assert(params.base_price, 'Parameter base_price is required'); | ||
assert(params.stop_px, 'Parameter stop_px is required'); | ||
assert(params.time_in_force, 'Parameter time_in_force is required'); | ||
if (params.order_type === 'Limit') assert(params.price, 'Parameter price is required for limit orders'); | ||
return await this.request.post('v2/private/stop-order/create', params); | ||
} | ||
/** | ||
* @deprecated use placeConditionalOrder | ||
*/ | ||
async placeConditionalOrderOld(params) { | ||
assert(params, 'No params passed'); | ||
assert(params.side, 'Parameter side is required'); | ||
assert(params.symbol, 'Parameter symbol is required'); | ||
assert(params.order_type, 'Parameter order_type is required'); | ||
assert(params.qty, 'Parameter qty is required'); | ||
assert(params.time_in_force, 'Parameter time_in_force is required'); | ||
assert(params.base_price, 'Parameter base_price is required'); | ||
@@ -86,2 +113,10 @@ assert(params.stop_px, 'Parameter stop_px is required'); | ||
async getConditionalOrder(params) { | ||
assert(params.symbol, 'Parameter symbol is required'); | ||
return await this.request.get('v2/private/stop-order/list', params); | ||
} | ||
/** | ||
* @deprecated use placeConditionalOrder | ||
*/ | ||
async getConditionalOrderOld(params) { | ||
return await this.request.get('open-api/stop-order/list', params); | ||
@@ -92,2 +127,12 @@ } | ||
assert(params, 'No params passed'); | ||
assert(params.stop_order_id || params.order_link_id, 'Parameter stop_order_id OR order_link_id is required'); | ||
return await this.request.post('v2/private/stop-order/cancel', params); | ||
} | ||
/** | ||
* @deprecated use cancelConditionalOrder | ||
*/ | ||
async cancelConditionalOrderOld(params) { | ||
assert(params, 'No params passed'); | ||
assert(params.stop_order_id, 'Parameter stop_order_id is required'); | ||
@@ -107,2 +152,13 @@ | ||
assert(params, 'No params passed'); | ||
assert(params.stop_order_id || params.order_link_id, 'Parameter stop_order_id OR order_link_id is required'); | ||
assert(params.symbol, 'Parameter symbol is required'); | ||
return await this.request.post('v2/private/stop-order/replace', params); | ||
} | ||
/** | ||
* @deprecated use replaceConditionalOrder | ||
*/ | ||
async replaceConditionalOrderOld(params) { | ||
assert(params, 'No params passed'); | ||
assert(params.stop_order_id, 'Parameter stop_order_id is required'); | ||
@@ -122,2 +178,5 @@ assert(params.symbol, 'Parameter symbol is required'); | ||
/** | ||
* @deprecated use getPosition() instead | ||
*/ | ||
async getUserLeverage() { | ||
@@ -127,2 +186,6 @@ return await this.request.get('user/leverage'); | ||
async getPosition(params) { | ||
return await this.request.get('v2/private/position/list', params); | ||
} | ||
async changeUserLeverage(params) { | ||
@@ -136,9 +199,5 @@ assert(params, 'No params passed'); | ||
async getPosition(params) { | ||
assert(params, 'No params passed'); | ||
assert(params.symbol, 'Parameter symbol is required'); | ||
return await this.request.get('v2/private/position/list', params); | ||
} | ||
/** | ||
* @deprecated use getPosition() instead | ||
*/ | ||
async getPositions() { | ||
@@ -145,0 +204,0 @@ return await this.request.get('position/list'); |
@@ -9,3 +9,3 @@ const { createHmac } = require('crypto'); | ||
}, | ||
serializeParams(params, strict_validation) { | ||
serializeParams(params = {}, strict_validation = false) { | ||
return Object.keys(params) | ||
@@ -12,0 +12,0 @@ .sort() |
{ | ||
"name": "bybit-api", | ||
"version": "1.2.1", | ||
"description": "A node.js wrapper for the Bybit Cryptocurrency Derivative exchange APIs", | ||
"version": "1.2.2", | ||
"description": "A production-ready Node.js connector for the Bybit APIs and WebSockets", | ||
"main": "index.js", | ||
@@ -21,9 +21,11 @@ "scripts": { | ||
"nodejs", | ||
"node", | ||
"trading", | ||
"cryptocurrency", | ||
"bitcoin" | ||
"bitcoin", | ||
"best" | ||
], | ||
"author": "Stefan Aebischer <os@pixtron.ch> (https://pixtron.ch)", | ||
"author": "Tiago Siebler (https://github.com/tiagosiebler)", | ||
"contributors": [ | ||
"Tiago Siebler (https://github.com/tiagosiebler)" | ||
"Stefan Aebischer <os@pixtron.ch> (https://pixtron.ch)" | ||
], | ||
@@ -36,3 +38,3 @@ "license": "MIT", | ||
"dependencies": { | ||
"axios": "^0.20.0", | ||
"axios": "^0.21.0", | ||
"ws": "^7.3.1" | ||
@@ -39,0 +41,0 @@ }, |
# bybit-api | ||
[![npm version](https://img.shields.io/npm/v/bybit-api/latest)][1] [![npm size](https://img.shields.io/bundlephobia/min/bybit-api/latest)][1] [![npm downloads](https://img.shields.io/npm/dt/bybit-api)][1] | ||
[![npm version](https://img.shields.io/npm/v/bybit-api)][1] [![npm size](https://img.shields.io/bundlephobia/min/bybit-api/latest)][1] [![npm downloads](https://img.shields.io/npm/dt/bybit-api)][1] | ||
[![last commit](https://img.shields.io/github/last-commit/tiagosiebler/bybit-api)][1] | ||
@@ -8,3 +8,3 @@ [![CodeFactor](https://www.codefactor.io/repository/github/tiagosiebler/bybit-api/badge)](https://www.codefactor.io/repository/github/tiagosiebler/bybit-api) | ||
An light node.js wrapper for the Bybit Cryptocurrency Derivative exchange API. Forked & adapted from [@pxtrn/bybit-api](https://github.com/pixtron/bybit-api). | ||
A production-ready Node.js connector for the Bybit APIs and WebSockets. | ||
@@ -15,10 +15,17 @@ ## Installation | ||
## Usage | ||
Create API credentials at bybit (obviously you need to be logged in): | ||
Create API credentials at Bybit | ||
- [Livenet](https://bybit.com/app/user/api-management?affiliate_id=9410&language=en-US&group_id=0&group_type=1) | ||
- [Testnet](https://testnet.bybit.com/app/user/api-management) | ||
## Issues & Discussion | ||
- Issues? Check the [issues tab](https://github.com/tiagosiebler/bybit-api/issues). | ||
- Discuss & collaborate with other node devs? Join our [Node.js Algo Traders](https://t.me/nodetraders) engineering community on telegram. | ||
## Documentation | ||
Most of the documentation is in [Bybit's official API docs](https://bybit-exchange.github.io/docs/inverse/#t-introduction). Most of this library's methods accept objects that directly correspond to expectations from Bybit's API docs. | ||
Most methods accept JS objects. These can be populated using parameters specified by Bybit's API documentation. | ||
- [Bybit API Inverse Documentation](https://bybit-exchange.github.io/docs/inverse/#t-introduction). | ||
- [Bybit API Linear Documentation (not supported yet)](https://bybit-exchange.github.io/docs/linear/#t-introduction) | ||
### Rest client | ||
### Inverse Contracts | ||
#### Rest client | ||
```javascript | ||
@@ -37,9 +44,9 @@ const {RestClient} = require('bybit-api'); | ||
.catch(err => { | ||
console.error(error); | ||
console.error(err); | ||
}); | ||
``` | ||
See rest client [api docs](./doc/rest-client.md) for further information. | ||
See inverse [rest-client.js](./master/lib/rest-client.js) for further information. | ||
### Websocket client | ||
#### Websocket client | ||
```javascript | ||
@@ -56,25 +63,24 @@ const {WebsocketClient} = require('bybit-api'); | ||
ws.on('open', function() { | ||
ws.on('open', () => { | ||
console.log('connection open'); | ||
}); | ||
ws.on('update', function(message) { | ||
ws.on('update', message => { | ||
console.log('update', message); | ||
}); | ||
ws.on('response', function(response) { | ||
ws.on('response', response => { | ||
console.log('response', response); | ||
}); | ||
ws.on('close', function() { | ||
ws.on('close', () => { | ||
console.log('connection closed'); | ||
}); | ||
ws.on('error', function(err) { | ||
ws.on('error', err => { | ||
console.error('ERR', err); | ||
}); | ||
``` | ||
See inverse [websocket-client.js](./master/lib/websocket-client.js) & [ws api docs](./doc/websocket-client.md) for further information. | ||
See websocket client [api docs](./doc/websocket-client.md) for further information. | ||
### Customise Logging | ||
@@ -89,6 +95,3 @@ Pass a custom logger which supports the log methods `silly`, `debug`, `notice`, `info`, `warning` and `error`, or override methods from the default logger as desired: | ||
const API_KEY = 'xxx'; | ||
const PRIVATE_KEY = 'yyy'; | ||
const ws = new WebsocketClient({key: API_KEY, secret: PRIVATE_KEY}, DefaultLogger); | ||
const ws = new WebsocketClient({key: 'xxx', secret: 'yyy'}, DefaultLogger); | ||
``` | ||
@@ -98,8 +101,2 @@ | ||
### Donations | ||
#### pixtron | ||
This library was started by @pixtron. If this library helps you to trade better on bybit, feel free to donate a coffee to @pixtron: | ||
- BTC `1Fh1158pXXudfM6ZrPJJMR7Y5SgZUz4EdF` | ||
- ETH `0x21aEdeC53ab7593b77C9558942f0c9E78131e8d7` | ||
- LTC `LNdHSVtG6UWsriMYLJR3qLdfVNKwJ6GSLF` | ||
#### tiagosiebler | ||
@@ -114,3 +111,9 @@ If you found this project interesting or useful, create accounts with my referral links: | ||
#### pixtron | ||
The original library was started by @pixtron. If this library helps you to trade better on bybit, feel free to donate a coffee to @pixtron: | ||
- BTC `1Fh1158pXXudfM6ZrPJJMR7Y5SgZUz4EdF` | ||
- ETH `0x21aEdeC53ab7593b77C9558942f0c9E78131e8d7` | ||
- LTC `LNdHSVtG6UWsriMYLJR3qLdfVNKwJ6GSLF` | ||
### Contributions & Pull Requests | ||
Contributions are encouraged, I will review any incoming pull requests. See the issues tab for todo items. |
46585
18
676
113
+ Addedaxios@0.21.4(transitive)
- Removedaxios@0.20.0(transitive)
Updatedaxios@^0.21.0