
    E#iS                    \   S SK Jr  S SKJr  S SKrS SKrS SKJrJrJ	r	J
r
JrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJr  S SKJr  S SKJr  S SKJr  S SKJ r   S S	KJ!r!  S S
KJ"r"  S SKJ#r#  S SKJ$r$  S SKJ%r%  S SKJ&r&  S SKJ'r'  S SKJ(r(  S SKJ)r)  S SKJ*r*  S SK+J,r,  S SK-J.r.   " S S\\5      r/g)    )Exchange)ImplicitAPIN)Any
CurrenciesCurrencyDepositAddressIntLedgerEntryLeverageTierLeverageTiersMarginModificationMarketNumOrder	OrderSide	OrderTypePositionStrTickersFundingRateTransactionTransferEntry)List)ExchangeError)AuthenticationError)PermissionDenied)ArgumentsRequired)
BadRequest)	BadSymbol)InsufficientFunds)InvalidOrder)NotSupported)NetworkError)RateLimitExceeded)OnMaintenance)RequestTimeout)	TICK_SIZE)Precisec                     ^  \ rS rSrS\4U 4S jjrS r0 4S\4S jjr0 4S\	4S jjr
0 4S\\   4S jjr0 4S jr0 4S	 jrS
 rS\S\4S jrSSS0 4S\S\S\S\4S jjrScS\S\4S jjrS0 4S\S\4S jjr0 4S\4S jjrS0 4S\\   S\4S jjrS0 4S\\   4S jjrScS jrSS0 4S\S\S\4S jjrSSS0 4S\S\S\4S jjrScS jr0 4S jr S r!0 4S\S \"4S! jjr#S0 4S\S"\$S#\%S$\"S%\&4
