@method @name htx#transfer @description transfer currency internally between wallets on the same account @see https://huobiapi.github.io/docs/dm/v1/en/#transfer-margin-between-spot-account-and-future-account @see https://huobiapi.github.io/docs/spot/v1/en/#transfer-fund-between-spot-account-and-futu
(Object code, Object amount, Object fromAccount2, Object toAccount, Object... optionalArgs)
| 7672 | * @returns {object} a [transfer structure]{@link https://docs.ccxt.com/?id=transfer-structure} |
| 7673 | */ |
| 7674 | public java.util.concurrent.CompletableFuture<Object> transfer(Object code, Object amount, Object fromAccount2, Object toAccount, Object... optionalArgs) |
| 7675 | { |
| 7676 | final Object fromAccount3 = fromAccount2; |
| 7677 | return java.util.concurrent.CompletableFuture.supplyAsync(() -> { |
| 7678 | Object fromAccount = fromAccount3; |
| 7679 | Object parameters = Helpers.getArg(optionalArgs, 0, new java.util.HashMap<String, Object>() {{}}); |
| 7680 | (this.loadMarkets()).join(); |
| 7681 | Object currency = this.currency(code); |
| 7682 | Object request = new java.util.HashMap<String, Object>() {{ |
| 7683 | put( "currency", Helpers.GetValue(currency, "id") ); |
| 7684 | put( "amount", Helpers.parseFloat(HtxCore.this.currencyToPrecision(code, amount)) ); |
| 7685 | }}; |
| 7686 | Object subType = null; |
| 7687 | var subTypeparametersVariable = this.handleSubTypeAndParams("transfer", null, parameters); |
| 7688 | subType = ((java.util.List<Object>) subTypeparametersVariable).get(0); |
| 7689 | parameters = ((java.util.List<Object>) subTypeparametersVariable).get(1); |
| 7690 | Object fromAccountId = this.convertTypeToAccount(fromAccount); |
| 7691 | Object toAccountId = this.convertTypeToAccount(toAccount); |
| 7692 | Object toCross = Helpers.isEqual(toAccountId, "cross"); |
| 7693 | Object fromCross = Helpers.isEqual(fromAccountId, "cross"); |
| 7694 | Object toIsolated = this.inArray(toAccountId, this.ids); |
| 7695 | Object fromIsolated = this.inArray(fromAccountId, this.ids); |
| 7696 | Object fromSpot = Helpers.isEqual(fromAccountId, "pro"); |
| 7697 | Object toSpot = Helpers.isEqual(toAccountId, "pro"); |
| 7698 | if (Helpers.isTrue(Helpers.isTrue(fromSpot) && Helpers.isTrue(toSpot))) |
| 7699 | { |
| 7700 | throw new BadRequest((String)Helpers.add(Helpers.add(Helpers.add(Helpers.add(this.id, " transfer () cannot make a transfer between "), fromAccount), " and "), toAccount)) ; |
| 7701 | } |
| 7702 | Object fromOrToFuturesAccount = Helpers.isTrue((Helpers.isEqual(fromAccountId, "futures"))) || Helpers.isTrue((Helpers.isEqual(toAccountId, "futures"))); |
| 7703 | Object response = null; |
| 7704 | if (Helpers.isTrue(fromOrToFuturesAccount)) |
| 7705 | { |
| 7706 | Object type = Helpers.add(Helpers.add(fromAccountId, "-to-"), toAccountId); |
| 7707 | type = this.safeString(parameters, "type", type); |
| 7708 | Helpers.addElementToObject(request, "type", type); |
| 7709 | response = (this.spotPrivatePostV1FuturesTransfer(this.extend(request, parameters))).join(); |
| 7710 | } else if (Helpers.isTrue(Helpers.isTrue(fromSpot) && Helpers.isTrue(toCross))) |
| 7711 | { |
| 7712 | response = (this.privatePostCrossMarginTransferIn(this.extend(request, parameters))).join(); |
| 7713 | } else if (Helpers.isTrue(Helpers.isTrue(fromCross) && Helpers.isTrue(toSpot))) |
| 7714 | { |
| 7715 | response = (this.privatePostCrossMarginTransferOut(this.extend(request, parameters))).join(); |
| 7716 | } else if (Helpers.isTrue(Helpers.isTrue(fromSpot) && Helpers.isTrue(toIsolated))) |
| 7717 | { |
| 7718 | Helpers.addElementToObject(request, "symbol", toAccountId); |
| 7719 | response = (this.privatePostDwTransferInMargin(this.extend(request, parameters))).join(); |
| 7720 | } else if (Helpers.isTrue(Helpers.isTrue(fromIsolated) && Helpers.isTrue(toSpot))) |
| 7721 | { |
| 7722 | Helpers.addElementToObject(request, "symbol", fromAccountId); |
| 7723 | response = (this.privatePostDwTransferOutMargin(this.extend(request, parameters))).join(); |
| 7724 | } else |
| 7725 | { |
| 7726 | if (Helpers.isTrue(Helpers.isEqual(subType, "linear"))) |
| 7727 | { |
| 7728 | if (Helpers.isTrue(Helpers.isTrue((Helpers.isEqual(fromAccountId, "swap"))) || Helpers.isTrue((Helpers.isEqual(fromAccount, "linear-swap"))))) |
| 7729 | { |
| 7730 | fromAccountId = "linear-swap"; |
| 7731 | } else |
nothing calls this directly
no test coverage detected