
    eitP                        d dl mZ d dlmZ d dl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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&  G d dee          Z'dS )    )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                        e Zd Zdef fdZd ZdedefdZi fde	e         fdZ
defdZdefdZi fdefd	ZdZdededefdZdZde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defdZdedefdZdZdededefdZd
i fdededefdZi fdefdZdZdedede de!ded e"fd!Z#d
i fdedede de!ded e"fd"Z$d
i fdede de!ded e"f
d#Z%i fd$e	e&         de	e         fd%Z'd
d
i fdededede de!de"d e"fd&Z(d
d
i fdedede de!de"d e"fd'Z)i fd$e	e&         de	e         fd(Z*defd)Z+d
i fdedefd*Z,d
i fd+e	e         defd,Z-d
i fdefd-Z.ded.ed/efd0Z/d
i fd1eded/ed2ede0f
d3Z1d4 Z2d5 Z3d
i fdedede4fd6Z5d
d
d
i fdededefd7Z6dZdede7fd8Z8d
d
d
i fdededede	e         fd9Z9d:d
d
i fded;ededede	e7         f
d<Z:d
i fd=e;de	e<         fd>Z=dZd?edefd@Z>dAdBi d
d
fdCZ?dDe@dEedFedGedHedIefdJZAdK ZBdL ZCdZdMedNeDdeEfdOZFd
d
d
i fd1ededede	eE         fdPZGi fd1edeHfdQZIdZdRedNeDde0fdSZJd
d
d
i fd1ededede	e0         fdTZKd
d
d
i fd1ededede	e0         fdUZLi fdefdVZMi fdefdWZNi fdedeOfdXZPd
d
d
i fdededefdYZQ xZRS )[hibachireturnc                    |                      t          t          |                                           i ddddddgddd	| j        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d)dd*dd+dd,dd-dd.dd/dd0dd1dd2di d3dd4dd5dd6dd7dd8dd9dd:dd;dd<dd=dd>dd?dd@ddAddBddCdi dDddEddFddGddHddIddJddKddLddMddNddOddPddQddRddSddTdi dUddVddWddXddYddZdd[dd\dd]dd^dd_d`daddbddcdddddeddfddddgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxidydzd{d|d|d|d|d|d|d|d|d|d}	id|d|d|d|d|d|d|d~dd|id|d|dd|d|d|dddudddddddddd|                     d          |                     d          did|                                 di dd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 ddddd d dd id	ddid dddid ddi t          t          t          di dt          d          S )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   )	sandboxrE   rF   rj   rp   ro   rr   rW   rk   extendsdefault)linearinverse)r   r5   r6   )234)exactbroad)commonCurrencies
exceptionsprecisionMode)
deep_extendsuperr"   describe
userAgentsparse_numberhardcoded_currenciesr   r   r   )self	__class__s    X/var/www/html/volatility/venv/lib/python3.11/site-packages/ccxt/async_support/hibachi.pyr   zhibachi.describe   s   gt 4 4 = = ? ? 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 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 X 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 X 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 X 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 Xl " oX X 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9!..y99	 EyB
T $3355UyB
V  WyB
Z $&+(,,0,0).+06:#'#("&#(	( ( #($)$)+027/4#()$ $, %)&+!%$(%)*/& & ',#($)*/	# # ',!%#($)*/( ( $()-#_2 2j "9  $	  "9  $	 u@ @[yB
\ !# $&# 
  'qyB
 yB
 yB
 y y y	    c                 b    |                                   |                     | j                  }|S N)check_required_credentialsparse_to_intr   )r   r%   s     r   get_account_idzhibachi.get_account_id  s.    '')))t~..	r   marketc                    |                      |d          }|                     |d          }d}|                      |d          }|                      |d          }|                     |          }|                     |          }|                      |d          }	|                     |	          }
|dz   |z   dz   |
z   }|                     |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k    dddd|                     d          d d d d |                     |                     |                      |d                              |                     |                     |d          d                   d z  d!d d d"d d d"d d d"|                     |d#          d d"d$||d%S )&Nsymbolr%   r5   underlyingSymbolsettlementSymbol/:marketCreationTimestamp  	numericIdbasequotesettlebaseIdquoteIdsettleIdtyper3   Fr4   Tr6   r7   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_marketzhibachi.parse_market  s   ##FH55$$VT22	
!!&*<==""6+=>>&&v..''00((1CDD--h77e#c)F2++F4MtT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88FB!1
" #1
$  --c22"++D,@,@AQAQRXZnAoAo,p,pqq**4>>&BZ+[+[\]+^__bii    
   
   
  ++FMBB  $ a1
 1
 1
 1	
r   c                    K   |                      |           d{V }|                     |d          }|                     |          S )a"  
        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
        NfutureContracts)publicGetMarketExchangeInfor  parse_markets)r   paramsresponserowss       r   fetch_marketszhibachi.fetch_marketsU  sW       99&AAAAAAAA4 ~~h(9::!!$'''r   c                     i }i }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	i d
          ||<   |S )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   zhibachi.hardcoded_currencies{  s    	    
   	 	 !
 
$ &&v..33**:66    
   	 	 +5
 5
  t. r   c                     d|i}|                      d          }|                                 }|                     |d          |d<   |                     |d          |d<   |||<   |                     |          S )Nr  r#  balancetotalmaximalWithdrawfree)r  accountr  safe_balance)r   r  r)  r%  r0  s        r   parse_balancezhibachi.parse_balance  s    H
 &&v..,,..++Hi@@**85FGGt  (((r   c                    K   d|                                  i}|                     |                     ||                     d{V }|                     |          S )ak  
        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   N)r   privateGetTradeAccountInfoextendr2  )r   r  requestr  s       r   fetch_balancezhibachi.fetch_balance  sk       ,,..
 88Wf9U9UVVVVVVVV" !!(+++r   Ntickerc                 (   |                      |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|          S )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   r8  r   r:  r;  rD  rE  rF  rG  rH  volumes              r   parse_tickerzhibachi.parse_ticker  s   11vw//vz22vz2255y11uh//!!%55 !
d&&tV44!
!
 !
 3	!

 3!
 D!
 D!
 3!
 !
 !
 D!
 D!
 T!
 T!
 d!
  $!!
" t#!
$ !)!
 !
 !
* +  	r   tradec                    |                      |d          }|                     ||          }|d         }|                      |d          }|                      |d          }|                      |d          }|                     |dd          }t          j        ||          }	d }
d }d }d }d }||                     |d          }
d}nx|                     |d	          }
|                      |d
          dd}|                     |d          }|
dk    r|                      |d          }n|                      |d          }|                     |||                     |          ||
|||	|||||d|          S )Nr   r%   r   quantityrB  r   	takerSider   sider&  r#  )r  currency	orderTypebuy
bidOrderId
askOrderId)r%   rB  rC  r   r\  r   r   r  ordertakerOrMakerr   r&  r  )r  safe_marketr  r    
string_mulsafe_string_lower
safe_tradeiso8601)r   rX  r   r  r   r%   r   r   rB  r  r\  r&  r^  orderIdrc  s                  r   parse_tradezhibachi.parse_trade  s   2 ##E844!!(F33!eT**  00!!%44--e[$GG	!%00	:))%==D"LL ))%88D++E599vNNC..ukBBIu}}**5,??**5,??"Y//( 
  
   	r   r   sincer   c                 0  K   |                                   d{V  |                     |          }d|d         i}|                     |                     ||                     d{V }|                     |dg           }|                     ||          S )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]
        Nr   r%   trades)load_marketsr   publicGetMarketDataTradesr5  r  parse_trades	r   r   rk  r   r  r   r6  r  rm  s	            r   fetch_tradeszhibachi.fetch_trades;  s       !!!!!!!!!V$$fTl
 77GV8T8TUUUUUUUU (B77  000r   c                   K   |                                   d{V  |                     |          }d|d         i}|                     |                     ||                    |                     |                     ||                    g}t          j        |  d{V }|d         }|d         }||d}	|                     |	|          S )a  

        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>`
        Nr   r%   r   r   )r:  r;  )rn  r   publicGetMarketDataPricesr5  publicGetMarketDataStatsasynciogatherrW  )