S& jjr'S0 4S\4S' jjr(S0 4S\4S( jjr)S0 4S)\S\4S* jjr*SSS0 4S\S\S\4S+ jjr+SSS0 4S\S\S\4S, jjr,SSS0 4S\S\S\4S- jjr-SSS0 4S\S\S\4S. jjr.SSS0 4S\S\S\4S/ jjr/S0 4S)\S\4S0 jjr0S0 4S\4S1 jjr1S0 4S2\\   S\S\\2   4S3 jjr3ScS4 jr4S5 r5SSS0 4S6\6S\S\S\\7   4S7 jjr8ScS\74S8 jjr9S9 r:0 4S6\S\;4S: jjr<ScS\;4S; jjr=SSS0 4S6\6S\S\4S< jjr>SSS0 4S6\6S\S\4S= jjr?S0 4S6\S$\"S>\S?\6S\@4
S@ jjrAScSA\SB\BS\@4SC jjrCSD rDS0 4SE\ES\4SF jjrF0 4S\S$\"4SG jjrG0 4S\S$\"4SH jjrH0 4S\S\I4SI jjrJScS\I4SJ jjrKS0 4S\\   S\L4SK jjrMSdS\L4SL jjrN0 4S\S\\O   4SM jjrPScS\\O   4SN jjrQSSS0 4S\S\S\4SO jjrR0 4S\S\S4SP jjrT0 4S\S\S4SQ jjrUScS\S4SR jjrVSSS0 4S\6S\S\4SS jjrWScST jrX0 4S\4SU jjrYS0 4S\\   S\\Z   4SV jjr[ScSW jr\0 4S6\S$\"SX\SY\S\]4
SZ jjr^ScS[ jr_S0 4S\\S\64S] jjr`SS0 4S)\S\S"\$S#\%S$\&S%\&S\24S^ jjraS_ rb/ S`0 SS4Sa jrcSbrdU =re$ )ext   returnc                   > U R                  [        [        U ]  5       0 SS_SS_SS/_SS_S	S
_SS_SS_S0 SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_S S_0 S!S_S"S_S#S_S$S_S%S_S&S_S'S_S(S_S)S_S*S_S+S_S,S_S-S_S.S_S/S_S0S_S1S_E0 S2S_S3S_S4S_S5S_S6S_S7S_S8S_S9S_S:S_S;S_S<S_S=S_S>S_S?S_S@S_SAS_SBS_E0 SCS_SDS_SES_SFS_SGS_SHS_SIS_SJS_SKS_SLS_SMS_SNS_SOS_SPS_SQS_SRS_SSS_E0 STS_SUS_SVS_SWS_SXS_SYS_SZS_S[S_S\S_S]S_S^S_S_S_S`S_SaS_SbS_ScS_SdS_ESSSSSSSSe.E_Sf[        _SgShSiSjSkSlSm.SnSoSpSq/SrSs._StSuSvSwSvSvSvSvSvSvSvSvSvSvSx.0Su0 SySv_SzSv_S{Sv_S|Sv_S}Sv_S~Sv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSSvS.E0Su0 SySv_SzSv_S{Sv_S|Sv_S}Sv_S~Sv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSSvS.E0S.SvSvSvSvSvSvSvSvSvSvSvS.SSwSvSvSvS.SvSvSvS.SSv0S.0 SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv0E0 SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SvSvSvS.ES.0 SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv0E0 SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SSv_SvSvS.ES.SvSvS.SvSvS.SSv0SSv0S.Sm.S._SSSU R                  S5      U R                  S5      U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      //U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      //S.S.SSU R                  S5      U R                  S5      U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      //U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      /U R                  S5      U R                  S5      //S.S.S._S0 S[        _S[        _S[        _S[        _S[        _S[        _S[        _S[        _S[        _S[        _S[        _GS [        _GS[        _GS[        _GS[        _GS[        _GS[        _0 GS[        _GS[        _GS[        _GS	[        _GS
[        _GS[        _GS[        _GS[        _GS[        _GS[        _GS[        _GS[        _GS[        _GS[        _GS[        _GS[        _GS[        _E0 GS[        _GS[        _GS[        _GS[        _GS[        _GS[        _GS[        _GS[        _GS[        _GS [        _GS![        _GS"[        _GS#[        _GS$[        _GS%[        _GS&[        _GS'[        _E0 GS([        _GS)[        _GS*[        _GS+[        _GS,[        _GS-[        _GS.[        _GS/[        _GS0[        _GS1[        _GS2[        _GS3[        _GS4[        _GS5[        _GS6[        _GS7[        _GS8[        _E0 GS9[        _GS:[        _GS;[        _GS<[        _GS=[        _GS>[        _GS?[        _GS@[        _GSA[        _GSB[        _GSC[        _GSD[        _GSE[        _GSF[        _GSG[        _GSH[        _GSI[        _E0 GSJ[        _GSK[        _GSL[        _GSM[        _GSN[        _GSO[        _GSP[        _GSQ[        _GSR[        _GSS[        _GST[        _GSU[        _GSV[        _GSW[        _GSX[         _GSY[        _GSZ[        _E[        [        [        [        [        [        GS[.E[        [        [        GS\.GS]._GS^GS_GS`GSaGSbGScGSdGSeGSfGSgGShGSiGSjGSkGSl._GSm0 _GSnSGSoGSpGSqGSrGSsGSsGSsGStGSu.0 GSvGSw_GSxGSy_GSzGS{_GS|GS}_GS~GSw_GSGSy_GSGS{_GSGS_GSGS_GSGS_GSGS_SGS_GSGS_GSGS_GSGS_GSGS_GSGS_0 GSGS_GSGS_GSGS_GSGS_GSGS_SGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_E0 GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_EGSGSGSGSGSGSGSGSGS.E0 GSwGSv_GSyGSx_GS{GSz_GS}GS|_GSGS_GSS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSS_0 GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_E0 GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_GSGS_EGSGSGSGSGSGS.ESSGS._GSSSSSS SSS SSSSGS.SSSSSSSGS.S SSGSGSSSSGS.SSSSSSGS.SSSSSSSGS.SSGSGSSSSSSGS.	SSGSSvGSSSSSSGS.
GSGS0GS.	GSGS0GSSSSSGS.SSGS.S S GS.GS.GSGS0GSGS0GS.GSGS0GSGS0GS.GS._5      $ (  Nidr*   nameXT	countriesSC	rateLimitd   versionv4	certifiedFproThasCORSspotmarginswapfutureoption	addMarginborrowMargincancelAllOrderscancelOrdercancelOrderscreateDepositAddresscreateMarketBuyOrderWithCostcreateMarketSellOrderWithCostcreateOrdercreatePostOnlyOrdercreateReduceOnlyOrder	editOrderfetchAccountsfetchBalancefetchBidsAsksfetchBorrowInterestfetchBorrowRatefetchBorrowRateHistoriesfetchBorrowRateHistoryfetchBorrowRatesPerSymbolfetchCanceledOrdersfetchClosedOrdersfetchCurrenciesfetchDepositfetchDepositAddressfetchDepositAddressesfetchDepositAddressesByNetworkfetchDepositsfetchDepositWithdrawalsfetchDepositWithdrawFeefetchDepositWithdrawFeesfetchFundingHistoryfetchFundingIntervalfetchFundingIntervalsfetchFundingRatefetchFundingRateHistoryfetchFundingRatesfetchIndexOHLCVfetchL3OrderBookfetchLedgerfetchLedgerEntryfetchLeveragefetchLeverageTiersfetchMarketLeverageTiersfetchMarketsfetchMarkOHLCVfetchMyTrades
fetchOHLCVfetchOpenInterestfetchOpenInterestHistoryfetchOpenOrders
fetchOrderfetchOrderBookfetchOrderBooksfetchOrdersfetchOrdersByStatusfetchOrderTradesfetchPositionfetchPositionsfetchPremiumIndexOHLCVfetchSettlementHistoryfetchStatusfetchTickerfetchTickers	fetchTimefetchTradesfetchTradingFeefetchTradingFeesfetchTradingLimitsfetchTransactionFeefetchTransactionFeesfetchTransactionsfetchTransferfetchTransfersfetchWithdrawalfetchWithdrawalsfetchWithdrawalWhitelistreduceMarginrepayMargin)setLeverage	setMarginsetMarginModesetPositionModesignIntransferwithdrawprecisionModeurlszehttps://user-images.githubusercontent.com/14319357/232636712-466df2fc-560a-4ca4-aab2-b1d954a58e24.jpgzhttps://sapi.xt.comzhttps://fapi.xt.comzhttps://dapi.xt.comzhttps://api.xt.com)r;   linearinverseuserzhttps://xt.comz3https://www.xt.com/en/accounts/register?ref=9PTM9VWzhttps://doc.xt.com/z https://github.com/xtpub/api-doczhttps://www.xt.com/en/rate)logoapiwwwreferraldocfeesr   get   
   )
currenciesdepthklinesymboltickerzticker/bookzticker/pricez
ticker/24htimeztrade/historyztrade/recentzwallet/support/currencyz-future/market/v1/public/contract/risk-balancez.future/market/v1/public/contract/open-interestz/future/market/v1/public/leverage/bracket/detailz-future/market/v1/public/leverage/bracket/listz$future/market/v1/public/q/agg-tickerz%future/market/v1/public/q/agg-tickerszfuture/market/v1/public/q/dealzfuture/market/v1/public/q/depthz&future/market/v1/public/q/funding-ratez-future/market/v1/public/q/funding-rate-recordz%future/market/v1/public/q/index-pricezfuture/market/v1/public/q/klinez$future/market/v1/public/q/mark-pricez,future/market/v1/public/q/symbol-index-pricez+future/market/v1/public/q/symbol-mark-pricez future/market/v1/public/q/tickerz!future/market/v1/public/q/tickersgp=
ף
@)z$future/market/v1/public/symbol/coinsz%future/market/v1/public/symbol/detailz#future/market/v1/public/symbol/list)r;   r   r   )balancebalancesbatch-orderzdeposit/addresszdeposit/historyzhistory-order
open-orderorderorder/{orderId}tradezwithdraw/historyg?)r   r   zbalance/transferzbalance/account/transferws-token)r   r   r   r   )r   postdeleteputz#future/trade/v1/entrust/plan-detailz!future/trade/v1/entrust/plan-listz)future/trade/v1/entrust/plan-list-historyz%future/trade/v1/entrust/profit-detailz#future/trade/v1/entrust/profit-listzfuture/trade/v1/order/detailzfuture/trade/v1/order/listz"future/trade/v1/order/list-historyz future/trade/v1/order/trade-listzfuture/user/v1/account/infozfuture/user/v1/balance/billszfuture/user/v1/balance/detailz(future/user/v1/balance/funding-rate-listzfuture/user/v1/balance/listzfuture/user/v1/position/adlzfuture/user/v1/position/listz#future/user/v1/user/collection/listzfuture/user/v1/user/listen-keyz'future/trade/v1/entrust/cancel-all-planz.future/trade/v1/entrust/cancel-all-profit-stopz#future/trade/v1/entrust/cancel-planz*future/trade/v1/entrust/cancel-profit-stopz#future/trade/v1/entrust/create-planz%future/trade/v1/entrust/create-profitz*future/trade/v1/entrust/update-profit-stopzfuture/trade/v1/order/cancelz future/trade/v1/order/cancel-allzfuture/trade/v1/order/createz"future/trade/v1/order/create-batchzfuture/trade/v1/order/updatezfuture/user/v1/account/openz'future/user/v1/position/adjust-leveragez#future/user/v1/position/auto-marginz!future/user/v1/position/close-allzfuture/user/v1/position/margin)"future/user/v1/user/collection/add%future/user/v1/user/collection/cancelz#future/user/v1/position/change-type)r   r   )r   r   )zuser/accountuser/account/api-keyr   zuser/account/{apiKeyId})r   r   r   r   )publicprivater   z0.00205000z0.001810000z0.001620000z0.001450000z0.0012150000z0.0010300000z0.0008600000z0.00071200000z0.00062500000z0.00056000000z0.000415000000z0.000330000000z0.0002)makertaker)	tierBased
percentager   r   tiers200000z0.000381000000z0.000365000000z0.0003410000000z0.00032z0.00028z0.0002450000000	100000000z0.00016	300000000z0.00012	500000000z0.00008z0.000588z0.00057z0.00054z0.00051z0.00048z0.00045z0.00033)r;   contract
exceptions400404429500502503AUTH_001AUTH_002AUTH_003AUTH_004AUTH_005AUTH_006AUTH_007AUTH_101AUTH_102AUTH_103AUTH_104AUTH_105AUTH_106
SYMBOL_001
SYMBOL_002
SYMBOL_003
SYMBOL_004
SYMBOL_005	ORDER_001	ORDER_002	ORDER_003	ORDER_004	ORDER_005	ORDER_006	ORDER_007ORDER_F0101ORDER_F0102ORDER_F0103ORDER_F0201ORDER_F0202ORDER_F0203ORDER_F0301ORDER_F0401ORDER_F0501ORDER_F0502ORDER_F0601
COMMON_001
COMMON_002
COMMON_003CURRENCY_001DEPOSIT_001DEPOSIT_002DEPOSIT_003DEPOSIT_004DEPOSIT_005DEPOSIT_006DEPOSIT_007DEPOSIT_008WITHDRAW_001WITHDRAW_002WITHDRAW_003WITHDRAW_004WITHDRAW_005WITHDRAW_006WITHDRAW_008WITHDRAW_009WITHDRAW_010WITHDRAW_011WITHDRAW_012WITHDRAW_013WITHDRAW_014WITHDRAW_015WITHDRAW_016WITHDRAW_017WITHDRAW_018WITHDRAW_019WITHDRAW_020WITHDRAW_021WITHDRAW_022WITHDRAW_023WITHDRAW_024WITHDRAW_025FUND_001FUND_002FUND_003FUND_004FUND_005FUND_014FUND_015FUND_016FUND_017FUND_018FUND_019FUND_020FUND_021FUND_022FUND_044TRANSFER_001TRANSFER_002TRANSFER_003TRANSFER_004TRANSFER_005TRANSFER_006TRANSFER_007TRANSFER_008TRANSFER_009)TRANSFER_010TRANSFER_011TRANSFER_012"symbol_not_support_trading_via_api"open_order_min_nominal_value_limitinsufficient_balance)z+The symbol does not support trading via APIz4Exceeds the minimum notional value of a single orderzinsufficient balance)exactbroad
timeframes1m5m15m30m1h2h4h6h8h1d3d1w1M)rE  rF  rG  rH  rI  rJ  rK  rL  rM  rN  rO  rP  rQ  commonCurrenciesoptionsr   SPOTLEVERFINANCE	FUTURES_U	FUTURES_C)r;   leveragefinancer=   r>   r   r   ERC20EthereumTRC20TronBEP20zBNB Smart ChainBEP2zBNB-BEP2ETHTRONBNBAVAXzAVAX C-ChainGALzGAL(FT)ALEOz	ALEO(IOU)BTCBitcoinzXT Smart ChainETCzEthereum ClassicMATICPolygonLTCLitecoinBTS	BitSharesXRPRippleXLMzStellar NetworkADACardanoXWCzXWC-XWCDOGEdogecoinDCRDecredSiacoinXTZTezosZECZcashXMRMoneroLSKLiskATOMCosmosONTOntologyALGOAlgorandSOLzSOL-SOLDOTPolkadotZENHorizenFILFilecoinCHZchzICPzInternet ComputerKSMKusamaLUNATerraTHETAzTheta TokenFTMFantomVETVeChainNEARzNEAR ProtocolONEHarmonyKLAYKlaytnARArweaveCELTOKTEGLDzElrond eGoldCROz
CRO-CRONOSBCHzBitcoin CashGLMRMoonbeamLOOPzLOOP-LRCzREI NetworkzAstar NetworkOPTMMT-MMTTBC-TBCOMAX-OMAX CHAIN
GMMT chainZilliqa)REIASTROPMMTTBCOMAXGMMTZILr  r  r  r  r  r  r  r  )r  r  r  r  r  )adjustForTimeDifferencetimeDifferenceaccountsByIdnetworksnetworksById!createMarketBuyOrderRequiresPrice
recvWindowfeatures)IOCFOKPOGTD)
marginModetriggerPricetriggerDirectiontriggerPriceTypestopLossPricetakeProfitPriceattachedStopLossTakeProfittimeInForcehedgedtrailingrY  marketBuyByCostmarketBuyRequiresPriceselfTradePreventionicebergi )r  limitdaysBack	untilDays
marketTypesubTypesymbolRequired)r  triggerr  r  r  r  )r  r  r  r  r  r  r  )	r  r  r  r  r  r  r  r  r  )
r  r  r  daysBackCanceledr  r  r  r  r  r  r    )	sandboxrH   createOrdersrn   rs   rr   rv   rU   ro   extendsdefault)lastmarkindex)r  r  r  r  )r  r  )r  rH   rn   forDerivatives)r   r   )r  r;   r  r=   r>   )deep_extendsuperr*   describer'   parse_numberr#   r   r$   r%   r   r   r   r!   r    r   r&   )self	__class__s    O/home/james-whalen/.local/lib/python3.13/site-packages/ccxt/async_support/xt.pyr  xt.describe   s   b$ 8 : P=
$P=
DP=
 $P=
 P=
 tP=
 P=
 4P=
  ]]] $] 	]
 $] %] T] ] "4] t] ] '] /] 0] t]  &u!]" (#]$ T%]&  ']( )]*  +], &u-]. "5/]0 +E1]2 )%3]4 ,U5]6 &t7]8 $T9]: "4;]< =]> &t?]@ (A]B 1%C]D  E]F *5G]H *5I]J +EK]L &tM]N 'O]P (Q]R #DS]T *4U]V $UW]X "5Y]Z #E[]\ t]]^ #E_]`  a]b %dc]d +De]f g]h !%i]j  k]l dm]n $Uo]p +Eq]r "4s]t du]v !$w]x "5y]z t{]| &t}]~ #E]@  A]B !$C]D )%E]F )%G]H uI]J tK]L M]N TO]P tQ]R "5S]T #EU]V %eW]X &uY]Z '[]\ $U]]^  _]` !%a]b "5c]d #De]f +Eg]h i]j uk]l  $"!%#(  y]P=
T YUP=
V 1340	 (Q)6 5WP=
v  *+%'%&&'&'+,,-*+$%-.,-78 "   KQ La  Nq  LQ	 
 CA  DQ  =a  >q  Ea  LQ  DQ  >q  CA  KA  J1   ?! " @# $ EIEICD) 2   KQ La  Nq  LQ	 
 CA  DQ  =a  >q  Ea  LQ  DQ  >q  CA  KA  J1   ?! " @# $ EIEICD)  SAJ ()()+,/0/0-.*+%&/0%&01  &)(*0189()! ,-*+/0# .q 5> A1 ?  H  DQ	 
 B1  ;A  9!  A!  ?  :1  ;A  <Q  G  :1  :1   ;A! " B1# $ =a% (!Eq!La! B1! I!	!
 B1! DQ! I!! ;A! ?! ;A! A!! ;A! :1! Fq! B1!  @!!" =a#!$ CDEFCD)!++Z A1 ?  H  DQ	 
 B1  ;A  9!  A!  ?  :1  ;A  <Q  G  :1  :1   ;A! " B1# $ =a% (!Eq!La! B1! I!	!
 B1! DQ! I!! ;A! ?! ;A! A!! ;A! :1! Fq! B1!  @!!" =a#!$ CDEF'!+* Z -.45 
 -.45!
 3A  6q#mFGJwP=
L
 !%"&!..w7!..w7 "..s3T5F5Fw5OP!..v68I8I(8ST!..w79J9J89TU!..w79J9J89TU!..w79J9J89TU!..x8$:K:KH:UV!..x8$:K:KH:UV!..x8$:K:KH:UV!..y94;L;LX;VW!..y94;L;LX;VW!..y94;L;LX;VW!..z:D<M<Mh<WX!..z:D<M<Mh<WX"  "..s3T5F5Fw5OP!..v68I8I(8ST!..w79J9J89TU!..w79J9J89TU!..w79J9J89TU!..x8$:K:KH:UV!..x8$:K:KH:UV!..x8$:K:KH:UV!..y94;L;LX;VW!..y94;L;LX;VW!..y94;L;LX;VW!..z:D<M<Mh<WX!..z:D<M<Mh<WX"!%N "&"&!..x8!..x8 "..s3T5F5Fx5PQ!..x8$:K:KI:VW!..y94;L;LY;WX!..y94;L;LY;WX!..z:D<M<Mi<XY!..z:D<M<Mi<XY!..z:D<M<Mi<XY!..z:D<M<Mh<WX!..{;T=N=Ny=YZ!..{;T=N=Ny=YZ!..{;T=N=Ny=YZ" "..s3T5F5Fx5PQ!..x8$:K:KJ:WX!..y94;L;LY;WX!..y94;L;LY;WX!..z:D<M<Mi<XY!..z:D<M<Mi<XY!..z:D<M<Mi<XY!..z:D<M<Mi<XY!..{;T=N=Ny=YZ!..{;T=N=Ny=YZ!..{;T=N=Nx=XY"!OIM
P=
` m<m=m ,m =	m
 =m =m  3m  3m  3m  3m  3m  3m  3m  3m  3m   3!m"  3#m$  3%m&  0'm( !))m* !)+m, !)-m. !)/m0 !)1m2  3m4  !25m6  7m8  9m:  ;m<  =m>  !1?m@ "<AmB "<CmD "<EmF "<GmH "<ImJ "<KmL "<MmN "<OmP "<QmR "<SmT "<UmV !-WmX !-YmZ !*[m\ #J]m^ ":_m` "#3amb ":cmd ":emf ":gmh ":imj ":kml ":mmn #Jomp #Jqmr #$4smt #Jumv #Jwmx #Jymz #$4{m| #$4}m~ #Jm@ #$5AmB #$4CmD #$4EmF #JGmH #JImJ #JKmL #JMmN #JOmP #JQmR #$4SmT #$4UmV #JWmX #JYmZ #J[m\ #J]m^ 
_m`  1amb 
cmd emf  0gmh 
imj 
kml 
mmn 
omp 
qmr 
smt 
umv 
wmx 
ymz 
{m| #J}m~ #$5m@ #JAmB #$4CmD #$4EmF #$4GmH #NImJ #JKmL #JMmN %5$4$4:C:F,=Ym^ DMLX,=_taP=
J KP=
h iP=
j +0"#" '('))*!<Z<V< .< J	<
 :< F< ,< N< 9< K< 9< *< -< Y< :<  ;!<" 8#<$ ,%<& 9'<( 9)<* J+<, 8-<. )/<0 71<2 73<4 85<6 67<8 H9<: :;<< J=<> 9?<@ :A<B 9C<D :E<F 5G<H .I<J 8K<L GM<N ]O<P 8Q<R 9S<T OU<V 9W<X HY<Z )[<\ E]<^ N_<` <a<b >c<d Je<f Jg<h )+$$-($w<z9!9!G9! &w9! 	9!
 u9! %d9! '9! w9! 9!  9! e9! &u9! u9! u9! 9!  e!9!" t#9!$ U%9!& U'9!( e)9!* E+9!, f-9!. /9!0 19!2 u39!4 59!6 u79!8 99!: 5;9!< (=9!> e?9!@ VA9!B "7C9!D eE9!F uG9!H #FI9!J $VK9!L uM9!N fO9!P tQ9!R 6S9!T #FU9!V !%W9!X #EY9!Z [9!\ ]9!^ "5_9!` $Va9!b uc9!d  e9!f 4g9!h  %$'-"($q9!t 6:$IEkP=
v $&+(-,1,0).+06:#'#'"&#(	( #($)$)+/27/4#()$, %)&*!$$*%+&*#'*/& ',#'$)&*#'*/# '+!$#'$)&*#'*/( '+!$$*%+#'$)&*#'*/
$ '+!$$*,-%+#'$)&*#'*/*  #UM^ y  )(, %)$(%)-
 *.+/
$ %)%)&#( "#3 "#3 	 "#3 "#3 	YtwP=
 P P	    c                 B    U R                  5       U R                  S   -
  $ )Nr  )millisecondsrS  )r  s    r  noncext.nonce2  s       "T\\2B%CCCr  c                    #    U R                  U5      I Sh  vN nU R                  US5      nU R                  US5      $  N(7f)a  
fetches the current integer timestamp in milliseconds from the xt server

https://doc.xt.com/#market1serverInfo

:param dict params: extra parameters specific to the xt api endpoint
:returns int: the current integer timestamp in milliseconds from the xt server
Nresult
serverTime)publicSpotGetTime
safe_valuesafe_integer)r  paramsresponsedatas       r  
fetch_timext.fetch_time5  sD      //77 x2  |44 8s   AA )Ac                   #    U R                  U5      U R                  U5      /n[        R                  " U6 I Sh  vN u  p4U R	                  US/ 5      nU R	                  US/ 5      nU R	                  US/ 5      nU R                  US5      n0 n	[        S[        U5      5       GH  n
Xz   nU R                  US5      nU R                  U5      nU R	                  X0 5      nU R	                  US/ 5      n0 n[        S[        U5      5       H  nUU   nU R                  US5      nU R                  UU5      nUUUSSU R                  US5      SU R                  US	5      U R                  US
5      SSS.U R                  US5      SS.SSS.S.S.
UU'   M     U R                  US5      nSnUS:X  a  SnOSnU R                  UUUU R                  US5      SSU R                  U R                  U R                  US5      5      5      U R                  US5      S:H  U R                  US5      S:H  UUSSS.SSS.SSS.S.S.5      X'   GM     U	$  GN7f)z
fetches all available currencies on an exchange

https://doc.xt.com/#deposit_withdrawalsupportedCurrenciesGet

:param dict params: extra parameters specific to the xt api endpoint
:returns dict: an associative dictionary of currencies
Nr  r   currencyr   supportChainschainwithdrawFeeAmountdepositEnabledwithdrawEnabledminmaxwithdrawMinAmount)amountr   deposit)
infor.   networkr/   activefee	precisionr  r   limitstypeFTcryptootherfullNamemaxPrecisiondepositStatus1withdrawStatus)r	  r.   coder/   r  r  r  r  r   r  r  r  )"publicSpotGetWalletSupportCurrencypublicSpotGetCurrenciesasynciogatherr  index_byrangelensafe_stringsafe_currency_codenetwork_id_to_codesafe_number	safe_boolsafe_currency_structurer  parse_precision)r  r  promisesRawchainsResponsecurrenciesResponse
chainsDatacurrenciesResultcurrenciesDatachainsDataIndexedr  ientry
currencyIdr  networkEntryrawNetworksr  j
rawNetwork	networkIdnetworkCodetypeRawr  s                          r  fetch_currenciesxt.fetch_currenciesL  s     >>vFHdHdekHlm3:>>;3O-O*h __^XrB
??+=xL)9<L MM*jAq#n-.A"%E))%<J**:6D??+<"ML//,LKH1c+./(^
 ,,ZA	"55iF&#* "++J8KL!%#~~j:JK $z;L M $(#'#
 $(#3#3J@S#T#'%
 $(#'$)%	 0: &&uf5GD$77 ((
;!..t/C/CDDTDTUZ\jDk/lm++E?CsJ ,,U4DEL$  $#
  $#!
  $# 9 FLU /J } .Ps   9IIHIc                   #    U R                   S   (       a  U R                  5       I Sh  vN   U R                  U5      U R                  U5      /n[        R
                  " U6 I Sh  vN nUS   nUS   nU R                  XE5      $  N\ N!7f)z
retrieves data on all markets for xt

https://doc.xt.com/#market2symbol
https://doc.xt.com/#futures_quotesgetSymbols

:param dict params: extra parameters specific to the xt api endpoint
:returns dict[]: an array of objects representing market data
r  Nr   r   )rS  load_time_differencefetch_spot_marketsfetch_swap_and_future_marketsr  r  array_concat)r  r  promisesUnresolvedpromisesspotMarketsswapAndFutureMarketss         r  fetch_marketsxt.fetch_markets  s      <<12++---##F+..v6
 !);<<qk'{  CC .
 =s!   (BB<B'B	( B	Bc                    #    U R                  U5      I S h  vN nU R                  US0 5      nU R                  US/ 5      nU R                  U5      $  N;7f)Nr  symbols)publicSpotGetSymbolr  parse_markets)r  r  r  r  rF  s        r  r<  xt.fetch_spot_markets  sV     11&99j x26//$	26!!'**o :s   AA<Ac                   #    [         R                  " U R                  U5      U R                  U5      /6 I S h  vN nU R	                  U R                  US   S/ 5      U R                  US   S/ 5      5      nU R                  U5      $  NO7f)Nr   r  r   )r  r  -publicLinearGetFutureMarketV1PublicSymbolList.publicInverseGetFutureMarketV1PublicSymbolListr>  r  rH  )r  r  marketsrB  s       r  r=   xt.fetch_swap_and_future_markets%  s     )[)[\b)cei  fY  fY  Z`  fa  )b  c  c~  $00XWY1Z\`\k\klstulv  yA  CE  ]F   G!!"677A cs   7BB	ABc                     / n[        S[        U5      5       H%  nUR                  U R                  X   5      5        M'     U$ )Nr   )r  r  appendparse_market)r  rM  r  r.  s       r  rH  xt.parse_marketsh  s:    q#g,'AMM$++GJ78 (r  marketc                    U R                  US5      nU R                  USS5      nU R                  USS5      nU R                  U5      nU R                  U5      nU R                  US5      nUS-   U-   nU R                  US/ 5      n	S n
S nS nS nS nS nS n[	        S	[        U	5      5       H  nU	U   nU R                  US
5      nUS:X  a6  U R                  US5      n
U R                  US5      nU R                  US5      nUS:X  a  U R                  US5      nUS:X  d  Mv  U R                  US5      nU R                  US5      nM     Uc0  U R                  U R                  U R                  US5      5      5      nU R                  US5      nS nS nS nS nS nSnSnSnSnSnUS:X  a  US-   U-   nUnUnSnSnOUS:X  a  US-   U-   nUnUnSnSnUb  U R                  US5      nU R                  US5      nUS:w  a  US-   U R                  U5      -   nSnSnOSnSnU R                  US5      n
U R                  US 5      nU R                  US!5      nU R                  US"5      nU R                  US#5      nSnSnSn U(       a  U R                  US$S5      n O6US%:X  a0  U R                  US&5      (       a  U R                  US'5      (       a  Sn U R                  0 S(U_SU_S)U_S*U_S+U_S,U_S-U_S.U_S/U_SU_S0S _SU_SU_S1S_S2U _S3U_S4U_UU R                  US55      U R                  US65      U R                  US75      UU R                  U5      S S U R                  U R                  U R                  US85      5      5      UU R                  U R                  U R                  US95      5      5      U R                  U R                  U R                  US:5      5      5      S;.U R                  S<5      S S=.U
US=.UUS=.UUS=.S>.US?.E5      $ )@Nr   baseCurrencybaseCoinquoteCurrency	quoteCoinstate/filtersr   filterQUANTITYr  r  tickSize	QUOTE_QTYPRICEquantityPrecisionunderlyingTypeFTr;   U_BASED:
COIN_BASEDdeliveryDateproductType	perpetual-r>   r=   minQtyminNotionalmaxNotionalminPricemaxPrice	isOpenApiONLINEtradingEnabledopenapiEnabledr.   basequotesettlebaseIdquoteIdsettleIdr  r<   r?   r  r   r   takerFeemakerFeecontractSizepricePrecisionbaseCoinPrecisionquoteCoinPrecision)pricer  rs  rt  r  r  )rY  r  r  cost)r   r   r   r{  expiryexpiryDatetimestrike
optionTyper  r  r	  )r   safe_string_2r!  r  r  r  r#  r  r&  r  yymmddsafe_market_structureiso8601)!r  rS  r.   rv  rw  rs  rt  rY  r   r[  	minAmount	maxAmountminCostmaxCostrm  rn  amountPrecisionr.  r/  r\  rb  r   r   rx  ru  r  r>   r=   r   r;   r  rg  isActives!                                    r  rQ  xt.parse_marketn  sF   j fh/##FNJG$$V_kJ&&v.''0  1e#//&)R8		q#g,'AAJE%%eX6F# ,,UE:	 ,,UE:	"&"2"25*"E$**5%8 ++E59++E59 ( ""//0D0DTEUEUV\^qEr0stO))&2BCY&c\E)FHFFG|+c\D(FHFFG%&&v~>F**6=AKk)#F(;;((:I&&v}=G&&v}=G''
;H''
;HHDv{EBH!@P(Q(QX\XgXghn  qA  YB  YB)) 3+
"3+
f3+
 D3+
 U	3+

 f3+
 f3+
 w3+
 3+
 D3+
 D3+
 d3+
 D3+
 f3+
 e3+
 h3+
  !3+
" f#3+
$ %%fj9%%fj9 ,,V^D"ll62**4+?+?@P@PQWYi@j+kl)))$*>*>t?O?OPVXk?l*mn**4+?+?@P@PQWYm@n+op	  ,,S1
 %$
 $#
 #"$ e3+
 3 3	r  rE  Nr   	timeframesincer  c           	        #    U R                  5       I Sh  vN   SnU R                  USSS5      u  peU(       a  U R                  SXXBUS5      I Sh  vN $ U R                  U5      nUS   U R	                  U R
                  X"5      S.nUb  X8S'   Ub  XHS	'   OSUS	'   U R                  US
5      n	U R                  US
/5      nU	b  XS'   Sn
US   (       a)  U R                  U R                  X5      5      I Sh  vN n
O[US   (       a)  U R                  U R                  X5      5      I Sh  vN n
O(U R                  U R                  X5      5      I Sh  vN n
U R                  U
S/ 5      nU R                  XX#U5      $  GNj GN1 N N[ N47f)a  
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market

https://doc.xt.com/#market4kline
https://doc.xt.com/#futures_quotesgetKLine

:param str symbol: unified symbol of the market to fetch OHLCV data for
:param str timeframe: the length of time each candle represents
:param int [since]: timestamp in ms of the earliest candle to fetch
:param int [limit]: the maximum amount of candles to fetch
:param dict params: extra parameters specific to the xt api endpoint
:param int [params.until]: timestamp in ms of the latest candle to fetch
:param boolean [params.paginate]: default False, when True will automatically paginate by calling self endpoint multiple times. See in the docs all the [available parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
:returns int[][]: A list of candles ordered, open, high, low, close, volume
NFro   paginater  r.   )r   interval	startTimer  untilendTimer   r   r  )load_marketshandle_option_and_params"fetch_paginated_call_deterministicrS  r   rD  r  omit)publicLinearGetFutureMarketV1PublicQKlineextend*publicInverseGetFutureMarketV1PublicQKlinepublicSpotGetKliner  parse_ohlcvs)r  r   r  r  r  r  r  rS  requestr  r  ohlcvss               r  fetch_ohlcvxt.fetch_ohlcvc  s      !!!88z[`a@@v^cpvx|}}}V$Tl(()O
 #(K $G#GG!!&'26G9-!&I(!KKDKKX_LhiiHI!LLT[[Y`MijjH!44T[[5QRRHT 8R8  5IIK 	" ~$ jjRsX   FF ;FFB&F9F:2F,F-(FF
+FFFF
Fc           
          US   (       a  SOSnU R                  US5      U R                  US5      U R                  US5      U R                  US5      U R                  US5      U R                  US	U5      /$ )
Nr   vatohlcq)r  r#  safe_number_2)r  ohlcvrS  volumeIndexs       r  parse_ohlcvxt.parse_ohlcv  s~    8 %Y/cceS)UC(UC(UC(UC(uc;7
 	
r  c                   #    U R                  5       I Sh  vN   U R                  U5      nSUS   0nSnUS   (       a;  Ub  [        US5      US'   U R                  U R	                  XS5      5      I Sh  vN nO}Ub  [        US5      US'   OSUS'   US	   (       a)  U R                  U R	                  XS5      5      I Sh  vN nO2US
   (       a(  U R                  U R	                  XS5      5      I Sh  vN nU R                  US0 5      nU R                  USS5      nUS   (       a)  U R                  XqU5      n	U R                  US5      U	S'   U	$ U R                  XqUSS5      n
U R                  USS5      U
S'   U
$  GNf GN N N7f)a  

https://doc.xt.com/#market3depth
https://doc.xt.com/#futures_quotesgetDepth

fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
:param str symbol: unified market symbol to fetch the order book for
:param int [limit]: the maximum amount of order book entries to return
:param dict params: extra parameters specific to the xt api endpoint
:returns dict: A dictionary of `order book structures <https://docs.ccxt.com/en/latest/manual.html#order-book-structure>` indexed by market symbols
Nr   r.   r;   i  r  2   levelr   r   r  	timestampr  lastUpdateIdr  br  u)r  rS  r  publicSpotGetDepthr  )publicLinearGetFutureMarketV1PublicQDepth*publicInverseGetFutureMarketV1PublicQDepthr  safe_integer_2parse_order_bookr  )r  r   r  r  rS  r  r  	orderBookr  obswapObs              r  fetch_order_bookxt.fetch_order_book  s     !!!V$fTl
 &> #&uc? !44T[[5QRRH #&ub> #% h!%!O!OPTP[P[\cPl!mm	"!%!P!PQUQ\Q\]dQm!nn^ OOHh;	''	;D	&>&&y)DB++I~FBwKI&&y)S#N--inMwS 	" S nnsH   FE<AF4E?5A
F?F 2F2F3B
F?FFFc                   #    U R                  5       I Sh  vN   U R                  U5      nSUS   0nSnUS   (       a)  U R                  U R                  XB5      5      I Sh  vN nO[US   (       a)  U R	                  U R                  XB5      5      I Sh  vN nO(U R                  U R                  XB5      5      I Sh  vN nU R                  US5      nUS   (       a  U R                  US   U5      $ U R                  Xc5      $  N N Ns NL7f)	a  
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market

https://doc.xt.com/#market10ticker24h
https://doc.xt.com/#futures_quotesgetAggTicker

:param str symbol: unified market symbol to fetch the ticker for
:param dict params: extra parameters specific to the xt api endpoint
:returns dict: a `ticker structure <https://docs.ccxt.com/en/latest/manual.html#ticker-structure>`
Nr   r.   r   r   r  r;   r   )r  rS  -publicLinearGetFutureMarketV1PublicQAggTickerr  .publicInverseGetFutureMarketV1PublicQAggTickerpublicSpotGetTicker24hr  parse_ticker)r  r   r  rS  r  r  r   s          r  fetch_tickerxt.fetch_ticker7  s      !!!V$fTl
 (!OOPTP[P[\cPlmmHI!PPQUQ\Q\]dQmnnH!88W9UVVH^ 84&>$$VAY77  00{ 	" nnVsG   DDAD"D#2DD	(D>D?ADD	DDrF  c                   #    U R                  5       I Sh  vN   SnUb%  U R                  U5      nU R                  US   5      n0 nSnSnSnU R                  SX25      u  pRU R	                  SX25      u  pbUS:X  a)  U R                  U R                  XB5      5      I Sh  vN nOcUS:X  d  US:X  d  US:X  a)  U R                  U R                  XB5      5      I Sh  vN nO(U R                  U R                  XB5      5      I Sh  vN nU R                  US/ 5      n0 n	[        S[        U5      5       H   n
U R                  X   U5      nUS	   nXU'   M"     U R                  U	S	U5      $  GNR N N Nl7f)
a  
fetches price tickers for multiple markets, statistical calculations with the information calculated over the past 24 hours each market

https://doc.xt.com/#market10ticker24h
https://doc.xt.com/#futures_quotesgetAggTickers

:param str [symbols]: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
:param dict params: extra parameters specific to the xt api endpoint
:returns dict: an array of `ticker structures <https://docs.ccxt.com/en/latest/manual.html#ticker-structure>`
Nr   r   r   r   r=   r>   r  r   )r  market_symbolsrS  handle_market_type_and_paramshandle_sub_type_and_params/publicInverseGetFutureMarketV1PublicQAggTickersr  .publicLinearGetFutureMarketV1PublicQAggTickersr  r  r  r  r  filter_by_array)r  rF  r  rS  r  r  r  r  tickersr  r.  r   r   s                r  fetch_tickersxt.fetch_tickers  sx     !!!))'2G[[,F99.&Y99.&Yi!QQRVR]R]^eRnooH!tv~48;K!PPQUQ\Q\]dQmnnH!88W9UVVHb //(Hb9q#g,'A&&wz6:FH%F#6N ( ##FHg>>O 	" pnVsG   E1E(BE1E+:E1E-(E1E/A&E1+E1-E1/E1c                   #    U R                  5       I Sh  vN   U R                  U5      n0 nSnUb  U R                  US   5      nSnU R                  SXB5      u  pRUb  [	        U R
                  S-   5      eU R                  U R                  X25      5      I Sh  vN nU R                  US/ 5      nU R                  Xq5      $  N N*7f)a  
