
    i%                         d dl mZ d dlmZ d dlZd dlmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlm Z   G d dee          Z!dS )    )Exchange)ImplicitAPIN)BalancesCurrencyIntMarketNumOrder	OrderBook	OrderSide	OrderTypeStrTickerTradeTradingFees)List)ExchangeError)AuthenticationError)PermissionDenied)ArgumentsRequired)OrderNotFound)NotSupported)InvalidNonce)	TICK_SIZE)Precisec                       e Zd Z fdZdefdZi fdefdZdi fdedede	fdZ
d&d	edefd
Zi fdedefdZddi fdedededee         fdZi fdefdZdi fdededededef
dZdi fdedefdZdddi fdedededee         fdZdi fdedefdZd&d	edefdZdddi fdededefdZd Z d&d	edefdZ!d Z"i fdefdZ#d&de$fd Z%d! Z&d"d#i ddfd$Z'd% Z( xZ)S )'bit2cc           !      N   |                      t          t          |                                           dddgddi dd ddd	dd
dddddddddddddddddddddddddddi ddddddddddddddddd dd!dd"dd#dd$dd%dd&dd'dd(di d)dd*dd+dd,dd-dd.dd/dd0dd1dd2dd3dd4dd5dd6dd7dd8dd9dd:did;d<d=id>d?d@dAgdBdCg dDig dEg dFdGdH|                     dIdJdKdLdMdNdddO          |                     dPdQdRdLdSdNdddO          |                     dTdUdVdLdWdNdddO          |                     dXdYdZdLd[dNdddO          d\d]dd|                     d^          |                     d_          |                     d`          |                     d_          g|                     da          |                     db          g|                     dc          |                     d^          g|                     dd          |                     de          g|                     df          |                     dg          g|                     dh          |                     di          g|                     dj          |                     dk          g|                     dl          |                     dm          g|                     dn          |                     do          g|                     dp          |                     dq          g|                     dr          |                     ds          g|                     dt          |                     du          gg|                     d`          |                     d^          g|                     da          |                     de          g|                     dc          |                     dg          g|                     dd          |                     dv          g|                     df          |                     di          g|                     dh          |                     dm          g|                     dj          |                     dw          g|                     dl          |                     dx          g|                     dn          |                     ds          g|                     dp          |                     dy          g|                     dr          |                     du          g|                     dt          |                     dz          ggd{d|id}d~it          t          t          dt          t          ddd          S )Nr   Bit2CILi  FCORSspotTmarginswapfutureoption	addMargincancelAllOrderscancelOrdercloseAllPositionsclosePositioncreateOrdercreateReduceOnlyOrderfetchBalancefetchBorrowRateHistoriesfetchBorrowRateHistoryfetchCrossBorrowRatefetchCrossBorrowRatesfetchDepositAddressfetchFundingHistoryfetchFundingRatefetchFundingRateHistoryfetchFundingRatesfetchIndexOHLCVfetchIsolatedBorrowRatefetchIsolatedBorrowRatesfetchLeveragefetchLeverageTiersfetchMarginModefetchMarkOHLCVfetchMyTradesfetchOpenInterestHistoryfetchOpenOrders
fetchOrderfetchOrderBookfetchPositionfetchPositionModefetchPositionsfetchPositionsRiskfetchPremiumIndexOHLCVfetchTickerfetchTradesfetchTradingFeefetchTradingFeesfetchTransferfetchTransfersreduceMarginsetLeveragesetMarginModesetPositionModetransferwszchttps://user-images.githubusercontent.com/1294454/27766119-3593220e-5ece-11e7-8b3a-5a041f6bcc3f.jpgrestzhttps://bit2c.co.ilzhttps://www.bit2c.co.ilz<https://bit2c.co.il/Aff/63bfed10-e359-420c-ab5a-ad368dab0bafz https://www.bit2c.co.il/home/apizhttps://github.com/OferE/bit2c)logoapiwwwreferraldocget)zExchanges/{pair}/TickerzExchanges/{pair}/orderbookzExchanges/{pair}/tradeszExchanges/{pair}/lasttrades)zMerchant/CreateCheckoutzFunds/AddCoinFundsRequestzOrder/AddFundzOrder/AddOrderOrder/GetByIdzOrder/AddOrderMarketPriceBuyzOrder/AddOrderMarketPriceSellzOrder/CancelOrderzOrder/AddCoinFundsRequestzOrder/AddStopOrderzPayment/GetMyIdzPayment/SendzPayment/Pay)zAccount/BalancezAccount/Balance/v2zOrder/MyOrdersr\   zOrder/AccountHistoryzOrder/OrderHistory)postr[   )publicprivateBtcNisBTC/NISBTCNISBtcNis)idsymbolbasequotebaseIdquoteIdtyper"   EthNisETH/NISETHEthLtcNisLTC/NISLTCLtcUsdcNisUSDC/NISUSDCUsdc)ra   rn   rr   rv   tradingz0.025z0.03020000z0.02755000075000z0.0225100000z0.02250000z0.015500000z0.0125750000z0.011000000z0.0082000000z0.0063000000z0.0044000000z0.002z0.0175z0.0075z0.005z0.003z0.001)takermaker)	tierBased
percentager   r   tiersfetchTradesMethod public_get_exchanges_pair_trades)zPlease provide valid APIkeyzNo order found.)zPlease provide valid noncez'please approve new terms of use on site)exactbroad)rf   name	countries	rateLimitprohasurlsrW   marketsfeesoptionsprecisionMode
exceptions)deep_extendsuperr   describesafe_market_structureparse_numberr   r   r   r   r   )self	__class__s    P/var/www/html/crypto-bot/backend/venv/lib/python3.11/site-packages/ccxt/bit2c.pyr   zbit2c.describe   s   eT 2 2 ; ; = =555 %5 	5
 %5 %5 U5 "55 t5 $U5  5 t5 (5 5 +E5  )%!5" '#5 5$ (%5& &t'5( &u)5* #E+5, *5-5. $U/50 "5152 *5354 +E556  758 %e95: "5;5< !%=5>  ?5@ +EA5B "4C5D dE5 5 5F !$G5H  I5J $UK5L !%M5N %eO5P )%Q5R tS5T tU5V "5W5X #DY5Z  [5\ !%]5^ _5` ua5b  c5d "5e5f Eg5 5h ei5 5n ~1 1Z64         ! " "H  55XQZdity  FK  X]  gm  w{  7|  7|  }  }55XQZdity  FK  X]  gm  w{  7|  7|  }  }55XQZdity  FK  X]  gm  w{  7|  7|  }  } 66iS]gmx}  JP  ]b  lr  |@  8A  8A  B  B	  !%"&!..w77!..v66 "..s33T5F5Fv5N5NO!..w779J9J89T9TU!..w779J9J79S9ST!..w779J9J89T9TU!..x88$:K:KF:S:ST!..x88$:K:KG:T:TU!..x88$:K:KH:U:UV!..x88$:K:KF:S:ST!..y994;L;LW;U;UV!..y994;L;LW;U;UV!..y994;L;LW;U;UV!..y994;L;LW;U;UV" "..s33T5F5Fw5O5OP!..w779J9J89T9TU!..w779J9J69R9RS!..w779J9J89T9TU!..x88$:K:KG:T:TU!..x88$:K:KF:S:ST!..x88$:K:KH:U:UV!..x88$:K:KG:T:TU!..y994;L;LW;U;UV!..y994;L;LW;U;UV!..y994;L;LW;U;UV!..y994;L;LW;U;UV" # #%N $%G ' 4G'4  3??O	  wg@
 g@
 g g g	    returnc                    |d d d}t          | j                                                  }t          dt	          |                    D ]}||         }|                                 }|                     |          }|d                                         }||v r5|                     |d|z             |d<   |                     ||          |d<   |||<   | 	                    |          S )N)info	timestampdatetimer   rf   
