
    E#i                        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  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IntMarketNumOrder	OrderBook	OrderSide	OrderTypeStrStringsTickerTickersTrade)List)ExchangeError)AuthenticationError)PermissionDenied)InsufficientFunds)InvalidOrder)OrderNotFound)DDoSProtection)InvalidNonce)	TICK_SIZE)Precisec                   z  ^  \ rS rSrS\4U 4S jjr0 4S\\   4S jjrS\	S\4S jr
S\4S jr0 4S\4S jjrS	0 4S
\S\S\4S jjrS2S\	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S2S\	S\S\4S jjrS	S	0 4S
\S\S\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"S2S\	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\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\S\\#   4S$ jjr(S% r)S&S'0 S	S	4S( jr*S)\+S*\S+\S,\S-\	S.\4S/ jr,S&S'0 S	S	0 4S0 jr-S1r.U =r/$ )3btcbox   returnc                   > U R                  [        [        U ]  5       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_S)S_E0 S*S_S+S_S,S_S-S_S.S_S/S_S0S_S1S_S2S_S3S_S4S_S5S_S6S_S7S_S8S_S9S_S:S_E0 S;S_S<S_S=S_S>S_S?S_S@S	_SAS_SBS_SCS	_SDS	_SES	_SFS_SGS_SHS_SIS_SJS_SKS_E0 SLS_SMS_SNS_SOS	_SPS	_SQS	_SRS_SSS_STS_SUS_SVS_SWS_SXS_SYS_SZS_S[S_S\S_ESSSSSS].ES^S_S`0SaSbScSd.Se/ SfQ0Sg/ ShQ0SeSi/0Sj.S	SkSl.SmSn.SSSS SSSS SSSSSo.SSSSSSSSp.S S SSSS	Sq.SSrSSS	Ss.SSrS S SSS	St.S S Su.	S S Sv.S S Sv.Sw.[        [
        [        [        [        [        [        [        [        [        [        Sx.
Sy.5      $ )zNr   BtcBoxJPi  v1FCORSspotTmarginswapfutureoption	addMarginborrowCrossMarginborrowIsolatedMarginborrowMargincancelOrdercloseAllPositionsclosePositioncreateOrder$createOrderWithTakeProfitAndStopLoss&createOrderWithTakeProfitAndStopLossWscreatePostOnlyOrdercreateReduceOnlyOrderfetchBalancefetchBorrowInterestfetchBorrowRatefetchBorrowRateHistoriesfetchBorrowRateHistoryfetchBorrowRatesfetchBorrowRatesPerSymbolfetchCrossBorrowRatefetchCrossBorrowRatesfetchCurrenciesfetchFundingHistoryfetchFundingIntervalfetchFundingIntervalsfetchFundingRatefetchFundingRateHistoryfetchFundingRatesfetchGreeksfetchIndexOHLCVfetchIsolatedBorrowRatefetchIsolatedBorrowRatesfetchIsolatedPositionsfetchLeveragefetchLeveragesfetchLeverageTiersfetchLiquidationsfetchLongShortRatiofetchLongShortRatioHistoryfetchMarginAdjustmentHistoryfetchMarginModefetchMarginModesfetchMarketLeverageTiersfetchMarkOHLCVfetchMarkPricesfetchMyLiquidationsfetchMySettlementHistoryfetchOpenInterestfetchOpenInterestHistoryfetchOpenInterestsfetchOpenOrdersfetchOptionfetchOptionChain
fetchOrderfetchOrderBookfetchOrdersfetchPositionfetchPositionHistoryfetchPositionModefetchPositionsfetchPositionsForSymbolfetchPositionsHistoryfetchPositionsRiskfetchPremiumIndexOHLCVfetchSettlementHistoryfetchTickerfetchTickersfetchTradesfetchTransferfetchTransfersfetchVolatilityHistoryfetchWithdrawalfetchWithdrawalsreduceMarginrepayCrossMarginrepayIsolatedMarginrepayMarginsetLeverage	setMargin)setMarginModesetPositionModetransferwithdrawwszOhttps://github.com/user-attachments/assets/1e2cb499-8d0f-4f8f-9464-3c015cfbc76brestzhttps://www.btcbox.co.jp/apizhttps://www.btcbox.co.jp/z'https://blog.btcbox.jp/en/archives/8762zMhttps://support.btcbox.co.jp/hc/en-us/articles/360001235694-Fees-introduction)logoapiwwwdocfeesget)depthorderstickertickerspost)balance	trade_addtrade_cancel
trade_list
trade_viewwalletzajax/coin/coinInfo)publicprivatewebApi   )webApiEnablewebApiRetriesz0.0001)fetchMarketsamountPrecision)IOCFOKPOGTD)
marginModetriggerPricetriggerPriceTypetriggerDirectionstopLossPricetakeProfitPriceattachedStopLossTakeProfittimeInForcehedgedleveragemarketBuyRequiresPricemarketBuyByCostselfTradePreventiontrailingiceberg)r   triggerr   symbolRequiredd   )r   limitr   r   r   )r   r   daysBack	untilDaysr   r   r   )	sandboxr3   createOrdersfetchMyTradesra   r^   rc   fetchClosedOrders
fetchOHLCV)linearinverse)r'   r)   r*   )
104105106107200201202203401402)idname	countries	rateLimitversionprohasurlsr   optionsfeaturesprecisionMode
exceptions)deep_extendsuperr   describer   r   r   r   r   r   r   r   )self	__class__s    E/home/james-whalen/.local/lib/python3.13/site-packages/ccxt/btcbox.pyr   btcbox.describe   sp   fd < >[[[ %[ 	[
 %[ %[ U[ $U[ '[ [ t[ $U[  [ t[ 7[  9%![" &u#[$ (%[& '[( &u)[* "5+[, +E-[. )%/[0 #E1[2 ,U3[4 '5[6 (7[8 "59[: &u;[< '=[> (?[@ #EA[B *5C[D $UE[F uG[H "5I[J *5K[L +EM[N )%O[P  Q[R !%S[T %eU[V $UW[X &uY[Z -e[[\ /][^ "5_[` #Ea[b +Ec[d !%e[f "5g[h &ui[j +Ek[l $Um[n +Eo[p %eq[r "4s[t uu[v #Ew[x dy[z !${[| t}[~  [@ 'A[B $UC[D !%E[F *5G[H (I[J %eK[L )%M[N )%O[P tQ[R S[T tU[V  W[X !%Y[Z )%[[\ "5][^ #E_[` a[b #Ec[d &ue[f ug[h ui[j Uk[l "'#(!!u[z j: 3@g    	 ,'6 %)%&! $,  %&+(-,0,1).+06:#(#("'#(	( #($)27+0/4$)#()$, %)%)&+#($)*.	# ',!$#($)*.( ',!$$(%)#($)*.$ *."&c2h ##
 ##q<z '*'##(##$$%UVA
 V V	    c                    U R                  5       nU R                  SSS5      nX#/u  pEU R                  US0 5      n[        UR	                  5       5      n/ n[        S[        U5      5       GHn  n	Xy   n
U
R                  S5      nU R                  US5      nU R                  US5      nUR                  5       nUR                  5       nXJ   nUS-   U-   nUS	:X  a  U R                  S
5      OU R                  S5      nU R                  Xo0 5      nU R                  US0 5      nUR                  U R                  0 SU_SS_SU_SU_SU_SU_SU_SS_SS_SS_SS_SS_SS_SS_SS_SU_SU_SSSSSSSSSSS .SSS .SSS .SSS .S!.U R                  U R                  U R                  US"5      5      5      SS#.U R                  US$5      S%:H  SUS&.E5      5        GMq     U$ )'z
retrieves data on all markets for ace
:param dict [params]: extra parameters specific to the exchange API endpoint
:returns dict[]: an array of objects representing market data
r   webApiGetAjaxCoinCoinInfoTdatar   _   /BTCz0.0005z0.0010trader   uppercaseIdNsymbolbasebaseIdquotequoteIdsettlesettleIdtyper'   r(   Fr)   r*   r+   takermakerminmaxamountpricecostr   pricedecimalr   r   enable1)contractr   r   contractSizeexpiryexpiryDatetimestrike
optionTypelimits	precisionactivecreatedinfo)publicGetTickersfetch_web_endpoint	safe_dictlistkeysrangelensplitsafe_stringlowerparse_numberappendsafe_market_structureparse_precision)r   paramspromise1promise2	response1	response2result2Data	marketIdsmarketsimarketIdsymbolPartsbaseCurrr   r   r   resr   feedetailstradeDetailss                        r   fetch_marketsbtcbox.fetch_markets   s    ((***>;VX\] (3	nnY;)*	q#i.)A |H"..-K''Q7H$$[!4EkkmG!B%C^e+F24+$##H-DDUDUV^D_Cnn[b9G>>'7B?LNN455 37b37t37 &37 	37
 "37 37 737 $37 D37 37 37 %37 37 %37 %37  !37" #37$ " $"&"  $#
  $#
  $#
  $#!& "..t/C/CDDTDTUacqDr/st" **<BcIe37 3 3 *@ r   marketc                 d   U R                  US5      nU R                  U5      nU R                  US5      nU R                  U5      nUS-   U-   n0 SU R                  US5      _SS _SU_SU_SU_SU_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 U R                  US5      U R                  US5      S.S S S.S S 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 US.E$ )Nr   r   r   r   r   r   r   r   r   r   r   r'   Tr(   Fr)   r*   r+   r   r   minLimitBaseAmountmaxLimitBaseAmountr   r   quotePrecisionbasePrecisionr   )r   r   r   r   r   r   r   r   r   r   r   )r	  safe_currency_codesafe_numberr  r  )r   r!  r   r   r   r   r   s          r   parse_marketbtcbox.parse_marketB  s   !!&&1&&v.""673''0e#1
$""6841
41
 f1
 D	1

 f1
 U1
 w1
 d1
 1
 F1
 D1
 e1
 E1
 e1
 e1
  !1
" d#1
$  "  ++F4HI++F4HI
  
  
  & **4+?+?@P@PQWYi@j+kl++D,@,@AQAQRXZiAj,kl a1
 1	
r   c                 x   SU0n[        U R                  R                  5       5      n[        S[	        U5      5       Hj  nX4   nU R                  U5      nUS   nUS-   nX;   d  M)  U R                  5       n	US-   n
U R                  X5      U	S'   U R                  X5      U	S'   XU'   Ml     U R                  U5      $ )Nr   r   r   _balance_lockfreeused)	r  
currenciesr  r  r  currencyaccountr	  safe_balance)r   responseresultcodesr  coder1  
currencyIdr.  r2  r/  s              r   parse_balancebtcbox.parse_balance{  s    )T__))+,q#e*%A8D}}T*H!$J
*D,,.!G+"&"2"28"B"&"2"28"B&t &   ((r   c                 f    U R                  5         U R                  U5      nU R                  U5      $ )a1  
query for balance and get the amount of funds available for trading or funds locked in orders

https://blog.btcbox.jp/en/archives/8762#toc13

:param dict [params]: extra parameters specific to the exchange API endpoint
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
)load_marketsprivatePostBalancer9  )r   r  r4  s      r   fetch_balancebtcbox.fetch_balance  s1     	**62!!(++r   Nr   r   c                     U R                  5         U R                  U5      n0 n[        U R                  5      nUS:  a  US   US'   U R	                  U R                  XS5      5      nU R                  XtS   5      $ )a  
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data

https://blog.btcbox.jp/en/archives/8762#toc6

: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
r   r   coinr   )r<  r!  r  symbolspublicGetDepthextendparse_order_book)r   r   r   r  r!  request
numSymbolsr4  s           r   fetch_order_bookbtcbox.fetch_order_book  su     	V$&
>$X.GFO&&t{{7'CD$$Xh/?@@r   r   c                    U R                  S U5      nU R                  US5      nU R                  0 SU_SS _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S _SS _SS _SU_SU_SS _SS _SS _SS _U R                  US5      U R                  US5      US.EU5      $ )Nlastr   	timestampdatetimehighlowbidbuy	bidVolumeasksell	askVolumevwapopenclosepreviousClosechange
percentageaveragevolvolume)
baseVolumequoteVolumer   )safe_symbolr	  safe_ticker)r   r   r!  r   rK  s        r   parse_tickerbtcbox.parse_ticker  si   !!$// !
f!
!
 !
 D$$VV4	!

 4##FE2!
 4##FE2!
 !
 4##FF3!
 !
 D!
 D!
 T!
 D!
 T!
 d!
  $!!
" t#!
$ **659++FH=)!
* + 	r   c                     U R                  5         U R                  U5      n0 n[        U R                  5      nUS:  a  US   US'   U R	                  U R                  XB5      5      nU R                  Xc5      $ )a  
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market

https://blog.btcbox.jp/en/archives/8762#toc5

: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>`
r   r   rA  )r<  r!  r  rB  publicGetTickerrD  rc  )r   r   r  r!  rF  rG  r4  s          r   fetch_tickerbtcbox.fetch_ticker  sp     	V$&
>$X.GFO''G(DE  22r   rB  c                 f    U R                  5         U R                  U5      nU R                  X15      $ )a  
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
: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 exchange API endpoint
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
)r<  r  parse_tickers)r   rB  r  r4  s       r   fetch_tickersbtcbox.fetch_tickers  s1     	((0!!(44r   r   c                 B   U R                  US5      nU R                  S U5      nU R                  US5      nU R                  US5      nU R                  US5      nS nU R                  US5      nU R                  UUS UU R	                  U5      US   UUS UUS S S.U5      $ )Ndatetidr   r   r   r   )r   r   orderrL  rM  r   r   sidetakerOrMakerr   r   r   r  )safe_timestampsafe_marketr	  
safe_tradeiso8601)	r   r   r!  rL  r   priceStringamountStringr   rq  s	            r   parse_tradebtcbox.parse_trade  s     ''v6	!!$/eU+&&ug6''x8v."Y/X&  " 
  	r   sincec                     U R                  5         U R                  U5      n0 n[        U R                  5      nUS:  a  US   US'   U R	                  U R                  Xd5      5      nU R                  XX#5      $ )a  
get the list of most recent trades for a particular symbol

https://blog.btcbox.jp/en/archives/8762#toc7

: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>`
r   r   rA  )r<  r!  r  rB  publicGetOrdersrD  parse_trades)	r   r   r{  r   r  r!  rF  rG  r4  s	            r   fetch_tradesbtcbox.fetch_trades  st     	V$&
>$X.GFO''G(DE   5@@r   r   rq  r   r   c                     U R                  5         U R                  U5      nUUUUS   S.nU R                  U R                  X5      5      n	U R	                  X5      $ )aG  
create a trade order

https://blog.btcbox.jp/en/archives/8762#toc18

: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 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   )r   r   r   rA  )r<  r!  privatePostTradeAddrD  parse_order)
r   r   r   rq  r   r   r  r!  rF  r4  s
             r   create_orderbtcbox.create_order'  sd     	V$8$	
 ++DKK,HI 11r   r   c                     U R                  5         Uc  SnU R                  U5      nUUS   S.nU R                  U R                  XS5      5      nU R	                  Xd5      $ )aD  
cancels an open order

https://blog.btcbox.jp/en/archives/8762#toc17

: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 exchange API endpoint
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
BTC/JPYr   r   rA  )r<  r!  privatePostTradeCancelrD  r  r   r   r   r  r!  rF  r4  s          r   cancel_orderbtcbox.cancel_orderF  sh     	>FV$8$
 ..t{{7/KL 11r   statusc                 6    SSSSSS.nU R                  X!U5      $ )NrW  closedcanceled)partall	cancelledr  no)r	  )r   r  statusess      r   parse_order_statusbtcbox.parse_order_status`  s/     #
 &99r   rp  c                 z   U R                  US5      nU R                  US5      nS nUb  U R                  US   S-   5      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      5      n	U	c  [        R                  " US5      (       a  S	n	S n
U R                  S U5      nU R                  US
5      nU R                  0 SU_SS _SU_SU R                  U5      _SS _SU_SU_SS _SU_S
S _SS _SS _SU	_SUS   _SU_SS _SS _U
S US S.EU5      $ )Nr   rM  z+09:00amount_originalamount_outstandingr   r  0r  r   clientOrderIdrL  lastTradeTimestampr   	remainingfilledrq  r   postOnlyr   r   r   )tradesr  r   r\  )r	  	parse8601r  r   string_equalsrt  
safe_orderrv  )r   rp  r!  r   datetimeStringrL  r   r  r   r  r  rq  s               r   r  btcbox.parse_orderk  s    eT*))%<	%uZ'88'CDI!!%):;$$U,@A	  0(()9)9%)JK>$$Y44!!!$/v.  
" 
T 
  
 Y/	 

 !$ 
 f 
  
 d 
 D 
 D 
 4 
  
 f 
 fX& 
 U 
  D! 
" D# 
$ + 
, - 	r   c                     U R                  5         Uc  SnU R                  U5      nU R                  UUS   S.U5      nU R                  U R                  XS5      5      nU R	                  Xd5      $ )ac  
fetches information on an order made by the user

https://blog.btcbox.jp/en/archives/8762#toc16

:param str id: the order id
:param str symbol: unified symbol of the market the order was made in
:param dict [params]: extra parameters specific to the exchange API endpoint
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
r  r   r  )r<  r!  rD  privatePostTradeViewr  r  s          r   fetch_orderbtcbox.fetch_order  sy     	>FV$++8$
  ,,T[[-IJ 11r   c                    U R                  5         U R                  U5      nUUS   S.nU R                  U R                  Xu5      5      nU R	                  XX45      n	US:X  a#  [        S[        U	5      5       H
  n
SX   S'   M     U	$ )Nr   )r   rA  rW  r   r  )r<  r!  privatePostTradeListrD  parse_ordersr  r  )r   r   r   r{  r   r  r!  rF  r4  r   r  s              r   fetch_orders_by_typebtcbox.fetch_orders_by_type  s    V$8$
 ,,T[[-IJ ""8UB 6>1c&k*&,	(# +r   c                 (    U R                  SXX45      $ )a  
fetches information on multiple orders made by the user

https://blog.btcbox.jp/en/archives/8762#toc15

:param str symbol: unified market symbol of the market orders were made in
:param int [since]: the earliest time in ms to fetch orders for
:param int [limit]: the maximum number of 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>`
r  r  r   r   r{  r   r  s        r   fetch_ordersbtcbox.fetch_orders  s     ((uMMr   c                 (    U R                  SXX45      $ )a  
fetch all unfilled currently open orders

https://blog.btcbox.jp/en/archives/8762#toc15

: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 orders 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>`
rW  r  r  s        r   fetch_open_ordersbtcbox.fetch_open_orders  s     ((NNr   c                 "    U R                  5       $ N)milliseconds)r   s    r   noncebtcbox.nonce  s      ""r   r   GETc                    U R                   S   S   S-   U R                  -   S-   U-   nUS:X  a  U(       a  USU R                  U5      -   -  nOUS:X  a  U R                   S   S-   U-   nOU R                  5         [	        U R                  5       5      nU R                  U R                  US.U5      n	U R                  U	5      n
U R                  U R                  U R                  5      S	5      nU R                  U R                  U
5      U R                  U5      [        R                  5      U	S
'   U R                  U	5      nSS0nXsXeS.$ )Nr   r   r   r   ?r   r   )keyr  md5	signaturezContent-Typez!application/x-www-form-urlencoded)urlmethodbodyheaders)r   r   	urlencodecheck_required_credentialsstrr  rD  apiKeyhashencodesecrethmachashlibsha256)r   pathr   r  r  r  r  r  r  queryrF  r  s               r   signbtcbox.sign   s2   iiv&,t||;cADH(?sT^^F333H_))E"S(4/C++-

%EKK{{! E nnU+GYYt{{4;;7?F!%4;;w+?VATV]VdVd!eE+>>%(D CG dOOr   httpCodereasonr  r  r  r  c
                     Uc  g US:  a  g U R                  US5      n
U
b  U
SL a  g U R                  US5      nU R                  S-   U-   nU R                  U R                  X5        [	        U5      e)Ni  r5  Tr7   )
safe_valuer   throw_exactly_matched_exceptionr   r   )r   r  r  r  r  r  r  r4  requestHeadersrequestBodyr5  r7  feedbacks                r   handle_errorsbtcbox.handle_errors  st    s?84>Vt^x077S=4',,T__dMH%%r   c           	         U R                  XX4XVU5      n[        U[        5      (       aX  U R                  U5      nU R	                  U5      (       d  [        U R                  S-   U-   5      e[        R                  " U5      nU$ )Nr  )	fetch2
isinstancer  stripis_json_encoded_objectr   r   jsonloads)	r   r  r   r  r  r  r  configr4  s	            r   rF  btcbox.request%  sm    ;;t&'Ph$$zz(+H..x88#DGGcMH$<==zz(+Hr    r  )0__name__
__module____qualname____firstlineno__r   r   r   r   r  dictr)  r   r9  r>  r  r   r   rH  r   rc  rg  r   r   rk  r   ry  r  r   r   floatr	   r  r   r  r  r
   r  r  r  r  r  r  r  intr  rF  __static_attributes____classcell__)r   s   @r   r   r      s   W# Wr $& M$v, M^7
4 7
F 7
r) )  $& ,( , :>b As A3 AY A(4  6 4 02 33 3f 3& 04B 	5W 	57 	5! !v ! !F 6:UW A3 As A# A\`af\g A@ gksu 23 2i 2y 2RW 2`c 2> 37r 2s 2C 24	: 	:4 4v 4 4l 26b !2c !23 !2F 8<$]ajl  C WZ : *.Dt\^ N3 Nc N Ncghmcn N /3TXac O O3 Oc Ohlmrhs O# &eBSW P.&c &3 &S &# &X\ &dg & !)r4VZce  r   r   )%ccxt.base.exchanger   ccxt.abstract.btcboxr   r  r  ccxt.base.typesr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   typingr   ccxt.base.errorsr   r   r   r   r   r   r   r   ccxt.base.decimal_to_precisionr   ccxt.base.preciser   r   r  r   r   <module>r     s\    ( ,   J  J  J  J  * 0 - . ) * + ) 4 %UX{ Ur   