fetches the bid and ask price and volume for multiple markets

https://doc.xt.com/#market9tickerBook

: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 xt api endpoint
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/en/latest/manual.html#ticker-structure>`
Nr   rN   z^ fetchBidsAsks() is not available for swap and future markets, only spot markets are supportedr  )
r  r  rS  r  r"   r.   publicSpotGetTickerBookr  r  parse_tickers)r  rF  r  r  rS  r  r  r  s           r  fetch_bids_asksxt.fetch_bids_asks  s      !!!%%g.[[,F99/6Ztww  *J   J  K  K55dkk'6RSS$ //(Hb9!!'33; 	" Ts"   CCBCC)CCc           	      Z   U R                  US5      nUb  US   OS nSU;   =(       d    SU;   nUc  U(       a  SOSnU R                  X2SU5      nUS   nU R                  US	5      nU R                  US
S5      nUb  [        R
                  " US5      nU R                  0 SU_SU_SU R                  U5      _SU R                  US5      _SU R                  US5      _SU R                  US5      _SU R                  US5      _SU R                  US5      _SU R                  US5      _SS _SU R                  US5      _SU R                  US5      _SU R                  US5      _S S _S!U R                  US5      _S"U R                  U5      _S#S _S U R                  US$S%5      US&.EU5      $ )'Nsr  cvaqr;   r   _r   r  crr100r  datetimehighr  lowr  bidbp	bidVolumebqaskap	askVolumevwapopenr  closer  r  previousClosechanger   averager  r  )
baseVolumequoteVolumer	  )r   safe_marketr  r  r(   
string_mulsafe_tickerr  r#  r  r  )	r  r   rS  marketIdr  hasSpotKeysr   r  r   s	            r  r  xt.parse_ticker  s>   \ ##FC0(.(:VF^
v~:46>#.JJ!!(CD!%%fc2	''c:
! ++J>J !
f!
!
 Y/!
 D$$VS1	!

 4##FC0!
 4##FD1!
 ))&$7!
 4##FD1!
 ))&$7!
 D!
 D$$VS1!
 T%%fc2!
 D$$VS1!
 T!
 d&&vt4!
  $++J7!!
" t#!
$ --fc3?)!
* + 	r  c                   #    U R                  5       I Sh  vN   U R                  U5      nSUS   0nSnUS   (       a0  Ub  X6S'   U R                  U R                  Xd5      5      I Sh  vN nOlUb  X6S'   US   (       a)  U R	                  U R                  Xd5      5      I Sh  vN nO2US   (       a(  U R                  U R                  Xd5      5      I Sh  vN nU R                  US	/ 5      nU R                  X5      $  N N N_ N.7f)
a  
get the list of most recent trades for a particular symbol

https://doc.xt.com/#market5tradeRecent
https://doc.xt.com/#futures_quotesgetDeal

:param str symbol: unified market symbol to fetch trades for
:param int [since]: timestamp in ms of the earliest trade to fetch
:param int [limit]: the maximum amount of trades to fetch
:param dict params: extra parameters specific to the xt api endpoint
:returns dict[]: a list of `trade structures <https://docs.ccxt.com/en/latest/manual.html?#public-trades>`
Nr   r.   r;   r  numr   r   r  )r  rS  publicSpotGetTradeRecentr  (publicLinearGetFutureMarketV1PublicQDeal)publicInverseGetFutureMarketV1PublicQDealr  parse_trades)	r  r   r  r  r  rS  r  r  tradess	            r  fetch_tradesxt.fetch_tradesN  s     !!!V$fTl
 &> #( !::4;;w;WXXH !&h!%!N!Nt{{[bOk!ll	"!%!O!OPTP[P[\cPl!mmJ 8R8  00m 	" Y
 mmsF   DC?AD)D*9D#D$2DD)DDDDc                   #    U R                  5       I Sh  vN   0 nSnUb  U R                  U5      nUS   US'   Ub  X%S'   SnSnSn	U R                  SXd5      u  ptU R                  SXd5      u  pUc  US:X  d  US:X  a_  Ub  X5S'   US	:X  a)  U R	                  U R                  XT5      5      I Sh  vN n	OyU R                  U R                  XT5      5      I Sh  vN n	OPSn