AVAILABLE_freetotal)
list
currencieskeysrangelenaccountcurrencyuppersafe_stringsafe_balance)	r   responseresultcodesicoder   r   	uppercases	            r   parse_balancezbit2c.parse_balance   s    
 

 T_))++,,q#e**%% 	# 	#A8DllnnG}}T**H ,,..IH$$"&"2"28\I=U"V"V#'#3#3Hi#H#H "F4LL  (((r   c                 ~    |                                   |                     |          }|                     |          S )aT  
        query for balance and get the amount of funds available for trading or funds locked in orders
        :see: https://bit2c.co.il/home/api#balance
        :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privateGetAccountBalanceV2r   )r   paramsr   s      r   fetch_balancezbit2c.fetch_balance   s@     	226::V !!(+++r   Nrg   limitc                     |                                   |                     |          }d|d         i}|                     |                     ||                    }|                     ||          S )a%  
        fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
        :see: https://bit2c.co.il/home/api#orderb
        :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
        pairrf   )r   marketpublicGetExchangesPairOrderbookextendparse_order_book)r   rg   r   r   r   request	orderbooks          r   fetch_order_bookzbit2c.fetch_order_book	  sp     	V$$F4L
 88Wf9U9UVV	$$Y777r   r   c                    |                      d |          }|                     |d          }|                     |d          }|                     |d          }|                     i d|dd dd dd dd d	|                     |d
          dd d|                     |d          dd dd dd d|d|dd dd dd d||d |d|          S )Navallrg   r   r   highlowbidh	bidVolumeaskl	askVolumevwapopencloselastpreviousClosechanger   average)
