/// <summary>
        /// This endpoint supports the purchase and redemption of PiggyBank.
        /// </summary>
        /// <param name="currency">Token symbol, e.g., 'BTC'</param>
        /// <param name="amount">purchase/redempt amount</param>
        /// <param name="side">action type. Purchase: purchase shares of PiggyBank, Redempt: redempt shares of PiggyBank</param>
        /// <param name="ct">Cancellation Token</param>
        /// <returns></returns>
        public async Task <WebCallResult <OkexFundingPiggyBank> > Funding_PiggyBank_Async(string currency, decimal amount, OkexFundingPiggyBankActionSide side, CancellationToken ct = default)
        {
            currency = currency.ValidateCurrency();
            var parameters = new Dictionary <string, object>
            {
                { "currency", currency },
                { "amount", amount },
                { "side", JsonConvert.SerializeObject(side, new FundingPiggyBankActionSideConverter(false)) },
            };

            return(await SendRequest <OkexFundingPiggyBank>(GetUrl(Endpoints_Funding_PiggyBank, currency), HttpMethod.Post, ct, parameters, signed : true).ConfigureAwait(false));
        }
 /// <summary>
 /// This endpoint supports the purchase and redemption of PiggyBank.
 /// Limit: 6 requests per second
 /// </summary>
 /// <param name="currency">Token symbol, e.g., 'BTC'</param>
 /// <param name="amount">purchase/redempt amount</param>
 /// <param name="side">action type. Purchase: purchase shares of PiggyBank, Redempt: redempt shares of PiggyBank</param>
 /// <param name="ct">Cancellation Token</param>
 /// <returns></returns>
 public WebCallResult <OkexFundingPiggyBank> Funding_PiggyBank(string currency, decimal amount, OkexFundingPiggyBankActionSide side, CancellationToken ct = default) => Funding_PiggyBank_Async(currency, amount, side, ct).Result;