
    E#iN                        S SK Jr  S SKJr  S SKrS SKJrJrJrJ	r	J
r
JrJrJrJrJrJrJrJrJrJrJrJrJrJrJr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\\5      r&g)    )Exchange)ImplicitAPIN)AnyBalances
CurrenciesCurrencyDepositAddressIntLedgerEntryMarketNumOrder	OrderBookOrderRequest	OrderSide	OrderTypePositionStrStringsTickerFundingRateTradeTradingFeesTransaction)List)ExchangeError)
BadRequest)OrderNotFound)	TICK_SIZE)Precisec                     ^  \ rS rSrS\4U 4S jjrS rS\S\4S jr	0 4S\
\   4S jjrS\4S jrS\4S	 jr0 4S\4S
 jjrS\S\S\S\4S jjrS\S\S\S\4S jjrSS0 4S\S\S\S\
\   4S jjr0 4S\S\4S jjrS\S\4S jrS\S\S\S\4S jjrS0 4S\S\S\4S jjr0 4S\4S jjrS\S\ S\ S\!S\"S \ S!\#4S" jjr$S0 4S\ S\S\!S\"S \ S!\#4S# jjr%S0 4S\S\!S\"S \ S!\#4
S$ jjr&0 4S%\
\'   S\
\   4S& jjr(SS0 4S\ S\S\S\!S\"S \#S!\#4S' jjr)SS0 4S\S\S\!S\"S \#S!\#4S( jjr*0 4S%\
\'   S\
\   4S) jjr+S\4S* jr,S0 4S\S\4S+ jjr-S0 4S,\
\   S\4S- jjr.S0 4S\4S. jjr/S \ S/\ S0\4S1 jr0S0 4S2\S \ S0\S3\S\14
S4 jjr2S5 r3S6 r4S0 4S\S\S\54S7 jjr6SSS0 4S\S\S\4S8 jjr7S\S\S\84S9 jjr9SSS0 4S\S\S\S\
\   4S: jjr:S;SS0 4S\S<\S\S\S\
\8   4
S= jjr;S0 4S>\<S\
\=   4S? jjr>S\S@\S\4SA jjr?SBSC0 SS4SD jr@SE\ASF\SG\SH\SI\SJ\4SK jrBSL rCSM rDS\SN\SO\ES\F4SP jjrGSSS0 4S2\S\S\S\
\F   4SQ jjrH0 4S2\S\I4SR jjrJS\SS\SO\ES\14ST jjrKSSS0 4S2\S\S\S\
\1   4SU jjrLSSS0 4S2\S\S\S\
\1   4SV jjrM0 4S\4SW jjrN0 4S\4SX jjrO0 4S\S\P4SY jjrQSSS0 4S\S\S\4SZ jjrRS[rSU =rT$ )]hibachi   returnc                 z  > U R                  [        [        U ]  5       0 SS_SS_SS/_SS_S	U R                  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_S0S_S1S_S2S_E0 S3S_S4S_S5S_S6S_S7S_S8S_S9S_S:S_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0 SUS_SVS_SWS_SXS_SYS_SZS_S[S_S\S_S]S_S^S_S_S`_SaS_SbS_ScS_SdS_SeS_SfS_ESSSg.E_ShSiSjSkSlSmSnSoSp._SqSrSsStSu.SvSwSx0Sy._SzS{S|S|S|S|S|S|S|S|S|S}.	0S|S|S|S|S|S|S|S~.SS|0S|S|S.S|S|S|S.S.Su._SSSSSS._SSSSU R                  S5      U R                  S5      S.0_SU R                  5       _S0 _SS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.S S SS 0S.	SS0S S.SS0S S.S._0 [        [        [        S.0 S.[        S.E5      $ )Nidr"   nameHibachi	countriesUS	rateLimitd   	userAgentchrome	certifiedFprodexThasCORSspotmarginswapfutureoption	addMargincancelAllOrderscancelOrdercancelOrderscancelWithdrawcloseAllPositionsclosePositioncreateConvertTradecreateDepositAddresscreateMarketBuyOrderWithCostcreateMarketOrdercreateMarketOrderWithCostcreateMarketSellOrderWithCostcreateOrdercreateOrders$createOrderWithTakeProfitAndStopLosscreateReduceOnlyOrdercreateStopLimitOrdercreateStopLossOrdercreateStopMarketOrdercreateStopOrdercreateTakeProfitOrdercreateTrailingAmountOrdercreateTrailingPercentOrdercreateTriggerOrder	editOrder
editOrdersfetchAccountsfetchBalancefetchCanceledOrdersfetchClosedOrderfetchClosedOrdersfetchConvertCurrenciesfetchConvertQuotefetchCurrenciesfetchDepositAddressfetchDepositsfetchDepositsWithdrawalsfetchFundingHistoryfetchFundingIntervalfetchFundingIntervalsfetchFundingRatefetchFundingRateHistoryfetchFundingRatesfetchIndexOHLCVfetchLedgerfetchLeveragefetchMarginAdjustmentHistoryfetchMarginModefetchMarketsfetchMyTrades
fetchOHLCVfetchOpenInterestfetchOpenInterestHistoryfetchOpenOrderfetchOpenOrders
fetchOrderfetchOrderBookfetchOrdersfetchOrderTradesfetchPositionfetchPositionModefetchPositionsfetchPremiumIndexOHLCVfetchStatusfetchTickerfetchTickers	fetchTimefetchTradesfetchTradingFeefetchTradingFeesfetchTradingLimitsfetchTransactionsemulatedfetchTransfersfetchWithdrawalsreduceMarginsetLeverage	setMarginsetPositionMode)transferwithdraw
timeframes1min5min15min1h4h1d1w)1m5m15mr   r   r   r   urlszOhttps://github.com/user-attachments/assets/7301bbb1-4f27-4167-8a55-75f74b14e973zhttps://data-api.hibachi.xyzzhttps://api.hibachi.xyz)publicprivatezhttps://www.hibachi.xyz/urlzhibachi.xyz/r/ZBL2YFWIHU)logoapiwwwreferralr   get   )	zmarket/exchange-infozmarket/data/tradeszmarket/data/priceszmarket/data/statszmarket/data/klineszmarket/data/orderbookzmarket/data/open-interestzmarket/data/funding-rateszexchange/utc-timestamp)zcapital/deposit-infozcapital/historyztrade/account/trading_historyztrade/account/infotrade/orderztrade/account/tradestrade/ordersr   )r   r   )r   r   zcapital/withdraw)r   putdeletepostrequiredCredentials)apiKeysecret	accountId
privateKeyfeestradingz0.00015z0.00045)	tierBased
percentagemakertaker
currenciesoptionsfeatures)IOCFOKPOGTD)
marginModetriggerPricetriggerPriceTypetriggerDirectionstopLossPricetakeProfitPriceattachedStopLossTakeProfittimeInForcehedgedtrailingleveragemarketBuyByCostmarketBuyRequiresPriceselfTradePreventioniceberg)r   limitdaysBack	untilDayssymbolRequired)r   triggerr   r   )r   r   r   r   r   r   )	sandboxrF   rG   rk   rq   rp   rs   rX   rl   extendsdefault)linearinverse)r   r6   r7   )234)exactbroad)commonCurrencies
exceptionsprecisionMode)
deep_extendsuperr"   describe
userAgentsparse_numberhardcoded_currenciesr   r   r   )self	__class__s    F/home/james-whalen/.local/lib/python3.13/site-packages/ccxt/hibachi.pyr   hibachi.describe   s   gt = ? yB
)yB
IyB
 $yB
 	yB

 2yB
 yB
 5yB
 4yB
  XXX %X 	X
 %X %X UX "4X tX X !%X $UX  X %eX 'X  /!X" $U#X$ ,U%X& 0'X( t)X* +X, 7-X. (/X0 '1X2 &u3X4 (5X6 "57X8 (9X: ,U;X< -e=X> %e?X@ TAXB dCXD  EXF GXH &uIXJ #EKXL $UMXN )%OXP $UQXR "5SXT &tUXV  WXX +EYXZ &u[X\ ']X^ (_X` #DaXb *4cXd $UeXf "5gXh tiXj  kXl /mXn "5oXp qXr  sXt duXv $TwXx +EyXz !%{X| "4}X~ dX@ !$AXB uCXD #EEXF  GXH $UIXJ !$KXL )%MXN uOXP tQXR SXT TUXV tWXX "5YXZ #D[X\ %e]X^ $Z_X` !%aXb #DcXd eXf ugXh UiXj "5kXl " oXyB
D EyB
V i<8 25
WyB
l 01././-../12565623
 12+,9:./'(01() &q ()()
 ()(),-#%myB
x "!"	$yyB
D !&"&!..y9!..y9	EyB
T $335UyB
V  WyB
Z $&+(,,0,0).+06:#'#("&#(	( #($)$)+027/4#()$, %)&+!%$(%)*/& ',#($)*/	# ',!%#($)*/( $()-#_2j "9  $	 "9  $	u@[yB
\ !# $&#
 'qyB
 y y	    c                 \    U R                  5         U R                  U R                  5      nU$ N)check_required_credentialsparse_to_intr   )r   r&   s     r   get_account_idhibachi.get_account_id  s'    '')t~~.	r   marketc                    U R                  US5      nU R                  US5      nSnU R                  US5      nU R                  US5      nU R                  U5      nU R                  U5      nU R                  US5      n	U R                  U	5      n
