From 70adfd646ae62817346b0d7058bba624b59fb571 Mon Sep 17 00:00:00 2001 From: tiagosiebler Date: Mon, 1 May 2023 12:11:09 +0100 Subject: [PATCH] v3.5.8: feat() easier env-controlled HTTP traces. Add missing properties for asset v5 types. --- README.md | 10 ++++++++-- package.json | 2 +- src/types/request/v5-asset.ts | 2 ++ src/util/BaseRestClient.ts | 13 +++++++++---- 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 84a8b45..c84925f 100644 --- a/README.md +++ b/README.md @@ -305,9 +305,11 @@ See [websocket-client.ts](./src/websocket-client.ts) for further information. --- -## Customise Logging +## Logging -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. +### Customise logging + +Pass a custom logger (or mutate the imported DefaultLogger class) which supports the log methods `silly`, `debug`, `notice`, `info`, `warning` and `error`, or override methods from the default logger as desired, as in the example below: ```javascript const { WebsocketClient, DefaultLogger } = require('bybit-api'); @@ -321,6 +323,10 @@ const customLogger = { const ws = new WebsocketClient({ key: 'xxx', secret: 'yyy' }, customLogger); ``` +### Debug HTTP requests + +In rare situations, you may want to see the raw HTTP requets being built as well as the API response. These can be enabled by setting the `BYBITTRACE` env var to `true`. + ## Browser Usage Build a bundle using webpack: diff --git a/package.json b/package.json index cd0949e..3e949bb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bybit-api", - "version": "3.5.7", + "version": "3.5.8", "description": "Complete & robust Node.js SDK for Bybit's REST APIs and WebSockets, with TypeScript & strong end to end tests.", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/src/types/request/v5-asset.ts b/src/types/request/v5-asset.ts index b97f3a7..3e15142 100644 --- a/src/types/request/v5-asset.ts +++ b/src/types/request/v5-asset.ts @@ -39,6 +39,7 @@ export interface GetAccountCoinBalanceParamsV5 { accountType: AccountTypeV5; coin: string; withBonus?: number; + withTransferSafeAmount?: 0 | 1; } export interface GetInternalTransferParamsV5 { @@ -119,6 +120,7 @@ export interface WithdrawParamsV5 { address: string; tag?: string; amount: string; + timestamp: number; forceChain?: number; accountType?: 'SPOT' | 'FUND'; } diff --git a/src/util/BaseRestClient.ts b/src/util/BaseRestClient.ts index 1514dda..d1a69b1 100644 --- a/src/util/BaseRestClient.ts +++ b/src/util/BaseRestClient.ts @@ -11,11 +11,12 @@ import { } from './requestUtils'; import { signMessage } from './node-support'; -if ( +const ENABLE_HTTP_TRACE = typeof process === 'object' && typeof process.env === 'object' && - process.env.BYBITTRACE -) { + process.env.BYBITTRACE; + +if (ENABLE_HTTP_TRACE) { // axios.interceptors.request.use((request) => { // console.log( // new Date(), @@ -209,7 +210,7 @@ export default abstract class BaseRestClient { if (this.options.syncTimeBeforePrivateRequests) { this.timeOffset = await this.fetchTimeOffset(); } - + return this.signRequest(params || {}, method, signMethod); } @@ -314,6 +315,10 @@ export default abstract class BaseRestClient { isPublicApi, ); + if (ENABLE_HTTP_TRACE) { + console.log('full request: ', options); + } + // Dispatch request return axios(options) .then((response) => {