U R                  SU5      u  pU
b  S
OSnXS'   Ub  X5S'   U R                  U R                  XT5      5      I Sh  vN n	U R                  U	S0 5      nU R                  US/ 5      nU R                  XX#5      $  GNP N N NC7f)a  
fetch all trades made by the user

https://doc.xt.com/#tradetradeGet
https://doc.xt.com/#futures_ordergetTrades

:param str [symbol]: unified market symbol to fetch trades for
:param int [since]: timestamp in ms of the earliest trade to fetch
:param int [limit]: the maximum amount of trades to fetch
:param dict params: extra parameters specific to the xt api endpoint
:returns dict[]: a list of `trade structures <https://docs.ccxt.com/en/latest/manual.html?#public-trades>`
Nr.   r   r  rn   r=   r>   sizer   rU  rT  bizTyper  r  items)r  rS  r  r  ,privateInverseGetFutureTradeV1OrderTradeListr  +privateLinearGetFutureTradeV1OrderTradeListhandle_margin_mode_and_paramsprivateSpotGetTrader  r  )r  r   r  r  r  r  rS  r  r  r  r  marginOrSpotRequestr  r   s                 r  fetch_my_tradesxt.fetch_my_trades  s     !!![[(F &tGH#(K 99/6Z99/6ZTV^9I "')#!%!R!RSWS^S^_fSo!pp!%!Q!QRVR]R]^eRn!ooJ!%!C!COU[!\J.8.D'6!4I #( !55dkk'6RSSHv x26w3  >>q 	"" qo TsG   E/E&BE//E)0(E/E+AE/)E-*=E/)E/+E/-E/c                 d   U R                  USS5      nUb  US   OS nSU;   =(       d    SU;   =(       d    SU;   nUc  U(       a  SOSnU R                  X2S	U5      nS nS nU R                  US5      nUb  U(       a  S
OSnSnOoU R                  US5      n	U	b  U	nO U R                  US5      n
U
b  U
(       a  SOSnU R                  US5      nUb  UnOU R	                  US5      nUb
  US:X  a  SOS
nU R                  U/ SQ5      nU R                  USS5      nS nUS:X  a  UnOeUc:  [        R                  " U R	                  US5      U R                  US   5      5      nO([        R                  " XR                  US   5      5      nU R                  UU R                  U/ SQ5      UU R                  U5      US   U R                  USS5      U R                  US5      UUU R                  USS5      US U R                  U R                  USS5      5      U R	                  US5      S .S!.U5      $ )"Nr  r   r  r  r  oir;   r   r  sellbuyr   
takerMakerisMakerr   	orderSidemBID)r  r   r  r  quantityr  r{  )r.  tradeIdexecIdorderId	orderTypepr  feeCurrencyfeeCoinr  r  r  )r	  r.   r  r  r   r   r  sidetakerOrMakerr  r  r  r  )r  r  r$  safe_string_lowerr   safe_integer_nr(   r  number_to_string
safe_tradesafe_string_nr  r!  )r  r   rS  r  r  r  r   r!  isBuyerMakerr  r  r  bidOrAskr  r  r  s                   r  parse_tradext.parse_trade  s_   X %%eS(;(.(:VF^
e|Oe);O#.JJ!!(CD~~eS1#)6uD"L//|DJ%)..	:&.577L..ukBI$ ++E37'%-%65VD''/IJ	%%eS*=F ++D,<,<UC,H$J_J_`fgu`vJwx ++H6K6KFSaLb6cd$$U,FG"Y/X&''y$?**5+>(''sG< 33D4F4Fum]f4gh((6 
" # 	r  c                 :  #    U R                  5       I Sh  vN   SnSnSnU R                  SSU5      u  p!U R                  SSU5      u  p1US:H  =(       d    US:H  nUS:X  a  U R                  U5      I Sh  vN nO@US:X  d  U(       a  U R	                  U5      I Sh  vN nOU R                  U5      I Sh  vN nSnUc  U(       a  U R                  US/ 5      nO&U R                  US0 5      nU R                  US/ 5      nU R                  U5      $  N N Ny Na7f)	a_  
query for balance and get the amount of funds available for trading or funds locked in orders

https://doc.xt.com/#balancebalancesGet
https://doc.xt.com/#futures_usergetBalances

:param dict params: extra parameters specific to the xt api endpoint
:returns dict: a `balance structure <https://docs.ccxt.com/en/latest/manual.html?#balance-structure>`
NrM   r=   r>   r   r   r  assets)r  r  r  (privateInverseGetFutureUserV1BalanceList'privateLinearGetFutureUserV1BalanceListprivateSpotGetBalancesr  parse_balance)r  r  r  r  r  isContractWalletr   r  s           r  fetch_balancext.fetch_balance  s      !!!99.$PVW99.$PVW!V^B1Ai!JJ6RRH!&6!II&QQH!88@@HZ $4x2>H??8Xr:DtXr:H!!(++ 	" SQ@sG   DDAD6D7&DDD7D8ADDDDc                 &   SU0n[        S[        U5      5       H  nX   nU R                  USS5      nU R                  U5      nU R	                  5       nU R                  USS5      nU R                  US5      n	U R                  USS	5      n
U	c^  [        R                  " U R                  US
5      U R                  US5      5      n[        R                  " U R                  US5      U5      n	XS'   XS'   XS'   XrU'   M     U R                  U5      $ )Nr	  r   r  coinavailableAmountavailableBalancefrozenAmounttotalAmountwalletBalancecrossedMarginisolatedMarginopenOrderMarginFrozenfreeusedtotal)	r  r  r  r!  accountr   r(   
string_addsafe_balance)r  r  r  r.  r   r0  r  rA  r>  r?  r@  crossedAndIsolatedMargins               r  r0  xt.parse_balance  s+   6 (#q#h-(AkG++GZHJ**:6DllnG%%g/@BTUD##G^<D&&wOE|+2+=+=d>N>NwXg>hjnjzjz  |C  EU  kV  ,W())$*:*:7D[*\^vw"FO"FO$G"4L )   ((r  r  c                    #    U R                  5       I Sh  vN   U R                  U5      nUS   (       d  [        U R                  S-   5      eU R	                  USSUSU5      I Sh  vN $  NU N7f)a  

https://doc.xt.com/#orderorderPost

create a market buy order by providing the symbol and cost
:param str symbol: unified symbol of the market to create an order in
:param float cost: how much you want to trade in units of the quote currency
:param dict [params]: extra parameters specific to the exchange API endpoint
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
Nr;   z9 createMarketBuyOrderWithCost() supports spot orders onlyrS  r  r   )r  rS  r"   r.   create_order)r  r   r  r  rS  s        r  !create_market_buy_order_with_cost$xt.create_market_buy_order_with_cost	  sl      !!!V$f~tww)ddee&&vxaPPP	 	" Qs"   A0A,AA0'A.(A0.A0r  r   r  r  c                    #    U R                  5       I Sh  vN   U R                  U5      nUS   nUS   (       a  U R                  XX4XV5      I Sh  vN $ U R                  XX4XV5      I Sh  vN $  NZ N! N7f)aB  
create a trade order

https://doc.xt.com/#orderorderPost
https://doc.xt.com/#futures_ordercreate
https://doc.xt.com/#futures_entrustcreatePlan
https://doc.xt.com/#futures_entrustcreateProfit

:param str symbol: unified symbol of the market to create an order in
:param str type: 'market' or 'limit'
:param str side: 'buy' or 'sell'
:param float amount: how much you want to trade in units of the base currency
:param float [price]: the price to fulfill the order, in units of the quote currency, can be ignored in market orders
:param dict params: extra parameters specific to the xt api endpoint
:param str [params.timeInForce]: 'GTC', 'IOC', 'FOK' or 'GTX'
:param str [params.entrustType]: 'TAKE_PROFIT', 'STOP', 'TAKE_PROFIT_MARKET', 'STOP_MARKET', 'TRAILING_STOP_MARKET', required if stopPrice is defined, currently isn't functioning on xt's side
:param str [params.triggerPriceType]: 'INDEX_PRICE', 'MARK_PRICE', 'LATEST_PRICE', required if stopPrice is defined
:param float [params.triggerPrice]: price to trigger a stop order
:param float [params.stopPrice]: alias for triggerPrice
:param float [params.stopLoss]: price to set a stop-loss on an open position
:param float [params.takeProfit]: price to set a take-profit on an open position
:returns dict: an `order structure <https://docs.ccxt.com/en/latest/manual.html#order-structure>`
Nr   r;   )r  rS  create_spot_ordercreate_contract_order)r  r   r  r   r  r  r  rS  s           r  rG  xt.create_order'	  sw     0 !!!V$!&>//dEZZZ33F$PU^^^ 	" [^s3   A7A1:A7A3A7,A5-A73A75A7c                   #    U R                  5       I S h  vN   U R                  U5      nUS   UR                  5       UR                  5       S.nS n	S n
U R                  SU5      u  pU
b  SOSnXS'   US:X  a  U R	                  USS	5      n	US
:X  a  U R                  US5      nU R                  US5      nU R                  U R                  SS5      nU(       at  Uc  Uc  [        U R                  S-   5      eU R                  U5      nU R                  U5      nS nUb  [        R                  " X5      nOUnU R                  UU5      US'   ODUb  UOUnU R                  UU5      US'   O'U R	                  USS5      n	U R                  X5      US'   US:X  d  US:X  a  U R!                  X5      US'   XS'   U R#                  U R%                  X5      5      I S h  vN nU R'                  US0 5      nU R)                  UU5      $  GN N,7f)Nr.   )r   r   r  rH   rU  rT  r  rS  r  r  r  r  r  Ta   createOrder() requires a price argument or cost in params for market buy orders on spot markets to calculate the total amount to spend(amount * price), alternatively set the createMarketBuyOrderRequiresPrice option to False and pass in the cost to spend into the amount parameterquoteQtyGTCr  r  r  r  r  )r  rS  upperr	  safe_string_upperr   r  r$  rS  r!   r.   r$  r(   r  cost_to_precisionprice_to_precisionamount_to_precisionprivateSpotPostOrderr  r  parse_order)r  r   r  r   r  r  r  rS  r  r  r  r  r  r  amountStringpriceStringcostCalculated
amountCostr  r   s                       r  rK  xt.create_spot_orderG	  s$    !!!V$TlJJLJJL

 
!??vV
*4*@gv0	800NKu}''766248NN4<<Qtvz4{14}$,*477  6P  ,P  Q  Q'+'<'<V'D&*&;&;E&B.2 ,-4-?-?-ZN-1N.2.D.DV^.\
+*.*:J*.*@*@*TGJ'00NK#66vEGGFN"&":":6"JGJ!,224;;w3OPP (B7v..g 	"N Qs"   H	HGH	H*H	H	c                   #    U R                  5       I S h  vN   U R                  U5      nUS   U R                  X5      S.nU R                  US5      n	U	b  XS'   U R	                  USS5      n
US:X  a  U
(       a  SOSnXS	'   OU
(       a  SOSnXS	'   S nU R                  US
S5      nU R                  USS5      nU R                  USS5      nUS LnUS LnUS LnUb"  U(       d  U(       d  U R                  X5      US'   U(       a  U R                  USS5      US'   U R                  USS5      US'   UR                  5       US'   U R                  X5      US'   US:X  a  SOSnUUS'   U R                  US
5      nUS   (       a*  U R                  U R                  X5      5      I S h  vN nGOwUS   (       a(  U R                  U R                  X5      5      I S h  vN nGOCU(       d  U(       a  U(       a  U R                  X5      US'   OU R                  X5      US'   U R                  USS/5      nUS   (       a)  U R                  U R                  X5      5      I S h  vN nOUS   (       a(  U R                  U R                  X5      5      I S h  vN nOUR                  5       US'   UR                  5       US'   US   (       a)  U R                  U R                  X5      5      I S h  vN nO2US   (       a(  U R!                  U R                  X5      5      I S h  vN nU R#                  X5      $  GN! GN GNa N N NU N$7f)Nr.   )r   origQtyr  
reduceOnlyFr  SHORTLONGpositionSider  	stopPricestopLosstriggerStopPrice
takeProfittriggerProfitPricer  rP  r  LATEST_PRICEr  rS  STOP_MARKETSTOPentrustTyper   r   r  )r  rS  rU  rR  r  r  rT  r   rQ  r  /privateLinearPostFutureTradeV1EntrustCreatePlanr  0privateInversePostFutureTradeV1EntrustCreatePlan1privateLinearPostFutureTradeV1EntrustCreateProfit2privateInversePostFutureTradeV1EntrustCreateProfit)privateLinearPostFutureTradeV1OrderCreate*privateInversePostFutureTradeV1OrderCreaterW  )r  r   r  r   r  r  r  rS  r  r  r_  requestTyper  r  rd  rf  	isTrigger
isStopLossisTakeProfitrk  s                       r  rL  xt.create_contract_order}	  s5    !!!V$Tl//?
 ,,V]C"%0M"__V\5A
5=&0'vK&1N#%/&gK&1N#))&.+N%%fj:LM''>RS
!-	d*
"$.#'#:#:6#I %)%;%;FMSX%YGM"*.*:*:6CUWe*fG&'#'::<GK #'#:#:6#PGK ,0H,<-6K%0GM"YYv~6Fh!%!U!UVZVaVabiVr!ss	"!%!V!VW[WbWbcjWs!tt<.2.E.Ef.W*+040G0G0[,-YYv
L'ABFh!%!W!WX\XcXcdkXt!uu	"!%!X!XY]YdYdelYu!vv#'::<GK #'::<GK h!%!O!OPTP[P[\cPl!mm	"!%!P!PQUQ\Q\]dQm!nn 11 	"F tt vv
 nns~   ML7FM(L:)3ML=BM"M #2MMAM.M/2M!M"M:M=M MMMMr.   c                   #    U R                  5       I Sh  vN   SnUb  U R                  U5      n0 nSnSnSnU R                  SXC5      u  pcU R                  SXC5      u  psU R	                  US5      n	U R	                  US5      n
U	(       a  XS'   OU
(       a  XS'   OXS'   U	(       al  U R                  US5      nUS:X  a*  U R                  U R                  XS5      5      I Sh  vN nGO-U R                  U R                  XS5      5      I Sh  vN nGOU
(       aj  U R                  US5      nUS:X  a)  U R                  U R                  XS5      5      I Sh  vN nOU R                  U R                  XS5      5      I Sh  vN nOUS:X  a)  U R                  U R                  XS5      5      I Sh  vN nOcUS	:X  d  US
:X  d  US:X  a)  U R                  U R                  XS5      5      I Sh  vN nO(U R                  U R                  XS5      5      I Sh  vN nU R	                  US0 5      nU R                  X5      $  GN% GN[ GN4 N N N N` N97f)a  
fetches information on an order made by the user

https://doc.xt.com/#orderorderGet
https://doc.xt.com/#futures_ordergetById
https://doc.xt.com/#futures_entrustgetPlanById
https://doc.xt.com/#futures_entrustgetProfitById

:param str id: order id
:param str [symbol]: unified symbol of the market the order was made in
:param dict params: extra parameters specific to the xt api endpoint
:param bool [params.trigger]: if the order is a trigger order or not
:param bool [params.stopLossTakeProfit]: if the order is a stop-loss or take-profit order
:returns dict: An `order structure <https://docs.ccxt.com/en/latest/manual.html#order-structure>`
Nrs   stopstopLossTakeProfit	entrustIdprofitIdr  r   r   r=   r>   r  )r  rS  r  r  r  r  /privateInverseGetFutureTradeV1EntrustPlanDetailr  .privateLinearGetFutureTradeV1EntrustPlanDetail1privateInverseGetFutureTradeV1EntrustProfitDetail0privateLinearGetFutureTradeV1EntrustProfitDetail)privateInverseGetFutureTradeV1OrderDetail(privateLinearGetFutureTradeV1OrderDetailprivateSpotGetOrderOrderIdrW  )r  r.   r   r  rS  r  r  r  r  r  ry  r   s               r  fetch_orderxt.fetch_order	  s      !!![[(F99,W99,W//&&1!__V5IJ#%K "$J!#IYYvv.F)#!%!U!UVZVaVabiVr!ss!%!T!TUYU`U`ahUq!rrYYv';<F)#!%!W!WX\XcXcdkXt!uu!%!V!VW[WbWbcjWs!tt	!!KKDKKX_LhiiH!tv~48;K!JJ4;;W^KghhH!<<T[[=YZZHl (B7..u 	"* tr vtihZs   IH;CI#H>$)IIAII(I?I .I.I/:I)I
*(II)I>IIIII
IIc                   #    U R                  5       I Sh  vN   0 nSnUb  U R                  U5      nUS   US'   Ub  X%S'   Ub  X5S'   SnSnSn	U R                  SXd5      u  ptU R                  SXd5      u  pU R	                  USS5      n
U
(       al  U R                  USS/5      nUS	:X  a)  U R                  U R                  XT5      5      I Sh  vN n	OU R                  U R                  XT5      5      I Sh  vN n	OUS	:X  a)  U R                  U R                  XT5      5      I Sh  vN n	OUS
:X  d  US:X  d  US:X  a)  U R                  U R                  XT5      5      I Sh  vN n	OISnU R                  SU5      u  pUb  SOSnXS'   U R                  U R                  XT5      5      I Sh  vN n	U R                  U	S0 5      nU R                  US/ 5      nU R                  XX#5      $  GN GN N N N NH7f)a  
fetches information on multiple orders made by the user

https://doc.xt.com/#orderhistoryOrderGet
https://doc.xt.com/#futures_ordergetHistory
https://doc.xt.com/#futures_entrustgetPlanHistory

:param str [symbol]: unified market symbol of the market the orders were made in
:param int [since]: timestamp in ms of the earliest order
:param int [limit]: the maximum number of order structures to retrieve
:param dict params: extra parameters specific to the xt api endpoint
:param bool [params.trigger]: if the order is a trigger order or not
:returns dict[]: a list of `order structures <https://docs.ccxt.com/en/latest/manual.html#order-structure>`
Nr.   r   r  r  rv   r  rx  r   r   r=   r>   rU  rT  r  r  r  )r  rS  r  r  safe_value_2r  4privateInverseGetFutureTradeV1EntrustPlanListHistoryr  3privateLinearGetFutureTradeV1EntrustPlanListHistory.privateInverseGetFutureTradeV1OrderListHistory-privateLinearGetFutureTradeV1OrderListHistoryr	  privateSpotGetHistoryOrderr  parse_orders)r  r   r  r  r  r  rS  r  r  r  r  r  r  r  orderss                  r  fetch_ordersxt.fetch_ordersk
  s
     !!![[(F &tGH#(K $G99-X99-X##FIv>YYv	6':;F)#!%!Z!Z[_[f[fgn[w!xx!%!Y!YZ^ZeZefmZv!ww	!!PPQUQ\Q\]dQmnnH!tv~48;K!OOPTP[P[\cPlmmHJ!%!C!CMSY!ZJ.8.D'6!4I!<<T[[=YZZH^ x26w3  >>a 	"& ywnm [sk   G6G(B7G6G+(G67G.8.G6&G0':G6!G2"A	G6+G4,=G6+G6.G60G62G64G6c                    #    U R                  5       I S h  vN   0 nS nUb  U R                  U5      nUS   US'   Ub  XFS'   Ub  X6S'   S nS n	S n
U R                  SXu5      u  pU R                  SXu5      u  pU R	                  USS5      nU R                  US5      nUS	:X  a   U(       d  U(       a  S
US'   OPUS:X  a  SUS'   ODUS:X  a  U(       d  U(       a  SUS'   O*SUS'   O$US:X  a  U(       d  U(       a  SUS'   O
SUS'   OXS'   U(       d  U(       d  U	c  US:X  d  US:X  a  Ub  X6S'   Ub  XFS'   U(       an  U R                  USS/5      nU	S:X  a*  U R                  U R                  Xe5      5      I S h  vN n
GOU R                  U R                  Xe5      5      I S h  vN n
GOqU(       ak  U R                  US5      nU	S:X  a*  U R                  U R                  Xe5      5      I S h  vN n
GO(U R                  U R                  Xe5      5      I S h  vN n
OU	c  US:X  d  US:X  aX  U	S:X  a)  U R                  U R                  Xe5      5      I S h  vN n
OU R                  U R                  Xe5      5      I S h  vN n
OS nU R                  SU5      u  pUb  SOSnXS'   US	:w  aI  Ub  X6S'   Ub  U R                  US5      nXFS'   U R                  U R                  Xe5      5      I S h  vN n
O(U R!                  U R                  Xe5      5      I S h  vN n
/ nU R#                  U
S5      nUb  U R%                  US/ 5      nOU R%                  U
S5      nU R'                  XX45      $  GNP GN GN GN GN` GN% N N Ni7f)Nr.   r   r  r  rw   rx  r  ry  r  NOT_TRIGGEREDrY  r=   
UNFINISHEDclosed	TRIGGEREDFILLEDcanceledUSER_REVOCATIONCANCELEDr>   r   rU  rT  r  r  r  r  )r  rS  r  r  safe_bool_2r  r  -privateInverseGetFutureTradeV1EntrustPlanListr  ,privateLinearGetFutureTradeV1EntrustPlanList/privateInverseGetFutureTradeV1EntrustProfitList.privateLinearGetFutureTradeV1EntrustProfitList'privateInverseGetFutureTradeV1OrderList&privateLinearGetFutureTradeV1OrderListr	  r  privateSpotGetOpenOrder	safe_dict	safe_listr  )r  statusr   r  r  r  r  rS  r  r  r  r  ry  r  r  r  
resultDicts                    r  fetch_orders_by_statusxt.fetch_orders_by_status  s    !!![[(F &tGH#FO#(K 99:OQW`99:OQW`""669=!__V5IJV,#2 #/ x,#. #+ z!,#4 #- %G(W-@dfnZ^bjZj ',$ "'YYv	':;F)#!%!S!STXT_T_`gTp!qq!%!R!RSWS^S^_fSo!ppYYv';<F)#!%!U!UVZVaVabiVr!ss!%!T!TUYU`U`ahUq!rr!tv~48;K)#!%!M!MdkkZaNj!kk!%!L!LT[[Y`Mi!jjJ!%!C!CDY[a!bJ.8.D'6!4I$+0K($"ii8G',G$!%!@!@WA]!^^!%!=!=dkk'>Z![[f ^^Hh7
!^^J<F^^Hh7F  >>} 	"T rp tr lj _[s   M>M&EM>5M)6)M>M, AM>(M/))M>M2=M>M5(M>9M8:A/M>)M:*(M>M<AM>)M>,M>/M>2M>5M>8M>:M><M>c                 D   #    U R                  SXX45      I Sh  vN $  N7f)a  
fetch all unfilled currently open orders

https://doc.xt.com/#orderopenOrderGet
https://doc.xt.com/#futures_ordergetOrders
https://doc.xt.com/#futures_entrustgetPlan
https://doc.xt.com/#futures_entrustgetProfit

:param str [symbol]: unified market symbol of the market the orders were made in
:param int [since]: timestamp in ms of the earliest order
:param int [limit]: the maximum number of open order structures to retrieve
:param dict params: extra parameters specific to the xt api endpoint
:param bool [params.trigger]: if the order is a trigger order or not
:param bool [params.stopLossTakeProfit]: if the order is a stop-loss or take-profit order
:returns dict[]: a list of `order structures <https://docs.ccxt.com/en/latest/manual.html#order-structure>`
r  Nr  r  r   r  r  r  s        r  fetch_open_ordersxt.fetch_open_orders  s"     " 00VVVV     c                 D   #    U R                  SXX45      I Sh  vN $  N7f)a  
fetches information on multiple closed orders made by the user

https://doc.xt.com/#orderhistoryOrderGet
https://doc.xt.com/#futures_ordergetOrders
https://doc.xt.com/#futures_entrustgetPlan
https://doc.xt.com/#futures_entrustgetProfit

:param str [symbol]: unified market symbol of the market the orders were made in
:param int [since]: timestamp in ms of the earliest order
:param int [limit]: the maximum number of order structures to retrieve
:param dict params: extra parameters specific to the xt api endpoint
:param bool [params.trigger]: if the order is a trigger order or not
:param bool [params.stopLossTakeProfit]: if the order is a stop-loss or take-profit order
:returns dict[]: a list of `order structures <https://docs.ccxt.com/en/latest/manual.html#order-structure>`
r  Nr  r  s        r  fetch_closed_ordersxt.fetch_closed_orders   s"     " 006%XXXXr  c                 D   #    U R                  SXX45      I Sh  vN $  N7f)a  
fetches information on multiple canceled orders made by the user

https://doc.xt.com/#orderhistoryOrderGet
https://doc.xt.com/#futures_ordergetOrders
https://doc.xt.com/#futures_entrustgetPlan
https://doc.xt.com/#futures_entrustgetProfit

:param str [symbol]: unified market symbol of the market the orders were made in
:param int [since]: timestamp in ms of the earliest order
:param int [limit]: the maximum number of order structures to retrieve
:param dict params: extra parameters specific to the xt api endpoint
:param bool [params.trigger]: if the order is a trigger order or not
:param bool [params.stopLossTakeProfit]: if the order is a stop-loss or take-profit order
:returns dict: a list of `order structures <https://docs.ccxt.com/en/latest/manual.html#order-structure>`
r  Nr  r  s        r  fetch_canceled_ordersxt.fetch_canceled_orders3  s"     " 00VEZZZZr  c                   #    U R                  5       I Sh  vN   SnUb  U R                  U5      n0 nSnSnSnU R                  SXC5      u  pcU R                  SXC5      u  psU R	                  USS5      n	U R                  US5      n
U	(       a  XS'   OU
(       a  XS'   OXS'   U	(       an  U R                  USS/5      nUS	:X  a*  U R                  U R                  XS5      5      I Sh  vN nGO-U R                  U R                  XS5      5      I Sh  vN nGOU
(       aj  U R                  US5      nUS	:X  a)  U R                  U R                  XS5      5      I Sh  vN nOU R                  U R                  XS5      5      I Sh  vN nOUS	:X  a)  U R                  U R                  XS5      5      I Sh  vN nOcUS
:X  d  US:X  d  US:X  a)  U R                  U R                  XS5      5      I Sh  vN nO(U R                  U R                  XS5      5      I Sh  vN nUSL=(       d    US:H  =(       d    US:H  nU(       a  UOU R                  US0 5      nU R                  X5      $  GNM GN GNY GN N N N N_7f)ag  
cancels an open order

https://doc.xt.com/#orderorderDel
https://doc.xt.com/#futures_ordercancel
https://doc.xt.com/#futures_entrustcancelPlan
https://doc.xt.com/#futures_entrustcancelProfit

:param str id: order id
:param str [symbol]: unified symbol of the market the order was made in
:param dict params: extra parameters specific to the xt api endpoint
:param bool [params.trigger]: if the order is a trigger order or not
:param bool [params.stopLossTakeProfit]: if the order is a stop-loss or take-profit order
:returns dict: An `order structure <https://docs.ccxt.com/en/latest/manual.html#order-structure>`
NrC   r  rx  ry  rz  r{  r  r   r   r=   r>   r  )r  rS  r  r  r  r  r  0privateInversePostFutureTradeV1EntrustCancelPlanr  /privateLinearPostFutureTradeV1EntrustCancelPlan6privateInversePostFutureTradeV1EntrustCancelProfitStop5privateLinearPostFutureTradeV1EntrustCancelProfitStop*privateInversePostFutureTradeV1OrderCancel)privateLinearPostFutureTradeV1OrderCancelprivateSpotDeleteOrderOrderIdrW  )r  r.   r   r  rS  r  r  r  r  r  ry  isContractResponser   s                r  cancel_orderxt.cancel_orderF  sK      !!![[(F99-X99-X##FIv>!__V5IJ#%K "$J!#IYYv	6':;F)#!%!V!VW[WbWbcjWs!tt!%!U!UVZVaVabiVr!ssYYv';<F)#!%!\!\]a]h]hip]y!zz!%![![\`\g\gho\x!yy	!!LLT[[Y`MijjH!tv~48;K!KKDKKX_LhiiH!??G@\]]H,  'd2]]DT\L\.DOOHhXZ4[..w 	"* us {yji]s   I7I#CI7&I&')I7I)AI7I,(I7I/.I71I12:I7,I3-(I7I5AI7&I7)I7,I7/I71I73I75I7c                   #    U R                  5       I Sh  vN   0 nSnUb  U R                  U5      nUS   US'   SnSnSnU R                  SXB5      u  pRU R                  SXB5      u  pbU R	                  USS5      nU R                  US5      n	U(       an  U R                  USS/5      nUS:X  a*  U R                  U R                  X25      5      I Sh  vN nGONU R                  U R                  X25      5      I Sh  vN nGO$U	(       aj  U R                  US5      nUS:X  a)  U R                  U R                  X25      5      I Sh  vN nOU R                  U R                  X25      5      I Sh  vN nOUS:X  a)  U R                  U R                  X25      5      I Sh  vN nOUS	:X  d  US
:X  d  US:X  a)  U R                  U R                  X25      5      I Sh  vN nOISn
U R                  SU5      u  pU
b  SOSnXS'   U R                  U R                  X25      5      I Sh  vN nU R!                  U5      /$  GN# GNj GNC N N N No N'7f)a~  
cancel all open orders in a market

https://doc.xt.com/#orderopenOrderDel
https://doc.xt.com/#futures_ordercancelBatch
https://doc.xt.com/#futures_entrustcancelPlanBatch
https://doc.xt.com/#futures_entrustcancelProfitBatch

:param str [symbol]: unified market symbol of the market to cancel orders in
:param dict params: extra parameters specific to the xt api endpoint
:param bool [params.trigger]: if the order is a trigger order or not
:param bool [params.stopLossTakeProfit]: if the order is a stop-loss or take-profit order
:returns dict[]: a list of `order structures <https://docs.ccxt.com/en/latest/manual.html#order-structure>`
Nr.   r   rB   r  rx  ry  r   r   r=   r>   rU  rT  r  )r  rS  r  r  r  r  r  3privateInversePostFutureTradeV1EntrustCancelAllPlanr  2privateLinearPostFutureTradeV1EntrustCancelAllPlan9privateInversePostFutureTradeV1EntrustCancelAllProfitStop8privateLinearPostFutureTradeV1EntrustCancelAllProfitStop-privateInversePostFutureTradeV1OrderCancelAll,privateLinearPostFutureTradeV1OrderCancelAllr	  privateSpotDeleteOpenOrder
safe_order)r  r   r  r  rS  r  r  r  r  ry  r  r  s               r  cancel_all_ordersxt.cancel_all_orders  sC     !!![[(F &tGH99:KV\99:KV\##FIv>!__V5IJYYv	6':;F)#!%!Y!YZ^ZeZefmZv!ww!%!X!XY]YdYdelYu!vvYYv';<F)#!%!_!_`d`k`kls`|!}}!%!^!^_c_j_jkr_{!||	!!OOPTP[P[\cPlmmH!tv~48;K!NNt{{[bOkllHJ!%!C!CDUW]!^J.8.D'6!4I!<<T[[=YZZH* OOH%
 	
m 	"  xv ~|ml [s   IH9B;IH<)I<H?=AII(I.I/.II:IIA	I"I
#I<I?IIIII
Iidsc                 L  #    U R                  5       I Sh  vN   SU0nSnUb  U R                  U5      nSnU R                  SXS5      u  pcUb  [        U R                  S-   5      eU R                  U R                  XC5      5      I Sh  vN nU R                  U5      /$  N N7f)a[  
cancel multiple orders

https://doc.xt.com/#orderbatchOrderDel

:param str[] ids: order ids
:param str [symbol]: unified market symbol of the market to cancel orders in
:param dict params: extra parameters specific to the xt api endpoint
:returns dict[]: a list of `order structures <https://docs.ccxt.com/en/latest/manual.html#order-structure>`
NorderIdsrD   zV cancelOrders() does not support swap and future orders, only spot orders are accepted)r  rS  r  r"   r.   privateSpotDeleteBatchOrderr  r  )r  r  r   r  r  rS  r  r  s           r  cancel_ordersxt.cancel_orders  s      !!!
 [[(F99.&Ytww  *B   B  C  C99$++g:VWW OOH%
 	
- 	" Xs"   B$B A2B$	B"
B$"B$c                    U R                  US5      nSU;   a  SU;   =(       d    SOSnU R                  X2S U5      nU R                  X2S U5      nU R                  USS5      nU R	                  US5      nUS:X  a  UO7[
        R                  " U R                  U5      U R                  US	   5      5      nU R	                  US
5      n	US:X  a  U	O7[
        R                  " U R                  U	5      U R                  US	   5      5      n
U R                  US5      nU R                  0 SU_SU R                  U/ SQ5      _SU R                  USS5      _SU_SU R                  U5      _SU_SU_SU_SU R                  USS5      _SU R                  US5      _SS _SU R                  USS5      _SU R	                  US5      _SU R	                  US5      _SU R	                  US5      _S U R	                  US!5      _S"U_U
U R	                  US#5      S U R	                  US$5      U R                  U R                  US%5      5      U R                  U R                  US&5      5      U R	                  US'5      S(.S S).EU5      $ )*Nr   rb  r  r   r;   r   createdTimer^  r{  executedQtyupdatedTimer	  r.   )r  r  cancelIdrz  r{  clientOrderIdclientModifyIdr  r  lastTradeTimestamplastUpdateTimestampr  r  r  postOnlyr   r  r  r  rc  rd  re  rf  rg  r  
leavingQtyavgPricerY  r  r  r  )filled	remainingr  r  r  r  r   )r   r  safe_symbolr  r#  r(   r  r$  r  r  r&  r  r  safe_string_lower_2parse_order_statusr!  )r  r   rS  r  r  r   r  r  r  filledQuantityr  lastUpdatedTimestamps               r  rW  xt.parse_order  s:   ~ ##E84;IU;Rh%'6JY_
!!(D*E!!(D*E''v}E	##E95(F29K9KDLaLabjLkmq  nC  nC  DJ  KY  DZ  n[  :\))%?$.&$8w?Q?QRVRgRghvRwy}  zO  zO  PV  We  Pf  zg  @h#00F  
E 
$$$U,fg 
 T//HXY 
 	 

 Y/ 
 !"6 
 "#7 
 f 
 D,,UFKH 
 4++E=A 
  
 D,,UFKH 
 T%%eW5 
 D,,UK@ 
 ((0BC 
  $**52FG! 
" f# 
$ ))%>''z:--d.>.>ug.NO 33D4D4DUM4Z[((6 7 
8 9 	r  c                 F    SSSSSSSSSSSSSS.nU R                  X!U5      $ )Nr  r  r  rejectedexpired)NEWPARTIALLY_FILLEDr  r  REJECTEDEXPIREDr  r  
TRIGGERINGr  r  PLATFORM_REVOCATIONHISTORYr   r  r  statusess      r  r  xt.parse_order_status  sE     &""  # !)#- 
 &99r  r  c                 h  #    U R                  5       I Sh  vN   0 nSnUb  U R                  U5      nUb  X%S'   Ub  X5S'   SnSnSn	U R                  SSU5      u  ptU R                  SSU5      u  pUS:X  a)  U R	                  U R                  XT5      5      I Sh  vN n	OSUS:X  d  US:X  d  US:X  a)  U R                  U R                  XT5      5      I Sh  vN n	O[        U R                  S	-   5      eU R                  U	S
0 5      n
U R                  U
S/ 5      nU R                  XX#5      $  GN N NZ7f)a  
fetch the history of changes, actions done by the user or operations that altered the balance of the user

https://doc.xt.com/#futures_usergetBalanceBill

:param str [code]: unified currency code
:param int [since]: timestamp in ms of the earliest ledger entry
:param int [limit]: max number of ledger entries to return
:param dict params: extra parameters specific to the xt api endpoint
:returns dict: a `ledger structure <https://docs.ccxt.com/en/latest/manual.html#ledger-structure>`
Nr  r  rg   r   r   r=   r>   zi fetchLedger() does not support spot transactions, only swap and future wallet transactions are supportedr  r  )r  r  r  r  )privateInverseGetFutureUserV1BalanceBillsr  (privateLinearGetFutureUserV1BalanceBillsr"   r.   r  parse_ledger)r  r  r  r  r  r  r  r  r  r  r  ledgers               r  fetch_ledgerxt.fetch_ledger  sN     !!!}}T*H#(K $G99-vV99-vVi!KKDKKX_LhiiH!tv~48;K!JJ4;;W^KghhHtww  *U   U  V  V0 x26w3  5@@[ 	" jhs5   D2D+BD2D.:D2D0AD2.D20D2c                    U R                  US5      nUS:X  a  SOSnU R                  US5      nU R                  XR5      nU R                  US5      nU R                  UU R                  US5      US S S U R	                  U R                  US5      5      U R                  XR5      U R                  US	5      UU R                  U5      S U R                  US
5      S S S S.S.U5      $ )Nr   ADDinoutr5  r  r.   r  r  afterAmountr  )r	  r.   	directionrA  referenceIdreferenceAccountr  r  r  r  r  beforeafterr  r  )r   safe_currencyr  safe_ledger_entryparse_ledger_entry_typer!  r#  r  )r  itemr  r   r  r0  r  s          r  parse_ledger_entryxt.parse_ledger_entry  s     f-!U]D	%%dF3
%%j;%%dM:	%%""4." $001A1A$1OP//
E&&tX6"Y/%%dM: '
& ' 	r  c           	      <    SSSSSSSSS.nU R                  X!U5      $ )Nr   r   r  zauto-deleveraging)EXCHANGECLOSE_POSITION	TAKE_OVERMERGEQIANG_PING_MANAGERFUNDFEEADLr  )r  r  
ledgerTypes      r  r  xt.parse_ledger_entry_type  s6    "% "'&	

 
$77r  c                 ~  #    U R                  5       I Sh  vN   SnU R                  U5      u  p2U R                  U5      nU R                  X15      nU R	                  SUS5        US   US.nU R                  U R                  Xb5      5      I Sh  vN nU R                  US0 5      nU R                  X5      $  N N*7f)a  
fetch the deposit address for a currency associated with self account

https://doc.xt.com/#deposit_withdrawaldepositAddressGet

:param str code: unified currency code
:param dict params: extra parameters specific to the xt api endpoint
:param str params['network']: required network id
:returns dict: an `address structure <https://docs.ccxt.com/en/latest/manual.html#address-structure>`
NrX   r
  r.   )r  r  r  )	r  handle_network_code_and_paramsr  network_code_to_idcheck_required_argumentprivateSpotGetDepositAddressr  r  parse_deposit_address)	r  r  r  r6  r  r5  r  r  r  s	            r  fetch_deposit_addressxt.fetch_deposit_address)  s      !!!"AA&I==&++K>	$$%:IyQ 
 ::4;;w;WXX 8R8))&;;/ 	" Ys"   B=B9A9B=B;)B=;B=c                     U R                  US5      nU R                  U5        UU R                  S U5      S UU R                  US5      S.$ )Naddressmemo)r	  r  r
  r  tag)r   check_addressr!  )r  depositAddressr  r  s       r  r  xt.parse_deposit_addressM  sW     "">9=7#"//h?##NF;
 	
r  c                 `  #    U R                  5       I Sh  vN   0 nSnUb  U R                  U5      nUS   US'   Ub  X%S'   Ub  X5S'   U R                  U R                  XT5      5      I Sh  vN nU R	                  US0 5      nU R	                  US/ 5      n	U R                  XX#U5      $  N N?7f)a  
fetch all deposits made to an account

https://doc.xt.com/#deposit_withdrawalhistoryDepositGet

:param str [code]: unified currency code
:param int [since]: the earliest time in ms to fetch deposits for
:param int [limit]: the maximum number of transaction structures to retrieve
:param dict params: extra parameters specific to the xt api endpoint
:returns dict[]: a list of `transaction structures <https://docs.ccxt.com/en/latest/manual.html#transaction-structure>`
Nr.   r  r  r  r  r  )r  r  privateSpotGetDepositHistoryr  r  parse_transactions)
r  r  r  r  r  r  r  r  r  depositss
             r  fetch_depositsxt.fetch_deposits^  s      !!!}}T*H"*4.GJ#(K $G::4;;w;WXX6 x26??4"5&&x5PPO 	" Y"   B.B*AB.,B,->B.,B.c                 `  #    U R                  5       I Sh  vN   0 nSnUb  U R                  U5      nUS   US'   Ub  X%S'   Ub  X5S'   U R                  U R                  XT5      5      I Sh  vN nU R	                  US0 5      nU R	                  US/ 5      n	U R                  XX#U5      $  N N?7f)a  
fetch all withdrawals made from an account

https://doc.xt.com/#deposit_withdrawalwithdrawHistory

:param str [code]: unified currency code
:param int [since]: the earliest time in ms to fetch withdrawals for
:param int [limit]: the maximum number of transaction structures to retrieve
:param dict params: extra parameters specific to the xt api endpoint
:returns dict[]: a list of `transaction structures <https://docs.ccxt.com/en/latest/manual.html#transaction-structure>`
Nr.   r  r  r  r  r  )r  r  privateSpotGetWithdrawHistoryr  r  r$  )
r  r  r  r  r  r  r  r  r  withdrawalss
             r  fetch_withdrawalsxt.fetch_withdrawals  s      !!!}}T*H"*4.GJ#(K $G;;DKK<XYY6 x26oodGR8&&{eFSSO 	" Zr(  r  r  c                   #    U R                  U5        U R                  5       I Sh  vN   U R                  U5      nU R                  XE5      u  pESnU R	                  U5      u  puU R                  U R                  S0 5      nU R                  XX5      n	US   U	U R                  X5      US.n
Ub  XJS'   U R                  U R                  X5      5      I Sh  vN nU R                  US0 5      nU R                  X5      $  N N*7f)a  
make a withdrawal

https://doc.xt.com/#deposit_withdrawalwithdraw

:param str code: unified currency code
:param float amount: the amount to withdraw
:param str address: the address to withdraw to
:param str [tag]:
:param dict params: extra parameters specific to the xt api endpoint
:returns dict: a `transaction structure <https://docs.ccxt.com/en/latest/manual.html#transaction-structure>`
Nr  r.   )r  r  r  r  r  r  )r  r  r  handle_withdraw_tag_and_paramsr  r  rS  r  currency_to_precisionprivateSpotPostWithdrawr  parse_transaction)r  r  r  r  r  r  r  r6  networkIdsByCodesr5  r  r  r  s                r  r   xt.withdraw  s     	7#!!!==&99#F"AA&I OODLL*bI&&'8tR	 00>	
 ?!FO55dkk'6RSS 8R8%%f777 	" Ts"   %DD B/DD)DDtransactionr  c                    SU;   a  SOSnU R                  US5      nU R                  US5      nU R                  US5      nU R                  U R                  US5      U5      nU R                  US5      nUb  UOS n	U R                  US	5      n
0 S
U_SU R                  US5      _SU R                  US5      _SU_SU R	                  U5      _SS _SU R                  US5      _SU_SU_SS _SS _SU_SU_SU R                  US5      _SU_SU R                  X5      _SU R                  U R                  US5      5      _UU	US S.S S.E$ )NfromAddrr  r   r  r  r  r  r  r  r	  r.   txidtransactionIdr  r  updatedaddressFrom	addressTotagFromtagTor  r  r  r
  r  )r  r  rate)commentr  internal)r  r   r!  r#  r  r"  parse_transaction_status)r  r5  r  r  r  r  r  currencyCoder  r  r5  s              r  r2  xt.parse_transaction  s   P (;6yZ%%k=A	"";	:V4..t/?/?Z/XZbc{E2'*lT$$[':	
K
$"";5
 D$$[/B
 	

 Y/
 t
 4++KD
 
 w
 t
 T
 4
 D
 d&&{H=
 
  t..yG!
" d33D4D4D[RZ4[\#
$ '
 1
 	
r  c                 :    SSSSSSSS.nU R                  X!U5      $ )Npendingr  failedok)SUBMITREVIEWAUDITEDPENDINGCANCELFAILSUCCESSr  r  s      r  rB  xt.parse_transaction_status>  s3       
 &99r  rY  c                 p  #    Uc  [        U R                  S-   5      eU R                  US5      nU R                  SUSSS/5        US:  d  US:  a  [	        U R                  S	-   5      eU R                  5       I Sh  vN   U R                  U5      nUS
   (       d  [        U R                  S-   5      eUS   UUS.nSnU R                  SXS5      u  psSnUS:X  a*  U R                  U R                  Xc5      5      I Sh  vN nU$ U R                  U R                  Xc5      5      I Sh  vN nU$  N N2 N
7f)aR  
set the level of leverage for a market

https://doc.xt.com/#futures_useradjustLeverage

:param float leverage: the rate of leverage
:param str symbol: unified market symbol
:param dict params: extra parameters specific to the xt api endpoint
:param str params['positionSide']: 'LONG' or 'SHORT'
:returns dict: response from the exchange
Nz) setLeverage() requires a symbol argumentrb  r   ra  r`  r   }   z3 setLeverage() leverage should be between 1 and 125r   z- setLeverage() supports contract markets onlyr.   )r   rb  rY  r   )r   r.   r   r  r   r  rS  r   r  4privateInversePostFutureUserV1PositionAdjustLeverager  3privateLinearPostFutureUserV1PositionAdjustLeverage)	r  rY  r   r  rb  rS  r  r  r  s	            r  set_leveragext.set_leverageJ  sG     >#DGG.Y$YZZ''?$$]L.SY[bRcdqLhnTWW'\\]]!!!V$z"DGG&UUVVTl( 

 99-Xi!VVW[WbWbcjWsttH  "UUVZVaVabiVrssH 1 	" uss7   A;D6=D0>BD6?D2 )D6)D4*D62D64D6c                 D   #    U R                  XSU5      I Sh  vN $  N7f)ap  
add margin to a position

https://doc.xt.com/#futures_useradjustMargin

:param str symbol: unified market symbol
:param float amount: amount of margin to add
:param dict params: extra parameters specific to the xt api endpoint
:param str params['positionSide']: 'LONG' or 'SHORT'
:returns dict: a `margin structure <https://docs.ccxt.com/#/?id=add-margin-structure>`
r  Nmodify_margin_helperr  r   r  r  s       r  
add_marginxt.add_marginv  "      ..vufMMMMr  c                 D   #    U R                  XSU5      I Sh  vN $  N7f)a  
remove margin from a position

https://doc.xt.com/#futures_useradjustMargin

:param str symbol: unified market symbol
:param float amount: the amount of margin to remove
:param dict params: extra parameters specific to the xt api endpoint
:param str params['positionSide']: 'LONG' or 'SHORT'
:returns dict: a `margin structure <https://docs.ccxt.com/#/?id=reduce-margin-structure>`
SUBNrX  rZ  s       r  reduce_marginxt.reduce_margin  r]  r  c                   #    U R                  US5      nU R                  SUSSS/5        U R                  5       I S h  vN   U R                  U5      nUS   UUUS.nS nU R	                  SXd5      u  pS n	US:X  a)  U R                  U R                  Xt5      5      I S h  vN n	O(U R                  U R                  Xt5      5      I S h  vN n	U R                  X5      $  N N@ N7f)	Nrb  r   ra  r`  r.   )r   r<   r  rb  modifyMarginHelperr   )	r   r  r  rS  r  ,privateInversePostFutureUserV1PositionMarginr  +privateLinearPostFutureUserV1PositionMarginparse_margin_modification)
r  r   r  addOrReducer  rb  rS  r  r  r  s
             r  rY  xt.modify_margin_helper  s     ''?$$]L.SY[bRcd!!!V$Tl(	
 99:NPV_i!NNt{{[bOkllH!MMdkkZaNjkkH --h??/ 	" mks4   <C$CA C$C  (C$C"	C$ C$"C$c                 <    US S S U R                  S U5      S S S S S S.
$ )N)
r	  r  r  r  r   r  r  r@  r  r  )r  )r  r  rS  s      r  rf  xt.parse_margin_modification  s7    &&tV4
 	
r  c                 V  #    U R                  5       I Sh  vN   SnU R                  SSU5      u  p2SnUS:X  a  U R                  U5      I Sh  vN nOU R                  U5      I Sh  vN nU R	                  US/ 5      nU R                  U5      nU R                  XQS5      $  N NV N>7f)an  
retrieve information on the maximum leverage for different trade sizes

https://doc.xt.com/#futures_quotesgetLeverageBrackets

:param str [symbols]: a list of unified market symbols
:param dict params: extra parameters specific to the xt api endpoint
:returns dict: a dictionary of `leverage tiers structures <https://docs.ccxt.com/#/?id=leverage-tiers-structure>`
Nrj   r   r  r   )r  r  7publicInverseGetFutureMarketV1PublicLeverageBracketList6publicLinearGetFutureMarketV1PublicLeverageBracketListr  r  parse_leverage_tiers)r  rF  r  r  r  r  s         r  fetch_leverage_tiersxt.fetch_leverage_tiers  s      !!!99:NPTV\]i!YYZ`aaH!XXY_``H2 x26%%g.((AAE 	"
 b`s3   B)B#7B)B%B)(B');B)%B)'B)c                 D   0 n[        S[        U5      5       H  nX   nU R                  US5      nU R                  US SS5      nU R	                  Xx5      n	Ub-  U R                  X5      (       a  U R                  Xh5      XI'   Ml  Mn  U R                  X   U5      XI'   M     U$ )Nr   r   r  r   )r  r  r   r  r  in_arrayparse_market_leverage_tiers)