r   r   r  r   r6  rawPromisespromisespricesResponsestatsResponser8  s
             r   fetch_tickerzhibachi.fetch_ticker\  s       !!!!!!!!!V$$fTl
 **4;;w+G+GHH))$++gv*F*FGG
 !5555555!! ! %"
 
   000r   r   c           	      F    ddddddddd}|                      |||          S )NrL  closedcanceledrejected)PENDINGCHILD_PENDINGSCHEDULED_TWAPPLACEDPARTIALLY_FILLEDFILLED	CANCELLEDREJECTEDr  r   r   statusess      r   parse_order_statuszhibachi.parse_order_status  s@    #$ &#"	
 	
 &&999r   rb  c                    |                      |d          }|                     ||          }|                      |d          }|                     |d          }|                      |d          }|                      |d          }d }|dk    rd}n|dk    rd	}|                      |d
          }	|                      |d          }
|                      |d
          }|                      |d          }d }||t          j        ||          }d}|                     |d          }d}d}|dk    rd}d}n|dk    rd}n|dk    r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#|          S )$Nr   r   r^  r   r\  BIDr_  ASKselltotalQuantityavailableQuantityGTC
orderFlagsF	POST_ONLYr   Tr   REDUCE_ONLYr  r%   ri  clientOrderIdrC  rB  lastTradeTimestamplastUpdateTimestampr   r   rP  r   filled	remainingr   )r  rm  r&  
reduceOnlypostOnlyr   )	r  rd  rf  r    
string_sub
safe_value
safe_orderr  r  )r   rb  r   r  r   r   r   rawSider\  r   r  r  r  r  r   r  r  r  s                     r   parse_orderzhibachi.parse_order  s   ##E844!!(F33!!%22%%e[99  00""5&11eDDD!!%99$$U,?@@	((@@ ,,U4GHH$):)F'7HIIF__UL99