US-   U-   S-   U
-   nU R                  USS	5      n0 SU_S
U_SU_SU_SU_SU
_SU_SU_SU	_SU_SS_SS_SS_SS_SS_SU R                  US5      S:H  _SS_SSU R	                  S5      S S S S U R	                  U R                  U R                  US5      5      5      U R	                  U R                  US5      S   5      S -  S!.S S S".S S S".S S S".U R                  US#5      S S".S$.UUS%.E$ )&Nsymbolr&   r6   underlyingSymbolsettlementSymbol/:marketCreationTimestamp  	numericIdbasequotesettlebaseIdquoteIdsettleIdtyper4   Fr5   Tr7   r8   activestatusLIVEcontract1underlyingDecimalsorderbookGranularitiesr   g     @)amountpriceminmaxminNotional)r   r  r  cost)r   r   contractSizeexpiryexpiryDatetimestrike
optionType	precisionlimitscreatedinfo)safe_stringsafe_numbersafe_currency_codesafe_integer_productr   parse_precision	safe_list)r   r   marketIdr   
marketTyper   r   r   r   r   r   r   r  s                r   parse_markethibachi.parse_market  sn   ##FH5$$VT2	
!!&*<=""6+=>&&v.''0((1CD--h7e#c)F2++F4MtT1
(1
1
 f1
 D	1

 U1
 f1
 f1
 w1
 1
 J1
 E1
 e1
 D1
 e1
 e1
  d&&vx8FB!1
" #1
$  --c2"++D,@,@AQAQRXZnAo,pq**4>>&BZ+[\]+^_bii  
  
  
  ++FMB$ a1
 1	
r   c                 j    U R                  U5      nU R                  US5      nU R                  U5      $ )z
retrieves data on all markets for hibachi

https://api-doc.hibachi.xyz/#183981da-8df5-40a0-a155-da15015dd536

:param dict [params]: extra parameters specific to the exchange API endpoint
:returns dict[]: an array of objects representing market data
futureContracts)publicGetMarketExchangeInfor  parse_markets)r   paramsresponserowss       r   fetch_marketshibachi.fetch_marketsT  s8     33F;4 ~~h(9:!!$''r   c                     0 n0 nSnUUS S S.S S S.S.S S S 0 S.X#'   U R                  S5      nU R                  SSSUU R                  S5      SS USSS S S.S S S.S	.0 S
.5      X'   U$ )NARBITRUMr  )r   deposit)r&   networkr  r   r&  r   r  USDTfiatz0.000001T)r&  r   )r&   r'   r   coder  r   feenetworksr&  r   r  r  )r  safe_currency_structurer   )r   resultr,  	networkIdr*  s        r   r   hibachi.hardcoded_currenciesz  s     	   
  	 !
$ &&v.33**:6   
  	 +5
 . r   c                     SU0nU R                  S5      nU R                  5       nU R                  US5      US'   U R                  US5      US'   XBU'   U R                  U5      $ )Nr  r(  balancetotalmaximalWithdrawfree)r  accountr  safe_balance)r   r   r.  r*  r6  s        r   parse_balancehibachi.parse_balance  sq    H
 &&v.,,.++Hi@**85FGt  ((r   c                     SU R                  5       0nU R                  U R                  X!5      5      nU R                  U5      $ )aE  
query for balance and get the amount of funds available for trading or funds locked in orders

https://api-doc.hibachi.xyz/#69aafedb-8274-4e21-bbaf-91dace8b8f31

:param dict [params]: extra parameters specific to the exchange API endpoint
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
r   )r   privateGetTradeAccountInfoextendr8  )r   r  requestr   s       r   fetch_balancehibachi.fetch_balance  sG     ,,.
 224;;w3OP" !!(++r   Ntickerc                    U R                  US5      nU R                  US5      nU R                  US5      nU R                  US5      nU R                  US5      nU R                  US5      nU R                  US5      n	U R                  US5      n
U R                  0 S	U R                  S U5      _S
S _SS _SU_SU_SU_SU_SU	_SS _SS _SS _SS _SU_SS _SS _SS _SS _S U
US.EU5      $ )NpricesstatsbidPriceaskPrice
tradePricehigh24hlow24h	volume24hr   	timestampdatetimebidasklasthighlow	bidVolume	askVolumevwapopenclosepreviousClosechanger   average)
baseVolumequoteVolumer  )	safe_dictr  safe_tickersafe_symbol)r   r@  r   rB  rC  rL  rM  rN  rO  rP  volumes              r   parse_tickerhibachi.parse_ticker  s   1vw/vz2vz25y1uh/!!%5 !
d&&tV4!
!
 !
 3	!

 3!
 D!
 D!
 3!
 !
 !
 D!
 D!
 T!
 T!
 d!
  $!!