baseVolumequoteVolumer   )safe_symbolr   safe_ticker)r   tickerr   rg   averagePricer   r   s          r   parse_tickerzbit2c.parse_ticker  sz   !!$//''55%%fc22
-- !
f!
!
 !
 D	!

 4!
 4##FC00!
 !
 4##FC00!
 !
 D!
 D!
 T!
 D!
 T!
 d!
  $!!
" |#!
$ %)!
 !
 !
* +  	r   c                     |                                   |                     |          }d|d         i}|                     |                     ||                    }|                     ||          S )a  
        fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
        :see: https://bit2c.co.il/home/api#ticker
        :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   rf   )r   r   publicGetExchangesPairTickerr   r   )r   rg   r   r   r   r   s         r   fetch_tickerzbit2c.fetch_ticker6  sp     	V$$F4L
 44T[[&5Q5QRR  6222r   sincec                    |                                   |                     |          }| j        d         }d|d         i}||                     |          |d<   |||d<   d}|dk    r*|                     |                     ||                    }n)|                     |                     ||                    }t          |t                    rt          |          | 
                    ||||          S )aG  
        get the list of most recent trades for a particular symbol
        :see: https://bit2c.co.il/home/api#transactions
        :see: https://bit2c.co.il/home/api#trades
        :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   rf   Ndater   r   )r   r   r   parse_to_intpublicGetExchangesPairTradesr    publicGetExchangesPairLasttrades
isinstancestrr   parse_trades)	r   rg   r   r   r   r   methodr   r   s	            r   fetch_tradeszbit2c.fetch_tradesF  s    	V$$12F4L
 "//66GFO$GG77788Wf9U9UVVHH<<T[[RX=Y=YZZH h$$ 	*)))  65%@@@r   c                    |                                   |                     |          }|                     |di           }t          |                                          }i }t          dt          |                    D ]}||         }|                     |          }|                     ||          }	|                     |	d          }
|                     |	d          }| 	                    t          j        |
d                    }| 	                    t          j        |d                    }|	|||ddd||<   |S )aC  
        fetch the trading fees for multiple markets
        :see: https://bit2c.co.il/home/api#balance
        :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
        Feesr   FeeMakerFeeTaker100T)r   rg   r   r   r   r   )r   privateGetAccountBalance