r  r  rF  marketIdKeyr  r.  r/  r  rS  r   s
             r  rn  xt.parse_leverage_tiers  s    $ q#h-(AKE''x8H%%hc:FF%%h7F"==11%)%E%Ee%TFN 2 "&!A!A(+v!V ) r  c                   #    U R                  5       I Sh  vN   U R                  U5      nSUS   0nSnU R                  SX25      u  pRSnUS:X  a)  U R                  U R	                  XB5      5      I Sh  vN nO(U R                  U R	                  XB5      5      I Sh  vN nU R                  US0 5      nU R                  Xs5      $  N NS N,7f)ac  
retrieve information on the maximum leverage for different trade sizes of a single market

https://doc.xt.com/#futures_quotesgetLeverageBracket

:param str symbol: unified market symbol
:param dict params: extra parameters specific to the xt api endpoint
:returns dict: a `leverage tiers structure <https://docs.ccxt.com/#/?id=leverage-tiers-structure>`
Nr   r.   rk   r   r  )r  rS  r  9publicInverseGetFutureMarketV1PublicLeverageBracketDetailr  8publicLinearGetFutureMarketV1PublicLeverageBracketDetailr  rs  )r  r   r  rS  r  r  r  r  s           r  fetch_market_leverage_tiersxt.fetch_market_leverage_tiers	  s      !!!V$fTl
 99:TV\ei![[\`\g\gho\xyyH!ZZ[_[f[fgn[wxxH. x26//==G 	" zxs4   CCAC4C5(CC
)CC
Cc                    / nU R                  US/ 5      n[        S[        U5      5       H  nXE   nU R                  US5      nU R	                  XrSS5      nUR                  U R                  US5      U R                  XrSS5      US   U R                  XES-
     S	S5      U R                  US	5      U R                  US
5      U R                  US5      US.5        M     U$ )NleverageBracketsr   r   r  r   bracketru  r   maxNominalValuemaintMarginRatemaxLeverage)tierr   r  rk  rl  maintenanceMarginRater  r	  )	r  r  r  r   r  rP  r  r  r#  )r  r	  rS  r   bracketsr.  r  r  s           r  rs  xt.parse_market_leverage_tiers8  s    $ ??4);R@q#h-(A;D''h7H%%hZHFLL))$	:**8S*M"8,#//QARTUV#//6GH)-)9)9$@Q)R#//mD	 		 ) r  c                 "  #    Uc  [        U R                  S-   5      eU R                  5       I Sh  vN   SnU R                  USS5      u  pTU(       a  U R	                  SXX4SSSS5	      I Sh  vN $ U R                  U5      nUS	   (       d  [        U R                  S
-   5      eSUS   0nUb  X7S'   OSUS'   SnU R                  SXd5      u  pSn	US:X  a)  U R                  U R                  Xt5      5      I Sh  vN n	O(U R                  U R                  Xt5      5      I Sh  vN n	U R                  U	S0 5      n
U R                  U
S/ 5      n/ n[        S[        U5      5       Hr  nX   nU R                  US5      nU R                  X5      nU R!                  US5      nUR#                  UUU R%                  US5      UU R'                  U5      S.5        Mt     U R)                  US5      nU R+                  UUS   X#5      $  GN GN GN N7f)a  
fetches historical funding rates

https://doc.xt.com/#futures_quotesgetFundingRateRecord

:param str [symbol]: unified symbol of the market to fetch the funding rate history for
:param int [since]: timestamp in ms of the earliest funding rate to fetch
:param int [limit]: the maximum amount of [funding rate structures] to fetch
:param dict params: extra parameters specific to the xt api endpoint
:param bool params['paginate']: True/false whether to use the pagination helper to aumatically paginate through the results
:returns dict[]: a list of `funding rate structures <https://docs.ccxt.com/en/latest/manual.html?#funding-rate-history-structure>`
Nz5 fetchFundingRateHistory() requires a symbol argumentFrc   r  r.   r      r=   z7 fetchFundingRateHistory() supports swap contracts onlyr   r  r   r  r  r   r  fundingRate)r	  r   r  r  r  r  )r   r.   r  r  fetch_paginated_call_cursorrS  r   r  6publicInverseGetFutureMarketV1PublicQFundingRateRecordr  5publicLinearGetFutureMarketV1PublicQFundingRateRecordr  r  r  r   r  r  rP  r#  r  sort_byfilter_by_symbol_since_limit)r  r   r  r  r  r  rS  r  r  r  r  r  ratesr.  r/  r  symbolInnerr  sorteds                      r  fetch_funding_rate_historyxt.fetch_funding_rate_history\  s:     >#DGG.e$eff!!!88AZ\fg99:SU[diswy}  @A  CF  G  G  GV$f~DGG&__``fTl
 $G"GG99:SU[di!XXY]YdYdelYuvvH!WWX\XcXcdkXtuuH* 8R84q#e*%AHE''x8H**8<K))%?ILL%#//}E& LL3  & e[1009I5XXu 	" G wusG   /HH<H.H/BH;H
