/// <summary> /// Withdraw /// </summary> /// <param name="currency_name">base coin or quote coin name</param> /// <param name="address">coin address for send</param> /// <param name="tag">Secondary address identifier for coins like XRP,XMR etc.</param> /// <param name="quantity">amount of coin</param> /// <param name="args">Add additional attributes for each exchange: [chargefee]</param> /// <returns></returns> public override async Task <Transfer> CoinWithdraw(string currency_name, string address, string tag, decimal quantity, Dictionary <string, object> args = null) { var _result = new Transfer(); var _market = await publicApi.LoadMarket(_result.MakeMarketId(currency_name, "USDT")); if (_market.success == true) { privateClient.ExchangeInfo.ApiCallWait(TradeType.Private); var _params = new Dictionary <string, object>(); { _params.Add("symbol", _market.result.symbol); _params.Add("withdraw_amount", quantity); _params.Add("withdraw_address", address); _params.Add("target", "address"); // or 'okcn', 'okcom', 'okex' _params.Add("trade_pwd", privateClient.UserPassword); privateClient.MergeParamsAndArgs(_params, args); } var _json_value = await privateClient.CallApiPost1Async("/withdraw.do", _params); #if DEBUG _result.rawJson = _json_value.Content; #endif var _json_result = privateClient.GetResponseMessage(_json_value.Response); if (_json_result.success == true) { var _json_data = privateClient.DeserializeObject <OTransfer>(_json_value.Content); if (_json_data.success == true) { var _withdraw = new OTransferItem { transferId = _json_data.transferId, transactionId = privateClient.GenerateNonceString(16), timestamp = CUnixTime.NowMilli, transactionType = TransactionType.Withdraw, currency = currency_name, toAddress = address, toTag = tag, amount = quantity, fee = 0, confirmations = 0, isCompleted = _json_data.success }; _result.result = _withdraw; } else { _json_result.SetFailure(); } } _result.SetResult(_json_result); } else { _result.SetResult(_market); } return(_result); }
/// <summary> /// Withdrawal Cancellation Request /// </summary> /// <param name="currency_name">base coin or quote coin name</param> /// <param name="transferId">The unique id of the withdrawal request specified</param> /// <param name="args">Add additional attributes for each exchange</param> /// <returns></returns> public override async Task <Transfer> CancelCoinWithdraw(string currency_name, string transferId, Dictionary <string, object> args = null) { var _result = new Transfer(); var _market = await publicApi.LoadMarket(_result.MakeMarketId(currency_name, "USDT")); if (_market.success == true) { privateClient.ExchangeInfo.ApiCallWait(TradeType.Private); var _params = new Dictionary <string, object>(); { _params.Add("symbol", _market.result.symbol); // symbol Pairs like : ltc_btc etc_btc _params.Add("withdraw_id", transferId); privateClient.MergeParamsAndArgs(_params, args); } var _json_value = await privateClient.CallApiPost1Async("/cancel_withdraw.do", _params); #if DEBUG _result.rawJson = _json_value.Content; #endif var _json_result = privateClient.GetResponseMessage(_json_value.Response); if (_json_result.success == true) { var _json_data = privateClient.DeserializeObject <OTransfer>(_json_value.Content); if (_json_data.success == true) { var _transfer = new OTransferItem { transferId = _json_data.transferId, timestamp = CUnixTime.NowMilli, transactionType = TransactionType.Withdraw, currency = currency_name, toAddress = "", toTag = "", amount = 0.0m, isCompleted = _json_data.success }; _result.result = _transfer; } else { _json_result.SetFailure("Unknown reference id"); } } _result.SetResult(_json_result); } else { _result.SetResult(_market); } return(_result); }