/// <summary> /// bithumb 회원 KRW 출금 신청 /// </summary> /// <param name="currency_name">quote coin name</param> /// <param name="bank_name">은행코드_은행명</param> /// <param name="account">출금계좌번호</param> /// <param name="amount">출금 금액</param> /// <param name="args">Add additional attributes for each exchange</param> /// <returns></returns> public override async ValueTask <Transfer> FiatWithdraw(string currency_name, string bank_name, string account, decimal amount, Dictionary <string, object> args = null) { var _result = new Transfer(); var _currency_id = await publicApi.LoadCurrencyId(currency_name); if (_currency_id.success == true) { privateClient.ExchangeInfo.ApiCallWait(TradeType.Private); var _params = new Dictionary <string, object>(); { _params.Add("bank", bank_name); _params.Add("account", account); _params.Add("price", amount); privateClient.MergeParamsAndArgs(_params, args); } var _json_value = await privateClient.CallApiPost1Async($"/trade/krw_withdrawal", _params); #if RAWJSON _result.rawJson = _json_value.Content; #endif var _json_result = privateClient.GetResponseMessage(_json_value.Response); if (_json_result.success == true) { var _json_data = privateClient.DeserializeObject <BTransfer>(_json_value.Content); if (_json_data.success == true) { var _withdraw = new BTransferItem { transferId = privateClient.GenerateNonceString(16), transactionId = privateClient.GenerateNonceString(16), timestamp = CUnixTime.NowMilli, transactionType = TransactionType.Withdraw, currency = currency_name, toAddress = bank_name, toTag = account, amount = amount, fee = 0, confirmations = 0, isCompleted = _json_data.success }; _result.result = _withdraw; } else { _json_result.SetResult(_json_data); } } _result.SetResult(_json_result); } else { _result.SetResult(_currency_id); } return(_result); }
/// <summary> /// bithumb 회원 Currency 출금 /// </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: [destination]</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 _currency_id = await publicApi.LoadCurrencyId(currency_name); if (_currency_id.success == true) { privateClient.ExchangeInfo.ApiCallWait(TradeType.Private); var _params = new Dictionary <string, object>(); { _params.Add("currency", _currency_id.result); _params.Add("units", quantity); _params.Add("address", address); if (args != null) { foreach (var _a in args) { if (_params.ContainsKey(_a.Key) == true) { _params.Remove(_a.Key); } _params.Add(_a.Key, _a.Value); } } } var _json_value = await privateClient.CallApiPost1Async($"/trade/btc_withdrawal", _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 <BTransfer>(_json_value.Content); if (_json_data.success == true) { var _withdraw = new BTransferItem { transferId = privateClient.GenerateNonceString(16), 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.SetResult(_json_data); } } _result.SetResult(_json_result); } else { _result.SetResult(_currency_id); } return(_result); }