
    eiP                     \    d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	  G d dee          Z
dS )    )kucoin)ImplicitAPI)AnyStringsTransferEntry)
BadRequestc                   \     e Zd Zdef fdZdi fdefdZi fdededed	ede	f
d
Z
d Z xZS )kucoinfuturesreturnc                     |                      t          t          |                                           ddddddd ddddd dd	g d
ddddddd          S )Nr
   zKuCoin Futureszdhttps://user-images.githubusercontent.com/1294454/147508995-9e35030a-d046-43a1-a006-6fabd981b554.jpgzhttps://futures.kucoin.com/z(https://futures.kucoin.com/?rcode=E5wkqe)logowwwreferralFT)CORSspotmarginswapfutureoptionfetchBidsAsks)r   r   contract)typesfetchTickersFeesr   r   )fetchMarketsdefaultTypedefaultAccountTypeuta)idnameurlshasoptions)deep_extendsuperr
   describe)self	__class__s    ^/var/www/html/volatility/venv/lib/python3.11/site-packages/ccxt/async_support/kucoinfutures.pyr%   zkucoinfutures.describe   s    mT : : C C E E!$~4F  !%  <;;(-! !  &&0 #H
 H
   	    Nsymbolsc                 n   K   ddi}|                      ||                     ||                     d{V S )a  
        fetches the bid and ask price and volume for multiple markets
        :param str[] [symbols]: unified symbols of the markets to fetch the bids and asks for, all markets are returned if not assigned
        :param dict [params]: extra parameters specific to the exchange API endpoint
        :returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/?id=ticker-structure>`
        methodfuturesPublicGetAllTickersN)fetch_tickersextend)r&   r*   paramsrequests       r(   fetch_bids_askszkucoinfutures.fetch_bids_asks+   sM       2
 ''Wf1M1MNNNNNNNNNr)   codeamountfromAccount	toAccountc                   K   |                                   d{V  |                     |          }|                     ||          }|                     |d          |d}|                     |          }	d}
|	dk    s|	dk    r5|	|d<   |                     |                     ||                     d{V }
nq|dk    s|dk    s|d	k    rH|                     |          |d
<   |                     |                     ||                     d{V }
nt          | j	        dz             | 
                    |
di           }|                     |                     ||          |                     |          ||d          S )a  
        transfer currency internally between wallets on the same account
        :param str code: unified currency code
        :param float amount: amount to transfer
        :param str fromAccount: account to transfer from
        :param str toAccount: account to transfer to
        :param dict [params]: extra parameters specific to the exchange API endpoint
        :returns dict: a `transfer structure <https://docs.ccxt.com/?id=transfer-structure>`
        Nr   )currencyr4   TRADEMAINrecAccountTyper   r   r   payAccountTypezR transfer() only supports transfers between future/swap, spot and funding accountsdata)r4   r5   r6   )load_marketsr8   currency_to_precisionsafe_stringparse_transfer_typefuturesPrivatePostTransferOutr/   futuresPrivatePostTransferInr   r   	safe_dictparse_transferparse_number)r&   r3   r4   r5   r6   r0   r8   amountToPrecisionr1   toAccountStringresponser=   s               r(   transferzkucoinfutures.transfer7   s      !!!!!!!!!==&& 66tVDD((488'
 
 229==g%%F)B)B(7G$%!??GU[@\@\]]]]]]]]HH2 (""i6&9&9Y*=T=T(,(@(@(M(MG$%!>>t{{7TZ?[?[\\\\\\\\HH TW'{{|||~~h33{{4..tX>>''(9::&"A
 A
   	r)   c                 :    ddd}|                      |||          S )Nr9   r:   )r   funding)safe_string_upper)r&   transferTypetransferTypess      r(   rA   z!kucoinfutures.parse_transfer_typey   s.    
 
 %%m\<PPPr)   )__name__
__module____qualname__r   r%   r   r2   strfloatr   rJ   rA   __classcell__)r'   s   @r(   r
   r
      s        #      : 8<B 
O 
OW 
O 
O 
O 
O ac @ @3 @ @C @TW @gt @ @ @ @DQ Q Q Q Q Q Qr)   r
   N)ccxt.async_support.kucoinr   ccxt.abstract.kucoinfuturesr   ccxt.base.typesr   r   r   ccxt.base.errorsr   r
    r)   r(   <module>r[      s    - , , , , , 3 3 3 3 3 3 7 7 7 7 7 7 7 7 7 7 ' ' ' ' ' 'rQ rQ rQ rQ rQFK rQ rQ rQ rQ rQr)   