" t#!
$ !)!
* + 	r   tradec                 z   U R                  US5      nU R                  X25      nUS   nU R                  US5      nU R                  US5      nU R                  US5      nU R                  USS5      n[        R                  " Xg5      n	S n
S nS nS nS nUc  U R                  US5      n
SnOdU R                  US	5      n
U R                  US
5      SS.nU R                  US5      nU
S:X  a  U R                  US5      nOU R                  US5      nU R                  UUU R                  U5      UU
UUU	UUUUUS.U5      $ )Nr   r&   r  quantityrJ  r   	takerSider   sider+  r(  )r  currency	orderTypebuy
bidOrderId
askOrderId)r&   rJ  rK  r   re  r  r  r  ordertakerOrMakerr   r+  r  )r  safe_marketr  r    
string_mulsafe_string_lower
safe_tradeiso8601)r   ra  r   r  r   r&   r  r  rJ  r  re  r+  rg  orderIdrl  s                  r   parse_tradehibachi.parse_trade  sr   2 ##E84!!(3!eT*  0!!%4--e[$G	!!%0	:))%=D"L ))%8D++E59vNC..ukBIu}**5,?**5,?"Y/( 
  	r   r   sincer   c                     U R                  5         U R                  U5      nSUS   0nU R                  U R                  Xd5      5      nU R	                  US/ 5      nU R                  X5      $ )a  
get the list of most recent trades for a particular symbol

https://api-doc.hibachi.xyz/#86a53bc1-d3bb-4b93-8a11-7034d4698caa

:param str symbol: unified market symbol
:param int [since]: timestamp in ms of the earliest trade to fetch
:param int [limit]: the maximum amount of trades to fetch(maximum value is 100)
:param dict [params]: extra parameters specific to the hibachi api endpoint
:returns dict[]: a list of recent [trade structures]
r   r&   trades)load_marketsr   publicGetMarketDataTradesr<  r  parse_trades	r   r   ru  r   r  r   r=  r   rw  s	            r   fetch_tradeshibachi.fetch_trades:  sn     	V$fTl
 11$++g2NO (B7  00r   c                    U R                  5         U R                  U5      nSUS   0nU R                  U R                  XB5      5      U R	                  U R                  XB5      5      /nUnUS   nUS   nUUS.n	U R                  X5      $ )aX  

https://api-doc.hibachi.xyz/#4abb30c4-e5c7-4b0f-9ade-790111dbfa47

fetches a price ticker and the related information for the past 24h
:param str symbol: unified symbol of the market
:param dict [params]: extra parameters specific to the hibachi api endpoint
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
r   r&   r   r   )rB  rC  )rx  r   publicGetMarketDataPricesr<  publicGetMarketDataStatsr_  )
r   r   r  r   r=  rawPromisespromisespricesResponsestatsResponser@  s
             r   fetch_tickerhibachi.fetch_ticker[  s     	V$fTl
 **4;;w+GH))$++g*FG
 !! ! %"
   00r   r   c           	      <    SSSSSSSSS.nU R                  X!U5      $ )NrT  closedcanceledrejected)PENDINGCHILD_PENDINGSCHEDULED_TWAPPLACEDPARTIALLY_FILLEDFILLED	CANCELLEDREJECTEDr  r   r   statusess      r   parse_order_statushibachi.parse_order_status  s6    #$ &#"	
 &99r   rk  c                 2   U R                  US5      nU R                  X25      nU R                  US5      nU R                  US5      nU R                  US5      nU R                  US5      nS nUS:X  a  SnOUS:X  a  S	nU R                  US
5      n	U R                  US5      n
U R                  US
5      nU R                  US5      nS nUb  Ub  [        R                  " X5      nSnU R                  US5      nSnSnUS:X  a  SnSnOUS:X  a  SnOUS:X  a  SnU R                  0 SU_SU R                  US5      _SS _SS _SS _SS _SS _SU R                  U5      _SUS   _SU_SU_SU_SU_SS _SU	_S U_S!U
_S S S UUU R                  US"5      S#.EU5      $ )$Nr   r   rg  r  re  BIDrh  ASKselltotalQuantityavailableQuantityGTC
orderFlagsF	POST_ONLYr   Tr   REDUCE_ONLYr  r&   rr  clientOrderIdrK  rJ  lastTradeTimestamplastUpdateTimestampr   r   rX  r  filled	remainingr   )r  rw  r+  
reduceOnlypostOnlyr   )	r  rm  ro  r    
string_sub
safe_value
safe_orderr  r  )r   rk  r   r  r   r   r  rawSidere  r  r  r  r  r  r   r  r  r  s                     r   parse_orderhibachi.parse_order  sh   ##E84!!(3!!%2%%e[9  0""5&1eDD!!%9$$U,?@	((@ ,,U4GH$):)F''IF__UL9

$KH5 K=(J  
E 
$""5)4 
 T 
 	 

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

https://api-doc.hibachi.xyz/#096a8854-b918-4de8-8731-b2a28d26b96d

: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>`
N)rr  r   )rx  r   r   privateGetTradeOrderr<  r  )r   r&   r   r  r   r=  r   s          r   fetch_orderhibachi.fetch_order  sk     	[[(F,,.
 ,,T[[-IJ11r   c                 T   U R                  5         SU R                  5       0nU R                  U R                  X!5      5      nU R	                  US5      nU R	                  US5      n0 n[        S[        U R                  5      5       H  nU R                  U   nUUUUSS.Xh'   M     U$ )z
       fetch the trading fee
@param params extra parameters
       :returns dict: a map of market symbols to `fee structures <https://docs.ccxt.com/#/?id=fee-structure>`
       r   tradeMakerFeeRatetradeTakerFeeRater   T)r  r   r   r   r   )rx  r   r;  r<  r  rangelensymbols)	r   r  r=  r   makerFeeRatetakerFeeRater.  ir   s	            r   fetch_trading_feeshibachi.fetch_trading_fees  s     	,,.
 224;;w3OP
 ''2EF''2EFq#dll+,A\\!_F  %%"FN - r   noncefeeRater   re  r  r  c           
         SnUS:X  a  SnOUS:X  a  SnU R                  U R                  US5      U5      n	U R                  U5      n
