Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        /// <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);
        }