safe_valuer   r   r   r   r   r   r   r   
string_div)r   r   r   r   r   r   r   marketIdrg   feemakerStringtakerStringr   r   s                 r   fetch_trading_feeszbit2c.fetch_trading_feesk  s=    	0088" x44DIIKK  q#d))$$ 	 	AAwH%%h//F//$11C**3
;;K**3
;;K%%g&8e&L&LMME%%g&8e&L&LMME "! F6NN r   rl   sideamountpricec                    |                                   d}|                     |          }||d         d}	|dk    r|d|                     |          z   z  }nc||	d<   |                     |          }
|                     |          }|                     t          j        |
|                    |	d<   |dk    |	d	<    t          | |          |                     |	|                    }| 	                    ||          S )
a  
        create a trade order
        :see: https://bit2c.co.il/home/api#addo
        :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 fullfilled, 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>`
        privatePostOrderAddOrderrf   )AmountPairr   MarketPricePriceTotalbuyIsBid)
r   r   
capitalizenumber_to_stringparse_to_numericr   
string_mulgetattrr   parse_order)r   rg   rl   r   r  r  r   r   r   r   amountStringpriceStringr   s                r   create_orderzbit2c.create_order  s    	+V$$4L
 
 8mdood&;&;;;FF$GG0088L//66K#44W5GVa5b5bccGG $GG(74((Wf)E)EFF&111r   rf   c                 \    d|i}|                      |                     ||                    S )ad  
        cancels an open order
        :see: https://bit2c.co.il/home/api#cancelo
        :param str id: order id
        :param str symbol: Not used by bit2c cancelOrder()
        :param dict [params]: extra parameters specific to the exchange API endpoint
        :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
        rf   )privatePostOrderCancelOrderr   )r   rf   rg   r   r   s        r   cancel_orderzbit2c.cancel_order  s4     "
 //GV0L0LMMMr   c                    |t          | j        dz             |                                  |                     |          }d|d         i}|                     |                     ||                    }|                     ||d         i           }|                     |dg           }	|                     |dg           }
|                     | 	                    |	|
          |||          S )a  
        fetch all unfilled currently open orders
        :see: https://bit2c.co.il/home/api#geto
        :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   rf   r   r   )
r   rf   r   r   privateGetOrderMyOrdersr   r   	safe_listparse_ordersarray_concat)r   rg   r   r   r   r   r   r   ordersasksbidss              r   fetch_open_orderszbit2c.fetch_open_orders  s     >#DG.]$]^^^V$$F4L
 //GV0L0LMM6$<<<vub11~~feR00  !2!24!>!>uUUUr   c                     |                                   |                     |          }d|i}|                     |                     ||                    }|                     ||          S )aT  
        fetches information on an order made by the user
        :see: https://bit2c.co.il/home/api#getoid
        :param str symbol: unified market symbol
        :param dict [params]: extra parameters specific to the exchange API endpoint
        :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
        rf   )r   r   privateGetOrderGetByIdr   r  )r   rf   rg   r   r   r   r   s          r   fetch_orderzbit2c.fetch_order  sn     	V$$"
 ..t{{7F/K/KLL &111r   c           	         d }d}d|v r|d         }d}n|}|                      |d          }|                     d |          }|                     |dd          }d }|r.|                     |d          }	|	dk    s|	d	k    rd
}n6|	dk    rd}n-|                      |d          }	|	dk    s|	dk    rd
}n|	dk    rd}|                      |d          }
|
dk    rd}
n|
dk    rd}
|                      |d          }|dk    rd}n|dk    rd}|                      |d          }d }d }|r-|                      |d          }|                      |d          }n,|                      |d          }|                      |d          }|                     i d|dd d|d|                     |          dd d|d |d|
d!d d"d d#|d|d$d d%d d|d&d d'|d d d |d d(|          S ))NFNewOrderTrf   createdi  status_typer      r      closedstatusNewOpen	Completed
order_typerz   r   1r   rl   r
  sellr  r  initialAmountclientOrderIdr   r   lastTradeTimestamprg   timeInForcepostOnlyr   	stopPricetriggerPricefilled	remaining)costtradesr   r   r   )r   r   safe_integer_productsafe_integer
safe_orderiso8601)r   orderr   orderUnified
isNewOrderrf   rg   r   r+  
tempStatusrl   r   r  r  r:  s                  r   r  zbit2c.parse_order  s   > 
 ,LJJ LlD11!!$//--lItLL	  	"**<GGJQ*//q!)),AAJU""jF&:&:{**! l;;3;;DDS[[D f553;;DDS[[D  w77	 	A%%lH==F((x@@II%%lODDF((x@@I  
" 
T 
  
 Y//	 

 !$ 
 f 
 f 
 D 
 4 
  
 D 
 U 
  
 D 
 f 
  d! 
" # 
$ - 
  
  
. /  	r   c                    |                                   d}i }|||d<   ||d<   |D|                     |                                 d          |d<   |                     |d          |d<   | |                     |          }|d         |d<   |                     |                     ||                    }|                     ||||          S )a  
        fetch all trades made by the user
        :see: https://bit2c.co.il/home/api#orderh
        :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>`
        Ntake.toTimefromTimerf   r   )r   yyyymmddmillisecondsr   privateGetOrderOrderHistoryr   r   )r   rg   r   r   r   r   r   r   s           r   fetch_my_tradeszbit2c.fetch_my_tradese  s     	#GFO $d.?.?.A.A3 G GGH"&--s";";GJ[[((F$TlGFO33DKK4P4PQQN   65%@@@r   c                     d}|                     d          }t          dt          |                    D ]}|||         z  }|S )N ,r   )splitr   r   )r   r   	newStringstrPartsr   s        r   remove_comma_from_valuezbit2c.remove_comma_from_value  sK    	99S>>q#h--(( 	% 	%A!$IIr   c                 :   d }d }d }d }d }d }d }	d }