$$KHH5  KK=((J  
E 
$""5)44 
 T 
 	 

  
 !$ 
 "4 
 d--f55 
 fX& 
 D 
 ; 
 D 
 U 
 t 
 f 
  f! 
" # 
$ $  ,,UNCC/ 
  
  
0 1  	r   r%   c                 $  K   |                                   d{V  d}||                     |          }||                                 d}|                     |                     ||                     d{V }|                     ||          S )a  
        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)ri  r   )rn  r   r   privateGetTradeOrderr5  r  )r   r%   r   r  r   r6  r  s          r   fetch_orderzhibachi.fetch_order  s       !!!!!!!!![[((F,,..
 
 224;;w3O3OPPPPPPPP&111r   c                   K   |                                   d{V  d|                                 i}|                     |                     ||                     d{V }|                     |d          }|                     |d          }i }t          dt          | j                            D ]}| j        |         }||||dd||<   |S )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>`
        Nr   tradeMakerFeeRatetradeTakerFeeRater   T)r  r   r   r   r   )rn  r   r4  r5  r  rangelensymbols)	r   r  r6  r  makerFeeRatetakerFeeRater)  ir   s	            r   fetch_trading_feeszhibachi.fetch_trading_fees  s      !!!!!!!!!,,..
 88Wf9U9UVVVVVVVV
 ''2EFF''2EFFq#dl++,, 	 	A\!_F  %%" F6NN r   noncefeeRater   r\  r   r   c           
         d}|dk    rd}n|dk    rd}|                      |                     |d          |          }	|                     |          }
|                     |d          }d|                     |d          z   }d|                     |d	          z   }d
}d}d}t	          j        t	          j        |	|          |d          }t	          j        t	          j        |
|          |d          }|                     |          }|                    dd          }| 	                    |          }|                     | 
                    |d                    }|                    dd          }| 	                    |          }|                     |                     |                    }|                    dd          }| 	                    |          }|                     |          }|                    dd          }| 	                    |          }|                     |                     |                    }|                    dd          } | 	                    |           }!|                                 }"|dk    r|                     |                     |d          |          }#t	          j        t	          j        t	          j        t	          j        |#|          |          |          |d          }$|                     |                     |$                    }%|%                    dd          }&| 	                    |&          }"|                     |||||"|!          }'|'S )Nr   r  r_  r   r   r  1er   settlementDecimalsr   	100000000
4294967296   0r      r   )amount_to_precisionr  number_to_stringrS  r    
string_divre  int_to_base16rjustbase16_to_binarysafe_integerr   binary_concatprice_to_precision)(r   r   r  r  r   r\  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_messagezhibachi.order_message  sb   6>>LLU]]L
 ,,T-=-=fh-O-OQWXX	**733
~~ff--D,,T3GHHH
D,,T3GHHH
#""-g.@J.W.WY\^_``!,W-?
M-Z-Z\_abcc$$U++mmB,,,,[99&&t'8'8'M'MNN	#//!S11//@@''(9(9:J(K(KLL
#))"c22//??++L99#))!S11
++J77 ..t/@/@/Q/QRR)//C88..}==))++7??..t/?/?/Q/QSXYYH#.w/A'BTU\Ughpr}U~U~  AK  CL  CL  NX  0Y  0Y  [^  `a  b  bM(():):=)I)IJJG!--C00K00==L$$\?OU`bnp~r   c                     |                      |          }t          |                     |d|                     | j        dd                    |                     |d|                     | j        dd                              }	d}
|dk    rd	}
n|d
k    rd}
d}|r|                     ||          }|                     |||	||||          }|                     || j                  }|                     |d          ||
|	                                | 
                    ||          |||                     |	          d}|                     |	                                dk    d |          }|                     |dd          }|                     |d          }|                     |dd          }|rd|d<   n|dk    rd|d<   n|rd|d<   |||d<   |                     |g d          }|                     ||          S )Nr   defaultTakerFeegH}=?r   defaultMakerFeega2U0*#? r  r  r_  r  r%   )r   r  r\  r^  rZ  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_2rf  safe_string_2omitr5  )r   r  r   r   r\  r   r   r  r   r  r  r  r  r  r6  r  r  r   r   s                      r   create_order_requestzhibachi.create_order_request0  sw   V$$d&&vw8H8HWhjq8r8rssuy  vF  vF  GM  OV  X\  Xh  Xh  im  iu  wH  JQ  XR  XR  vS  vS  T  T6>> LLU]] L 	C 33FEBBM$$VUGT4QVWW%%gt??	&&vt44 00@@"""33G<<	
 	
 $$TZZ\\X%=tVLL%%flMJJ
,,V]CC))&.+NN 	2$/GL!!E!!$)GL!! 	2$1GL!#&2GN#6#x#x#xyy{{7F+++r   c           	      T  K   |                                   d{V  |                                 }|                     |||||||          }|                                 |d<   |                     |           d{V }	|                     |                     |	d          dd          S )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>`
        Nr   ri  pendingr%   r   )rn  r  r  r   privatePostTradeOrderr  r  )
r   r   r   r\  r   r   r  r  r6  r  s
             r   create_orderzhibachi.create_orderV  s       !!!!!!!!!