<(H$H%C HH
HHc                 @   #    U R                  X5      I Sh  vN $  N7f)a1  
fetch the current funding rate interval

https://doc.xt.com/#futures_quotesgetFundingRate

:param str symbol: unified market symbol
:param dict [params]: extra parameters specific to the exchange API endpoint
:returns dict: a `funding rate structure <https://docs.ccxt.com/#/?id=funding-rate-structure>`
N)fetch_funding_rate)r  r   r  s      r  fetch_funding_intervalxt.fetch_funding_interval  s      ,,V<<<<s   c                   #    U R                  5       I Sh  vN   U R                  U5      nUS   (       d  [        U R                  S-   5      eSUS   0nSnU R	                  SX25      u  pRSnUS:X  a)  U R                  U R                  XB5      5      I Sh  vN nO(U R                  U R                  XB5      5      I Sh  vN nU R                  US0 5      nU R                  Xs5      $  N NS N,7f)	a   
fetch the current funding rate

https://doc.xt.com/#futures_quotesgetFundingRate

:param str symbol: unified market symbol
:param dict params: extra parameters specific to the xt api endpoint
:returns dict: a `funding rate structure <https://docs.ccxt.com/#/?id=funding-rate-structure>`
Nr=   z0 fetchFundingRate() supports swap contracts onlyr   r.   rb   r   r  )
r  rS  r   r.   r  0publicInverseGetFutureMarketV1PublicQFundingRater  /publicLinearGetFutureMarketV1PublicQFundingRater  parse_funding_rate)r  r   r  rS  r  r  r  r  s           r  r  xt.fetch_funding_rate  s      !!!V$f~DGG&XXYYfTl
 99:Lf]i!RRSWS^S^_fSoppH!QQRVR]R]^eRnooH 8R8&&v669 	" qos4   C.C(A?C.C*(C.?C, )C.*C.,C.c                 T   U R                  US5      nU R                  X2SS5      nU R                  US5      nU R                  US5      nUb  US-   n0 SU_SU_SS _S	S _S