|                      |d          }|)|}|                     |d          }|                      |d          }|                     |          }|                      |d          }|                    d          }|                      |d          }|                     ||          }|                     |d         |          }|                     |d          }|rd	nd
}
|r|d         n|d         }|                     |d          }	|	dk    rd}	n|	dk    rd}	|                      |d          }||dd}nw|                     |d          }|                      |d          }|                      |d          }|                      |d          }|                     |d          }	|	|	rd}	nd}	|                     d |          }|                     ||||                     |          |d         |d |	|
||d |d|          S )N	referenceticksr  firstAmount|r   r   isMakerr   r      r(  actionr
  r1  	feeAmountrc   )r;  r   r   tidr  isBidrg   )r   rf   r   r   rg   rA  rl   r   takerOrMakerr  r  r;  r   )	r   safe_timestamprT  rQ  safe_marketr   r>  
safe_trader@  )r   trader   r   rf   r  r  orderIdr   r   makerOrTakerrV  reference_partsr   rZ  feeCosts                   r   parse_tradezbit2c.parse_trade  s   B 	$$UK88	 B++E7;;I$$UG44E0077E%%e];;F'ooc22O''v66H%%h77F%%oa&8&AAFooeY77G&-:777L,3Koa((9KG$$UH55Dqyy&&uk::G"# % 
 ++E6::I!!%//B$$UG44E%%eX66F??5'22D " DD!D!!$//"Y//X&( 
  
   	r   c                     |dk    S )Nrc    )r   r   s     r   is_fiatzbit2c.is_fiat	  s    u}r   r   c                 >   |                                   |                     |          }|                     |          rt          | j        dz             d|d         i}|                     |                     ||                    }|                     ||          S )ai  
        fetch the deposit address for a currency associated with self account
        :see: https://bit2c.co.il/home/api#addc
        :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>`
        z7 fetchDepositAddress() does not support fiat currenciesCoinrf   )r   r   rl  r   rf   #privatePostFundsAddCoinFundsRequestr   parse_deposit_address)r   r   r   r   r   r   s         r   fetch_deposit_addresszbit2c.fetch_deposit_address  s     	==&&<< 	dtw)bbcccHTN
 ;;DKKQW<X<XYY ))(H===r   r   c                     |                      |d          }|                     |           |                     d |          }|d |d |dS )Naddress)r   networkrs  tagr   )r   check_addresssafe_currency_code)r   depositAddressr   rs  r   s        r   rp  zbit2c.parse_deposit_address$  s`     "">9==7###&&tX66"
 
 	
