
    E#i                     0   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  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BalancesDepositAddressIntMarketNumOrder	OrderBook	OrderSide	OrderTypeStrStringsTickerTickers
OrderBooksTradeTradingFeesTransaction)List)ExchangeError)AuthenticationError)ArgumentsRequired)InsufficientFunds)InvalidOrder)OrderNotFound)DDoSProtection)RateLimitExceeded)ExchangeNotAvailable)InvalidNonce)	TICK_SIZE)Precisec                     ^  \ rS rSrS\4U 4S jjrS\4S jr0 4S\4S jjr0 4S\	\
   4S jjrS0 4S\S	\S\4S
 jjrSS0 4S\S	\S\4S jjrS8S\S\
S\4S jjr0 4S\S\4S jjrS0 4S\S\4S jjr0 4S\S\4S jjrS8S\S\
S\4S jjrSS0 4S\S\S	\S\	\   4S jjr0 4S\4S jjrS0 4S\S\S\ S\!S\"4
S jjr#S0 4S\S\$4S jjr%S \$4S! jr&S8S"\S\
S\'4S# jjr(S0 4S\S\$4S$ jjr)SSS0 4S\$S\S	\S\	\'   4S% jjr*SSS0 4S\$S\S	\4S& jjr+0 4S'\S\,4S( jjr-0 4S'\S\,4S) jjr.S0 4S'\S\!S*\S+\$S\/4
S, jjr0S-S.0 SS4S/ jr1S0\2S1\S2\S3\S4\S5\4S6 jr3S7r4U =r5$ )9yobit   returnc                   > U R                  [        [        U ]  5       0 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_S/S_S0S_E0 S1S_S2S_S3S_S4S_S5S_S6S_S7S_S8S_S9S_S:S_S;S_S<S_S=S_S>S_S?S_S@S_SAS_E0 SBS_SCS_SDS_SES_SFS_SGS_SHS_SIS_SJS_SKS_SLS_SMS_SNS_SOS_SPS_SQS_SRS_E0 SSS_STS_SUS_SVS_SWS_SXS_SYS_SZS_S[S_S\S_S]S_S^S_S_S_S`S_SaS_SbS_ScS_E0 SdS_SeS_SfS_SgS_ShS_SiS_SjS_SkS_SlS_SmS_SnS_SoS_SpS_SqS_SrS_SsS_StS_ESuS0E_SvSwSxSySz.S{S|S}S~._SSSSSSS.0SSSSSSSSSS.0Sz._SSSS.St0 0S._S0 SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_0 SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_E0 SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_E0 SS_SS_SS_SS_SS_SS_SS_SS_SS_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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S0GS1_GS2GS3_GS4GS5_GS6GS7_GS8GS9_GS:GS;_GS<GS=_GS>GS?_GS@GSA_GSBGSC_GSDGSE_GSFGSG_GSHGSI_GSJGSK_GSLGSM_GSNGSO_GSPGSQ_EGSRGSSGSTGSUGSVGSW.E_GSXGSYSGSZGS[GS\GS].GS^._GS_[        _GS`[
        [
        [
        [
        [
        [        [        [        GSa.0 GSb[        _GSc[        _GSd[        _GSe[        _GSf[
        _GSg[
        _GSh[
        _GSi[        _GSj[        _GSk[        _GSl[        _GSm[
        _GSn[
        _GSo[        _GSp[        _GSq[        _GSr[
        _GSs[        0EGSt._GSuSSSSS SSS SSSSGSv.SSSSSSSGSw.S SGSxGSyGSySGSz.SSSSGS{.SS SSSGS|.S S S GS}.	S S GS~.S S GS~.GS._GS0 _5      $ (  Nidr%   nameYoBit	countriesRU	rateLimiti  version3proFhasCORSspotTmarginswapfutureoption	addMarginborrowCrossMarginborrowIsolatedMarginborrowMargincancelOrdercloseAllPositionsclosePositioncreateDepositAddresscreateMarketOrdercreateOrdercreateReduceOnlyOrdercreateStopLimitOrdercreateStopMarketOrdercreateStopOrderfetchAllGreeksfetchBalancefetchBorrowInterestfetchBorrowRatefetchBorrowRateHistoriesfetchBorrowRateHistoryfetchBorrowRatesfetchBorrowRatesPerSymbolfetchCrossBorrowRatefetchCrossBorrowRatesfetchCurrenciesfetchDepositAddressfetchDepositAddressesfetchDepositAddressesByNetworkfetchDepositsfetchFundingHistoryfetchFundingIntervalfetchFundingIntervalsfetchFundingRatefetchFundingRateHistoryfetchFundingRatesfetchGreeksfetchIndexOHLCVfetchIsolatedBorrowRatefetchIsolatedBorrowRatesfetchIsolatedPositionsfetchLeveragefetchLeveragesfetchLeverageTiersfetchLiquidationsfetchLongShortRatiofetchLongShortRatioHistoryfetchMarginAdjustmentHistoryfetchMarginModefetchMarginModesfetchMarketLeverageTiersfetchMarketsfetchMarkOHLCVfetchMarkPricefetchMarkPricesfetchMyLiquidationsfetchMySettlementHistoryfetchMyTradesfetchOpenInterestfetchOpenInterestHistoryfetchOpenInterestsfetchOpenOrdersfetchOptionfetchOptionChain
fetchOrderfetchOrderBookfetchOrderBooksfetchPositionfetchPositionHistoryfetchPositionModefetchPositionsfetchPositionsForSymbolfetchPositionsHistoryfetchPositionsRiskfetchPremiumIndexOHLCVfetchSettlementHistoryfetchTickerfetchTickersfetchTradesfetchTradingFeefetchTradingFeesfetchTransactionsfetchTransferfetchTransfersfetchUnderlyingAssetsfetchVolatilityHistoryfetchWithdrawalsreduceMarginrepayCrossMarginrepayIsolatedMarginrepayMarginsetLeverage	setMarginsetMarginModesetPositionModetransferwithdrawwsurlszchttps://user-images.githubusercontent.com/1294454/27766910-cdcbfdae-5eea-11e7-9859-03fea873272d.jpgzhttps://yobit.net/apizhttps://yobit.net/tapi)publicprivatezhttps://www.yobit.netzhttps://www.yobit.net/en/api/zhttps://www.yobit.net/en/fees/)logoapiwwwdocfeesr   get   )zdepth/{pair}infozticker/{pair}ztrades/{pair}post)ActiveOrdersCancelOrderGetDepositAddressgetInfo	OrderInfor   TradeHistoryWithdrawCoinsToAddressr   gMb`?)makertaker)tradingfundingcommonCurrenciesAIRAirCoinANIANICoinANTAntsCoinATMCHAATMASN	AscensionASTAstral
AutumncoinAUR
AuroraCoinBABBabelBANBANcoinBCCBCHBCSBitcoinStakeBITSBitstarBLNBulleonBNSzBenefit Bonus CoinBOTBOTcoinBONBONESBPCBitcoinPremiumBSTBitStoneBTS
Bitshares2CATBitClaveCBCCryptoBossCoinCMT	CometCoinCOINzCoin.comCOVz
Coven CoinCOVXCPC	CapricoinCREDIT	CreditbitCSCryptoSpotsDCTDiscountDFT	DraftCoinDGDDarkGoldCoinDIRTDIRTYDROP
FaucetCoinDSHDASHEGCEverGreenCoinEGGEggCoinEKOEkoCoinENTERENTRCEPCExperienceCoinESCEdwardSnowdenEUROPEEUROPEXTLifeExtensionFUND
FUNDChainsFUNKFUNKCoinFXFCoinGCCGlobalCryptocurrencyGENGenstakeGENEGenesiscoinGMRGimmerGOLDGoldMintGOTzGiotto CoinGSX
GlowSharesGTGTcoinHTML5HTMLHYPERXHYPERICNiCoinINSANEINSNJNT	JointCoinJPCJupiterCoinJWLJewelsKNCz
KingN CoinLBTCXLiteBitcoinLIZILiZiLOCLocoCoinLOCXLUNYRLUN	LunarCoinLUNAz	Luna CoinMASKz
Yobit MASKMDTMidnightMEMEzMemez TokenMISMIScoinMM
MasterMintNAV
NavajoCoinNBT	NiceBytesOMGOMGameONXOnixPACz$PACPLAYPlayCoinPIVXDarknetPUREPurePOSPUTIN	PutinCoinSPACE	SpacecoinSTK	StakeCoinSUBSubscriptioPAYEPAYPLCzPlatin CoinRAI
RaiderCoinRCNRCoinREPRepublicoinRURRUBSBTCzSuper BitcoinSMC	SmartCoinSOLOSoloCoinSOULSoulCoinSTARStarCoinSUPER	SuperCoinTNSTranscodiumTTC
TittieCoinUNIUniverseUSTUservice
VolumeCoinXINCoin
SummitCoinRatecoinBSV)VOLXINXMTXRABCHNoptions   ERC20TRC20BEP20)ETHTRXBSC)maxUrlLengthfetchOrdersRequiresSymbolnetworksprecisionMode
exceptions)803804805806807831832833zInvalid pair namezinvalid api keyzinvalid signz"api key dont have trade permissionzinvalid parameterzinvalid orderz*The given order has already been cancelledzRequests too oftenznot availablezdata unavailablezexternal service unavailablezTotal transaction amountz?The given order has already been closed and cannot be cancelledzInsufficient fundszinvalid keyzinvalid noncez.Total order amount is less than minimal amountzRate Limited)exactbroadfeatures)IOCFOKPOGTD)
marginModetriggerPricetriggerDirectiontriggerPriceTypestopLossPricetakeProfitPriceattachedStopLossTakeProfittimeInForcehedgedtrailingleveragemarketBuyByCostmarketBuyRequiresPriceselfTradePreventioniceberg  i )r  limitdaysBack	untilDayssymbolRequired)r  triggerr  r  )r  r  r  r  r  )	sandboxrB   createOrdersrq   rx   ru   fetchOrdersfetchClosedOrders
fetchOHLCV)linearinverse)r4   r6   r7   orders)deep_extendsuperr%   describer"   r   r   r   r   r   r   r    r!   r   )self	__class__s    R/home/james-whalen/.local/lib/python3.13/site-packages/ccxt/async_support/yobit.pyr  yobit.describe   s   eT ; = l@
'l@
Gl@
 $l@
 	l@

 sl@
 5l@
  hhh %h 	h
 %h %h Uh $Uh 'h h th $Uh  h 'h $Uh  t!h" (#h$ '%h& ('h( "5)h* !%+h, -h. &u/h0 "51h2 +E3h4 )%5h6 #E7h8 ,U9h: ';h< (=h> "5?h@ &tAhB (ChD 1%EhF  GhH &uIhJ 'KhL (MhN #EOhP *5QhR $UShT uUhV "5WhX *5YhZ +E[h\ )%]h^  _h` !%ahb %echd $Uehf &ughh -eihj /khl "5mhn #Eohp +Eqhr sht !%uhv !%whx "5yhz &u{h| +E}h~  h@ $UAhB +EChD %eEhF "4GhH uIhJ #EKhL dMhN !$OhP "4QhR  ShT 'UhV $UWhX !%YhZ *5[h\ (]h^ %e_h` )%ahb )%chd tehf ghh tihj "5khl #Dmhn $Uohp  qhr !%sht (uhv )%whx #Eyhz {h| #E}h~ &uh@ uAhB uChD UEhF  GhH "5IhJ EKhL DMhN eOhl@
` }57 /68	al@
t () !)*)*	 ()'(-.#$%&!"()23	ul@
` ""
 al@
r  l!yl!yl! zl! %	l!
 {l! xl! |l! |l! wl! yl! ul! ~l! 	l! yl! +l!  y!l!" w#l!$ '%l!& z'l!( |)l!* z+l!, '-l!. {/l!0 
1l!2 |3l!4 5l!6 {7l!8 +9l!: m;l!< z=l!> {?l!@ ~Al!B Cl!D El!F vGl!H Il!J yKl!L yMl!N Ol!P 'Ql!R Sl!T 'Ul!V Wl!X Yl!Z 
[l!\ g]l!^ -_l!` zal!b cl!d xel!f 
gl!h }il!j |kl!l hml!n ol!p 'ql!r wsl!t &ul!v {wl!x }yl!z x{l!| |}l!~ l!@ Al!B zCl!D El!F Gl!H {Il!J Kl!L Ml!N zOl!P Ql!R ySl!T lUl!V |Wl!X {Yl!Z x[l!\ v]l!^ v_l!` 
al!b 	cl!d 	el!f gl!h il!j {kl!l }ml!n vol!p }ql!r |sl!t wul!v }wl!x uyl!z {l!| {}l!~ 
l!@ 
Al!B 
Cl!D El!F }Gl!H |Il!J zKl!L zMl!N $ #!Wl!sl@
L  $-1"""Ml@
^ Y_l@
` ''''',,(	'%': #$7 9:M	
 ( $\ A, ). $%9 '(< 34H / VWc )*; "#6  $\!" El#$ #$5%al@
`	 $&+(-,1,0).+06:#(#("'#(	( #($)$)+027/4#()$, %)&+!%$*%+*.& ',#($)*/	# ',!%#($)*.( $()-"&_0d ##
 ##m:a	l@
V bWl@
 l l	    c                    U R                  US0 5      nU R                  US5      nUUU R                  U5      S.nU R                  US0 5      nU R                  US0 5      n[        U R	                  XV5      R                  5       5      n[        S[        U5      5       HT  nXx   n	U R                  U	5      n
U R                  5       nU R                  XY5      US'   U R                  Xi5      US'   XU
'   MV     U R                  U5      $ )	Nr'   server_time)r   	timestampdatetimefundsfunds_incl_ordersr   freetotal)	safe_dictsafe_integeriso8601listextendkeysrangelensafe_currency_codeaccountsafe_stringsafe_balance)r  responsebalancesr  resultr  r  currencyIdsi
currencyIdcoder  s               r  parse_balanceyobit.parse_balance  s    >>(Hb9%%h>	"Y/

 ~~h4x)<bA4;;t388:;q#k*+A$J**:6DllnG"..t@GFO#//BGG"4L ,   ((r  c                    #    U R                  5       I Sh  vN   U R                  U5      I Sh  vN nU R                  U5      $  N. N7f)a  

https://yobit.net/en/api

query for balance and get the amount of funds available for trading or funds locked in orders
:param dict [params]: extra parameters specific to the exchange API endpoint
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
N)load_marketsprivatePostGetInfor  )r  paramsr  s      r  fetch_balanceyobit.fetch_balance  sG      !!!00884 !!(++7 	"8s   A	AA	AA	A	c                   #    U R                  U5      I Sh  vN nU R                  US0 5      n[        UR                  5       5      n/ n[	        S[        U5      5       GH  nXF   nX7   nUR                  S5      u  pU	R                  5       nU
R                  5       nU R                  U5      nU R                  U5      nU R                  US5      nU R                  US5      n[        R                  " US5      nUR                  0 SU_S	US
-   U-   _SU_SU_SS_SU	_SU
_SS_SS_SS_SS_SS_SS_SS_SUS:H  _SS_SS_SU R                  U5      U R                  U5      SSSSSU R                  U R                  U R                  US5      5      5      U R                  U R                  U R                  US5      5      5      S.SSS.U R!                  US5      U R!                  US 5      S.U R!                  US!5      U R!                  US"5      S.U R!                  US#5      SS.S$.SUS%.E5        GM     U$  GN%7f)&z

https://yobit.net/en/api

retrieves data on all markets for yobit
:param dict [params]: extra parameters specific to the exchange API endpoint
:returns dict[]: an array of objects representing market data
Npairsr   _hiddenfee100r)   symbol/basequotesettlebaseIdquoteIdsettleIdtyper4   Tr5   Fr6   r7   r8   activecontractr  decimal_places)amountprice)minmax
min_amount
max_amount	min_price	max_price	min_total)r  r  r  cost)r  r   r   contractSizeexpiryexpiryDatetimestrike
optionType	precisionlimitscreatedr   )publicGetInfor  r  r  r  r  splitupperr  r  r  r#   
string_divappendparse_numberparse_precisionsafe_number)r  r  r  marketsr  r  r  r)   marketr  r  r  r  r  	feeStrings                  r  fetch_marketsyobit.fetch_markets  s     ++F33& ..7B7GLLN#q#d)$AB[F hhsmOF<<>DMMOE**40D++E2E&&vx8F((7I**9e<IMM 2b2$*u,2 2 	2
 $2 &2 72 D2 2 2 %2 2 %2 %2 6Q;2  E!2" $#2$  **95**95 $"&""//0D0DTEUEUV\^nEo0pq!..t/C/CDDTDTU[]mDn/op  $#!
  $//E#//E
  $//D#//D
  $//D#$  c2 2 %~ k 4s   H?H<H%H?Nr  r  c                 `  #    U R                  5       I Sh  vN   U R                  U5      nSUS   0nUb  X%S'   U R                  U R                  XS5      5      I Sh  vN nUS   U;   nU(       d!  [	        U R
                  S-   US   -   S-   5      eXdS      nU R                  X5      $  N NN7f)a  

https://yobit.net/en/api

fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
:param str symbol: unified symbol of the market 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 exchange API endpoint
:returns dict: A dictionary of `order book structures <https://docs.ccxt.com/#/?id=order-book-structure>` indexed by market symbols
Npairr)   r   r  z% order book is empty or not available)r  r
  publicGetDepthPairr  r   r)   parse_order_book)	r  r  r  r  r
  requestr  market_id_in_reponse	orderbooks	            r  fetch_order_bookyobit.fetch_order_book%  s      !!!V$F4L
 $G00W1MNN &t 8##x0@ @Cj jkkD\*	$$Y77 	" Os#   B.B*AB.B,AB.,B.symbolsc                   #    U R                  5       I Sh  vN   SnUcg  SR                  U R                  5      n[        U5      S:  a<  [        U R                  5      n[	        U R
                  S-   [        U5      -   S-   5      eO"U R                  U5      nSR                  U5      nSU0nUb  X&S'   U R                  U R                  Xc5      5      I Sh  vN n0 n[        UR                  5       5      n[        S[        U5      5       H.  n	XI   n
U R                  U
5      nU R                  Xz   U5      X'   M0     U$  GN* Nk7f)	a  

https://yobit.net/en/api

fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data for multiple markets
:param str[]|None symbols: list of unified market symbols, all symbols fetched if None, default is None
:param int [limit]: max number of entries per orderbook to return, default is None
:param dict [params]: extra parameters specific to the exchange API endpoint
:returns dict: a dictionary of `order book structures <https://docs.ccxt.com/#/?id=order-book-structure>` indexed by market symbol
N-rz  z fetchOrderBooks() has zy symbols exceeding max URL length, you are required to specify a list of symbols in the first argument to fetchOrderBooksr  r  r   )r  joinidsr  r   r)   str
market_idsr  r  r  r  r  safe_symbolr  )r  r  r  r  r  numIdsr  r  r  r  r)   r  s               r  fetch_order_booksyobit.fetch_order_books>  sA     !!!?((488$C3x$TXX#DGG.G$G#f+$U  YT  %T  U  U  //'*C((3-CC
 $G00W1MNN8==?#q#c(#AB%%b)F!228<HFN $ 1 	"" Os#   EE C EEA)EEtickerr
  c                    U R                  US5      nU R                  US5      nU R                  0 SU R                  S U5      _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
S _SU R                  US5      _SS _SS _SS _SU_SU_SS _SS _SS _SU R                  US5      _U R                  US5      U R                  US5      US.EU5      $ )Nupdatedlastr  r  r  highlowbidbuy	bidVolumeasksell	askVolumevwapopenclosepreviousClosechange
percentageaverageavgvol_curvol)
baseVolumequoteVolumer   )safe_timestampr  safe_tickerr  r  )r  r#  r
  r  r&  s        r  parse_tickeryobit.parse_tickerc  s    ''	:	/ !
d&&tV4!
!
 Y/!
 D$$VV4	!

 4##FE2!
 4##FE2!
 !
 4##FF3!
 !
 D!
 D!
 T!
 D!
 T!
 d!
  $!!
" t''6#!
$ **69=++FE:)!
* + 	r  	idsStringc                 :  #    SU0nU R                  U R                  X25      5      I S h  vN n0 n[        UR                  5       5      n[	        S[        U5      5       H4  nXg   nXH   n	U R                  U5      n
U
S   nU R                  X5      X['   M6     U$  Nn7f)Nr  r   r  )publicGetTickerPairr  r  r  r  r  safe_marketr=  )r  r?  r  r  tickersr  r  kr)   r#  r
  r  s               r  fetch_tickers_helperyobit.fetch_tickers_helper  s     I
 00W1MNNGLLN#q#d)$AB[F%%b)FH%F!..v>FN %  Os   (BBA/Bc                   #    SnU R                  USS5      u  p2Uc  U(       d  [        U R                  S-   5      eU R                  5       I Sh  vN   / nU R	                  U R
                  SS5      nSnU(       a  U R                  nSn[        S	[        U R                  5      5       HV  nU R                  U   n	US:X  a  SOS
n
XzU	-   -  n[        U5      U:  d  M4  UR                  U R                  Xr5      5        SnMX     US:w  a   UR                  U R                  Xr5      5        OU R                  U5      nU R                  U5      n[        U5      nS
R                  U5      n[        U5      U-   nX:  aE  [        U R                  S-   [        U5      -   S-   [        U5      -   S-   [        U5      -   S-   5      eUR                  U R                  X5      5        [         R"                  " U6 I Sh  vN n0 n[        S	[        U5      5       H*  nU R%                  X   SU5      nU R'                  UU5      nM,     U$  GN NN7f)aI  

https://yobit.net/en/api

fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
:param str[]|None 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 exchange API endpoint
:param dict [params.all]: you can set to `true` for convenience to fetch all tickers from self exchange by sending multiple requests
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
NallFzs fetchTickers() requires "symbols" argument or use `params["all"] = True` to send multiple requests for all marketsr  rz  (    r   r  z' fetchTickers() is being requested for z$ markets(which has an URL length of z- characters), but it exceedes max URL length(zK), please pass limisted symbols array to fetchTickers to fit in one requestr  )handle_param_boolr   r)   r  r  ry  r  r  r  r  r  rE  market_symbolsr  r  r  asynciogatherfilter_by_array_tickersr  )r  r  r  
allSymbolspromises	maxLengthlenghtOfBaseUrlr  r  r)   prefix	idsLengthr?  actualLength	resultAllfinalResultr  s                    r  fetch_tickersyobit.fetch_tickers  s^     
!33FE5I
?:#DGG  /d  %d  e  e!!!%%dllNDI	llGC1c$((m,XXa[ #r	{"s8i'OOD$=$=c$JKC - by 9 9# FG))'2G//'*C #CIIy>O;L''2[([^abk^l(l  pV  )V  Y\  ]i  Yj  )j  m\  )\  _b  cl  _m  )m  p}  )}  ~  ~OOD55iHI!..(33	q#i.)A11),'RF++k6:K * ? 	"4 4s-   AIIB	IDI6I7AIIc                 L   #    U R                  U/U5      I Sh  vN nX1   $  N7f)a  

https://yobit.net/en/api

fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
:param str symbol: unified symbol of the market to fetch the ticker for
:param dict [params]: extra parameters specific to the exchange API endpoint
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
N)rY  )r  r  r  rC  s       r  fetch_tickeryobit.fetch_ticker  s+      **F8V<< =s   $"	$tradec                 .   U R                  US5      nU R                  US5      nUS:X  a  SnOUS:X  a  SnU R                  USS5      nU R                  US	S
5      nU R                  US5      nU R                  US5      nU R                  X5      n	U R                  US5      n
U R	                  U5      nU R	                  U
5      nSnS nU R                  US5      nUb(  U R                  US5      nU R                  U5      nUUS.nU R                  US5      nUbM  UcJ  U R                  XXLUS5      nU R                  US5      U R                  US5      U R                  US5      S.nU R                  UUUU R                  U5      U	UUS UU
S UUS.U5      $ )Nr  r  r,  r-  r)  r*  rater  trade_idtidorder_idr  r  r  
commissioncommissionCurrency)r  currencyis_your_orderr   rf  r  rf  r  r`  )r)   orderr  r  r  r  sidetakerOrMakerr  r  r  r  r   )
r;  r  safe_string_2r  r  r  r  calculate_fee
safe_trader  )r  r^  r
  r  rj  priceStringr)   ri  marketIdr  amountStringr  r  r  r  feeCostStringfeeCurrencyIdfeeCurrencyCodeisYourOrderfeeInNumberss                       r  parse_tradeyobit.parse_trade  s   0 ''{;	v.5=DU]D((@z59  
3##E62!!(3''x8!!+.""<0((=$ ,,U4HIM"55mDO%+C &&uo>"{#11&eU\] $ 0 0z J ,,\6B ,,\6B
 "Y/  " 
  	r  sincec                 n  #    U R                  5       I Sh  vN   U R                  U5      nSUS   0nUb  X6S'   U R                  U R                  Xd5      5      I Sh  vN n[	        U[
        5      (       a  [        U5      nUS:X  a  / $ U R                  XuS   / 5      n	U R                  XX#5      $  N NU7f)a  

https://yobit.net/en/api

get the list of most recent trades for a particular symbol
:param str symbol: unified symbol of the market 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 exchange API endpoint
:returns Trade[]: a list of `trade structures <https://docs.ccxt.com/#/?id=public-trades>`
Nr  r)   r  r   )	r  r
  publicGetTradesPairr  
isinstancer  r  	safe_listparse_trades)
r  r  ry  r  r  r
  r  r  numElementsr  s
             r  fetch_tradesyobit.fetch_trades   s      !!!V$F4L
 $G11$++g2NOO h%%h-Ka	,;  >>5 	" Ps#   B5B1AB5B3AB53B5c                 V  #    U R                  5       I Sh  vN   U R                  U5      I Sh  vN nU R                  US0 5      n[        UR	                  5       5      n0 n[        S[        U5      5       H  nXF   nU R                  X70 5      nU R                  USS5      n	U R                  US5      n
U R                  US5      nU R                  [        R                  " U
S5      5      nU R                  [        R                  " US5      5      nUU	UUSS	S
.XY'   M     U$  GN N7f)a  

https://yobit.net/en/api

fetch the trading fees for multiple markets
:param dict [params]: extra parameters specific to the exchange API endpoint
:returns dict: a dictionary of `fee structures <https://docs.ccxt.com/#/?id=fee-structure>` indexed by market symbols
Nr  r   r  	fee_buyer
fee_sellerr  TF)r   r  r   r   r4  	tierBased)r  r  r  r  r  r  r  r  r  r  r#   r  )r  r  r  r  	marketIdsr  r  rp  r  r  takerStringmakerStringr   r   s                 r  fetch_trading_feesyobit.fetch_trading_feesH  s     !!!++F33( x"5&	q#i.)A |H>>%26D%%hc:F**4=K**4>K%%g&8&8e&LME%%g&8&8e&LME ""FN *  Q 	"3s    D)D$D)D'C5D)'D)r  rj  r  r  c                   #    US:X  a  [        U R                  S-   5      eU R                  5       I Sh  vN   U R                  U5      nUS   UU R	                  X5      U R                  X5      S.nU R                  U R                  X5      5      I Sh  vN n	U R                  U	S5      n
U R                  X5      $  N N)7f)a.  

https://yobit.net/en/api

create a trade order
:param str symbol: unified symbol of the market to create an order in
:param str type: must be 'limit'
:param str side: 'buy' or 'sell'
:param float amount: how much of currency you want to trade in units of 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
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
r
  z' createOrder() allows limit orders onlyNr)   )r  r  r  r`  r'   )
r   r)   r  r
  amount_to_precisionprice_to_precisionprivatePostTrader  r  parse_order)r  r  r  rj  r  r  r  r
  r  r  r  s              r  create_orderyobit.create_order{  s      8*S STT!!!V$4L..v>++F:	
 ..t{{7/KLL, (3//? 	" Ms"   2CB=A CB?(C?Cr)   c                    #    U R                  5       I Sh  vN   S[        U5      0nU R                  U R                  XC5      5      I Sh  vN nU R	                  US0 5      nU R                  U5      $  N] N*7f)a  

https://yobit.net/en/api

cancels an open order
:param str id: order id
:param str symbol: not used by yobit cancelOrder()
:param dict [params]: extra parameters specific to the exchange API endpoint
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
Nrc  r'   )r  intprivatePostCancelOrderr  r  r  )r  r)   r  r  r  r  r  s          r  cancel_orderyobit.cancel_order  sw      !!!B
 44T[[5QRR( (B7''3 	" Ss!   A8A44A8A6)A86A8statusc                 4    SSSSS.nU R                  X!U5      $ )Nr0  closedcanceled)012r0   )r  )r  r  statusess      r  parse_order_statusyobit.parse_order_status  s*    	
 &99r  ri  c                    U R                  USS5      nU R                  U R                  USS5      5      nUS:X  a  U R                  US5      nSnU R                  USS	5      nU R                  US
5      nU R	                  Xb5      nU R                  US5      nU R                  USS5      n	U R                  USS5      n
U R                  US5      nS nSnU R                  US5      nU R                  0 SU_SU_SS _SU_SU_SU R                  U5      _SS _SU_SS _SS _SU_SU_SS _SS _SU_SU	_S U
_UUS S S!.EU5      $ )"Nr)   rc  r  r0  r  init_order_idr  timestamp_createdr  r  start_amountr  remainsreceivedz0.0r`  r  r  r   clientOrderIdr  r  r  lastTradeTimestampr  postOnlyrj  r  r  r  	remainingfilled)r  r  r5  trades)rl  r  r  safe_timestamp_2r  
safe_orderr  )r  ri  r
  r)   r  r  rp  r  r  r  r  r  r  r  rj  s                  r  r  yobit.parse_order  s   | tZ8(()9)9%6)RS9!!%9BF))%1DmT	##E62!!(3!!%8&&uh	B	!!%U;  /v.  
E 
" 
 T 
 f	 

  
 Y/ 
 !$ 
 D 
 4 
  
 D 
 U 
 D 
 D 
 f 
  ! 
" f# 
$ + 
, - 	r  c                 2  #    U R                  5       I Sh  vN   S[        U5      0nU R                  U R                  XC5      5      I Sh  vN n[	        U5      nU R                  US0 5      nU R                  U R                  SU0Xa   5      5      $  N| NI7f)a4  

https://yobit.net/en/api

fetches information on an order made by the user
:param str id: order id
:param str symbol: not used by yobit fetchOrder
:param dict [params]: extra parameters specific to the exchange API endpoint
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
Nrc  r'   r)   )r  r  privatePostOrderInfor  r  r  r  )r  r)   r  r  r  r  r  s          r  fetch_orderyobit.fetch_order@  s      !!!B
 224;;w3OPPW(B7" T2J
 CDD/ 	" Qs"   BB4BBABBc                 R  #    Uc  [        U R                  S-   5      eU R                  5       I Sh  vN   0 nSnUb  U R                  U5      nUS   US'   U R	                  U R                  XT5      5      I Sh  vN nU R                  US0 5      n	U R                  XX#5      $  Nq N+7f)a  

https://yobit.net/en/api

fetch all unfilled currently open orders
:param str symbol: unified market symbol
:param int [since]: the earliest time in ms to fetch open orders for
:param int [limit]: the maximum number of open order structures to retrieve
:param dict [params]: extra parameters specific to the exchange API endpoint
:returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
Nz- fetchOpenOrders() requires a symbol argumentr)   r  r'   )r   r)   r  r
  privatePostActiveOrdersr  r  parse_orders)
r  r  ry  r  r  r  r
  marketInnerr  r  s
             r  fetch_open_ordersyobit.fetch_open_ordersd  s      >#DGG.]$]^^!!!++f-K)$/GFO55dkk'6RSS0 (B7  >>? 	" Ts"   /B'B#AB'9B%:*B'%B'c                   #    Uc  [        U R                  S-   5      eU R                  5       I Sh  vN   U R                  U5      nSUS   0nUb  X6S'   Ub  U R	                  US-  5      US'   U R                  U R                  Xd5      5      I Sh  vN nU R                  US0 5      n[        UR                  5       5      n	/ n
[        S	[        U	5      5       HK  nU R                  X5      nU R                  U R                  X   S
U05      U5      nU
R                  U5        MM     U R                  XS   X#5      $  GN N7f)a  

https://yobit.net/en/api

fetch all trades made by the user
:param str symbol: unified market symbol
:param int [since]: the earliest time in ms to fetch trades for
:param int [limit]: the maximum number of trades structures to retrieve
:param dict [params]: extra parameters specific to the exchange API endpoint
:returns Trade[]: a list of `trade structures <https://docs.ccxt.com/#/?id=trade-structure>`
Nz+ fetchMyTrades() requires a symbol argumentr  r)   countr  ry  r'   r   ra  r  )r   r)   r  r
  parse_to_intprivatePostTradeHistoryr  r  r  r  r  r  r  rw  r  filter_by_symbol_since_limit)r  r  ry  r  r  r
  r  r  r  r  r  r  r)   r^  s                 r  fetch_my_tradesyobit.fetch_my_trades  sL     >#DGG.[$[\\!!!V$ F4L	
 $G#00>GG55dkk'6RSS" (B76;;=!q#c(#A!!#)B$$T[[B> &E MM%  $ 009I5XXW 	"" Ts#   /ED>A EEB,EEr  c                    #    SS0nU R                  XR                  X25      5      I Sh  vN nU R                  US5      nU R                  U5        UUSSUS   S.$  N27f)a0  

https://yobit.net/en/api

create a currency deposit address
:param str code: unified currency code of the currency for the deposit address
:param dict [params]: extra parameters specific to the exchange API endpoint
:returns dict: an `address structure <https://docs.ccxt.com/#/?id=address-structure>`
need_newr   Naddressr   )rf  r  tagnetworkr   )fetch_deposit_addressr  r  check_address)r  r  r  r  r  r  s         r  create_deposit_addressyobit.create_deposit_address  su      
 33D++g:VWW""8Y77#V$
 	
 Xs   (AA3Ac                    #    U R                  5       I Sh  vN   U R                  U5      nUS   nU R                  U R                  S0 5      nU R	                  US5      nU R                  XVU5      nUb*  US:w  a  XFR                  5       -   nU R                  US5      nUSS.nU R                  U R                  Xr5      5      I Sh  vN nU R                  US   S	5      n	U R                  U	5        UUSU	SS
.$  N N47f)a,  
fetch the deposit address for a currency associated with self account

https://yobit.net/en/api

:param str code: unified currency code
:param dict [params]: extra parameters specific to the exchange API endpoint
:returns dict: an `address structure <https://docs.ccxt.com/#/?id=address-structure>`
Nr)   r  r  r{  r   )coinNamer  r'   r  )r   rf  r  r  r  )r  rf  r  ry  safe_string_upperr  loweromitprivatePostGetDepositAddressr  r  )
r  r  r  rf  r  r  r  r  r  r  s
             r  r  yobit.fetch_deposit_address  s
     !!!==&d^
>>$,,
B?((;""8g>'!'--/9
YYvy1F"
 ::4;;w;WXX""8H#5yA7#
 	
# 	" Ys"   C>C:B0C>C<3C><C>r  r  c                   #    U R                  XE5      u  pEU R                  U5        U R                  5       I Sh  vN   U R                  U5      nUS   UUS.nUb  [	        U R
                  S-   5      eU R                  U R                  Xu5      5      I Sh  vN n0 SU_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SSS.S.E$  N ND7f)aj  

https://yobit.net/en/api

make a withdrawal
: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 exchange API endpoint
:returns dict: a `transaction structure <https://docs.ccxt.com/#/?id=transaction-structure>`
Nr)   )r  r  r  z withdraw() does not support the tag argument yet due to a lack of docs on withdrawing with tag/memo on behalf of the exchange.r   txidr  rf  r  r  r  r  r  r  addressFrom	addressTor  tagFromtagTor%  rh  )commentr  )handle_withdraw_tag_and_paramsr  r  rf  r   r)   !privatePostWithdrawCoinsToAddressr  )	r  r  r  r  r  r  rf  r  r  s	            r  r   yobit.withdraw	  s     99#F7#!!!==& 
 ?  +l  !l  m  m??G@\]]
H
$
 D
 D	

 
 t
 d
 d
 
 
 t
 4
 
 4
 t
  T!
" t#
$  '
 	
 	" ^s#   8CCACCACCr   GETc                     U R                   S   U   nU R                  X@R                  U5      5      nUS:X  a  U R                  5         U R	                  5       n	U R                  U R                  U	US.U5      5      nU R                  U R                  U5      U R                  U R                  5      [        R                  5      n
SU R                  U
S.nOUS:X  aF  USU R                  -   S-   U R                  X5      -   -  nU(       a  USU R                  U5      -   -  nOXUSU R                  X5      -   -  nUS	:X  a  U(       a  USU R                  U5      -   -  nOU(       a  U R                  U5      nS
S0nXsXeS.$ )Nr   r   )noncemethodz!application/x-www-form-urlencoded)Content-TypeKeySignr   r  ?r  r  zapplication/json)urlr  bodyheaders)r   r  extract_paramscheck_required_credentialsr  	urlencoder  hmacencodesecrethashlibsha512apiKeyr/   implode_paramsjson)r  pathr   r  r  r  r  r  queryr  	signatures              r  sign
yobit.sign=  sm   iis#		&"5"5d";<)++-JJLE>>$++/ # D 		$++d"3T[[5Mw~~^I C{{!G
 H_3%+d.A.A$.OOOCsT^^E2223,,T:::C3!666C99U+D&(:G dOOr  httpCodereasonr  r  r  r  c
                    Uc  g SU;   a  U R                  US5      n
[        U
[        5      (       a  U
S:X  d  U
S:X  a  Sn
OSn
U
(       d  U R                  US5      nU R                  US5      nU R                  S-   U-   nU R                  U R                  S	   X5        U R                  U R                  S	   X5        U R                  U R                  S
   X5        [        U5      eg )Nsuccesstruer  TFr  errorr  r  r  )	
safe_valuer|  r  r  r)   throw_exactly_matched_exceptionr  throw_broadly_matched_exceptionr   )r  r  r  r  r  r  r  r  requestHeadersrequestBodyr  r  messagefeedbacks                 r  handle_errorsyobit.handle_errors^  s     6 ooh	:G'3''v%7c>"G#G''&9**8W=77S=4/44T__W5Mt^44T__W5Mwa44T__W5Mwa#H--r   )N)6__name__
__module____qualname____firstlineno__r   r  r   r  r  r   r	   r  r  r   r   r  r   r   r!  dictr   r=  r   rE  rY  r\  r   rw  r  r   r  r   r   floatr
   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%      s   m# m^) )( *, $, $,L *, ^V ^@ @DB 8S 8 8S\ 82 :>DY[ #w #c #`j #J%4 % %6 %N AC C w  6:" .7 . .` 68  F H Hv H HT <@d[] &? &?S &? &?bfglbm &?P /1 1[ 1f mqy{ /0 /0I /0Y /0X] /0fi /0b 9=R $(S $(# $(L: :c cv c cJ 8<B "EC "E "EH 59tZ^gi -?c -? -?TW -?nrsxny -?^ 37TX\eg 9YC 9Ys 9YRU 9Yv >@ 
 
N 
0 =? !
 !
> !
F QU]_ 2
3 2
 2
 2
# 2
do 2
h &eBSW PB,c ,3 ,S ,# ,X\ ,dg , ,r  r%   )+ ccxt.async_support.base.exchanger   ccxt.abstract.yobitr   rM  r  ccxt.base.typesr   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!   ccxt.base.decimal_to_precisionr"   ccxt.base.preciser#   r%   r  r  r  <module>r     sh    6 +   @  @  @  @  @  * 0 . . ) * + . 1 ) 4 %pHk pr  