/// <summary>
        /// This endpoint supports the withdrawal of tokens
        /// Limit: 20 requests per 2 seconds
        /// </summary>
        /// <param name="currency">Token symbol, e.g., 'BTC'</param>
        /// <param name="amount">Withdrawal amount</param>
        /// <param name="destination">withdrawal address(3:OKEx 4:others 68.CoinAll )</param>
        /// <param name="toAddress">Verified digital currency address, email or mobile number. Some digital currency addresses are formatted as 'address+tag', e.g. 'ARDOR-7JF3-8F2E-QUWZ-CAN7F:123456'</param>
        /// <param name="fundPassword">Fund password</param>
        /// <param name="fee">Network transaction fee. Please refer to the withdrawal fees section below for recommended fee amount</param>
        /// <param name="ct">Cancellation Token</param>
        /// <returns></returns>
        public virtual async Task <WebCallResult <IEnumerable <OkexFundingWithdrawalRequest> > > Funding_Withdrawal_Async(string currency, decimal amount, OkexFundingWithdrawalDestination destination, string toAddress, string fundPassword, decimal fee, CancellationToken ct = default)
        {
            currency = currency.ValidateCurrency();

            var parameters = new Dictionary <string, object>
            {
                { "currency", currency },
                { "amount", amount.ToString(ci) },
                { "destination", JsonConvert.SerializeObject(destination, new FundingWithdrawalDestinationConverter(false)) },
                { "to_address", toAddress },
                { "trade_pwd", fundPassword },
                { "fee", fee.ToString(ci) },
            };

            return(await SendRequest <IEnumerable <OkexFundingWithdrawalRequest> >(GetUrl(Endpoints_Funding_Withdrawal), HttpMethod.Post, ct, parameters, signed : true).ConfigureAwait(false));
        }
 /// <summary>
 /// This endpoint supports the withdrawal of tokens
 /// Limit: 20 requests per 2 seconds
 /// </summary>
 /// <param name="currency">Token symbol, e.g., 'BTC'</param>
 /// <param name="amount">Withdrawal amount</param>
 /// <param name="destination">withdrawal address(3:OKEx 4:others 68.CoinAll )</param>
 /// <param name="toAddress">Verified digital currency address, email or mobile number. Some digital currency addresses are formatted as 'address+tag', e.g. 'ARDOR-7JF3-8F2E-QUWZ-CAN7F:123456'</param>
 /// <param name="fundPassword">Fund password</param>
 /// <param name="fee">Network transaction fee. Please refer to the withdrawal fees section below for recommended fee amount</param>
 /// <param name="ct">Cancellation Token</param>
 /// <returns></returns>
 public virtual WebCallResult <IEnumerable <OkexFundingWithdrawalRequest> > Funding_Withdrawal(string currency, decimal amount, OkexFundingWithdrawalDestination destination, string toAddress, string fundPassword, decimal fee, CancellationToken ct = default) => Funding_Withdrawal_Async(currency, amount, destination, toAddress, fundPassword, fee, ct).Result;