++E64vuV\]]#224433G<<<<<<<< ""8Y77 
  
   	r   ordersc           
        K   |                                   d{V  |                                 }g }t          dt          |                    D ]}||         }|                     |d          }|                     |d          }|                     |d          }	|                     |d          }
|                     |d          }|                     |di           }|                     ||z   |||	|
||          }d	|d
<   |                    |           | 	                                |d}| 
                    |                     ||                     d{V }g }|                     |d          }t          dt          |                    D ]J}||         }|                    |                     ||                     |d          dd                     K|S )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>`
        Nr   r   r   r\  r   r   r  placeactionr   r  r  ri  r  r  r%   r   )rn  r  r  r  r  r  rS  r  appendr   privatePostTradeOrdersr5  r  r  )r   r  r  r  requestOrdersr  rawOrderr   r   r\  r   r   orderParamsorderRequestr6  r  retresponseOrdersresponseOrders                      r   create_orderszhibachi.create_orderss  s      !!!!!!!!!

q#f++&& 
	/ 
	/AayH%%h99F##Hf55D##Hf55D__Xx88FOOHg66E..8R@@K44UQYdTZ\acnooL%,L"  ....,,..#
 
 44T[[&5Q5QRRRRRRRR (;;q#n--.. 	 	A*1-MJJt%&&}i@@#( (      
 
r   c	           	         |                      |          }	t          |                     |	d          |                     |	d                    }
|                     |	||
||||          }|                     || j                  }|||                     ||          |                     ||          |                     |
          |d}| 	                    ||          S )Nr   r   )ri  r  updatedQuantityupdatedPricer  r  )
r   r  r  r  r  r   r  r  r  r5  )r   r  r%   r   r   r\  r   r   r  r   r  r  r  r6  s                 r   edit_order_requestzhibachi.edit_order_request  s    V$$d&&vw779I9I&RY9Z9Z[[$$VUGT4QVWW%%gt??	#77GG 33FEBB"33G<<"
 
 {{7F+++r   c           
      .  K   |                                   d{V  |                                 }|                     ||||||||          }	|                                 |	d<   |                     |	           d{V  |                     |dd          S )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>`
        Nr   r  r  )rn  r  r  r   privatePutTradeOrderr  )
r   r%   r   r   r\  r   r   r  r  r6  s
             r   
edit_orderzhibachi.edit_order  s       !!!!!!!!!

))%VT4QVX^__#2244''000000000
  
  
   	r   c                   K   |                                   d{V  |                                 }g }t          dt          |                    D ]}||         }|                     |d          }|                     |d          }|                     |d          }	|                     |d          }
|                     |d          }|                     |d          }|                     |d	i           }|                     ||z   |||	|
|||          }d
|d<   |                    |           | 	                                |d}| 
                    |                     ||                     d{V }g }|                     |d          }t          dt          |                    D ]J}||         }|                    |                     ||                     |d          dd                     K|S )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>`
        Nr   r%   r   r   r\  r   r   r  modifyr  r  r  ri  r  r  )rn  r  r  r  r  r  rS  r  r  r   r  r5  r  r  )r   r  r  r  r   r  r  r%   r   r   r\  r   r   r  r  r6  r  r  r  r  s                       r   edit_orderszhibachi.edit_orders  s,      !!!!!!!!!

q#f++&& 	/ 	/AayH!!(D11B%%h99F##Hf55D##Hf55D__Xx88FOOHg66E..8R@@K22519b&$PTV\^cepqqL%-L"  ....,,..#
 
 44T[[&5Q5QRRRRRRRR (;;q#n--.. 	 	A*1-MJJt%&&}i@@#( (      
 
r   c                     |                      |          }|                     |          }|                    dd          }|                     |          }|                     || j                  }||dS )Nr  r  )ri  r  )convert_to_big_intr  r  r  r  r   )r   r%   bigididbase16idPaddedr  r  s          r   cancel_order_requestzhibachi.cancel_order_request  sz    ''++%%e,,>>"c**''11%%gt??	"
 
 	
r   c                    K   |                      |          }|                                 |d<   |                     |                     ||                     d{V }|                     ||dd          S )ae  

        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   Nr  r  )r  r   privateDeleteTradeOrderr5  r  )r   r%   r   r  r6  r  s         r   cancel_orderzhibachi.cancel_order  s       11"55#224455dkk'66R6RSSSSSSSS
   
  
   	r   idsc           
      D  K   g }t          dt          |                    D ]7}|                     ||                   }d|d<   |                    |           8|                                 |d}|                     |                     ||                     d{V }g }	|                     |d          }
t          dt          |
                    D ]J}|
|         }|	                    |                     || 	                    |d          dd	                     K|	S )
a  
        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  Nr  ri  r  r  )
r  r  r  r  r   r  r5  r  r  r  )r   r  r   r  r  r  r  r6  r  r  r  r  s               r   cancel_orderszhibachi.cancel_orders  sO      q#c((## 	( 	(A44SV<<L%-L"MM,'''',,..
 
 44T[[&5Q5QRRRRRRRR (;;q#n--.. 	 	A*1-MJJt%&&}i@@$( (      
 
r   c                 6  K   |                                   d{V  |                                 }|                     |          }|                    dd          }|                     |          }|                     || j                  }|                                 ||d}|.|                     |          }	| 	                    |	d          |d<   | 
                    |                     ||                     d{V }
|                     d|
i          gS )ag  

        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>`
        Nr  r  )r   r  r  r   