U R                  US5      nSU R                  US5      -   nSU R                  US	5      -   nS
nSnSn[        R
                  " [        R                  " X5      US5      n[        R
                  " [        R                  " X5      US5      nU R                  U5      nUR                  SS5      nU R                  U5      nU R                  U R                  US5      5      nUR                  SS5      nU R                  U5      nU R                  U R                  U5      5      nUR                  SS5      nU R                  U5      nU R                  U5      nUR                  SS5      nU R                  U5      nU R                  U R                  U5      5      nUR                  SS5      n U R                  U 5      n!U R                  5       n"US:X  a  U R                  U R                  US5      U5      n#[        R
                  " [        R
                  " [        R                  " [        R                  " U#U5      U5      U5      US5      n$U R                  U R                  U$5      5      n%U%R                  SS5      n&U R                  U&5      n"U R                  UUUUU"U!5      n'U'$ )Nr   r  rh  r   r   r  1er   settlementDecimalsr   	100000000
4294967296   0r      r   )amount_to_precisionr  number_to_stringr[  r    
string_divrn  int_to_base16rjustbase16_to_binarysafe_integerr   binary_concatprice_to_precision)(r   r   r  r  r   re  r  r  sideInternal	amountStr
feeRateStrr  
underlying
settlementonefeeRateFactorpriceFactorquantityInternalfeeRateInternalnonce16noncePaddedencodedNoncer   numericIdPaddedencodedMarketId
quantity16quantityPaddedencodedQuantitysideInternal16
sidePaddedencodedSidefeeRateInternal16feeRatePaddedencodedFeeRateencodedPricepriceStrpriceInternalprice16pricePaddedmessages(                                           r   order_messagehibachi.order_message  s   6>LU]L
 ,,T-=-=fh-OQWX	**73
~~ff-D,,T3GHH
D,,T3GHH
#""--g.@.@.WY\^_`!,,W-?-?
-Z\_abc$$U+mmB,,,[9&&t'8'8'MN	#//!S1//@''(9(9:J(KL
#))"c2//?++L9#))!S1
++J7 ..t/@/@/QR)//C8..}=))+7?..t/?/?/QSXYH#..w/A/A'BTBTU\UgUghpr}U~  AK  CL  NX  0Y  [^  `a  bM(():):=)IJG!--C0K00=L$$\?OU`bnp~r   c                    U R                  U5      n[        U R                  USU R                  U R                  SS5      5      U R                  USU R                  U R                  SS5      5      5      n	Sn
US:X  a  S	n
OUS
:X  a  Sn
SnU(       a  U R	                  X&5      nU R                  XXXEU5      nU R                  XR                  5      nU R                  US5      UU
UR                  5       U R                  X%5      UUU R                  U	5      S.nU R                  UR                  5       S:H  S U5      nU R                  USS5      nU R                  US5      nU R                  USS5      nU(       a  SUS'   OUS:X  a  SUS'   OU(       a  SUS'   Ub  UUS'   U R!                  U/ SQ5      nU R#                  X5      $ )Nr   defaultTakerFeegH}=?r   defaultMakerFeega2U0*#? r  r  rh  r  r&   )r   r  re  rg  rc  r  	signaturemaxFeesPercentMARKETr  reduce_onlyr   r   	stopPricer  r  iocr   r  )r  r  r  r   r  r   )r   r  r  r   r  r  sign_messager   r  upperr  r  is_post_onlysafe_bool_2ro  safe_string_2omitr<  )r   r  r   r   re  r  r  r  r   r  r  r  r  r  r=  r  r  r   r   s                      r   create_order_requesthibachi.create_order_request/  s   V$d&&vw8H8HWhjq8rsuy  vF  vF  GM  OV  X\  Xh  Xh  im  iu  iu  wH  JQ  XR  vS  T6> LU] L 33FBM$$VG4QVW%%g?	&&vt4 00@"""33G<	
 $$TZZ\X%=tVL%%flMJ
,,V]C))&.+N$/GL!E!$)GL!$1GL!#&2GN#6#xy{{7++r   c           	          U R                  5         U R                  5       nU R                  XqX#XEU5      nU R                  5       US'   U R	                  U5      n	U R                  U R                  U	S5      SS.5      $ )a[  
create a trade order

https://api-doc.hibachi.xyz/#00f6d5ad-5275-41cb-a1a8-19ed5d142124

: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   rr  pendingr&   r   )rx  r  r  r   privatePostTradeOrderr  r  )
r   r   r   re  r  r  r  r  r=  r   s
             r   create_orderhibachi.create_orderU  s     	

