Merge pull request #19 from tiagosiebler/plan
v1.1.2, feat(#16): add missing plan types for futures client
This commit is contained in:
37
README.md
37
README.md
@@ -160,13 +160,43 @@ In rare situations, you may want to see the raw HTTP requets being built as well
|
||||
|
||||
## Browser Usage
|
||||
|
||||
### Import
|
||||
|
||||
This is the "modern" way, allowing the package to be directly imported into frontend projects with full typescript support.
|
||||
|
||||
1. Install these dependencies
|
||||
```sh
|
||||
npm install crypto-browserify stream-browserify
|
||||
```
|
||||
2. Add this to your `tsconfig.json`
|
||||
```json
|
||||
{
|
||||
"compilerOptions": {
|
||||
"paths": {
|
||||
"crypto": [
|
||||
"./node_modules/crypto-browserify"
|
||||
],
|
||||
"stream": [
|
||||
"./node_modules/stream-browserify"
|
||||
]
|
||||
}
|
||||
```
|
||||
3. Declare this in the global context of your application (ex: in polyfills for angular)
|
||||
```js
|
||||
(window as any).global = window;
|
||||
```
|
||||
|
||||
### Webpack
|
||||
|
||||
This is the "old" way of using this package on webpages. This will build a minified js bundle that can be pulled in using a script tag on a website.
|
||||
|
||||
Build a bundle using webpack:
|
||||
|
||||
- `npm install`
|
||||
- `npm build`
|
||||
- `npm pack`
|
||||
|
||||
The bundle can be found in `dist/`. Altough usage should be largely consistent, smaller differences will exist. Documentation is still TODO.
|
||||
The bundle can be found in `dist/`. Altough usage should be largely consistent, smaller differences will exist. Documentation is still TODO - contributions welcome.
|
||||
|
||||
---
|
||||
|
||||
@@ -184,11 +214,6 @@ Support my efforts to make algo trading accessible to all - register with my ref
|
||||
- [OKX](https://www.okx.com/join/18504944)
|
||||
- [FTX](https://ftx.com/referrals#a=ftxapigithub)
|
||||
|
||||
Or buy me a coffee using any of these:
|
||||
|
||||
- BTC: `1C6GWZL1XW3jrjpPTS863XtZiXL1aTK7Jk`
|
||||
- ETH (ERC20): `0xd773d8e6a50758e1ada699bb6c4f98bb4abf82da`
|
||||
|
||||
### Contributions & Pull Requests
|
||||
|
||||
Contributions are encouraged, I will review any incoming pull requests. See the issues tab for todo items.
|
||||
|
||||
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "bitget-api",
|
||||
"version": "1.0.3",
|
||||
"version": "1.1.2",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "bitget-api",
|
||||
"version": "1.0.3",
|
||||
"version": "1.1.2",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"axios": "^0.27.2",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "bitget-api",
|
||||
"version": "1.1.1",
|
||||
"version": "1.1.2",
|
||||
"description": "Node.js connector for Bitget REST APIs and WebSockets, with TypeScript & end-to-end tests.",
|
||||
"main": "lib/index.js",
|
||||
"types": "lib/index.d.ts",
|
||||
@@ -42,8 +42,6 @@
|
||||
"keywords": [
|
||||
"bitget",
|
||||
"bitget api",
|
||||
"okex",
|
||||
"okex api",
|
||||
"api",
|
||||
"websocket",
|
||||
"rest",
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
export const API_ERROR_CODE = {
|
||||
SUCCESS: '00000',
|
||||
NO_ORDER_TO_CANCEL: '22001',
|
||||
INCORRECT_PERMISSIONS: '40014',
|
||||
ACCOUNT_NOT_COPY_TRADER: '40017',
|
||||
FUTURES_POSITION_DIRECTION_EMPTY: '40017',
|
||||
@@ -17,4 +18,6 @@ export const API_ERROR_CODE = {
|
||||
ORDER_NOT_FOUND: '43001',
|
||||
FUTURES_ORDER_TPSL_NOT_FOUND: '43020',
|
||||
PLAN_ORDER_NOT_FOUND: '43025',
|
||||
QTY_LESS_THAN_MINIMUM_SPOT: '45110',
|
||||
PASSPHRASE_CANNOT_BE_EMPTY: '400172',
|
||||
} as const;
|
||||
|
||||
@@ -128,7 +128,14 @@ export interface ModifyFuturesPlanOrderTPSL {
|
||||
presetStopLossPrice?: string;
|
||||
}
|
||||
|
||||
export type FuturesPlanType = 'profit_plan' | 'loss_plan' | 'moving_plan';
|
||||
export type FuturesPlanType =
|
||||
| 'profit_plan'
|
||||
| 'loss_plan'
|
||||
| 'normal_plan'
|
||||
| 'pos_profit'
|
||||
| 'pos_loss'
|
||||
| 'moving_plan'
|
||||
| 'track_plan';
|
||||
|
||||
export interface NewFuturesPlanStopOrder {
|
||||
symbol: string;
|
||||
|
||||
@@ -118,7 +118,7 @@ describe('Private Broker REST API POST Endpoints', () => {
|
||||
).toMatchObject(sucessEmptyResponseObject());
|
||||
} catch (e) {
|
||||
expect(e.body).toMatchObject({
|
||||
code: '40017',
|
||||
code: API_ERROR_CODE.PASSPHRASE_CANNOT_BE_EMPTY,
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -84,7 +84,6 @@ describe('Private Futures REST API POST Endpoints', () => {
|
||||
data: {},
|
||||
});
|
||||
} catch (e) {
|
||||
// console.log(`submitOrder() exception: `, e.body);
|
||||
expect(e.body).toMatchObject({
|
||||
// seems to be the new "insufficient balance" error, informed bitget on 7th feb
|
||||
code: API_ERROR_CODE.QTY_GREATER_THAN_MAX_OPEN,
|
||||
@@ -150,8 +149,9 @@ describe('Private Futures REST API POST Endpoints', () => {
|
||||
data: {},
|
||||
});
|
||||
} catch (e) {
|
||||
console.error('cancelAllOrders: ', e);
|
||||
expect(e).toBeNull();
|
||||
expect(e.body).toMatchObject({
|
||||
code: API_ERROR_CODE.NO_ORDER_TO_CANCEL,
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -253,6 +253,7 @@ describe('Private Futures REST API POST Endpoints', () => {
|
||||
holdSide: 'long',
|
||||
planType: 'profit_plan',
|
||||
triggerPrice: '50',
|
||||
triggerType: 'market_price',
|
||||
}),
|
||||
).toMatchObject({
|
||||
...sucessEmptyResponseObject(),
|
||||
@@ -260,7 +261,7 @@ describe('Private Futures REST API POST Endpoints', () => {
|
||||
});
|
||||
} catch (e) {
|
||||
expect(e.body).toMatchObject({
|
||||
code: API_ERROR_CODE.FUTURES_POSITION_DIRECTION_EMPTY,
|
||||
code: API_ERROR_CODE.FUTURES_INSUFFICIENT_POSITION_NO_TPSL,
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -165,7 +165,7 @@ describe('Private Spot REST API POST Endpoints', () => {
|
||||
});
|
||||
} catch (e) {
|
||||
expect(e.body).toMatchObject({
|
||||
code: API_ERROR_CODE.QTY_LESS_THAN_MINIMUM,
|
||||
code: API_ERROR_CODE.QTY_LESS_THAN_MINIMUM_SPOT,
|
||||
});
|
||||
}
|
||||
});
|
||||
@@ -185,10 +185,12 @@ describe('Private Spot REST API POST Endpoints', () => {
|
||||
...sucessEmptyResponseObject(),
|
||||
data: {
|
||||
resultList: expect.any(Array),
|
||||
failure: [{ errorCode: API_ERROR_CODE.QTY_LESS_THAN_MINIMUM }],
|
||||
failure: [{ errorCode: API_ERROR_CODE.QTY_LESS_THAN_MINIMUM_SPOT }],
|
||||
},
|
||||
});
|
||||
} catch (e) {
|
||||
// console.log(`fn() exception: `, e.body);
|
||||
|
||||
expect(e).toBeNull();
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user