contractIdr  )rn  r  r  r  r  r  r   r   r   r  privateDeleteTradeOrdersr5  r  )r   r   r  r  r  r  r  r  r6  r   r  s              r   cancel_all_orderszhibachi.cancel_all_orders<  s7      !!!!!!!!!

$$U++mmB,,''44%%gt??	,,.."
 

 [[((F$($5$5fk$J$JGL!66t{{7F7S7STTTTTTTT OO  
 	
r   maxFeesaddressc                 0   d}d}|                      |          }|                      |          }d}t          j        t          j        ||          |d          }	t          j        t          j        ||          |d          }
|                     |          }|                    dd          }|                     |          }|                     |                     |	                    }|                    dd          }|                     |          }|                     |                     |
                    }|                    dd          }|                     |          }|                     |          }|                     ||||          }|S )Nr   1000000r   r   r  r  r  )	r  r    r  re  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_messagezhibachi.encode_withdraw_message_  s~   
 
))&11	**733
"-g.@J.W.WY\^_``!,W-?
J-W-WY\^_``((55%++As33..??''(9(9:J(K(KLL
#))"c22//??&&t'8'8'I'IJJ	!C00..}==..w77$$^_nVdeer   r%  tagc           	        K   |dd         }|                      |           d{V }|                     |d          }|                     |d          }	|                     ||	|          }
|                     |
| j                  }|                                 dd|d|                     |          |                     |	          |d}|                     | 	                    ||                     d{V  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dS )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selfWithdrawalrZ  r#  r  r  r%   txidrB  rC  r$  addressFrom	addressTor3  tagFromtagTor   
withdrawalr   r]  r   r  r&  r]  r  r"  )updatedcommentinternal)r  rS  r  r2  r  r   r   r  privatePostCapitalWithdrawr5  milliseconds)r   r%  r   r$  r3  r  r8  exchangeInfor5  r#  r  r  r6  s                r   r   zhibachi.withdrawy  s      "#$$-!==fEEEEEEEE NN<==	""9.>??..vwPP%%gt??	,,..!.#--f55,,W55"	
 	
 --dkk'6.J.JKKKKKKKKK

D
$
 D
 **,,	

 
 t
 4
 
 4
 t
 T
 L
 f
 
 i
  88!
" z#
$ )
 
 
 	
r   c                 *    |                                  S r   )rE  )r   s    r   r  zhibachi.nonce  s      """r   c                    t          |          dk    r5|                     ||                     |          t          j        d          S |                     |dd          }|                     |dd          |dd          dd           }|d         }|d         }|                     |d                   }|                    d	d
          |                    d	d
          z   |                    dd
          z   S )N,   hexsha256i	secp256k1rsv@   r     )	r  hmacencodehashlibrK  hashecdsar  r  )r   r  r   rU  r  rM  rN  rO  s           r   r  zhibachi.sign_message  s    z??b  99Wdkk*&=&=w~uUUU 99Wh66D

4:z#$$/?dSSI#A#A""9S>22A772s##aggb#&6&66CHHr   c           	        K   |                                   d{V  |                     |          }d|d         i}|                     |                     ||                     d{V }i }|                     |                     |d          d          |d<   |                     |                     |d          d          |d<   |                     |||                                 dddd          S )	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>`
        Nr   r%   rE  levelsrD  r   rZ  )rn  r   publicGetMarketDataOrderbookr5  r  rS  parse_order_bookrE  )r   r   r   r  r   r6  r  formattedResponses           r   fetch_order_bookzhibachi.fetch_order_book  s      !!!!!!!!!V,,fTl
 ::4;;wPV;W;WXXXXXXXX#'>>$..52Q2QS[#\#\% #'>>$..52Q2QS[#\#\% N $$%6@Q@Q@S@SUZ\acjlvwwwr   c                 T  K   |                                   d{V  d}||                     |          }d|                                 i}|                     |                     ||                     d{V }|                     |d          }|                     |||||          S )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   rm  )rn  r   r   privateGetTradeAccountTradesr5  r  rp  rq  s	            r   fetch_my_tradeszhibachi.fetch_my_trades	  s       !!!!!!!!![[((F 3 3 5 56::4;;wPV;W;WXXXXXXXX, (33  vFFFr   c           	         |                      |dd          |                     |d          |                     |d          |                     |d          |                     |d          |                     |d          gS )NrB  r   rL  rG  rH  rM  volumeNotional)r  r  )r   ohlcvr   s      r   parse_ohlcvzhibachi.parse_ohlcv3  s     %%e[$??UF++UF++UE**UG,,U$455
 	
r   c                 &  K   |                                   d{V  d}||                     |          }d|                                 i}|                     |                     ||                     d{V }|                     ||||          S )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   )rn  r   r   privateGetTradeOrdersr5  parse_orders)r   r   rk  r   r  r   r6  r  s           r   fetch_open_orderszhibachi.fetch_open_ordersJ  s       !!!!!!!!![[((F,,..
 33DKK4P4PQQQQQQQQ:   65%@@@r   r   	timeframec                   K   |                                   d{V  |                     |          }|                     | j        ||          }|d         |d}|||d<   d}|                     |dd          \  }}|||d<   |                     |                     ||                     d{V }	|                     |	dg           }
|                     |
||||          S )	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
        Nr%   )r   intervalfromMsrk   untiltoMsklines)	rn  r   r  r   handle_option_and_paramspublicGetMarketDataKlinesr5  r  parse_ohlcvs)r   r   rh  rk  r   r  r   r6  rl  r  rn  s              r   fetch_ohlcvzhibachi.fetch_ohlcv|  s      !!!!!!!!!V$$$$T_iKK	Tl!
 
  %GH55flGTTv#GFO77GV8T8TUUUUUUUU (B77  E5IIIr   r  c                 H  K   |                                   d{V  |                     |          }d|                                 i}|                     |                     ||                     d{V }|                     |dg           }|                     ||          S )aq  
        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>`
        Nr   	positions)rn  market_symbolsr   r4  r5  r  parse_positions)r   r  r  r6  r  datas         r   fetch_positionszhibachi.fetch_positions  s       !!!!!!!!!%%g..,,..
 88Wf9U9UVVVVVVVVV ~~hR88##D'222r   positionc           
      `   |                      |d          }|                     ||          }|d         }|                     |d          }|                      |d          }|                      |dd          }|                      |dd          }t          j        ||          }	|                     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 d d          S )Nr   	directionrZ  unrealizedFundingPnlr  unrealizedTradingPnlr  r%   
entryPriceaverage_entry_price	markPricenotionalnotionalValue
collateralunrealizedPnlr\  	contractsr  rB  rC  r   maintenanceMarginmaintenanceMarginPercentageinitialMargin)initialMarginPercentager   liquidationPricemarginRatior   r   )r  rd  rf  r    
string_addsafe_positionr   )
r   ry  r   r  r   r\  rZ  unrealizedFundingunrealizedTradingr  s
             r   parse_positionzhibachi.parse_position  s    ##Hh77!!(F33!%%h<<##Hj99 ,,X7MsSS ,,X7MsSS*+<>OPP!! #
H#
$#
 f#
 $**85JKK	#

 #
 ((?CC#
 $#
 ]#
 D#
 **844#
 D#
 #
 #
 d#
  #
  *4!#
" T##
$ (, $/#
 #
 #
   	r   r   GETc                    d|                      ||          z   }| j        d         |         |z   }ddi}|dk    rY|                     ||                     |                    }	|                     |	          }
t          |
          dk    r|d|
z   z  }|dk    s|d	k    s|d
k    rd|d<   |                     |          }|dk    r|                                  | j        |d<   ||||dS )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   r6  querys              r   signzhibachi.sign  s   ,,T6:::is#h.#%>?U??ii(;(;D(A(ABBGNN7++E5zzQsU{"Vv&H2D2D&8GN#99V$$D)++---'+{GO$fdwOOOr   httpCodereasonr   r  r  r  c
                    |d S d|v r|                      |d          }
|
dk    r|                      |d          }| j        dz   |z   }|                     | j        d         ||           |                     | j        d         ||           |                      |d          }|                     | j        d         ||           t          |          d S )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_errorszhibachi.handle_errors$  s    4x %%h99F!!''+>>7S=4/44T_W5MtU]^^^44T_W5MtU]^^^**8Y??44T_W5MwX`aaa#H---tr   c                 >    ddddd}|                      |||          S )Ntransactionr   )r!  r?  transfer-intransfer-outr  )r   r   typess      r   parse_transaction_typezhibachi.parse_transaction_type6  s4    $'%&	
 
 tT222r   c                 >    ddddd}|                      |||          S )Nr  okr  )r  	claimable	completedr  r  r  s      r   parse_transaction_statusz hibachi.parse_transaction_status?  s4     " 	
 
 &&999r   itemr]  c                    |                      |d          }d }d }d }d }d }d }	d }
d }||                     |dd          }d}|                      |d          }t          j        |d          rd}t          j        |          }nd}|                     |          }d	|                     |d
          d}d}n|                     |dd          }|                     |d          }|dk    s|dk    rdnd}|                     |          }|                     |                      |d                    }|dk    r|                      |d          }
n|dk    r|                      |d          }
|                      |d          }	| 	                    |                      |d          | 
                    d	          |                     | j                  |
|	||d d ||||                     |          ||d|          S )NtransactionTyperB  r   rX  realizedPnlr  outinr#  r&  r@  r  timestampSecrZ  r!  r  r   srcAccountIdr  receivingAccountIdtransactionHashr%   )r%   r]  r0  referenceAccountreferenceIdr   r   beforeafterr&  r{  rB  rC  r   r  )r  r  r    	string_lt
string_negr   r  r  r  safe_ledger_entryr]  r  r   rh  )r   r  r]  r  rB  r   r{  r   r&  r  r  r   r  s                r   parse_ledger_entryzhibachi.parse_ledger_entryH  sK   **41BCC		"11$TJJID((}==I C00 !!	#.y99		 	&&y11F%t/?/?e/L/LMMCFF 11$MMI%%dJ77F!0I!=!=TaAaAahmI..??D2243C3CD(3S3STTF-//#'#3#3D.#I#I   N22#'#3#3D:N#O#O **41BCCK%%""4..f--,,T^<< 0&""Y//'
 '
  !  	r   c                 2  K   |                                   d{V  |                     d          }d|                                 i}|                     |                     ||                    |                     |                     ||                    g}t          j        |  d{V }|d         }	|                     |	d          }
|d         }|                     |d          }| 	                    |
|          }| 
                    |||||          S )ak  
        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-entry-structure>`
        Nr#  r   r   transactionsr   tradingHistory)rn  r]  r   privateGetCapitalHistoryr5  $privateGetTradeAccountTradingHistoryrv  rw  r  array_concatparse_ledger)r   r%  rk  r   r  r]  r6  rx  ry  responseCapitalHistoryrowsCapitalHistoryresponseTradingHistoryrowsTradingHistoryr  s                 r   fetch_ledgerzhibachi.fetch_ledger}  s/      !!!!!!!!!==(( 3 3 5 56))$++gv*F*FGG55dkk'66R6RSS
 !5555555!)!l "^^,BNSS!)!6 "^^,BDTUU  !35GHH  xvFFFr   c                    K   |                      |d          |                                 d}|                     |                     ||                     d{V }|dd|                      |d          dd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   Nr#  r   depositAddressEvm)r  r]  r"  r$  r3  )r  r   privateGetCapitalDepositInfor5  )r   r%  r  r6  r  s        r   fetch_deposit_addresszhibachi.fetch_deposit_address  s       ))&+>>,,..
 
 ::4;;wPV;W;WXXXXXXXX
 !''2EFF
 
 	
r   r  c                 ,   |                      |dd          }|                     |d          }|                     |d          }|dk    r|dk    r|                     |          }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 )Nr  r   withdrawalAddressr  r!  r?  r  r%   r:  r  rB  rC  r"  r   r$  r<  r;  r3  r>  r=  r   r   rZ  r]  r#  r   rA  )rC  rB  r&  )r  r  r  rh  r  r  )r   r  r]  rB  r$  r  s         r   parse_transactionzhibachi.parse_transaction  s   --k>4PP	"";0CDD**;8IJJi''O|,K,K"99/JJO
K
$"";55
 D$$[2CDD
 	

 Y//
 z
 w
 
 4
 4
 T
 t
 O
 d&&{J??
 
  d33D4D4D[RZ4[4[\\!
" t#
$ )
 
 
 	
r   c                   K   |                      |          }d|                                 i}|                     |                     ||                     d{V }|                     |d          }g }	t          dt          |                    D ]9}
||
         }|                     |d          dk    r|	                    |           :| 	                    |	||||          S )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   Nr  r   r  r!  
safe_currencyr   r  r5  r  r  r  r  r  parse_transactions)r   r%  rk  r   r  r]  r6  r  r  depositsr  r  s               r   fetch_depositszhibachi.fetch_deposits  s       %%d++,,..
 66t{{7F7S7STTTTTTTT@ ~~h??q#l++,, 	- 	-A&q/K->??9LL,,,&&x5%PPPr   c                   K   |                      |          }d|                                 i}|                     |                     ||                     d{V }|                     |d          }g }	t          dt          |                    D ]9}
||
         }|                     |d          dk    r|	                    |           :| 	                    |	||||          S )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   Nr  r   r  r?  r  )r   r%  rk  r   r  r]  r6  r  r  withdrawalsr  r  s               r   fetch_withdrawalszhibachi.fetch_withdrawalsT  s       %%d++,,..
 66t{{7F7S7STTTTTTTT@ ~~h??q#l++,, 	0 	0A&q/K->??<OO"";///&&{HeUFSSSr   c                 h   K   |                      |           d{V }|                     |d          S )a]  
        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
        NtimestampMs)publicGetExchangeUtcTimestampr  )r   r  r  s      r   
fetch_timezhibachi.fetch_time  sE       ;;FCCCCCCCC   =999r   c           	        K   |                                   d{V  |                     |          }d|d         i}|                     |                     ||                     d{V }|                                 }|                     ||                     |d          d||                     |          |d|          S )ap  
        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:
        Nr   r%   r  )r   openInterestAmountopenInterestValuerB  rC  r  )rn  r   publicGetMarketDataOpenInterestr5  rE  safe_open_interestr  rh  )r   r   r  r   r6  r  rB  s          r   fetch_open_interestzhibachi.fetch_open_interest  s       !!!!!!!!!V$$fTl
 ==dkk'SY>Z>Z[[[[[[[[ %%''	&&"&"2"28_"M"M!%"Y//(
 (
   	r   c                 r  K   |                                   d{V  |                     |          }d|d         i}|                     |                     ||                     d{V }|                     |di           }|                                 }|                     |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iS )ag  
        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>`
        Nr   r%   fundingRateEstimationnextFundingTimestampr   r  r  
indexPriceinterestRater  estimatedSettlePricerB  rC  fundingRateestimatedFundingRatefundingTimestampfundingDatetimenextFundingRatenextFundingDatetimepreviousFundingRatepreviousFundingTimestamppreviousFundingDatetimerj  8h)
rn  r   rt  r5  rS  rE  r  r   rh  r  )	r   r   r  r   r6  r  fundingrB  r  s	            r   fetch_funding_ratezhibachi.fetch_funding_rate  s      !!!!!!!!!V$$fTl
 77GV8T8TUUUUUUUU ..+BBGG%%''	#88BXZ^__
G
fX&
 
 $	

 D--c22
 #D
 
 Y//
 4++G5KLL
  4
 t||,@AA
 t
 #D
 "4
 "4
  '!
" &t#
$ %
 
 	
r   c           
      d  K   |                                   d{V  |                     |          }d|d         i}|                     |                     ||                     d{V }|                     |d          }g }	t          dt          |                    D ]c}
||
         }|                     |dd          }|	                    ||| 	                    |d          || 
                    |          d	           d|                     |	d
          }|                     ||||          S )a  
        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>`
        Nr   r%   rw  r   r  r   r  )r  r   r  rB  rC  rB  )rn  r   publicGetMarketDataFundingRatesr5  r  r  r  r  r  r  rh  sort_byfilter_by_symbol_since_limit)r   r   rk  r   r  r   r6  r  rw  ratesr  entryrB  sorteds                 r   fetch_funding_rate_historyz"hibachi.fetch_funding_rate_history  s\      !!!!!!!!!V$$fTl
 ==dkk'SY>Z>Z[[[[[[[[ ~~h//q#d))$$ 		 		AGE11%9KTRRILL #//}EE& LL33      e[1100NNNr   r   )S__name__
__module____qualname__r   r   r   dictr   r  r   r  r   r   r   r2  r7  r   rW  r   rj  strr
   rr  r   r|  r  r   r  r  r   r  floatr   r   r   r  r  r  r   r  r  r  r  r  r  r  r"  r2  r   r   r  r  r   r\  r_  listrc  rg  rr  r   r   rx  r  r  intr  r  r  r   r   r  r  r	   r  r  r  r  r  r  r   r  r  __classcell__)r   s   @r   r"   r"      sr
       z# z z z z z zx  
=
4 =
F =
 =
 =
 =
~ *, $( $(V $( $( $( $(L0j 0 0 0 0d
) 
) 
) 
) 
) *, , , , , , ,> 4  6    @A A Av A A A A AF <@d[] 1 1 1S 1 1bfglbm 1 1 1 1B 68 ,1 ,1 ,1F ,1 ,1 ,1 ,1\: : : : : :6 6 6v 6 6 6 6 6p 8<B 2 2C 2 25 2 2 2 2, /1  [    :, ,5 ,5 ,	 ,Yb ,lq ,z} , , , ,\ }A  JL $, $,% $, $,I $,U^ $,hm $,vy $, $, $, $,L mqy{   I Y X] fi    : FH ) )$|*< )DQVK ) ) ) )V vz  IM  VX , , ,3 , ,9 ,\e ,or ,  CF , , , , fjx|  FH  3  9 I _b ru    : DF * *\(: *$u+ * * * *X	
s 	
 	
 	
 	
 9=R  S #    0 AER ! !tCy !# ! ! ! !F 59 !
 !
c !
 !
 !
 !
Fe e c    4 QU]_ B
 B
3 B
 B
 B
# B
do B
 B
 B
 B
H# # #I I I @DB :x :xS :x :xS\ :x :x :x :xx 37TX\eg (G (GC (Gs (GRU (G (G (G (GT
 
 
4 
 
 
 
. 59tZ^gi 0A 0Ac 0A 0ATW 0Anrsxny 0A 0A 0A 0Ad ?CQUdhqs *J *J *J *J3 *J^a *Jx|  ~B  yC *J *J *J *JX 8<B ;3 ;3W ;34PX> ;3 ;3 ;3 ;3z, ,t ,V , , , ,\ &eBSW P P P P"c 3 S # X\ dg    $3 3 3: : :3 3t 3x 3; 3 3 3 3j .2SW`b hG hGs hG# hGS hGgklwgx hG hG hG hGT =? 
 
 
> 
 
 
 
0
 
T 
X 
Q\ 
 
 
 
: 04$UYbd 6Q 6Q 6QC 6Qs 6Qimnyiz 6Q 6Q 6Q 6Qp 37TX\eg 6T 6TC 6Ts 6TRU 6Tlpq|l} 6T 6T 6T 6Tp ') : :S : : : : =?      : <> 4
 4
s 4
+ 4
 4
 4
 4
l >BPTcgpr +O +Os +O# +O]` +O +O +O +O +O +O +O +Or   r"   )( ccxt.async_support.base.exchanger   ccxt.abstract.hibachir   rv  rT  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   <module>r     s   6 5 5 5 5 5 - - - - - -   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  s  s  s  s  s  s  s  s       * * * * * * ' ' ' ' ' ' * * * * * * 4 4 4 4 4 4 % % % % % %F O F O F O F O F Oh F O F O F O F O F Or   