++E4vV\]#224--g6 ""8Y7 
  	r   ordersc           
         U R                  5         U R                  5       n/ n[        S[        U5      5       H  nX   nU R	                  US5      nU R	                  US5      nU R	                  US5      n	U R                  US5      n
U R                  US5      nU R                  US0 5      nU R                  X5-   XxXX5      nSUS	'   UR                  U5        M     U R                  5       US
.nU R                  U R                  X5      5      n/ nU R                  US5      n[        S[        U5      5       H<  nUU   nUR                  U R                  UU R	                  US5      SS.5      5        M>     U$ )a  
*contract only* create a list of trade orders

https://api-doc.hibachi.xyz/#c2840b9b-f02c-44ed-937d-dc2819f135b4

:param Array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
: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   re  r  r  r  placeactionr   r	  r	  rr  r  r  r&   r   )rx  r  r  r  r  r  r[  r  appendr   privatePostTradeOrdersr<  r  r  )r   r	  r  r  requestOrdersr  rawOrderr   r   re  r  r  orderParamsorderRequestr=  r   retresponseOrdersresponseOrders                      r   create_ordershibachi.create_ordersr  sx    	

q#f+&AyH%%h9F##Hf5D##Hf5D__Xx8FOOHg6E..8R@K44UYd\aoL%,L"  . ' ,,.#
 ..t{{7/KL (;q#n-.A*1-MJJt%&&}i@#(   / 
r   c	           	      h   U R                  U5      n	[        U R                  U	S5      U R                  U	S5      5      n
U R                  XXXVU5      nU R	                  XR
                  5      nUUU R                  X65      U R                  X75      U R                  U
5      US.nU R                  X5      $ )Nr   r   )rr  r  updatedQuantityupdatedPricer  r  )
r   r  r  r  r  r   r  r  r  r<  )r   r  r&   r   r   re  r  r  r  r   r  r  r  r=  s                 r   edit_order_requesthibachi.edit_order_request  s    V$d&&vw79I9I&RY9Z[$$VG4QVW%%g?	#77G 33FB"33G<"
 {{7++r   c           
          U R                  5         U R                  5       nU R                  XX#XEXg5      n	U R                  5       U	S'   U R	                  U	5        U R                  USS.5      $ )a  
edit a limit order that is not matched

https://api-doc.hibachi.xyz/#94d2cdaf-1c71-440f-a981-da1112824810

:param str id: order id
: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', should stay the same with original side
: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
: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  )rx  r  r  r   privatePutTradeOrderr  )
r   r&   r   r   re  r  r  r  r  r=  s
             r   
edit_orderhibachi.edit_order  sq     	

))%V4QV_#224!!'*
  
  	r   c                    U R                  5         U R                  5       n/ n[        S[        U5      5       H  nX   nU R	                  US5      nU R	                  US5      nU R	                  US5      n	U R	                  US5      n
U R                  US5      nU R                  US5      nU R                  US0 5      nU R                  X5-   XxXXU5      nS	US
'   UR                  U5        M     U R                  5       US.nU R                  U R                  X5      5      n/ nU R                  US5      n[        S[        U5      5       H<  nUU   nUR                  U R                  UU R	                  US5      SS.5      5        M>     U$ )a  
edit a list of trade orders

https://api-doc.hibachi.xyz/#c2840b9b-f02c-44ed-937d-dc2819f135b4

:param Array orders: list of orders to edit, each object should contain the parameters required by editOrder, namely id, symbol, type, side, amount, price and params
: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   re  r  r  r  modifyr  r  r	  rr  r  r  )rx  r  r  r  r  r  r[  r  r  r   r  r<  r  r  )r   r	  r  r  r  r  r  r&   r   r   re  r  r  r  r  r=  r   r  r  r  s                       r   edit_ordershibachi.edit_orders  s    	

q#f+&AyH!!(D1B%%h9F##Hf5D##Hf5D__Xx8FOOHg6E..8R@K2259b$V\epqL%-L"  . ' ,,.#
 ..t{{7/KL (;q#n-.A*1-MJJt%&&}i@#(   / 
r   c                     U R                  U5      nU R                  U5      nUR                  SS5      nU R                  U5      nU R	                  XPR
                  5      nUUS.$ )Nr  r  )rr  r  )convert_to_big_intr  r  r  r  r   )r   r&   bigididbase16idPaddedr  r  s          r   cancel_order_requesthibachi.cancel_order_request  sf    ''+%%e,>>"c*''1%%g?	"
 	
r   c                     U R                  U5      nU R                  5       US'   U R                  U R                  XC5      5      nU R	                  UUSS.5      $ )a/  

https://api-doc.hibachi.xyz/#e99c4f48-e610-4b7c-b7f6-1b4bb7af0271

cancels an open order
:param str id: order id
:param str symbol: is unused
: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   privateDeleteTradeOrderr<  r  )r   r&   r   r  r=  r   s         r   cancel_orderhibachi.cancel_order   sa     11"5#224//G0LM
   
  	r   idsc           
         / n[        S[        U5      5       H,  nU R                  X   5      nSUS'   UR                  U5        M.     U R	                  5       US.nU R                  U R                  Xs5      5      n/ n	U R                  US5      n
[        S[        U
5      5       H;  nX   nU	R                  U R                  UU R                  US5      SS.5      5        M=     U	$ )	aS  
cancel multiple orders

https://api-doc.hibachi.xyz/#c2840b9b-f02c-44ed-937d-dc2819f135b4

:param str[] ids: order ids
:param str [symbol]: unified market symbol, unused
:param dict [params]: extra parameters specific to the exchange API endpoint
:returns dict: an list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
r   cancelr  r  r	  rr  r  r  )
r  r  r,  r  r   r  r<  r  r  r  )r   r2  r   r  r	  r  r  r=  r   r  r  r  s               r   cancel_ordershibachi.cancel_orders  s     q#c(#A44SV<L%-L"MM,' $
 ,,.
 ..t{{7/KL (;q#n-.A*-MJJt%&&}i@$(   / 
r   c                    U R                  5         U R                  5       nU R                  U5      nUR                  SS5      nU R	                  U5      nU R                  X`R                  5      nU R                  5       UUS.nUb&  U R                  U5      n	U R                  U	S5      US'   U R                  U R                  X5      5      n
U R                  SU
05      /$ )a9  

https://api-doc.hibachi.xyz/#8ed24695-016e-49b2-a72d-7511ca921fee

cancel all open orders in a market
:param str symbol: unified market symbol
:param dict [params]: extra parameters specific to the exchange API endpoint
:returns dict: an list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
r  r  )r   r  r  r   
contractIdr  )rx  r  r  r  r  r  r   r   r   r  privateDeleteTradeOrdersr<  r  )r   r   r  r  r  r  r  r  r=  r   r   s              r   cancel_all_ordershibachi.cancel_all_orders;  s     	

$$U+mmB,''4%%g?	,,."

 [[(F$($5$5fk$JGL!00W1MN OO 
 	
r   maxFeesaddressc                    SnSnU R                  U5      nU R                  U5      nSn[        R                  " [        R                  " Xe5      US5      n	[        R                  " [        R                  " Xu5      US5      n
U R	                  U5      nUR                  SS5      nU R                  U5      nU R	                  U R                  U	5      5      nUR                  SS5      nU R                  U5      nU R	                  U R                  U
5      5      nUR                  SS5      nU R                  U5      nU R                  U5      nU R                  UUUU5      nU$ )Nr   1000000r   r   r  r  r  )	r  r    r  rn  r  r  r  r   r  )r   r  r<  r=  USDTAssetId
USDTFactorr  
maxFeesStrr  r  maxFeesInternalusdtAsset16usdtAssetPaddedencodedAssetIdr  r  r  	maxFees16maxFeesPaddedencodedMaxFeesencodedAddressr  s                         r   encode_withdraw_messagehibachi.encode_withdraw_message^  sM   
 
))&1	**73
"--g.@.@.WY\^_`!,,W-?-?
-WY\^_`((5%++As3..?''(9(9:J(KL
#))"c2//?&&t'8'8'IJ	!C0..}=..w7$$^_nVder   r*  tagc           	         USS nU R                  U5      nU R                  US5      nU R                  US5      n	U R                  X)U5      n
U R	                  XR
                  5      nU R                  5       SSUSU R                  U5      U R                  U	5      US.nU R                  U R                  X5      5        0 S	S_S
S_SS_SU R                  5       _SS_SS_SS_SU_SS_SS_SS_SS_SU_SU_SS_SSU	S._SS_SSSS.E$ )a  
make a withdrawal

https://api-doc.hibachi.xyz/#6421625d-3e45-45fa-be9b-d2a0e780c090

:param str code: unified currency code, only support USDT
: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>`
iN	feeConfigwithdrawalFeesr(  r%  F)r   coinr'  withdrawAddressselfWithdrawalrc  r<  r  r  r&   txidrJ  rK  r=  addressFrom	addressTorM  tagFromtagTor   
withdrawalr  rf  r   r  r+  rf  r  r'  )updatedcommentinternal)r  r[  r  rK  r  r   r   r  privatePostCapitalWithdrawr<  milliseconds)r   r*  r  r=  rM  r  rR  exchangeInforO  r<  r  r  r=  s                r   r   hibachi.withdrawx  s    "#$-77? NN<=	""9.>?..vP%%g?	,,.!.#--f5,,W5"	
 	''G(DE

D
$
 D
 **,	

 
 t
 4
 
 4
 t
 T
 L
 f
 
 i
  8!
" z#
$ )
 	
r   c                 "    U R                  5       $ r   )r_  )r   s    r   r  hibachi.nonce  s      ""r   c                    [        U5      S:X  a0  U R                  XR                  U5      [        R                  S5      $ U R                  USS5      nU R                  USS  USS  SS 5      nUS   nUS   nU R                  US   5      nUR                  S	S
5      UR                  S	S
5      -   UR                  SS
5      -   $ )N,   hexsha256i	secp256k1rsv@   r     )	r  hmacencodehashlibrg  hashecdsar  r  )r   r  r   rq  r  ri  rj  rk  s           r   r  hibachi.sign_message  s    z?b 99Wkk*&=w~~uUU 99Wh6D

4:z#$/?dSI#A#A""9S>2A772s#aggb#&66CHHr   c           	      r   U R                  5         U R                  U5      nSUS   0nU R                  U R                  XS5      5      n0 nU R	                  U R                  US5      S5      US'   U R	                  U R                  US5      S5      US'   U R                  XqU R                  5       SSSS5      $ )a  
fetches the state of the open orders on the orderbook

https://api-doc.hibachi.xyz/#4abb30c4-e5c7-4b0f-9ade-790111dbfa47

:param str symbol: unified symbol of the market
:param int [limit]: currently unused
:param dict [params]: extra parameters to be passed -- see documentation link above
:returns dict: A dictionary containg `orderbook information <https://docs.ccxt.com/#/?id=order-book-structure>`
r   r&   rM  levelsrL  r  rc  )rx  r   publicGetMarketDataOrderbookr<  r  r[  parse_order_bookr_  )r   r   r   r  r   r=  r   formattedResponses           r   fetch_order_bookhibachi.fetch_order_book  s     	V,fTl
 44T[[5QR#'>>$..52QS[#\% #'>>$..52QS[#\% N $$%6@Q@Q@SUZ\acjlvwwr   c                     U R                  5         SnUb  U R                  U5      nSU R                  5       0nU R                  U R	                  Xd5      5      nU R                  US5      nU R                  XX#U5      $ )a  

https://api-doc.hibachi.xyz/#0adbf143-189f-40e0-afdc-88af4cba3c79

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>`
Nr   rw  )rx  r   r   privateGetTradeAccountTradesr<  r  rz  r{  s	            r   fetch_my_tradeshibachi.fetch_my_trades  s|     	[[(F 3 3 5644T[[5QR, (3  vFFr   c           	          U R                  USS5      U R                  US5      U R                  US5      U R                  US5      U R                  US5      U R                  US5      /$ )NrJ  r   rT  rO  rP  rU  volumeNotional)r  r  )r   ohlcvr   s      r   parse_ohlcvhibachi.parse_ohlcv2  sq     %%e[$?UF+UF+UE*UG,U$45
 	
r   c                     U R                  5         SnUb  U R                  U5      nSU R                  5       0nU R                  U R	                  Xd5      5      nU R                  XuX#5      $ )a  
fetches all current open orders

https://api-doc.hibachi.xyz/#3243f8a0-086c-44c5-ab8a-71bbb7bab403

:param str [symbol]: unified market symbol to filter by
:param int [since]: milisecond timestamp of the earliest order
:param int [limit]: the maximum number of open orders to return
:param dict [params]: extra parameters
:returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
Nr   )rx  r   r   privateGetTradeOrdersr<  parse_orders)r   r   ru  r   r  r   r=  r   s           r   fetch_open_ordershibachi.fetch_open_ordersI  sn     	[[(F,,.
 --dkk'.JK:   5@@r   r   	timeframec                 b   U R                  5         U R                  U5      nU R                  U R                  X"5      nUS   US.nUb  X7S'   SnU R	                  USS5      u  pUb  XS'   U R                  U R                  Xu5      5      n	U R                  U	S/ 5      n
U R                  XX#U5      $ )	a  

 https://api-doc.hibachi.xyz/#4f0eacec-c61e-4d51-afb3-23c51c2c6bac

fetches historical candlestick data containing the close, high, low, open prices, interval and the volumeNotional
:param str symbol: unified symbol of the market to fetch OHLCV data for
:param str timeframe: the length of time each candle represents
:param int [since]: timestamp in ms of the earliest candle to fetch
:param int [limit]: the maximum amount of candles to fetch
:param dict [params]: extra parameters specific to the exchange API endpoint
:param int [params.until]: timestamp in ms of the latest candle to fetch
:returns int[][]: A list of candles ordered, open, high, low, close, volume
r&   )r   intervalNfromMsrl   untiltoMsklines)	rx  r   r  r   handle_option_and_paramspublicGetMarketDataKlinesr<  r  parse_ohlcvs)r   r   r  ru  r   r  r   r=  r  r   r  s              r   fetch_ohlcvhibachi.fetch_ohlcv{  s     	V$$$T__iK	Tl!
  %H55flGT#FO11$++g2NO (B7  5IIr   r  c                     U R                  5         U R                  U5      nSU R                  5       0nU R                  U R	                  X25      5      nU R                  US/ 5      nU R                  XQ5      $ )aC  
fetch all open positions

https://api-doc.hibachi.xyz/#69aafedb-8274-4e21-bbaf-91dace8b8f31

:param str[] [symbols]: list of unified market symbols
:param dict [params]: extra parameters specific to the exchange API endpoint
:returns dict[]: a list of `position structure <https://docs.ccxt.com/#/?id=position-structure>`
r   	positions)rx  market_symbolsr   r;  r<  r  parse_positions)r   r  r  r=  r   datas         r   fetch_positionshibachi.fetch_positions  sv     	%%g.,,.
 224;;w3OPV ~~hR8##D22r   positionc           
      
   U R                  US5      nU R                  X25      nUS   nU R                  US5      nU R                  US5      nU R                  USS5      nU R                  USS5      n[        R                  " Xx5      n	U R                  0 SU_SS _SU_S	U R                  US
5      _SS _SU R                  US5      _SS _SU	_SU_SU R                  U5      _SS _SS _SS _SS _SS _SS _SS _S S S S S S S.E5      $ )Nr   	directionrc  unrealizedFundingPnlr  unrealizedTradingPnlr  r&   
entryPriceaverage_entry_price	markPricenotionalnotionalValue
collateralunrealizedPnlre  	contractsr  rJ  rK  r   maintenanceMarginmaintenanceMarginPercentageinitialMargin)initialMarginPercentager   liquidationPricemarginRatior   r   )r  rm  ro  r    
string_addsafe_positionr   )
r   r  r   r  r   re  rc  unrealizedFundingunrealizedTradingr  s
             r   parse_positionhibachi.parse_position  s    ##Hh7!!(3!%%h<##Hj9 ,,X7MsS ,,X7MsS**+<P!! #
