Skip to content

Commit

Permalink
feat(base) - safeIntegerOmitZero (ccxt#22244)
Browse files Browse the repository at this point in the history
* feat(base) - safeIntegerOmitZero

* fix(latoken) - zero ts in tickers

* minor bitget

* parseint

* Update Exchange.ts

* fix linting

---------

Co-authored-by: carlosmiei <[email protected]>

[ci skip]
  • Loading branch information
Travis CI authored and DelAnt committed May 10, 2024
1 parent 1f97aed commit 526eb16
Show file tree
Hide file tree
Showing 253 changed files with 5,949 additions and 5,926 deletions.
10 changes: 10 additions & 0 deletions cs/ccxt/base/Exchange.BaseMethods.cs
Expand Up @@ -907,6 +907,16 @@ public virtual object isRoundNumber(object value)
return isEqual(res, 0);
}

public virtual object safeIntegerOmitZero(object obj, object key, object defaultValue = null)
{
object timestamp = this.safeInteger(obj, key, defaultValue);
if (isTrue(isTrue(isEqual(timestamp, null)) || isTrue(isEqual(timestamp, 0))))
{
return null;
}
return timestamp;
}

public virtual void afterConstruct()
{
this.createNetworksByIdObject();
Expand Down
7 changes: 1 addition & 6 deletions cs/ccxt/exchanges/bitget.cs
Expand Up @@ -2707,12 +2707,7 @@ public override object parseTicker(object ticker, object market = null)
//
object marketId = this.safeString(ticker, "symbol");
object close = this.safeString(ticker, "lastPr");
object timestampString = this.omitZero(this.safeString(ticker, "ts")); // exchange sometimes provided 0
object timestamp = null;
if (isTrue(!isEqual(timestampString, null)))
{
timestamp = this.parseToInt(timestampString);
}
object timestamp = this.safeIntegerOmitZero(ticker, "ts"); // exchange bitget provided 0
object change = this.safeString(ticker, "change24h");
object open24 = this.safeString(ticker, "open24");
object open = this.safeString(ticker, "open");
Expand Down
2 changes: 1 addition & 1 deletion cs/ccxt/exchanges/latoken.cs
Expand Up @@ -640,7 +640,7 @@ public override object parseTicker(object ticker, object market = null)
//
object marketId = this.safeString(ticker, "symbol");
object last = this.safeString(ticker, "lastPrice");
object timestamp = this.safeInteger(ticker, "updateTimestamp");
object timestamp = this.safeIntegerOmitZero(ticker, "updateTimestamp"); // sometimes latoken provided '0' ts from /ticker endpoint
return this.safeTicker(new Dictionary<string, object>() {
{ "symbol", this.safeSymbol(marketId, market) },
{ "timestamp", timestamp },
Expand Down
15 changes: 9 additions & 6 deletions dist/ccxt.browser.js
Expand Up @@ -9390,6 +9390,13 @@ class Exchange {
const res = this.parseToNumeric((value % 1));
return res === 0;
}
safeIntegerOmitZero(obj, key, defaultValue = undefined) {
const timestamp = this.safeInteger(obj, key, defaultValue);
if (timestamp === undefined || timestamp === 0) {
return undefined;
}
return timestamp;
}
afterConstruct() {
this.createNetworksByIdObject();
}
Expand Down Expand Up @@ -49575,11 +49582,7 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
//
const marketId = this.safeString(ticker, 'symbol');
const close = this.safeString(ticker, 'lastPr');
const timestampString = this.omitZero(this.safeString(ticker, 'ts')); // exchange sometimes provided 0
let timestamp = undefined;
if (timestampString !== undefined) {
timestamp = this.parseToInt(timestampString);
}
const timestamp = this.safeIntegerOmitZero(ticker, 'ts'); // exchange bitget provided 0
const change = this.safeString(ticker, 'change24h');
const open24 = this.safeString(ticker, 'open24');
const open = this.safeString(ticker, 'open');
Expand Down Expand Up @@ -189022,7 +189025,7 @@ class latoken extends _abstract_latoken_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
//
const marketId = this.safeString(ticker, 'symbol');
const last = this.safeString(ticker, 'lastPrice');
const timestamp = this.safeInteger(ticker, 'updateTimestamp');
const timestamp = this.safeIntegerOmitZero(ticker, 'updateTimestamp'); // sometimes latoken provided '0' ts from /ticker endpoint
return this.safeTicker({
'symbol': this.safeSymbol(marketId, market),
'timestamp': timestamp,
Expand Down
2 changes: 1 addition & 1 deletion dist/ccxt.browser.min.js

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions dist/cjs/src/base/Exchange.js
Expand Up @@ -2158,6 +2158,13 @@ class Exchange {
const res = this.parseToNumeric((value % 1));
return res === 0;
}
safeIntegerOmitZero(obj, key, defaultValue = undefined) {
const timestamp = this.safeInteger(obj, key, defaultValue);
if (timestamp === undefined || timestamp === 0) {
return undefined;
}
return timestamp;
}
afterConstruct() {
this.createNetworksByIdObject();
}
Expand Down
6 changes: 1 addition & 5 deletions dist/cjs/src/bitget.js
Expand Up @@ -2632,11 +2632,7 @@ class bitget extends bitget$1 {
//
const marketId = this.safeString(ticker, 'symbol');
const close = this.safeString(ticker, 'lastPr');
const timestampString = this.omitZero(this.safeString(ticker, 'ts')); // exchange sometimes provided 0
let timestamp = undefined;
if (timestampString !== undefined) {
timestamp = this.parseToInt(timestampString);
}
const timestamp = this.safeIntegerOmitZero(ticker, 'ts'); // exchange bitget provided 0
const change = this.safeString(ticker, 'change24h');
const open24 = this.safeString(ticker, 'open24');
const open = this.safeString(ticker, 'open');
Expand Down
2 changes: 1 addition & 1 deletion dist/cjs/src/latoken.js
Expand Up @@ -616,7 +616,7 @@ class latoken extends latoken$1 {
//
const marketId = this.safeString(ticker, 'symbol');
const last = this.safeString(ticker, 'lastPrice');
const timestamp = this.safeInteger(ticker, 'updateTimestamp');
const timestamp = this.safeIntegerOmitZero(ticker, 'updateTimestamp'); // sometimes latoken provided '0' ts from /ticker endpoint
return this.safeTicker({
'symbol': this.safeSymbol(marketId, market),
'timestamp': timestamp,
Expand Down
1 change: 1 addition & 0 deletions js/src/base/Exchange.d.ts
Expand Up @@ -744,6 +744,7 @@ export default class Exchange {
parseToInt(number: any): number;
parseToNumeric(number: any): number;
isRoundNumber(value: number): boolean;
safeIntegerOmitZero(obj: object, key: IndexType, defaultValue?: Int): Int;
afterConstruct(): void;
createNetworksByIdObject(): void;
getDefaultOptions(): {
Expand Down
7 changes: 7 additions & 0 deletions js/src/base/Exchange.js
Expand Up @@ -2145,6 +2145,13 @@ export default class Exchange {
const res = this.parseToNumeric((value % 1));
return res === 0;
}
safeIntegerOmitZero(obj, key, defaultValue = undefined) {
const timestamp = this.safeInteger(obj, key, defaultValue);
if (timestamp === undefined || timestamp === 0) {
return undefined;
}
return timestamp;
}
afterConstruct() {
this.createNetworksByIdObject();
}
Expand Down
6 changes: 1 addition & 5 deletions js/src/bitget.js
Expand Up @@ -2635,11 +2635,7 @@ export default class bitget extends Exchange {
//
const marketId = this.safeString(ticker, 'symbol');
const close = this.safeString(ticker, 'lastPr');
const timestampString = this.omitZero(this.safeString(ticker, 'ts')); // exchange sometimes provided 0
let timestamp = undefined;
if (timestampString !== undefined) {
timestamp = this.parseToInt(timestampString);
}
const timestamp = this.safeIntegerOmitZero(ticker, 'ts'); // exchange bitget provided 0
const change = this.safeString(ticker, 'change24h');
const open24 = this.safeString(ticker, 'open24');
const open = this.safeString(ticker, 'open');
Expand Down
2 changes: 1 addition & 1 deletion js/src/latoken.js
Expand Up @@ -619,7 +619,7 @@ export default class latoken extends Exchange {
//
const marketId = this.safeString(ticker, 'symbol');
const last = this.safeString(ticker, 'lastPrice');
const timestamp = this.safeInteger(ticker, 'updateTimestamp');
const timestamp = this.safeIntegerOmitZero(ticker, 'updateTimestamp'); // sometimes latoken provided '0' ts from /ticker endpoint
return this.safeTicker({
'symbol': this.safeSymbol(marketId, market),
'timestamp': timestamp,
Expand Down

0 comments on commit 526eb16

Please sign in to comment.