MCPcopy
hub / github.com/ccxt/ccxt / safeLedgerEntry

Method safeLedgerEntry

java/lib/src/main/java/io/github/ccxt/Exchange.java:5989–6051  ·  view source on GitHub ↗
(Object entry, Object... optionalArgs)

Source from the content-addressed store, hash-verified

5987 }
5988
5989 public Object safeLedgerEntry(Object entry, Object... optionalArgs)
5990 {
5991 Object currency = Helpers.getArg(optionalArgs, 0, null);
5992 currency = this.safeCurrency(null, currency);
5993 Object direction = this.safeString(entry, "direction");
5994 Object before = this.safeString(entry, "before");
5995 Object after = this.safeString(entry, "after");
5996 Object amount = this.safeString(entry, "amount");
5997 if (Helpers.isTrue(!Helpers.isEqual(amount, null)))
5998 {
5999 if (Helpers.isTrue(Helpers.isTrue(Helpers.isEqual(before, null)) && Helpers.isTrue(!Helpers.isEqual(after, null))))
6000 {
6001 before = Precise.stringSub(after, amount);
6002 } else if (Helpers.isTrue(Helpers.isTrue(!Helpers.isEqual(before, null)) && Helpers.isTrue(Helpers.isEqual(after, null))))
6003 {
6004 after = Precise.stringAdd(before, amount);
6005 }
6006 }
6007 if (Helpers.isTrue(Helpers.isTrue(!Helpers.isEqual(before, null)) && Helpers.isTrue(!Helpers.isEqual(after, null))))
6008 {
6009 if (Helpers.isTrue(Helpers.isEqual(direction, null)))
6010 {
6011 if (Helpers.isTrue(Precise.stringGt(before, after)))
6012 {
6013 direction = "out";
6014 }
6015 if (Helpers.isTrue(Precise.stringGt(after, before)))
6016 {
6017 direction = "in";
6018 }
6019 }
6020 }
6021 Object fee = this.safeValue(entry, "fee");
6022 if (Helpers.isTrue(!Helpers.isEqual(fee, null)))
6023 {
6024 Helpers.addElementToObject(fee, "cost", this.safeNumber(fee, "cost"));
6025 }
6026 Object timestamp = this.safeInteger(entry, "timestamp");
6027 Object info = this.safeDict(entry, "info", new java.util.HashMap<String, Object>() {{}});
6028 final Object finalDirection = direction;
6029 final Object finalCurrency = currency;
6030 final Object finalAmount = amount;
6031 final Object finalBefore = before;
6032 final Object finalAfter = after;
6033 final Object finalFee = fee;
6034 return new java.util.HashMap<String, Object>() {{
6035 put( "id", Exchange.this.safeString(entry, "id") );
6036 put( "timestamp", timestamp );
6037 put( "datetime", Exchange.this.iso8601(timestamp) );
6038 put( "direction", finalDirection );
6039 put( "account", Exchange.this.safeString(entry, "account") );
6040 put( "referenceId", Exchange.this.safeString(entry, "referenceId") );
6041 put( "referenceAccount", Exchange.this.safeString(entry, "referenceAccount") );
6042 put( "type", Exchange.this.safeString(entry, "type") );
6043 put( "currency", Helpers.GetValue(finalCurrency, "code") );
6044 put( "amount", Exchange.this.parseNumber(finalAmount) );
6045 put( "before", Exchange.this.parseNumber(finalBefore) );
6046 put( "after", Exchange.this.parseNumber(finalAfter) );

Callers 15

parseLedgerEntryMethod · 0.45
parseLedgerEntryMethod · 0.45
parseLedgerEntryMethod · 0.45
parseLedgerEntryMethod · 0.45
parseLedgerEntryMethod · 0.45
parseLedgerEntryMethod · 0.45
parseLedgerEntryMethod · 0.45
parseLedgerEntryMethod · 0.45
parseLedgerEntryMethod · 0.45
parseLedgerEntryMethod · 0.45
parseLedgerEntryMethod · 0.45
parseLedgerEntryMethod · 0.45

Calls 15

getArgMethod · 0.95
safeCurrencyMethod · 0.95
safeStringMethod · 0.95
isTrueMethod · 0.95
isEqualMethod · 0.95
stringSubMethod · 0.95
stringAddMethod · 0.95
stringGtMethod · 0.95
safeValueMethod · 0.95
addElementToObjectMethod · 0.95
safeNumberMethod · 0.95
safeIntegerMethod · 0.95

Tested by

no test coverage detected