H#
$#
 f#
 $**85JK	#

 #
 ((?C#
 $#
 ]#
 D#
 **84#
 D#
 #
 #
 d#
  #
  *4!#
" T##
$ (, $/#
  	r   r   GETc                    SU R                  X5      -   nU R                  S   U   U-   nSS0nUS:X  aH  U R                  X@R                  U5      5      n	U R	                  U	5      n
[        U
5      S:w  a  USU
-   -  nUS:X  d  US	:X  d  US
:X  a  SUS'   U R                  U5      nUS:X  a  U R                  5         U R                  US'   XXeS.$ )Nr   r   zHibachi-ClientzHibachiCCXT/unversionedr  r   ?POSTPUTDELETEzapplication/jsonzContent-Typer   Authorization)r   methodbodyheaders)	implode_paramsr   r   extract_params	urlencoder  jsonr   r   )r   pathr   r  r  r  r  endpointr   r=  querys              r   signhibachi.sign  s    ,,T::iis#h.#%>?U?ii(;(;D(ABGNN7+E5zQsU{"Vv&H2D&8GN#99V$D)++-'+{{GO$dOOr   httpCodereasonr   r  r  r  c
                    Uc  g SU;   a  U R                  US5      n
U
S:X  a  U R                  US5      nU R                  S-   U-   nU R                  U R                  S   Xl5        U R	                  U R                  S   X5        U R                  US5      nU R	                  U R                  S   X5        [        U5      eg )Nr   failed	errorCode r   r   r  )r  r&   throw_broadly_matched_exceptionr   throw_exactly_matched_exceptionr   )r   r  r  r   r  r  r  r   requestHeadersrequestBodyr   r*  feedbackr  s                 r   handle_errorshibachi.handle_errors#  s    x %%h9F!''+>77S=4/44T__W5Mt^44T__W5Mt^**8Y?44T__W5Mwa#H--r   c                 4    SSSSS.nU R                  X!U5      $ )Ntransactionr   )r&  rY  transfer-intransfer-outr  )r   r   typess      r   parse_transaction_typehibachi.parse_transaction_type5  s*    $'%&	
 T22r   c                 4    SSSSS.nU R                  X!U5      $ )Nr  okr  )r  	claimable	completedr  r  r  s      r   parse_transaction_status hibachi.parse_transaction_status>  s*     " 	
 &99r   itemrf  c                    U R                  US5      nS nS nS nS nS nS n	S n