S _SS _SS _SS _SU R                  US5      _SU_SU R	                  U5      _SS _SS _SS _SS _SS _SS _SU0E$ )Nr   r  r=   nextCollectionTimecollectionInternalr  r	  	markPrice
indexPriceinterestRateestimatedSettlePricer  r  r  fundingTimestampfundingDatetimenextFundingRatenextFundingTimestampnextFundingDatetimepreviousFundingRatepreviousFundingTimestamppreviousFundingDatetimer  )r   r  r  r#  r  )r  r   rS  r  r   r  r  s          r  r  xt.parse_funding_rate  sS    ##Hh7!!(C@%%h0DE	##H.BC#~H
H
f
 
 $	

 D
 #D
 
 
 4++HmD
 	
 t||I6
 t
 #D
 "4
 "4
  '!
" &t#
$ %
 	
r  c                   #    U R                  5       I Sh  vN   U R                  U5      nUS   (       d  [        U R                  S-   5      eSUS   0nUb  X&S'   Ub  X6S'   SnU R	                  SXT5      u  ptSnUS	:X  a)  U R                  U R                  Xd5      5      I Sh  vN nO(U R                  U R                  Xd5      5      I Sh  vN nU R                  US
0 5      n	U R                  U	S/ 5      n
/ n[        S[        U
5      5       H'  nX   nUR                  U R                  X5      5        M)     U R                  US5      nU R                  XU5      $  GNH N N7f)a  
fetch the funding history

https://doc.xt.com/#futures_usergetFunding

:param str symbol: unified market symbol
:param int [since]: the starting timestamp in milliseconds
:param int [limit]: the number of entries to return
:param dict params: extra parameters specific to the xt api endpoint
:returns dict[]: a list of `funding history structures <https://docs.ccxt.com/#/?id=funding-history-structure>`
Nr=   z3 fetchFundingHistory() supports swap contracts onlyr   r.   r  r  r_   r   r  r  r   r  )r  rS  r   r.   r  3privateInverseGetFutureUserV1BalanceFundingRateListr  2privateLinearGetFutureUserV1BalanceFundingRateListr  r  r  rP  parse_funding_historyr  filter_by_since_limit)r  r   r  r  r  rS  r  r  r  r  r  r  r.  r/  r  s                  r  fetch_funding_historyxt.fetch_funding_history  sk     !!!V$f~DGG&[[\\fTl
 #(K $G99:OQW`i!UUVZVaVabiVrssH!TTUYU`U`ahUqrrH, x26gr2q#e*%AHEMM$44UCD & fk2))&??] 	" trs5   E%EBE%$E!%(E%E#BE%!E%#E%c           
      (   U R                  US5      nU R                  X2SS5      nU R                  US5      nU R                  U5      nU R                  US5      nUUUUU R	                  U5      U R                  US5      U R                  US5      S.$ )	Nr   r  r=   r5  r  r.   cast)r	  r   r  r  r  r.   r  )r   r  r!  r  r  r#  )r  r   rS  r  r   r0  r  r  s           r  r  xt.parse_funding_history;  s     ##Hh7!!(C@%%h7
&&z2%%h>	"Y/""8T2&&x8
 	
r  c                 `  #    U R                  5       I Sh  vN   U R                  U5      nSUS   0nSnU R                  SX25      u  pRSnUS:X  a)  U R                  U R	                  XB5      5      I Sh  vN nO(U R                  U R	                  XB5      5      I Sh  vN nU R                  US/ 5      n[        S[        U5      5       HX  nXx   n	U R                  U	S5      n
U R                  U
SSS5      nU R                  U	S	5      nUS
:w  d  MG  U R                  X5      s  $    g GN N N7f)aN  
fetch data on a single open contract trade position

https://doc.xt.com/#futures_usergetPosition

:param str symbol: unified market symbol of the market the position is held in
:param dict params: extra parameters specific to the xt api endpoint
:returns dict: a `position structure <https://docs.ccxt.com/#/?id=position-structure>`
Nr   r.   ry   r   r  r   r   positionSizer   )r  rS  r  )privateInverseGetFutureUserV1PositionListr  (privateLinearGetFutureUserV1PositionListr  r  r  r   r  parse_position)r  r   r  rS  r  r  r  	positionsr.  r/  r  marketInnerr  s                r  fetch_positionxt.fetch_positionU  s0     !!!V$fTl
 99/6Zi!KKDKKX_LhiiH!JJ4;;W^KghhH4 OOHh;	q#i.)ALE''x8H**8T4LK++E>BLs"**5>> * [ 	" jhs;   D.D'AD.4D*5(D.D,A/D.D.*D.,D.c                   #    U R                  5       I Sh  vN   SnU R                  SSU5      u  p2SnUS:X  a  U R                  U5      I Sh  vN nOU R                  U5      I Sh  vN nU R	                  US/ 5      n/ n[        S[        U5      5       HM  nXW   nU R                  US5      n	U R                  U	SSS5      n
