(Object order, Object... optionalArgs)
| 6469 | } |
| 6470 | |
| 6471 | public Object safeOrder(Object order, Object... optionalArgs) |
| 6472 | { |
| 6473 | // parses numbers as strings |
| 6474 | // * it is important pass the trades as unparsed rawTrades |
| 6475 | Object market = Helpers.getArg(optionalArgs, 0, null); |
| 6476 | Object amount = this.omitZero(this.safeString(order, "amount")); |
| 6477 | Object remaining = this.safeString(order, "remaining"); |
| 6478 | Object filled = this.safeString(order, "filled"); |
| 6479 | Object cost = this.safeString(order, "cost"); |
| 6480 | Object average = this.omitZero(this.safeString(order, "average")); |
| 6481 | Object price = this.omitZero(this.safeString(order, "price")); |
| 6482 | Object lastTradeTimeTimestamp = this.safeInteger(order, "lastTradeTimestamp"); |
| 6483 | Object symbol = this.safeString(order, "symbol"); |
| 6484 | Object side = this.safeString(order, "side"); |
| 6485 | Object status = this.safeString(order, "status"); |
| 6486 | Object parseFilled = (Helpers.isEqual(filled, null)); |
| 6487 | Object parseCost = (Helpers.isEqual(cost, null)); |
| 6488 | Object parseLastTradeTimeTimestamp = (Helpers.isEqual(lastTradeTimeTimestamp, null)); |
| 6489 | Object fee = this.safeValue(order, "fee"); |
| 6490 | Object parseFee = (Helpers.isEqual(fee, null)); |
| 6491 | Object parseFees = Helpers.isEqual(this.safeValue(order, "fees"), null); |
| 6492 | Object parseSymbol = Helpers.isEqual(symbol, null); |
| 6493 | Object parseSide = Helpers.isEqual(side, null); |
| 6494 | Object shouldParseFees = Helpers.isTrue(parseFee) || Helpers.isTrue(parseFees); |
| 6495 | Object fees = this.safeList(order, "fees", new java.util.ArrayList<Object>(java.util.Arrays.asList())); |
| 6496 | Object trades = new java.util.ArrayList<Object>(java.util.Arrays.asList()); |
| 6497 | Object isTriggerOrSLTpOrder = (Helpers.isTrue((Helpers.isTrue(!Helpers.isEqual(this.safeString(order, "triggerPrice"), null)) || Helpers.isTrue((!Helpers.isEqual(this.safeString(order, "stopLossPrice"), null))))) || Helpers.isTrue((!Helpers.isEqual(this.safeString(order, "takeProfitPrice"), null)))); |
| 6498 | if (Helpers.isTrue(Helpers.isTrue(Helpers.isTrue(parseFilled) || Helpers.isTrue(parseCost)) || Helpers.isTrue(shouldParseFees))) |
| 6499 | { |
| 6500 | Object rawTrades = this.safeValue(order, "trades", trades); |
| 6501 | // const oldNumber = this.number; |
| 6502 | // we parse trades as strings here! |
| 6503 | // i don't think this is needed anymore |
| 6504 | // (this as any).number = String; |
| 6505 | Object firstTrade = this.safeValue(rawTrades, 0); |
| 6506 | // parse trades if they haven't already been parsed |
| 6507 | Object tradesAreParsed = (Helpers.isTrue(Helpers.isTrue((!Helpers.isEqual(firstTrade, null))) && Helpers.isTrue((Helpers.inOp(firstTrade, "info")))) && Helpers.isTrue((Helpers.inOp(firstTrade, "id")))); |
| 6508 | if (!Helpers.isTrue(tradesAreParsed)) |
| 6509 | { |
| 6510 | trades = this.parseTrades(rawTrades, market); |
| 6511 | } else |
| 6512 | { |
| 6513 | trades = rawTrades; |
| 6514 | } |
| 6515 | // this.number = oldNumber; why parse trades as strings if you read the value using `safeString` ? |
| 6516 | Object tradesLength = 0; |
| 6517 | Object isArray = Helpers.isArray(trades); |
| 6518 | if (Helpers.isTrue(isArray)) |
| 6519 | { |
| 6520 | tradesLength = Helpers.getArrayLength(trades); |
| 6521 | } |
| 6522 | if (Helpers.isTrue(Helpers.isTrue(isArray) && Helpers.isTrue((Helpers.isGreaterThan(tradesLength, 0))))) |
| 6523 | { |
| 6524 | // move properties that are defined in trades up into the order |
| 6525 | if (Helpers.isTrue(Helpers.isEqual(Helpers.GetValue(order, "symbol"), null))) |
| 6526 | { |
| 6527 | Helpers.addElementToObject(order, "symbol", Helpers.GetValue(Helpers.GetValue(trades, 0), "symbol")); |
| 6528 | } |
no test coverage detected