S nUc  U R                  USS5      nSnU R                  US5      n[        R                  " US5      (       a  Sn[        R                  " U5      nOSnU R                  U5      nS	U R                  US
5      S.nSnOU R                  USS5      nU R                  US5      nUS:X  d  US:X  a  SOSnU R                  U5      nU R                  U R                  US5      5      nUS:X  a  U R                  US5      n
OUS:X  a  U R                  US5      n
U R                  US5      n	U R                  U R                  US5      U R                  S	5      U R                  U R                  5      U
U	UUS S UUUU R                  U5      UUS.U5      $ )NtransactionTyperJ  r   ra  realizedPnlr  outinr(  r+  rZ  r  timestampSecrc  r&  r  r   srcAccountIdr  receivingAccountIdtransactionHashr&   )r&   rf  r6  referenceAccountreferenceIdr   r  beforeafterr+  r  rJ  rK  r   r  )r  r  r    	string_lt
string_negr   r  r  r  safe_ledger_entryrf  r  r   rq  )r   r  rf  r  rJ  r   r  r  r+  r  r  r   r  s                r   parse_ledger_entryhibachi.parse_ledger_entryG  s   **41BC		"11$TJID((}=I  C00!	#..y9	 	&&y1F%t/?/?e/LMCF 11$MI%%dJ7F!0I!=TaAahmI..?D2243C3CD(3STF-/#'#3#3D.#I  N2#'#3#3D:N#O **41BCK%%""4.f-,,T^^< 0&""Y/'
  ! 	r   c                    U R                  5         U R                  S5      nSU R                  5       0nU R                  U R	                  Xd5      5      U R                  U R	                  Xd5      5      /nUnUS   n	U R                  U	S5      n
US   nU R                  US5      nU R                  X5      nU R                  XX#U5      $ )a  
fetch the history of changes, actions done by the user or operations that altered the balance of the user

https://api-doc.hibachi.xyz/#35125e3f-d154-4bfd-8276-a48bb1c62020

:param str [code]: unified currency code, default is None
:param int [since]: timestamp in ms of the earliest ledger entry, default is None
:param int [limit]: max number of ledger entries to return, default is None
:param dict [params]: extra parameters specific to the exchange API endpoint
:returns dict: a `ledger structure <https://docs.ccxt.com/#/?id=ledger>`
r(  r   r   transactionsr   tradingHistory)	rx  rf  r   privateGetCapitalHistoryr<  $privateGetTradeAccountTradingHistoryr  array_concatparse_ledger)r   r*  ru  r   r  rf  r=  r  r  responseCapitalHistoryrowsCapitalHistoryresponseTradingHistoryrowsTradingHistoryr!  s                 r   fetch_ledgerhibachi.fetch_ledger|  s     	==( 3 3 56))$++g*FG55dkk'6RS
 !)!l "^^,BNS!)!6 "^^,BDTU  !3H  vFFr   c                     U R                  US5      U R                  5       S.nU R                  U R                  X25      5      nUSSU R                  US5      SS.$ )a  
fetch deposit address for given currency and chain. currently, we have a single EVM address across multiple EVM chains. Note: This method is currently only supported for trustless accounts
:param str code: unified currency code
:param dict [params]: extra parameters for API
:param str [params.publicKey]: your public key, you can get it from UI after creating API key
:returns dict: an `address structure <https://docs.ccxt.com/#/?id=address-structure>`
	publicKey)r  r   r(  r%  depositAddressEvmN)r  rf  r'  r=  rM  )r  r   privateGetCapitalDepositInfor<  )r   r*  r  r=  r   s        r   fetch_deposit_addresshibachi.fetch_deposit_address  sk     ))&+>,,.
 44T[[5QR
 !''2EF
 	
r   r  c                    U R                  USS5      nU R                  US5      nU R                  US5      nUS:w  a  US:w  a  U R                  U5      n0 SU_SU R                  US5      _S	U R                  US
5      _SU_SU R                  U5      _SS_SU_SU_SS _SS _SS _SS _SU_SU R	                  US5      _SS_SU R                  U R                  US5      5      _SS _S S S S.E$ )Nr  r   withdrawalAddressr  r&  rY  r  r&   rT  r  rJ  rK  r'  r%  r=  rV  rU  rM  rX  rW  r   r  rc  rf  r(  r   r[  )r]  r\  r+  )r  r  r  rq  r  r  )r   r  rf  rJ  r=  r  s         r   parse_transactionhibachi.parse_transaction  s   --k>4P	"";0CD**;8IJi'O|,K"99/JO
K
$"";5
 D$$[2CD
 	

 Y/
 z
 w
 
 4
 4
 T
 t
 O
 d&&{J?
 
  d33D4D4D[RZ4[\!
" t#
$ )
 	
r   c                 h   U R                  U5      nSU R                  5       0nU R                  U R                  Xd5      5      nU R	                  US5      n/ n	[        S[        U5      5       H0  n
X   nU R                  US5      S:X  d  M  U	R                  U5        M2     U R                  XX#U5      $ )a  
fetch deposits made to account

https://api-doc.hibachi.xyz/#35125e3f-d154-4bfd-8276-a48bb1c62020

:param str [code]: unified currency code
:param int [since]: filter by earliest timestamp(ms)
:param int [limit]: maximum number of deposits to be returned
:param dict [params]: extra parameters to be passed to API
:returns dict[]: a list of `transaction structures <https://docs.ccxt.com/#/?id=transaction-structure>`
r   r  r   r  r&  
safe_currencyr   r  r<  r  r  r  r  r  parse_transactions)r   r*  ru  r   r  rf  r=  r   r  depositsr  r  s               r   fetch_depositshibachi.fetch_deposits  s     %%d+,,.
 00W1MN@ ~~h?q#l+,A&/K->?9L, - &&x5PPr   c                 h   U R                  U5      nSU R                  5       0nU R                  U R                  Xd5      5      nU R	                  US5      n/ n	[        S[        U5      5       H0  n
X   nU R                  US5      S:X  d  M  U	R                  U5        M2     U R                  XX#U5      $ )a  
fetch withdrawals made from account

https://api-doc.hibachi.xyz/#35125e3f-d154-4bfd-8276-a48bb1c62020

:param str [code]: unified currency code
:param int [since]: filter by earliest timestamp(ms)
:param int [limit]: maximum number of deposits to be returned
:param dict [params]: extra parameters to be passed to API
:returns dict[]: a list of `transaction structures <https://docs.ccxt.com/#/?id=transaction-structure>`
r   r  r   r  rY  r  )r   r*  ru  r   r  rf  r=  r   r  withdrawalsr  r  s               r   fetch_withdrawalshibachi.fetch_withdrawalsS  s     %%d+,,.
 00W1MN@ ~~h?q#l+,A&/K->?<O"";/ - &&{eFSSr   c                 H    U R                  U5      nU R                  US5      $ )a5  
fetches the current integer timestamp in milliseconds from the exchange server

http://api-doc.hibachi.xyz/#b5c6a3bc-243d-4d35-b6d4-a74c92495434

:param dict [params]: extra parameters specific to the exchange API endpoint
:returns int: the current integer timestamp in milliseconds from the exchange server
timestampMs)publicGetExchangeUtcTimestampr  )r   r  r   s      r   
fetch_timehibachi.fetch_time  s)     55f=   =99r   c           	      "   U R                  5         U R                  U5      nSUS   0nU R                  U R                  XB5      5      nU R	                  5       nU R                  UU R                  US5      SUU R                  U5      US.U5      $ )aB  
retrieves the open interest of a contract trading pair

https://api-doc.hibachi.xyz/#bc34e8ae-e094-4802-8d56-3efe3a7bad49

:param str symbol: unified CCXT market symbol
:param dict [params]: exchange specific parameters
:returns dict} an open interest structure{@link https://docs.ccxt.com/#/?id=open-interest-structure:
r   r&   r  N)r   openInterestAmountopenInterestValuerJ  rK  r  )rx  r   publicGetMarketDataOpenInterestr<  r_  safe_open_interestr  rq  )r   r   r  r   r=  r   rJ  s          r   fetch_open_interesthibachi.fetch_open_interest  s     	V$fTl
 77G8TU %%'	&&"&"2"28_"M!%"Y/(
  	r   c                    U R                  5         U R                  U5      nSUS   0nU R                  U R                  XB5      5      nU R	                  US0 5      nU R                  5       nU R                  USS5      n0 SU_SUS   _SS_S	S_S