r   c                 *    |                                  S N)rK  )r   s    r   noncezbit2c.nonce6  s      """r   r^   GETc                    | j         d         d         dz   |                     ||          z   }|dk    r|dz  }n|                                  |                                 }|                     d|i|          }	|                     |	          }
|dk    r|	r|d|
z   z  }n|
}|                     |                     |
          |                     | j                  t          j
        d	          }d
| j        |d}||||dS )NrW   rU   /r^   z.jsonr{  r|  ?base64z!application/x-www-form-urlencoded)zContent-Typekeysign)urlr   bodyheaders)r   implode_paramscheck_required_credentialsr{  r   	urlencodehmacencodesecrethashlibsha512apiKey)r   pathrW   r   r   r  r  r  r{  queryauth	signatures               r   r  z
bit2c.sign9  s   iv&,t/B/B4/P/PP(??7NCC++---JJLLEKK! E >>%((D &3:%C		$++d"3"3T[[5M5Mw~_ghhI C{! G
 fdwOOOr   c
                 .   |d S |                      |d          }
|
|                      |d          }
|
`| j        dz   |z   }|                     | j        d         |
|           |                     | j        d         |
|           t          |          d S )NerrorError r   r   )r   rf   throw_exactly_matched_exceptionr   throw_broadly_matched_exceptionr   )r   httpCodereasonr  r   r  r  r   requestHeadersrequestBodyr  feedbacks               r   handle_errorszbit2c.handle_errorsQ  s    4   733=$$Xw77Ew}t+H001I5RZ[[[001I5RZ[[[)))tr   rz  )*__name__
__module____qualname__r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   floatr	   r  r   r  r
   r   r#  r  rM  rT  ri  rl  rq  r   rp  r{  r  r  __classcell__)r   s   @r   r   r      s       h h h h hT) ) ) ) )$ $& 3, 3,( 3, 3, 3, 3,j :>b 8 8s 83 8Y 8 8 8 8" 6 V    8 02 3 33 3f 3 3 3 3  6:UW #A #A3 #As #A# #A\`af\g #A #A #A #AJ )+ , ,{ , , , ,\ gksu 2 23 2i 2y 2RW 2`c 2 2 2 2< 37r N Ns NC N N N N /3TXac V V V3 Vc Vhlmrhs V V V V. 26b 2 2c 23 2 2 2 2<i i i5 i i i iV -1tRV_a =A =Ac =A =AC =A =A =A =A~  \ \ \5 \ \ \ \|   79 > ># > > > >0
 
h 
 
 
 
$# # # &eBSW P P P P0      r   r   )"ccxt.base.exchanger   ccxt.abstract.bit2cr   r  ccxt.base.typesr   r   r   r   r	   r
   r   r   r   r   r   r   r   typingr   ccxt.base.errorsr   r   r   r   r   r   r   ccxt.base.decimal_to_precisionr   ccxt.base.preciser   r   rk  r   r   <module>r     s   ( ' ' ' ' ' + + + + + +  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J  J       * * * * * * 0 0 0 0 0 0 - - - - - - . . . . . . * * * * * * ) ) ) ) ) ) ) ) ) ) ) ) 4 4 4 4 4 4 % % % % % %K K K K KHk K K K K Kr   