UR                  U R                  X5      5        MO     U R                  USUS5      $  N N N7f)	a:  
fetch all open positions

https://doc.xt.com/#futures_usergetPosition

:param str [symbols]: list of unified market symbols, not supported with xt
:param dict params: extra parameters specific to the xt api endpoint
:returns dict[]: a list of `position structure <https://docs.ccxt.com/#/?id=position-structure>`
Nrz   r   r  r   r   r   F)r  r  r  r  r  r  r  r   r  rP  r  filter_by_array_positions)r  rF  r  r  r  r  r  r.  r/  r  r  s              r  fetch_positionsxt.fetch_positions  s     !!!99:JDRXYi!KKFSSH!JJ6RRH4 OOHh;	q#i.)ALE''x8H**8T4LKMM$--eAB	 *
 --fhOOQ 	"
 TRs4   DC<7DC>D(D )BD>D Dc           
         U R                  US5      nU R                  X2S S5      nU R                  X2S S5      nU R                  US5      nUS:X  a  SOSnU R                  US5      nU R	                  0 SU_S	S _SU_S
S _SS _SS _SU R                  US5      _SU R                  US5      _SUS   _SU R                  US5      _SS _SS _SU R                  US5      _SU_SU_SS _SS _S S S US S S.E5      $ )Nr   r   positionTypeCROSSEDcrossisolatedr<  r	  r.   r  r  r  r   rb  	contractsr  r{  
entryPricer  notionalrY  
collateralinitialMarginmaintenanceMargininitialMarginPercentage)maintenanceMarginPercentageunrealizedPnlliquidationPricer  r   marginRatio)r   r  r  r#  safe_positionr"  r  )r  positionrS  r  r   r  r  r  s           r  r  xt.parse_position  s   & ##Hh7!!(D*E!!(D*E''.A!-!:W
%%h0@A
!! #
H#
$#
 f#
 	#

 #
 d#
 D**8^D#
 ))(NC#
 F>2#
 $**8\B#
 #
 #
 ))(J?#
 *#
 Z#
   !#
" &t##
$ ,0! $$/#
  	r  fromAccount	toAccountc                   #    U R                  5       I Sh  vN   U R                  U5      nU R                  U R                  S5      nU R	                  XsU5      nU R	                  XtU5      n	U R                  X5      n
U R                  5       US   U
UU	S.nU R                  U R                  X5      5      I Sh  vN nU R                  X5      $  N N7f)a   
transfer currency internally between wallets on the same account

https://doc.xt.com/#transfersubTransferPost

:param str code: unified currency code
:param float amount: amount to transfer
:param str fromAccount: account to transfer from -  spot, swap, leverage, finance
:param str toAccount: account to transfer to - spot, swap, leverage, finance
:param dict params: extra parameters specific to the whitebit api endpoint
:returns dict: a `transfer structure <https://docs.ccxt.com/#/?id=transfer-structure>`
Nr  r.   )bizIdr  r  fromto)
r  r  r  rS  r   r0  uuidprivateSpotPostBalanceTransferr  parse_transfer)r  r  r  r  r  r  r  accountsByTypefromAccountIdtoAccountIdrX  r  r  s                r  r   xt.transfer  s      !!!==&~F((kR&&~)L11$?YY[ "!
 <<T[[=YZZ ""8667 	" [s"   CCB"C9C:CCc           
      :    UU R                  US5      S S S S S S S S.	$ )Nr  )	r	  r.   r  r  r  r  r  r  r  r  )r  r   r  s      r  r  xt.parse_transfer  s4    ""8X6

 
	
r  r  c                   #    Uc  [        U R                  S-   5      eU R                  5       I Sh  vN   U R                  U5      nUS   (       a  [	        U R                  S-   5      eUR                  5       nUS:w  a  US:w  a  [        U R                  S-   5      eUS:X  a  SnOS	nU R                  US
5      nUc  [        U R                  S-   5      eUUUS   S.nU R                  U R                  Xc5      5      I Sh  vN nU$  N N7f)a`  
set margin mode to 'cross' or 'isolated'

https://doc.xt.com/#futures_userchangePositionType

:param str marginMode: 'cross' or 'isolated'
:param str [symbol]: required
:param dict [params]: extra parameters specific to the exchange API endpoint
:param str [params.positionSide]: *required* "long" or "short"
:returns dict: response from the exchange
Nz+ setMarginMode() requires a symbol argumentr;   z/ setMarginMode() supports contract markets onlyr  r  z@ setMarginMode() marginMode argument should be isolated or crossr  ISOLATEDrb  zL setMarginMode() requires a positionSide parameter, either "LONG" or "SHORT"r.   )r  rb  r   )
r   r.   r  rS  r   lowerr   rR  /privateLinearPostFutureUserV1PositionChangeTyper  )r  r  r   r  rS  posSider  r  s           r  set_margin_modext.set_margin_mode,  s     >#DGG.[$[\\!!!V$&>DGG&WWXX%%'
#
g(=TWW'iijj "J#J((@?#DGG.|$|}}&#Tl

 MMdkkZaNjkk ? 	"& ls"   /DDCDD
D
Dc                   #    Uc  [        U R                  S-   5      eU R                  5       I Sh  vN   U R                  U5      n0 n	U R	                  USS5      n
U R	                  USS5      nU R                  USS/5      nU
SLnUSLnU(       d  U(       a  XS'   OXS'   U R                  X&5      U	S	'   SnUS
   (       Ga$  U(       a  U R                  X*5      U	S'   O,Ub  U R                  X+5      U	S'   OU R                  X%5      U	S'   SnU R                  SX5      u  pUS:X  a`  U(       d  U(       a)  U R                  U R                  X5      5      I Sh  vN nOU R                  U R                  X5      5      I Sh  vN nOU(       d  U(       a)  U R                  U R                  X5      5      I Sh  vN nOeU R                  U R                  X5      5      I Sh  vN nO<U R                  X%5      U	S'   U R                  U R                  X5      5      I Sh  vN nUS
   (       a  UOU R                  US0 5      nU R!                  UU5      $  GN# N N N N{ N@7f)ag  
cancels an order and places a new order

https://doc.xt.com/#orderorderUpdate
https://doc.xt.com/#futures_orderupdate
https://doc.xt.com/#futures_entrustupdateProfit

:param str id: order id
:param str symbol: unified symbol of the market to create an order in
:param str type: 'market' or 'limit'
:param str side: 'buy' or 'sell'
:param float amount: how much of the currency you want to trade in units of the base currency
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
:param dict [params]: extra parameters specific to the exchange API endpoint
:param float [params.stopLoss]: price to set a stop-loss on an open position
:param float [params.takeProfit]: price to set a take-profit on an open position
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
Nz( editOrder() requires an amount argumentrd  re  rf  rg  r{  r  r  r=   r^  rK   r   r  r  )r   r.   r  rS  r  r  rT  rU  r  6privateInversePostFutureTradeV1EntrustUpdateProfitStopr  *privateInversePostFutureTradeV1OrderUpdate5privateLinearPostFutureTradeV1EntrustUpdateProfitStop)privateLinearPostFutureTradeV1OrderUpdateprivateSpotPutOrderOrderIdr  rW  )r  r.   r   r  r   r  r  r  rS  r  rd  rf  rt  ru  r  r  r  s                    r  
edit_orderxt.edit_order[  sI    & >#DGG.X$XYY!!!V$%%fj:LM''>RS
6J#=>d*
"$."$J!#I#66vEGG&>>.2.E.Ef.W*+'040G0G0[,-%)%=%=f%M	"G"==k6ZOG)#%)%`%`aealalmta}%~~H%)%T%TUYU`U`ahUq%rrH %)%_%_`d`k`kls`|%}}H%)%S%STXT_T_`gTp%qqH #'":":6"JGJ!<<T[[=YZZH %Vn4>>(HVX3Y//C 	"2  r  ~q [sj   /I!ID&I!I(I!I6I!8I9(I!!I"<I!I6I!I!I!I!I!I!c
                    U R                  USS5      n
U
b  U
S:w  a  U R                  S-   U-   nU R                  US0 5      nU R                  US5      nU R                  USU5      nU R                  US5      nU R                  USU5      nU R	                  U R
                  S   X5        U R                  U R
                  S	   UU5        [        U5      eg )
NmsgInfomcrO   errorr  msgrB  rC  )safe_string_upper_2r.   r  r   throw_exactly_matched_exceptionr   throw_broadly_matched_exceptionr   )r  r  reasonurlmethodheadersbodyr  requestHeadersrequestBodyr  feedbackr  spotErrorCode	errorCodespotMessagemessages                    r  handle_errorsxt.handle_errors  s    j ))(ItD&I"5ww}t+HOOHgr:E ,,Xt<M((FI**8Y?K&&ue[AG001I9_001I7T\]))r  GETc                 (   US   S:H  nUS   nSU R                  X5      -   n	S n
US:X  d  US:X  a0  U(       a  SU R                  -   U	-   n
OSU R                  -   S-   U	-   n
OU	n
U R                  S   U   U
-   nU R                  X@R	                  U5      5      nU R                  U R                  U5      5      nS	S
0nU(       Ga=  U R                  5         U R                  U R                  S5      nU R                  USU5      nU R                  U R                  5       5      nUnU
S:X  d  U
S:X  d  U
S:X  d  U
S:X  d  U
S:X  a"  SnU
R                  S5      S:  a  UUS'   OUUS'   US:H  =(       d    US:H  =(       d    US:H  nUS:X  a  US:X  a  SnU(       a  S OU R                  U5      nS nUS:X  d  US:X  a  SU R                  -   S-   U-   S-   S-   U-   nU(       aQ  U(       a;  USU-   -  nUS U-   S -   U
-   S -   U R                  U R                  U5      5      -   -  nO#US U-   S -   U
-   -  nOUS U-   S -   U
-   S -   U-   -  nS!US"'   XS#'   OSS$U R                  -   S-   S-   U-   nUS:X  a'  U(       a  USU-   -  nUS U
-   S -   U-   -  nOUS U
-   -  nOUS U
-   S -   U-   -  nU R!                  U R#                  U5      U R#                  U R$                  5      [&        R(                  5      nU R                  US%'   UUS&'   UUS''   OU(       a  USU-   -  nXXeS(.$ ))Nr   r   r   rZ  r;   r   z/publicr   zContent-Typezapplication/jsonr  z	/v4/orderz/future/trade/v1/order/createz$/future/trade/v1/entrust/create-planz&/future/trade/v1/entrust/create-profitz#/future/trade/v1/order/create-batchCCXTr>   clientMediamediar
  r   r   PUTFz5xt-validate-algorithms=HmacSHA256&xt-validate-appkey=z&xt-validate-recvwindow=z&xt-validate-tz	imestamp=?#
HmacSHA256zxt-validate-algorithmszxt-validate-recvwindowzxt-validate-appkey=zxt-validate-appkeyzxt-validate-timestampzxt-validate-signature)r  r  r   r  )implode_paramsr5   r   r  extract_params	urlencodekeysortcheck_required_credentialsr   rS  r$  r  findjsonapiKey	rawencodehmacencodesecrethashlibsha256)r  pathr   r  r  r  r   signedendpointr  payloadr  query
urlencodeddefaultRecvWindowr  r  r.   isUndefinedBodypayloadString	signatures                        r  signxt.sign  s   Q9$q6++D99H$6,w6,y87BGiix(72		&"5"5d";<^^DLL$78
.
 ++- $ 0 0| L))%?PQJ--djjl;ID;&G7V,V\c  hN  ]N  T[  _G  TG  MT  X}  M}<<)B.*,D'$&DM &%gT=N5NgTX\fTfO%h&&8"'*4		$D MF"F(: WZ^ZeZe e  iC  !C  FP  !P  Sc  !c  fq  !q  t}  !}"!sZ//%v);g)E)Kdnn]a]i]ijo]pNq)qq%v);g)EE!S6\C%7'%AC%G$%NNM4@014>01 5 CFV VYd dgp pU?!sZ//%w)<z)II%w6!S7]S%84%??M		$++m"<dkk$++>VX_XfXfgI,0KKG()/8G+,/8G+,sZ''dOOr   )N)NN)f__name__
__module____qualname____firstlineno__r   r  r  r	   r  r   r8  r   r   rC  r<  r=  rH  dictrQ  strr  listr  r  r  r   r  r  r  r  r  r)  r2  r0  floatrH  r   r   r   rG  rK  rL  r  r  r  r  r  r  r  r  r   r  rW  r  r   r
   r  r  r  r   r  r  r&  r,  r   r   r   r2  rB  intrU  r[  r`  r   rY  rf  r   ro  rn  r   ry  rs  r  r   r  r  r  r  r  r  r   r  r  r   r   r  r  r  r  r,  __static_attributes____classcell__)r  s   @r  r*   r*      sl   Q# QfD ') 5S 5. -/ H: HT *, DV D* /1 8+t :< A8Fs4 sF sj ?CQUdhqs UJ UJ UJ3 UJ^a UJn$
 $
4 $
L @DB US U Un 68 H1 H1T 8<B R?49 R?7 R?h :>b '4T#Y '4RN` <@d[] C1 C1S C1 C1J 37TX\eg e?C e?s e?RU e?NbH *, I,V+)Z XZ Qc Q Q" mqy{ _ _I _Y _X] _fi _@ NRZ\ 4/c 4/l RV^` @2# @2D 8<B j/C j/ j/X 04$UYbd _? _?C _?s _?B BFTXgktv ?3 ?c ?ad ?B 59tZ^gi Wc W WTW W& 7;\`ik Y Y3 YVY Y& 9=4^bkm [# [S [X[ [& 9=R K/S K/# K/Z 59 G
c G
R AER #
tCy #
# #
TXY^T_ #
JeN:$ .2SW`b 9As 9A# 9AS 9Agklwgx 9Av% %N8 =? "< "<> "<H
n 
" 04$UYbd 3Q 3QC 3Qs 3Qj 37TX\eg 3TC 3Ts 3TRU 3Tj QU]_ )83 )8 )8 )8# )8do )8VI
T I
X I
Q\ I
V
: ?C2 *3 * *X CE Ns NE N FH N# Nu N SU @ @Yk @8
>P 
 ?C2 ,B$s) ,BR_ ,B\P] > EG -> ->4P\K] ->^"\@R "H >BPTcgpr IYs IY# IY]` IYV @B 
=3 
=k 
= <> &7s &7+ &7P"
; "
H 9=4^bkm :@# :@S :@X[ :@x
4 8: 73 7r :>b 2PT#Y 2PTRZ^ 2Ph1f ac (73 (7 (7C (7TW (7gt (7T
 DHPR - -S -^ fjx|  FH V03 V0 V09 V0I V0_b V0ru V0  MR V0p@D  b$T @P @Pr  r*   )0 ccxt.async_support.base.exchanger   ccxt.abstract.xtr   r  r   ccxt.base.typesr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   typingr   ccxt.base.errorsr   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   ccxt.base.decimal_to_precisionr'   ccxt.base.preciser(   r*   r.  r  r  <module>rA     s{    6 (   t  t  t  t  t  t  * 0 - . ' & . ) ) ) . * + 4 %XLP; XLPr  