U R                  S5      _SS_SU_SU R                  U5      _SU R                  US5      _SU_SU R                  U5      _SS_SS_SS_SS_SS_SS_SS0E$ )a9  
fetch the current funding rate

https://api-doc.hibachi.xyz/#bca696ca-b9b2-4072-8864-5d6b8c09807e

:param str symbol: unified market symbol
:param dict [params]: extra parameters specific to the exchange API endpoint
:returns dict: a `funding rate structure <https://docs.ccxt.com/#/?id=funding-rate-structure>`
r   r&   fundingRateEstimationnextFundingTimestampr   r  r  N
indexPriceinterestRater  estimatedSettlePricerJ  rK  fundingRateestimatedFundingRatefundingTimestampfundingDatetimenextFundingRatenextFundingDatetimepreviousFundingRatepreviousFundingTimestamppreviousFundingDatetimer  8h)
rx  r   r  r<  r[  r_  r  r   rq  r  )	r   r   r  r   r=  r   fundingrJ  r%  s	            r   fetch_funding_ratehibachi.fetch_funding_rate  s    	V$fTl
 11$++g2NO ..+BBG%%'	#88BXZ^_
G
fX&
 
 $	

 D--c2
 #D
 
 Y/
 4++G5KL
  4
 t||,@A
 t
 #D
 "4
 "4
  '!
" &t#
$ %
 	
r   c           
         U R                  5         U R                  U5      nSUS   0nU R                  U R                  Xd5      5      nU R	                  US5      n/ n	[        S[        U5      5       HP  n
X   nU R                  USS5      nU	R                  UUU R                  US5      UU R                  U5      S.5        MR     U R                  U	S	5      nU R                  XX#5      $ )
aU  
fetches historical funding rate prices

https://api-doc.hibachi.xyz/#4abb30c4-e5c7-4b0f-9ade-790111dbfa47

:param str symbol: unified symbol of the market to fetch the funding rate history for
:param int [since]: timestamp in ms of the earliest funding rate to fetch
:param int [limit]: the maximum amount of `funding rate structures <https://docs.ccxt.com/#/?id=funding-rate-history-structure>` to fetch
:param dict [params]: extra parameters specific to the exchange API endpoint
:returns dict[]: a list of `funding rate structures <https://docs.ccxt.com/#/?id=funding-rate-history-structure>`
r   r&   r  r   r+  r   r)  )r  r   r)  rJ  rK  rJ  )rx  r   publicGetMarketDataFundingRatesr<  r  r  r  r  r  r  rq  sort_byfilter_by_symbol_since_limit)r   r   ru  r   r  r   r=  r   r  ratesr  entryrJ  sorteds                 r   fetch_funding_rate_history"hibachi.fetch_funding_rate_history  s     	V$fTl
 77G8TU ~~h/q#d)$AGE11%9KTRILL #//}E& LL3  % e[100NNr    r   )U__name__
__module____qualname____firstlineno__r   r   r   dictr   r  r   r"  r   r   r   r8  r>  r   r_  r   rs  strr
   r|  r   r  r  r   r  r  r   r  floatr   r   r   r  r  r  r   r  r  r!  r%  r,  r0  r5  r:  rK  r   r   r  r  r   ry  r}  listr  r  r  r   r   r  r  r  intr  r  r  r   r   r  r   r	   r  r
  r  r  r  r!  r   r4  r=  __static_attributes____classcell__)r   s   @r   r"   r"      sa   z# zx
=
4 =
F =
~ $& $($v, $(L0j 0d
) 
) $& ,( ,>4  6 @A Av A AF 6:UW 13 1s 1# 1\`af\g 1B 02 ,13 ,1f ,1\: : :6 6v 6 6p 26b 2c 23 2U 2, )+ { :,5 ,5 ,	 ,Yb ,lq ,z} ,\ }A  JL $,% $, $,I $,U^ $,hm $,vy $,L gksu 3 i y RW `c : @B )D$6 )d5k )V vz  IM  VX , ,3 , ,9 ,\e ,or ,  CF , `drv  @B S # Y i Y\ lo : >@ *$|"4 *DK *X	
s 	
 37r s C 0 ;?r !c !C !F /32 !
 !
Fe e c 4 KOWY B
S B
% B
# B
C B
^i B
H#I :>b :xs :x3 :xY :xx -1tRV_a (Gc (G (GC (GT
 
4 
. /3TXac 0A 0A3 0Ac 0Ahlmrhs 0Ad 9=4^bkm *J# *J# *JS *JX[ *Jrvw{r| *JX 26b ;3w ;3T(^ ;3z,t ,V ,\ &eBSW P"c 3 S # X\ dg $3:3t 3x 3; 3j (,$TZ\ hG hGC hGs hGaefqar hGT 79 
# 
^ 
0
T 
X 
Q\ 
: *.Dt\^ 6Q3 6Qc 6Q 6Qcghsct 6Qp -1tRV_a 6Tc 6T 6TC 6Tfjkvfw 6Tp !# :s : 79 # : 68 4
 4
K 4
l 8<$]ajl +O +OC +OWZ +O +Or   r"   )'ccxt.base.exchanger   ccxt.abstract.hibachir   rp  ccxt.base.typesr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   typingr   ccxt.base.errorsr   r   r   ccxt.base.decimal_to_precisionr   ccxt.base.preciser    r"   r?  r   r   <module>rR     sX    ( -  s  s  s  s  s  s  * ' * 4 %F Oh F Or   