ccxt 4.5.25 → 4.5.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (984) hide show
  1. package/README.md +6 -5
  2. package/dist/ccxt.browser.min.js +3 -3
  3. package/dist/cjs/ccxt.js +4 -1
  4. package/dist/cjs/src/abstract/alpaca.js +1 -1
  5. package/dist/cjs/src/abstract/apex.js +1 -1
  6. package/dist/cjs/src/abstract/arkham.js +1 -1
  7. package/dist/cjs/src/abstract/ascendex.js +1 -1
  8. package/dist/cjs/src/abstract/backpack.js +1 -1
  9. package/dist/cjs/src/abstract/bigone.js +1 -1
  10. package/dist/cjs/src/abstract/binance.js +1 -1
  11. package/dist/cjs/src/abstract/bingx.js +1 -1
  12. package/dist/cjs/src/abstract/bit2c.js +1 -1
  13. package/dist/cjs/src/abstract/bitbank.js +1 -1
  14. package/dist/cjs/src/abstract/bitbns.js +1 -1
  15. package/dist/cjs/src/abstract/bitfinex.js +1 -1
  16. package/dist/cjs/src/abstract/bitflyer.js +1 -1
  17. package/dist/cjs/src/abstract/bitget.js +1 -1
  18. package/dist/cjs/src/abstract/bithumb.js +1 -1
  19. package/dist/cjs/src/abstract/bitmart.js +1 -1
  20. package/dist/cjs/src/abstract/bitmex.js +1 -1
  21. package/dist/cjs/src/abstract/bitopro.js +1 -1
  22. package/dist/cjs/src/abstract/bitrue.js +1 -1
  23. package/dist/cjs/src/abstract/bitso.js +1 -1
  24. package/dist/cjs/src/abstract/bitstamp.js +1 -1
  25. package/dist/cjs/src/abstract/bitteam.js +1 -1
  26. package/dist/cjs/src/abstract/bittrade.js +1 -1
  27. package/dist/cjs/src/abstract/bitvavo.js +1 -1
  28. package/dist/cjs/src/abstract/blockchaincom.js +1 -1
  29. package/dist/cjs/src/abstract/blofin.js +1 -1
  30. package/dist/cjs/src/abstract/btcalpha.js +1 -1
  31. package/dist/cjs/src/abstract/btcbox.js +1 -1
  32. package/dist/cjs/src/abstract/btcmarkets.js +1 -1
  33. package/dist/cjs/src/abstract/btcturk.js +1 -1
  34. package/dist/cjs/src/abstract/bullish.js +1 -1
  35. package/dist/cjs/src/abstract/bybit.js +1 -1
  36. package/dist/cjs/src/abstract/cex.js +1 -1
  37. package/dist/cjs/src/abstract/coinbase.js +1 -1
  38. package/dist/cjs/src/abstract/coinbaseexchange.js +1 -1
  39. package/dist/cjs/src/abstract/coinbaseinternational.js +1 -1
  40. package/dist/cjs/src/abstract/coincatch.js +1 -1
  41. package/dist/cjs/src/abstract/coincheck.js +1 -1
  42. package/dist/cjs/src/abstract/coinex.js +1 -1
  43. package/dist/cjs/src/abstract/coinmate.js +1 -1
  44. package/dist/cjs/src/abstract/coinmetro.js +1 -1
  45. package/dist/cjs/src/abstract/coinone.js +1 -1
  46. package/dist/cjs/src/abstract/coinsph.js +1 -1
  47. package/dist/cjs/src/abstract/coinspot.js +1 -1
  48. package/dist/cjs/src/abstract/cryptocom.js +1 -1
  49. package/dist/cjs/src/abstract/cryptomus.js +1 -1
  50. package/dist/cjs/src/abstract/deepcoin.js +1 -1
  51. package/dist/cjs/src/abstract/defx.js +1 -1
  52. package/dist/cjs/src/abstract/delta.js +1 -1
  53. package/dist/cjs/src/abstract/deribit.js +1 -1
  54. package/dist/cjs/src/abstract/derive.js +1 -1
  55. package/dist/cjs/src/abstract/digifinex.js +1 -1
  56. package/dist/cjs/src/abstract/dydx.js +1 -1
  57. package/dist/cjs/src/abstract/exmo.js +1 -1
  58. package/dist/cjs/src/abstract/foxbit.js +1 -1
  59. package/dist/cjs/src/abstract/gate.js +1 -1
  60. package/dist/cjs/src/abstract/gemini.js +1 -1
  61. package/dist/cjs/src/abstract/hashkey.js +1 -1
  62. package/dist/cjs/src/abstract/hibachi.js +1 -1
  63. package/dist/cjs/src/abstract/hitbtc.js +1 -1
  64. package/dist/cjs/src/abstract/hollaex.js +1 -1
  65. package/dist/cjs/src/abstract/htx.js +1 -1
  66. package/dist/cjs/src/abstract/hyperliquid.js +1 -1
  67. package/dist/cjs/src/abstract/independentreserve.js +1 -1
  68. package/dist/cjs/src/abstract/indodax.js +1 -1
  69. package/dist/cjs/src/abstract/kraken.js +1 -1
  70. package/dist/cjs/src/abstract/krakenfutures.js +1 -1
  71. package/dist/cjs/src/abstract/kucoin.js +1 -1
  72. package/dist/cjs/src/abstract/kucoinfutures.js +1 -1
  73. package/dist/cjs/src/abstract/latoken.js +1 -1
  74. package/dist/cjs/src/abstract/lbank.js +1 -1
  75. package/dist/cjs/src/abstract/luno.js +1 -1
  76. package/dist/cjs/src/abstract/mercado.js +1 -1
  77. package/dist/cjs/src/abstract/mexc.js +1 -1
  78. package/dist/cjs/src/abstract/modetrade.js +1 -1
  79. package/dist/cjs/src/abstract/ndax.js +1 -1
  80. package/dist/cjs/src/abstract/novadax.js +1 -1
  81. package/dist/cjs/src/abstract/oceanex.js +1 -1
  82. package/dist/cjs/src/abstract/okx.js +1 -1
  83. package/dist/cjs/src/abstract/onetrading.js +1 -1
  84. package/dist/cjs/src/abstract/oxfun.js +1 -1
  85. package/dist/cjs/src/abstract/p2b.js +1 -1
  86. package/dist/cjs/src/abstract/paradex.js +1 -1
  87. package/dist/cjs/src/abstract/paymium.js +1 -1
  88. package/dist/cjs/src/abstract/phemex.js +1 -1
  89. package/dist/cjs/src/abstract/poloniex.js +1 -1
  90. package/dist/cjs/src/abstract/probit.js +1 -1
  91. package/dist/cjs/src/abstract/timex.js +1 -1
  92. package/dist/cjs/src/abstract/tokocrypto.js +1 -1
  93. package/dist/cjs/src/abstract/toobit.js +1 -1
  94. package/dist/cjs/src/abstract/upbit.js +1 -1
  95. package/dist/cjs/src/abstract/wavesexchange.js +1 -1
  96. package/dist/cjs/src/abstract/whitebit.js +1 -1
  97. package/dist/cjs/src/abstract/woo.js +1 -1
  98. package/dist/cjs/src/abstract/woofipro.js +1 -1
  99. package/dist/cjs/src/abstract/xt.js +1 -1
  100. package/dist/cjs/src/abstract/yobit.js +1 -1
  101. package/dist/cjs/src/abstract/zaif.js +1 -1
  102. package/dist/cjs/src/abstract/zebpay.js +11 -0
  103. package/dist/cjs/src/abstract/zonda.js +1 -1
  104. package/dist/cjs/src/alpaca.js +1 -1
  105. package/dist/cjs/src/apex.js +1 -1
  106. package/dist/cjs/src/arkham.js +1 -1
  107. package/dist/cjs/src/ascendex.js +1 -1
  108. package/dist/cjs/src/backpack.js +1 -1
  109. package/dist/cjs/src/base/Exchange.js +2 -2
  110. package/dist/cjs/src/base/Precise.js +0 -6
  111. package/dist/cjs/src/base/errors.js +0 -6
  112. package/dist/cjs/src/base/functions/crypto.js +1 -1
  113. package/dist/cjs/src/base/functions/encode.js +1 -1
  114. package/dist/cjs/src/base/functions/misc.js +0 -1
  115. package/dist/cjs/src/base/functions/number.js +0 -6
  116. package/dist/cjs/src/base/functions/platform.js +0 -6
  117. package/dist/cjs/src/base/functions/rsa.js +0 -1
  118. package/dist/cjs/src/base/functions/string.js +0 -6
  119. package/dist/cjs/src/base/functions/throttle.js +1 -1
  120. package/dist/cjs/src/base/functions/time.js +0 -6
  121. package/dist/cjs/src/base/functions/totp.js +0 -1
  122. package/dist/cjs/src/base/functions/type.js +0 -6
  123. package/dist/cjs/src/base/functions.js +1 -1
  124. package/dist/cjs/src/base/ws/Cache.js +0 -6
  125. package/dist/cjs/src/base/ws/Client.js +0 -1
  126. package/dist/cjs/src/base/ws/Future.js +1 -1
  127. package/dist/cjs/src/base/ws/OrderBook.js +1 -1
  128. package/dist/cjs/src/base/ws/OrderBookSide.js +0 -6
  129. package/dist/cjs/src/base/ws/WsClient.js +1 -1
  130. package/dist/cjs/src/bequant.js +1 -1
  131. package/dist/cjs/src/bigone.js +1 -1
  132. package/dist/cjs/src/binance.js +16 -7
  133. package/dist/cjs/src/binancecoinm.js +1 -1
  134. package/dist/cjs/src/binanceus.js +1 -1
  135. package/dist/cjs/src/binanceusdm.js +1 -1
  136. package/dist/cjs/src/bingx.js +1 -1
  137. package/dist/cjs/src/bit2c.js +1 -1
  138. package/dist/cjs/src/bitbank.js +1 -1
  139. package/dist/cjs/src/bitbns.js +1 -1
  140. package/dist/cjs/src/bitfinex.js +1 -1
  141. package/dist/cjs/src/bitflyer.js +1 -1
  142. package/dist/cjs/src/bitget.js +2 -1
  143. package/dist/cjs/src/bithumb.js +1 -1
  144. package/dist/cjs/src/bitmart.js +3 -2
  145. package/dist/cjs/src/bitmex.js +1 -1
  146. package/dist/cjs/src/bitopro.js +1 -1
  147. package/dist/cjs/src/bitrue.js +1 -1
  148. package/dist/cjs/src/bitso.js +1 -1
  149. package/dist/cjs/src/bitstamp.js +1 -1
  150. package/dist/cjs/src/bitteam.js +1 -1
  151. package/dist/cjs/src/bittrade.js +1 -1
  152. package/dist/cjs/src/blockchaincom.js +1 -1
  153. package/dist/cjs/src/blofin.js +1 -1
  154. package/dist/cjs/src/btcalpha.js +1 -1
  155. package/dist/cjs/src/btcbox.js +1 -1
  156. package/dist/cjs/src/btcmarkets.js +1 -1
  157. package/dist/cjs/src/btcturk.js +1 -1
  158. package/dist/cjs/src/bullish.js +1 -1
  159. package/dist/cjs/src/bybit.js +58 -29
  160. package/dist/cjs/src/cex.js +1 -1
  161. package/dist/cjs/src/coinbaseadvanced.js +1 -1
  162. package/dist/cjs/src/coincatch.js +2 -2
  163. package/dist/cjs/src/coincheck.js +1 -1
  164. package/dist/cjs/src/coinex.js +17 -1
  165. package/dist/cjs/src/coinmate.js +21 -1
  166. package/dist/cjs/src/coinmetro.js +1 -1
  167. package/dist/cjs/src/coinone.js +1 -1
  168. package/dist/cjs/src/coinsph.js +23 -1
  169. package/dist/cjs/src/coinspot.js +1 -1
  170. package/dist/cjs/src/cryptocom.js +8 -1
  171. package/dist/cjs/src/cryptomus.js +1 -1
  172. package/dist/cjs/src/deepcoin.js +1 -1
  173. package/dist/cjs/src/defx.js +1 -1
  174. package/dist/cjs/src/delta.js +1 -1
  175. package/dist/cjs/src/deribit.js +1 -1
  176. package/dist/cjs/src/derive.js +1 -1
  177. package/dist/cjs/src/digifinex.js +1 -1
  178. package/dist/cjs/src/dydx.js +1 -1
  179. package/dist/cjs/src/exmo.js +1 -1
  180. package/dist/cjs/src/fmfwio.js +1 -1
  181. package/dist/cjs/src/foxbit.js +1 -1
  182. package/dist/cjs/src/gate.js +3 -1
  183. package/dist/cjs/src/gateio.js +1 -1
  184. package/dist/cjs/src/gemini.js +1 -1
  185. package/dist/cjs/src/hashkey.js +1 -1
  186. package/dist/cjs/src/hibachi.js +1 -1
  187. package/dist/cjs/src/hitbtc.js +0 -1
  188. package/dist/cjs/src/hollaex.js +1 -1
  189. package/dist/cjs/src/htx.js +1 -1
  190. package/dist/cjs/src/huobi.js +1 -1
  191. package/dist/cjs/src/hyperliquid.js +13 -16
  192. package/dist/cjs/src/independentreserve.js +1 -1
  193. package/dist/cjs/src/indodax.js +1 -1
  194. package/dist/cjs/src/kraken.js +1 -1
  195. package/dist/cjs/src/krakenfutures.js +1 -1
  196. package/dist/cjs/src/kucoin.js +1 -1
  197. package/dist/cjs/src/kucoinfutures.js +1 -1
  198. package/dist/cjs/src/latoken.js +1 -1
  199. package/dist/cjs/src/lbank.js +1 -1
  200. package/dist/cjs/src/luno.js +1 -1
  201. package/dist/cjs/src/mercado.js +1 -1
  202. package/dist/cjs/src/mexc.js +1 -1
  203. package/dist/cjs/src/modetrade.js +1 -1
  204. package/dist/cjs/src/myokx.js +1 -1
  205. package/dist/cjs/src/ndax.js +1 -1
  206. package/dist/cjs/src/novadax.js +1 -1
  207. package/dist/cjs/src/oceanex.js +1 -1
  208. package/dist/cjs/src/okx.js +1 -1
  209. package/dist/cjs/src/okxus.js +1 -1
  210. package/dist/cjs/src/onetrading.js +1 -1
  211. package/dist/cjs/src/oxfun.js +1 -1
  212. package/dist/cjs/src/p2b.js +1 -1
  213. package/dist/cjs/src/paradex.js +1 -1
  214. package/dist/cjs/src/paymium.js +1 -1
  215. package/dist/cjs/src/poloniex.js +1 -1
  216. package/dist/cjs/src/pro/alpaca.js +1 -1
  217. package/dist/cjs/src/pro/apex.js +1 -1
  218. package/dist/cjs/src/pro/arkham.js +1 -1
  219. package/dist/cjs/src/pro/ascendex.js +1 -1
  220. package/dist/cjs/src/pro/backpack.js +1 -1
  221. package/dist/cjs/src/pro/bequant.js +1 -1
  222. package/dist/cjs/src/pro/binance.js +1 -1
  223. package/dist/cjs/src/pro/binancecoinm.js +1 -1
  224. package/dist/cjs/src/pro/binanceus.js +1 -1
  225. package/dist/cjs/src/pro/binanceusdm.js +1 -1
  226. package/dist/cjs/src/pro/bingx.js +1 -1
  227. package/dist/cjs/src/pro/bitfinex.js +1 -1
  228. package/dist/cjs/src/pro/bitget.js +1 -1
  229. package/dist/cjs/src/pro/bithumb.js +1 -1
  230. package/dist/cjs/src/pro/bitmart.js +1 -1
  231. package/dist/cjs/src/pro/bitmex.js +1 -1
  232. package/dist/cjs/src/pro/bitrue.js +1 -1
  233. package/dist/cjs/src/pro/bitstamp.js +1 -1
  234. package/dist/cjs/src/pro/bitvavo.js +1 -1
  235. package/dist/cjs/src/pro/blockchaincom.js +1 -1
  236. package/dist/cjs/src/pro/blofin.js +1 -1
  237. package/dist/cjs/src/pro/bullish.js +1 -1
  238. package/dist/cjs/src/pro/bybit.js +2 -2
  239. package/dist/cjs/src/pro/cex.js +1 -1
  240. package/dist/cjs/src/pro/coinbase.js +1 -1
  241. package/dist/cjs/src/pro/coinbaseadvanced.js +1 -1
  242. package/dist/cjs/src/pro/coinbaseexchange.js +1 -1
  243. package/dist/cjs/src/pro/coinbaseinternational.js +1 -1
  244. package/dist/cjs/src/pro/coincatch.js +1 -1
  245. package/dist/cjs/src/pro/coincheck.js +1 -1
  246. package/dist/cjs/src/pro/coinex.js +1 -1
  247. package/dist/cjs/src/pro/coinone.js +1 -1
  248. package/dist/cjs/src/pro/cryptocom.js +1 -1
  249. package/dist/cjs/src/pro/deepcoin.js +1 -1
  250. package/dist/cjs/src/pro/defx.js +1 -1
  251. package/dist/cjs/src/pro/deribit.js +1 -1
  252. package/dist/cjs/src/pro/dydx.js +1 -1
  253. package/dist/cjs/src/pro/exmo.js +1 -1
  254. package/dist/cjs/src/pro/gate.js +1 -1
  255. package/dist/cjs/src/pro/gateio.js +1 -1
  256. package/dist/cjs/src/pro/gemini.js +1 -1
  257. package/dist/cjs/src/pro/hashkey.js +1 -1
  258. package/dist/cjs/src/pro/hitbtc.js +1 -1
  259. package/dist/cjs/src/pro/hollaex.js +1 -1
  260. package/dist/cjs/src/pro/htx.js +1 -1
  261. package/dist/cjs/src/pro/huobi.js +1 -1
  262. package/dist/cjs/src/pro/hyperliquid.js +1 -1
  263. package/dist/cjs/src/pro/independentreserve.js +1 -1
  264. package/dist/cjs/src/pro/kraken.js +1 -1
  265. package/dist/cjs/src/pro/krakenfutures.js +1 -1
  266. package/dist/cjs/src/pro/kucoin.js +1 -1
  267. package/dist/cjs/src/pro/kucoinfutures.js +1 -1
  268. package/dist/cjs/src/pro/lbank.js +0 -1
  269. package/dist/cjs/src/pro/luno.js +1 -1
  270. package/dist/cjs/src/pro/mexc.js +1 -1
  271. package/dist/cjs/src/pro/myokx.js +1 -1
  272. package/dist/cjs/src/pro/ndax.js +1 -1
  273. package/dist/cjs/src/pro/okx.js +1 -1
  274. package/dist/cjs/src/pro/okxus.js +1 -1
  275. package/dist/cjs/src/pro/onetrading.js +1 -1
  276. package/dist/cjs/src/pro/oxfun.js +1 -1
  277. package/dist/cjs/src/pro/p2b.js +1 -1
  278. package/dist/cjs/src/pro/paradex.js +1 -1
  279. package/dist/cjs/src/pro/phemex.js +1 -1
  280. package/dist/cjs/src/pro/poloniex.js +1 -1
  281. package/dist/cjs/src/pro/probit.js +1 -1
  282. package/dist/cjs/src/pro/toobit.js +1 -1
  283. package/dist/cjs/src/pro/upbit.js +1 -1
  284. package/dist/cjs/src/pro/whitebit.js +1 -1
  285. package/dist/cjs/src/pro/xt.js +1 -1
  286. package/dist/cjs/src/probit.js +1 -1
  287. package/dist/cjs/src/protobuf/mexc/compiled.cjs.js +1 -0
  288. package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/base/v1beta1/coin.js +0 -1
  289. package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/crypto/multisig/v1beta1/multisig.js +0 -1
  290. package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/crypto/secp256k1/keys.js +0 -1
  291. package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/tx/signing/v1beta1/signing.js +0 -1
  292. package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/tx/v1beta1/tx.js +0 -1
  293. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/accountplus/tx.js +0 -1
  294. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/clob_pair.js +0 -1
  295. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order.js +0 -1
  296. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order_removals.js +0 -1
  297. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/tx.js +0 -1
  298. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/transfer.js +0 -1
  299. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/tx.js +0 -1
  300. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/subaccount.js +0 -1
  301. package/dist/cjs/src/static_dependencies/dydx-v4-client/google/protobuf/any.js +0 -1
  302. package/dist/cjs/src/static_dependencies/dydx-v4-client/helpers.js +0 -6
  303. package/dist/cjs/src/static_dependencies/dydx-v4-client/onboarding.js +0 -1
  304. package/dist/cjs/src/static_dependencies/dydx-v4-client/registry.js +0 -1
  305. package/dist/cjs/src/static_dependencies/ethers/abi-coder.js +0 -6
  306. package/dist/cjs/src/static_dependencies/ethers/address/address.js +1 -1
  307. package/dist/cjs/src/static_dependencies/ethers/coders/abstract-coder.js +0 -6
  308. package/dist/cjs/src/static_dependencies/ethers/coders/address.js +0 -1
  309. package/dist/cjs/src/static_dependencies/ethers/coders/anonymous.js +0 -1
  310. package/dist/cjs/src/static_dependencies/ethers/coders/array.js +0 -1
  311. package/dist/cjs/src/static_dependencies/ethers/coders/boolean.js +0 -1
  312. package/dist/cjs/src/static_dependencies/ethers/coders/bytes.js +0 -1
  313. package/dist/cjs/src/static_dependencies/ethers/coders/fixed-bytes.js +0 -1
  314. package/dist/cjs/src/static_dependencies/ethers/coders/null.js +0 -1
  315. package/dist/cjs/src/static_dependencies/ethers/coders/number.js +0 -1
  316. package/dist/cjs/src/static_dependencies/ethers/coders/string.js +0 -1
  317. package/dist/cjs/src/static_dependencies/ethers/coders/tuple.js +0 -1
  318. package/dist/cjs/src/static_dependencies/ethers/fragments.js +0 -6
  319. package/dist/cjs/src/static_dependencies/ethers/hash/typed-data.js +0 -6
  320. package/dist/cjs/src/static_dependencies/ethers/index.js +10 -1
  321. package/dist/cjs/src/static_dependencies/ethers/interface.js +0 -6
  322. package/dist/cjs/src/static_dependencies/ethers/typed.js +0 -6
  323. package/dist/cjs/src/static_dependencies/ethers/utils/base58.js +13 -1
  324. package/dist/cjs/src/static_dependencies/ethers/utils/data.js +6 -1
  325. package/dist/cjs/src/static_dependencies/ethers/utils/errors.js +9 -1
  326. package/dist/cjs/src/static_dependencies/ethers/utils/events.js +0 -6
  327. package/dist/cjs/src/static_dependencies/ethers/utils/fixednumber.js +0 -6
  328. package/dist/cjs/src/static_dependencies/ethers/utils/index.js +7 -1
  329. package/dist/cjs/src/static_dependencies/ethers/utils/maths.js +5 -1
  330. package/dist/cjs/src/static_dependencies/ethers/utils/properties.js +0 -6
  331. package/dist/cjs/src/static_dependencies/ethers/utils/utf8.js +8 -1
  332. package/dist/cjs/src/static_dependencies/fflake/browser.js +1 -1
  333. package/dist/cjs/src/static_dependencies/jsencrypt/JSEncrypt.js +0 -1
  334. package/dist/cjs/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +0 -1
  335. package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +1 -1
  336. package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +0 -6
  337. package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +0 -6
  338. package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +0 -6
  339. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +0 -1
  340. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +1 -1
  341. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +0 -6
  342. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +1 -1
  343. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +1 -1
  344. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/util.js +0 -6
  345. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +1 -1
  346. package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +0 -6
  347. package/dist/cjs/src/static_dependencies/messagepack/msgpack.js +0 -6
  348. package/dist/cjs/src/static_dependencies/noble-curves/_shortw_utils.js +1 -1
  349. package/dist/cjs/src/static_dependencies/noble-curves/abstract/curve.js +1 -1
  350. package/dist/cjs/src/static_dependencies/noble-curves/abstract/edwards.js +1 -1
  351. package/dist/cjs/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +0 -1
  352. package/dist/cjs/src/static_dependencies/noble-curves/abstract/modular.js +1 -1
  353. package/dist/cjs/src/static_dependencies/noble-curves/abstract/montgomery.js +1 -1
  354. package/dist/cjs/src/static_dependencies/noble-curves/abstract/poseidon.js +1 -1
  355. package/dist/cjs/src/static_dependencies/noble-curves/abstract/utils.js +0 -6
  356. package/dist/cjs/src/static_dependencies/noble-curves/abstract/weierstrass.js +1 -1
  357. package/dist/cjs/src/static_dependencies/noble-curves/ed25519.js +1 -1
  358. package/dist/cjs/src/static_dependencies/noble-curves/p256.js +1 -1
  359. package/dist/cjs/src/static_dependencies/noble-curves/secp256k1.js +1 -1
  360. package/dist/cjs/src/static_dependencies/noble-hashes/_assert.js +0 -6
  361. package/dist/cjs/src/static_dependencies/noble-hashes/_sha2.js +0 -1
  362. package/dist/cjs/src/static_dependencies/noble-hashes/_u64.js +0 -6
  363. package/dist/cjs/src/static_dependencies/noble-hashes/crypto.js +0 -6
  364. package/dist/cjs/src/static_dependencies/noble-hashes/hmac.js +0 -1
  365. package/dist/cjs/src/static_dependencies/noble-hashes/md5.js +0 -1
  366. package/dist/cjs/src/static_dependencies/noble-hashes/pbkdf2.js +0 -1
  367. package/dist/cjs/src/static_dependencies/noble-hashes/ripemd160.js +0 -1
  368. package/dist/cjs/src/static_dependencies/noble-hashes/sha1.js +0 -1
  369. package/dist/cjs/src/static_dependencies/noble-hashes/sha256.js +0 -1
  370. package/dist/cjs/src/static_dependencies/noble-hashes/sha3.js +0 -1
  371. package/dist/cjs/src/static_dependencies/noble-hashes/sha512.js +0 -1
  372. package/dist/cjs/src/static_dependencies/noble-hashes/utils.js +1 -1
  373. package/dist/cjs/src/static_dependencies/node-fetch/body.js +5 -1
  374. package/dist/cjs/src/static_dependencies/node-fetch/errors/abort-error.js +0 -1
  375. package/dist/cjs/src/static_dependencies/node-fetch/errors/base.js +0 -6
  376. package/dist/cjs/src/static_dependencies/node-fetch/errors/fetch-error.js +0 -1
  377. package/dist/cjs/src/static_dependencies/node-fetch/headers.js +5 -1
  378. package/dist/cjs/src/static_dependencies/node-fetch/index.js +7 -1
  379. package/dist/cjs/src/static_dependencies/node-fetch/request.js +7 -1
  380. package/dist/cjs/src/static_dependencies/node-fetch/response.js +5 -1
  381. package/dist/cjs/src/static_dependencies/node-fetch/utils/get-search.js +0 -6
  382. package/dist/cjs/src/static_dependencies/node-fetch/utils/is-redirect.js +0 -6
  383. package/dist/cjs/src/static_dependencies/node-fetch/utils/is.js +0 -6
  384. package/dist/cjs/src/static_dependencies/node-fetch/utils/referrer.js +0 -1
  385. package/dist/cjs/src/static_dependencies/proxies/agent-base/index.js +0 -1
  386. package/dist/cjs/src/static_dependencies/proxies/http-proxy-agent/index.js +0 -1
  387. package/dist/cjs/src/static_dependencies/proxies/https-proxy-agent/index.js +0 -1
  388. package/dist/cjs/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +0 -6
  389. package/dist/cjs/src/static_dependencies/qs/formats.js +0 -6
  390. package/dist/cjs/src/static_dependencies/qs/index.js +0 -1
  391. package/dist/cjs/src/static_dependencies/qs/parse.js +0 -1
  392. package/dist/cjs/src/static_dependencies/qs/stringify.js +0 -1
  393. package/dist/cjs/src/static_dependencies/qs/utils.js +0 -6
  394. package/dist/cjs/src/static_dependencies/scure-base/index.js +0 -6
  395. package/dist/cjs/src/static_dependencies/scure-bip32/index.js +19 -1
  396. package/dist/cjs/src/static_dependencies/scure-bip39/index.js +1 -1
  397. package/dist/cjs/src/static_dependencies/scure-bip39/wordlists/english.js +0 -6
  398. package/dist/cjs/src/static_dependencies/scure-starknet/index.js +1 -1
  399. package/dist/cjs/src/static_dependencies/starknet/constants.js +1 -1
  400. package/dist/cjs/src/static_dependencies/starknet/types/calldata.js +0 -6
  401. package/dist/cjs/src/static_dependencies/starknet/types/lib/contract/abi.js +0 -6
  402. package/dist/cjs/src/static_dependencies/starknet/types/lib/contract/index.js +0 -6
  403. package/dist/cjs/src/static_dependencies/starknet/types/lib/index.js +0 -6
  404. package/dist/cjs/src/static_dependencies/starknet/types/typedData.js +0 -6
  405. package/dist/cjs/src/static_dependencies/starknet/utils/assert.js +0 -6
  406. package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +1 -1
  407. package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +1 -1
  408. package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +1 -1
  409. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/byteArray.js +0 -1
  410. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/cairo.js +0 -1
  411. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +0 -6
  412. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +0 -6
  413. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +0 -6
  414. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/formatter.js +0 -1
  415. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/index.js +1 -1
  416. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/index.js +0 -1
  417. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +0 -1
  418. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +0 -6
  419. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +0 -1
  420. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/requestParser.js +0 -1
  421. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/responseParser.js +0 -1
  422. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/tuple.js +1 -1
  423. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/validate.js +4 -1
  424. package/dist/cjs/src/static_dependencies/starknet/utils/encode.js +0 -1
  425. package/dist/cjs/src/static_dependencies/starknet/utils/hash/classHash.js +3 -1
  426. package/dist/cjs/src/static_dependencies/starknet/utils/merkle.js +0 -1
  427. package/dist/cjs/src/static_dependencies/starknet/utils/num.js +0 -1
  428. package/dist/cjs/src/static_dependencies/starknet/utils/selector.js +0 -1
  429. package/dist/cjs/src/static_dependencies/starknet/utils/shortString.js +0 -1
  430. package/dist/cjs/src/static_dependencies/starknet/utils/typedData.js +1 -1
  431. package/dist/cjs/src/static_dependencies/watchable/src/unpromise.js +0 -6
  432. package/dist/cjs/src/static_dependencies/zklink/zklink-sdk-web.js +0 -6
  433. package/dist/cjs/src/timex.js +0 -1
  434. package/dist/cjs/src/tokocrypto.js +1 -1
  435. package/dist/cjs/src/toobit.js +1 -1
  436. package/dist/cjs/src/upbit.js +1 -1
  437. package/dist/cjs/src/wavesexchange.js +1 -1
  438. package/dist/cjs/src/whitebit.js +5 -3
  439. package/dist/cjs/src/woo.js +1 -1
  440. package/dist/cjs/src/woofipro.js +1 -1
  441. package/dist/cjs/src/xt.js +1 -1
  442. package/dist/cjs/src/yobit.js +1 -1
  443. package/dist/cjs/src/zaif.js +1 -1
  444. package/dist/cjs/src/zebpay.js +1908 -0
  445. package/dist/cjs/src/zonda.js +1 -1
  446. package/js/ccxt.d.ts +5 -2
  447. package/js/ccxt.js +4 -8
  448. package/js/src/abstract/alpaca.js +0 -6
  449. package/js/src/abstract/apex.js +0 -6
  450. package/js/src/abstract/arkham.js +0 -6
  451. package/js/src/abstract/ascendex.js +0 -6
  452. package/js/src/abstract/backpack.js +0 -6
  453. package/js/src/abstract/bequant.js +0 -6
  454. package/js/src/abstract/bigone.js +0 -6
  455. package/js/src/abstract/binance.js +0 -6
  456. package/js/src/abstract/binancecoinm.js +0 -6
  457. package/js/src/abstract/binanceus.js +0 -6
  458. package/js/src/abstract/binanceusdm.js +0 -6
  459. package/js/src/abstract/bingx.js +0 -6
  460. package/js/src/abstract/bit2c.js +0 -6
  461. package/js/src/abstract/bitbank.js +0 -6
  462. package/js/src/abstract/bitbns.js +0 -6
  463. package/js/src/abstract/bitfinex.js +0 -6
  464. package/js/src/abstract/bitflyer.js +0 -6
  465. package/js/src/abstract/bitget.js +0 -6
  466. package/js/src/abstract/bithumb.js +0 -6
  467. package/js/src/abstract/bitmart.js +0 -6
  468. package/js/src/abstract/bitmex.js +0 -6
  469. package/js/src/abstract/bitopro.js +0 -6
  470. package/js/src/abstract/bitrue.js +0 -6
  471. package/js/src/abstract/bitso.js +0 -6
  472. package/js/src/abstract/bitstamp.js +0 -6
  473. package/js/src/abstract/bitteam.js +0 -6
  474. package/js/src/abstract/bittrade.js +0 -6
  475. package/js/src/abstract/bitvavo.js +0 -6
  476. package/js/src/abstract/blockchaincom.js +0 -6
  477. package/js/src/abstract/blofin.js +0 -6
  478. package/js/src/abstract/btcalpha.js +0 -6
  479. package/js/src/abstract/btcbox.js +0 -6
  480. package/js/src/abstract/btcmarkets.js +0 -6
  481. package/js/src/abstract/btcturk.js +0 -6
  482. package/js/src/abstract/bullish.js +0 -6
  483. package/js/src/abstract/bybit.js +0 -6
  484. package/js/src/abstract/cex.js +0 -6
  485. package/js/src/abstract/coinbase.js +0 -6
  486. package/js/src/abstract/coinbaseadvanced.js +0 -6
  487. package/js/src/abstract/coinbaseexchange.js +0 -6
  488. package/js/src/abstract/coinbaseinternational.js +0 -6
  489. package/js/src/abstract/coincatch.js +0 -6
  490. package/js/src/abstract/coincheck.js +0 -6
  491. package/js/src/abstract/coinex.d.ts +16 -0
  492. package/js/src/abstract/coinex.js +0 -6
  493. package/js/src/abstract/coinmate.d.ts +3 -0
  494. package/js/src/abstract/coinmate.js +0 -6
  495. package/js/src/abstract/coinmetro.js +0 -6
  496. package/js/src/abstract/coinone.js +0 -6
  497. package/js/src/abstract/coinsph.d.ts +21 -0
  498. package/js/src/abstract/coinsph.js +0 -6
  499. package/js/src/abstract/coinspot.js +0 -6
  500. package/js/src/abstract/cryptocom.d.ts +7 -0
  501. package/js/src/abstract/cryptocom.js +0 -6
  502. package/js/src/abstract/cryptomus.js +0 -6
  503. package/js/src/abstract/deepcoin.js +0 -6
  504. package/js/src/abstract/defx.js +0 -6
  505. package/js/src/abstract/delta.js +0 -6
  506. package/js/src/abstract/deribit.js +0 -6
  507. package/js/src/abstract/derive.js +0 -6
  508. package/js/src/abstract/digifinex.js +0 -6
  509. package/js/src/abstract/dydx.js +0 -6
  510. package/js/src/abstract/exmo.js +0 -6
  511. package/js/src/abstract/fmfwio.js +0 -6
  512. package/js/src/abstract/foxbit.js +0 -6
  513. package/js/src/abstract/gate.d.ts +2 -0
  514. package/js/src/abstract/gate.js +0 -6
  515. package/js/src/abstract/gateio.d.ts +2 -0
  516. package/js/src/abstract/gateio.js +0 -6
  517. package/js/src/abstract/gemini.js +0 -6
  518. package/js/src/abstract/hashkey.js +0 -6
  519. package/js/src/abstract/hibachi.js +0 -6
  520. package/js/src/abstract/hitbtc.js +0 -6
  521. package/js/src/abstract/hollaex.js +0 -6
  522. package/js/src/abstract/htx.js +0 -6
  523. package/js/src/abstract/huobi.js +0 -6
  524. package/js/src/abstract/hyperliquid.js +0 -6
  525. package/js/src/abstract/independentreserve.js +0 -6
  526. package/js/src/abstract/indodax.js +0 -6
  527. package/js/src/abstract/kraken.js +0 -6
  528. package/js/src/abstract/krakenfutures.js +0 -6
  529. package/js/src/abstract/kucoin.js +0 -6
  530. package/js/src/abstract/kucoinfutures.js +0 -6
  531. package/js/src/abstract/latoken.js +0 -6
  532. package/js/src/abstract/lbank.js +0 -6
  533. package/js/src/abstract/luno.js +0 -6
  534. package/js/src/abstract/mercado.js +0 -6
  535. package/js/src/abstract/mexc.js +0 -6
  536. package/js/src/abstract/modetrade.js +0 -6
  537. package/js/src/abstract/myokx.js +0 -6
  538. package/js/src/abstract/ndax.js +0 -6
  539. package/js/src/abstract/novadax.js +0 -6
  540. package/js/src/abstract/oceanex.js +0 -6
  541. package/js/src/abstract/okx.js +0 -6
  542. package/js/src/abstract/okxus.js +0 -6
  543. package/js/src/abstract/onetrading.js +0 -6
  544. package/js/src/abstract/oxfun.js +0 -6
  545. package/js/src/abstract/p2b.js +0 -6
  546. package/js/src/abstract/paradex.js +0 -6
  547. package/js/src/abstract/paymium.js +0 -6
  548. package/js/src/abstract/phemex.js +0 -6
  549. package/js/src/abstract/poloniex.js +0 -6
  550. package/js/src/abstract/probit.js +0 -6
  551. package/js/src/abstract/timex.js +0 -6
  552. package/js/src/abstract/tokocrypto.js +0 -6
  553. package/js/src/abstract/toobit.js +0 -6
  554. package/js/src/abstract/upbit.js +0 -6
  555. package/js/src/abstract/wavesexchange.js +0 -6
  556. package/js/src/abstract/whitebit.js +0 -6
  557. package/js/src/abstract/woo.js +0 -6
  558. package/js/src/abstract/woofipro.js +0 -6
  559. package/js/src/abstract/xt.js +0 -6
  560. package/js/src/abstract/yobit.js +0 -6
  561. package/js/src/abstract/zaif.js +0 -6
  562. package/js/src/abstract/zebpay.d.ts +49 -0
  563. package/js/src/abstract/zebpay.js +5 -0
  564. package/js/src/abstract/zonda.js +0 -6
  565. package/js/src/alpaca.js +0 -6
  566. package/js/src/apex.js +0 -6
  567. package/js/src/arkham.js +0 -6
  568. package/js/src/ascendex.js +0 -6
  569. package/js/src/backpack.js +0 -6
  570. package/js/src/base/Exchange.js +2 -8
  571. package/js/src/base/Precise.js +0 -6
  572. package/js/src/base/errorHierarchy.js +0 -6
  573. package/js/src/base/errors.js +0 -6
  574. package/js/src/base/functions/crypto.js +0 -6
  575. package/js/src/base/functions/encode.js +0 -6
  576. package/js/src/base/functions/generic.js +0 -6
  577. package/js/src/base/functions/misc.js +0 -6
  578. package/js/src/base/functions/number.js +0 -6
  579. package/js/src/base/functions/platform.js +0 -6
  580. package/js/src/base/functions/rsa.js +0 -6
  581. package/js/src/base/functions/string.js +0 -6
  582. package/js/src/base/functions/throttle.js +0 -6
  583. package/js/src/base/functions/time.js +0 -6
  584. package/js/src/base/functions/totp.js +0 -6
  585. package/js/src/base/functions/type.js +0 -6
  586. package/js/src/base/functions.js +0 -6
  587. package/js/src/base/types.js +0 -6
  588. package/js/src/base/ws/Cache.js +0 -6
  589. package/js/src/base/ws/Client.js +0 -6
  590. package/js/src/base/ws/Future.js +0 -6
  591. package/js/src/base/ws/OrderBook.js +0 -6
  592. package/js/src/base/ws/OrderBookSide.js +0 -6
  593. package/js/src/base/ws/WsClient.js +0 -6
  594. package/js/src/base/ws/functions.js +0 -6
  595. package/js/src/bequant.js +0 -6
  596. package/js/src/bigone.js +0 -6
  597. package/js/src/binance.d.ts +1 -0
  598. package/js/src/binance.js +15 -12
  599. package/js/src/binancecoinm.js +0 -6
  600. package/js/src/binanceus.js +0 -6
  601. package/js/src/binanceusdm.js +0 -6
  602. package/js/src/bingx.js +0 -6
  603. package/js/src/bit2c.js +0 -6
  604. package/js/src/bitbank.js +0 -6
  605. package/js/src/bitbns.js +0 -6
  606. package/js/src/bitfinex.js +0 -6
  607. package/js/src/bitflyer.js +0 -6
  608. package/js/src/bitget.js +2 -7
  609. package/js/src/bithumb.js +0 -6
  610. package/js/src/bitmart.js +2 -7
  611. package/js/src/bitmex.js +0 -6
  612. package/js/src/bitopro.js +0 -6
  613. package/js/src/bitrue.js +0 -6
  614. package/js/src/bitso.js +0 -6
  615. package/js/src/bitstamp.js +0 -6
  616. package/js/src/bitteam.js +0 -6
  617. package/js/src/bittrade.js +0 -6
  618. package/js/src/bitvavo.js +0 -6
  619. package/js/src/blockchaincom.js +0 -6
  620. package/js/src/blofin.js +0 -6
  621. package/js/src/btcalpha.js +0 -6
  622. package/js/src/btcbox.js +0 -6
  623. package/js/src/btcmarkets.js +0 -6
  624. package/js/src/btcturk.js +0 -6
  625. package/js/src/bullish.js +0 -6
  626. package/js/src/bybit.d.ts +3 -0
  627. package/js/src/bybit.js +57 -34
  628. package/js/src/cex.js +0 -6
  629. package/js/src/coinbase.js +0 -6
  630. package/js/src/coinbaseadvanced.js +0 -6
  631. package/js/src/coinbaseexchange.js +0 -6
  632. package/js/src/coinbaseinternational.js +0 -6
  633. package/js/src/coincatch.js +1 -7
  634. package/js/src/coincheck.js +0 -6
  635. package/js/src/coinex.js +16 -6
  636. package/js/src/coinmate.d.ts +9 -0
  637. package/js/src/coinmate.js +20 -6
  638. package/js/src/coinmetro.js +0 -6
  639. package/js/src/coinone.js +0 -6
  640. package/js/src/coinsph.js +23 -6
  641. package/js/src/coinspot.js +0 -6
  642. package/js/src/cryptocom.js +7 -6
  643. package/js/src/cryptomus.js +0 -6
  644. package/js/src/deepcoin.js +0 -6
  645. package/js/src/defx.js +0 -6
  646. package/js/src/delta.js +0 -6
  647. package/js/src/deribit.js +0 -6
  648. package/js/src/derive.js +0 -6
  649. package/js/src/digifinex.js +0 -6
  650. package/js/src/dydx.js +0 -6
  651. package/js/src/exmo.js +0 -6
  652. package/js/src/fmfwio.js +0 -6
  653. package/js/src/foxbit.js +0 -6
  654. package/js/src/gate.js +2 -6
  655. package/js/src/gateio.js +0 -6
  656. package/js/src/gemini.js +0 -6
  657. package/js/src/hashkey.js +0 -6
  658. package/js/src/hibachi.js +0 -6
  659. package/js/src/hitbtc.js +0 -6
  660. package/js/src/hollaex.js +0 -6
  661. package/js/src/htx.js +0 -6
  662. package/js/src/huobi.js +0 -6
  663. package/js/src/hyperliquid.js +12 -21
  664. package/js/src/independentreserve.js +0 -6
  665. package/js/src/indodax.js +0 -6
  666. package/js/src/kraken.js +0 -6
  667. package/js/src/krakenfutures.js +0 -6
  668. package/js/src/kucoin.js +0 -6
  669. package/js/src/kucoinfutures.js +0 -6
  670. package/js/src/latoken.js +0 -6
  671. package/js/src/lbank.js +0 -6
  672. package/js/src/luno.js +0 -6
  673. package/js/src/mercado.js +0 -6
  674. package/js/src/mexc.js +0 -6
  675. package/js/src/modetrade.js +0 -6
  676. package/js/src/myokx.js +0 -6
  677. package/js/src/ndax.js +0 -6
  678. package/js/src/novadax.js +0 -6
  679. package/js/src/oceanex.js +0 -6
  680. package/js/src/okx.js +0 -6
  681. package/js/src/okxus.js +0 -6
  682. package/js/src/onetrading.js +0 -6
  683. package/js/src/oxfun.js +0 -6
  684. package/js/src/p2b.js +0 -6
  685. package/js/src/paradex.js +0 -6
  686. package/js/src/paymium.js +0 -6
  687. package/js/src/phemex.js +0 -6
  688. package/js/src/poloniex.js +0 -6
  689. package/js/src/pro/alpaca.js +0 -6
  690. package/js/src/pro/apex.js +0 -6
  691. package/js/src/pro/arkham.js +0 -6
  692. package/js/src/pro/ascendex.js +0 -6
  693. package/js/src/pro/backpack.js +0 -6
  694. package/js/src/pro/bequant.js +0 -6
  695. package/js/src/pro/binance.js +1 -7
  696. package/js/src/pro/binancecoinm.js +0 -6
  697. package/js/src/pro/binanceus.js +0 -6
  698. package/js/src/pro/binanceusdm.js +0 -6
  699. package/js/src/pro/bingx.js +0 -6
  700. package/js/src/pro/bitfinex.js +0 -6
  701. package/js/src/pro/bitget.js +0 -6
  702. package/js/src/pro/bithumb.js +0 -6
  703. package/js/src/pro/bitmart.js +0 -6
  704. package/js/src/pro/bitmex.js +0 -6
  705. package/js/src/pro/bitopro.js +0 -6
  706. package/js/src/pro/bitrue.js +0 -6
  707. package/js/src/pro/bitstamp.js +0 -6
  708. package/js/src/pro/bittrade.js +0 -6
  709. package/js/src/pro/bitvavo.js +0 -6
  710. package/js/src/pro/blockchaincom.js +0 -6
  711. package/js/src/pro/blofin.js +0 -6
  712. package/js/src/pro/bullish.js +0 -6
  713. package/js/src/pro/bybit.js +1 -7
  714. package/js/src/pro/cex.js +0 -6
  715. package/js/src/pro/coinbase.js +0 -6
  716. package/js/src/pro/coinbaseadvanced.js +0 -6
  717. package/js/src/pro/coinbaseexchange.js +0 -6
  718. package/js/src/pro/coinbaseinternational.js +0 -6
  719. package/js/src/pro/coincatch.js +0 -6
  720. package/js/src/pro/coincheck.js +0 -6
  721. package/js/src/pro/coinex.js +0 -6
  722. package/js/src/pro/coinone.js +0 -6
  723. package/js/src/pro/cryptocom.js +0 -6
  724. package/js/src/pro/deepcoin.js +0 -6
  725. package/js/src/pro/defx.js +0 -6
  726. package/js/src/pro/deribit.js +0 -6
  727. package/js/src/pro/derive.js +0 -6
  728. package/js/src/pro/dydx.js +0 -6
  729. package/js/src/pro/exmo.js +0 -6
  730. package/js/src/pro/gate.js +0 -6
  731. package/js/src/pro/gateio.js +0 -6
  732. package/js/src/pro/gemini.js +0 -6
  733. package/js/src/pro/hashkey.js +0 -6
  734. package/js/src/pro/hitbtc.js +0 -6
  735. package/js/src/pro/hollaex.js +0 -6
  736. package/js/src/pro/htx.js +0 -6
  737. package/js/src/pro/huobi.js +0 -6
  738. package/js/src/pro/hyperliquid.js +0 -6
  739. package/js/src/pro/independentreserve.js +0 -6
  740. package/js/src/pro/kraken.js +0 -6
  741. package/js/src/pro/krakenfutures.js +0 -6
  742. package/js/src/pro/kucoin.js +0 -6
  743. package/js/src/pro/kucoinfutures.js +0 -6
  744. package/js/src/pro/lbank.js +0 -6
  745. package/js/src/pro/luno.js +0 -6
  746. package/js/src/pro/mexc.js +0 -6
  747. package/js/src/pro/modetrade.js +0 -6
  748. package/js/src/pro/myokx.js +0 -6
  749. package/js/src/pro/ndax.js +0 -6
  750. package/js/src/pro/okx.js +0 -6
  751. package/js/src/pro/okxus.js +0 -6
  752. package/js/src/pro/onetrading.js +0 -6
  753. package/js/src/pro/oxfun.js +0 -6
  754. package/js/src/pro/p2b.js +0 -6
  755. package/js/src/pro/paradex.js +0 -6
  756. package/js/src/pro/phemex.js +0 -6
  757. package/js/src/pro/poloniex.js +0 -6
  758. package/js/src/pro/probit.js +0 -6
  759. package/js/src/pro/toobit.js +0 -6
  760. package/js/src/pro/upbit.js +0 -6
  761. package/js/src/pro/whitebit.js +0 -6
  762. package/js/src/pro/woo.js +0 -6
  763. package/js/src/pro/woofipro.js +0 -6
  764. package/js/src/pro/xt.js +0 -6
  765. package/js/src/probit.js +0 -6
  766. package/js/src/protobuf/mexc/compiled.cjs +0 -6
  767. package/js/src/static_dependencies/dydx-v4-client/cosmos/base/v1beta1/coin.js +0 -6
  768. package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/multisig/keys.js +0 -6
  769. package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/multisig/v1beta1/multisig.js +0 -6
  770. package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/secp256k1/keys.js +0 -6
  771. package/js/src/static_dependencies/dydx-v4-client/cosmos/tx/signing/v1beta1/signing.js +0 -6
  772. package/js/src/static_dependencies/dydx-v4-client/cosmos/tx/v1beta1/tx.js +0 -6
  773. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/accountplus/tx.js +0 -6
  774. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/block_rate_limit_config.js +0 -6
  775. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/clob_pair.js +0 -6
  776. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/equity_tier_limit_config.js +0 -6
  777. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/finalize_block.js +0 -6
  778. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/liquidations.js +0 -6
  779. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/liquidations_config.js +0 -6
  780. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/matches.js +0 -6
  781. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order.js +0 -6
  782. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order_removals.js +0 -6
  783. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/tx.js +0 -6
  784. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/transfer.js +0 -6
  785. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/tx.js +0 -6
  786. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/asset_position.js +0 -6
  787. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/perpetual_position.js +0 -6
  788. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/subaccount.js +0 -6
  789. package/js/src/static_dependencies/dydx-v4-client/google/protobuf/any.js +0 -6
  790. package/js/src/static_dependencies/dydx-v4-client/helpers.js +0 -6
  791. package/js/src/static_dependencies/dydx-v4-client/long/index.cjs +0 -6
  792. package/js/src/static_dependencies/dydx-v4-client/onboarding.js +0 -6
  793. package/js/src/static_dependencies/dydx-v4-client/registry.js +0 -6
  794. package/js/src/static_dependencies/ethers/abi-coder.js +0 -6
  795. package/js/src/static_dependencies/ethers/address/address.js +0 -6
  796. package/js/src/static_dependencies/ethers/address/checks.js +0 -6
  797. package/js/src/static_dependencies/ethers/address/contract-address.js +0 -6
  798. package/js/src/static_dependencies/ethers/address/index.js +0 -6
  799. package/js/src/static_dependencies/ethers/bytes32.js +0 -6
  800. package/js/src/static_dependencies/ethers/coders/abstract-coder.js +0 -6
  801. package/js/src/static_dependencies/ethers/coders/address.js +0 -6
  802. package/js/src/static_dependencies/ethers/coders/anonymous.js +0 -6
  803. package/js/src/static_dependencies/ethers/coders/array.js +0 -6
  804. package/js/src/static_dependencies/ethers/coders/boolean.js +0 -6
  805. package/js/src/static_dependencies/ethers/coders/bytes.js +0 -6
  806. package/js/src/static_dependencies/ethers/coders/fixed-bytes.js +0 -6
  807. package/js/src/static_dependencies/ethers/coders/null.js +0 -6
  808. package/js/src/static_dependencies/ethers/coders/number.js +0 -6
  809. package/js/src/static_dependencies/ethers/coders/string.js +0 -6
  810. package/js/src/static_dependencies/ethers/coders/tuple.js +0 -6
  811. package/js/src/static_dependencies/ethers/fragments.js +0 -6
  812. package/js/src/static_dependencies/ethers/hash/index.js +0 -6
  813. package/js/src/static_dependencies/ethers/hash/solidity.js +0 -6
  814. package/js/src/static_dependencies/ethers/hash/typed-data.js +0 -6
  815. package/js/src/static_dependencies/ethers/index.js +0 -6
  816. package/js/src/static_dependencies/ethers/interface.js +0 -6
  817. package/js/src/static_dependencies/ethers/typed.js +0 -6
  818. package/js/src/static_dependencies/ethers/utils/base58.js +0 -6
  819. package/js/src/static_dependencies/ethers/utils/base64-browser.js +0 -6
  820. package/js/src/static_dependencies/ethers/utils/base64.js +0 -6
  821. package/js/src/static_dependencies/ethers/utils/data.js +0 -6
  822. package/js/src/static_dependencies/ethers/utils/errors.js +0 -6
  823. package/js/src/static_dependencies/ethers/utils/events.js +0 -6
  824. package/js/src/static_dependencies/ethers/utils/fixednumber.js +0 -6
  825. package/js/src/static_dependencies/ethers/utils/index.js +0 -6
  826. package/js/src/static_dependencies/ethers/utils/maths.js +0 -6
  827. package/js/src/static_dependencies/ethers/utils/properties.js +0 -6
  828. package/js/src/static_dependencies/ethers/utils/rlp-decode.js +0 -6
  829. package/js/src/static_dependencies/ethers/utils/rlp-encode.js +0 -6
  830. package/js/src/static_dependencies/ethers/utils/rlp.js +0 -6
  831. package/js/src/static_dependencies/ethers/utils/units.js +0 -6
  832. package/js/src/static_dependencies/ethers/utils/utf8.js +0 -6
  833. package/js/src/static_dependencies/ethers/utils/uuid.js +0 -6
  834. package/js/src/static_dependencies/fflake/browser.js +0 -6
  835. package/js/src/static_dependencies/jsencrypt/JSEncrypt.js +0 -6
  836. package/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +0 -6
  837. package/js/src/static_dependencies/jsencrypt/index.js +0 -6
  838. package/js/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +0 -6
  839. package/js/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +0 -6
  840. package/js/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +0 -6
  841. package/js/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +0 -6
  842. package/js/src/static_dependencies/jsencrypt/lib/asn1js/oids.js +0 -6
  843. package/js/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +0 -6
  844. package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +0 -6
  845. package/js/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +0 -6
  846. package/js/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +0 -6
  847. package/js/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +0 -6
  848. package/js/src/static_dependencies/jsencrypt/lib/jsbn/util.js +0 -6
  849. package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +0 -6
  850. package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +0 -6
  851. package/js/src/static_dependencies/messagepack/msgpack.js +0 -6
  852. package/js/src/static_dependencies/noble-curves/_shortw_utils.js +0 -6
  853. package/js/src/static_dependencies/noble-curves/abstract/curve.js +0 -6
  854. package/js/src/static_dependencies/noble-curves/abstract/edwards.js +0 -6
  855. package/js/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +0 -6
  856. package/js/src/static_dependencies/noble-curves/abstract/modular.js +0 -6
  857. package/js/src/static_dependencies/noble-curves/abstract/montgomery.js +0 -6
  858. package/js/src/static_dependencies/noble-curves/abstract/poseidon.js +0 -6
  859. package/js/src/static_dependencies/noble-curves/abstract/utils.js +0 -6
  860. package/js/src/static_dependencies/noble-curves/abstract/weierstrass.js +0 -6
  861. package/js/src/static_dependencies/noble-curves/bn.js +0 -6
  862. package/js/src/static_dependencies/noble-curves/ed25519.js +0 -6
  863. package/js/src/static_dependencies/noble-curves/ed448.js +0 -6
  864. package/js/src/static_dependencies/noble-curves/index.js +0 -6
  865. package/js/src/static_dependencies/noble-curves/jubjub.js +0 -6
  866. package/js/src/static_dependencies/noble-curves/p256.js +0 -6
  867. package/js/src/static_dependencies/noble-curves/p384.js +0 -6
  868. package/js/src/static_dependencies/noble-curves/p521.js +0 -6
  869. package/js/src/static_dependencies/noble-curves/pasta.js +0 -6
  870. package/js/src/static_dependencies/noble-curves/secp256k1.js +0 -6
  871. package/js/src/static_dependencies/noble-hashes/_assert.js +0 -6
  872. package/js/src/static_dependencies/noble-hashes/_blake2.js +0 -6
  873. package/js/src/static_dependencies/noble-hashes/_sha2.js +0 -6
  874. package/js/src/static_dependencies/noble-hashes/_u64.js +0 -6
  875. package/js/src/static_dependencies/noble-hashes/argon2.js +0 -6
  876. package/js/src/static_dependencies/noble-hashes/blake2b.js +0 -6
  877. package/js/src/static_dependencies/noble-hashes/blake2s.js +0 -6
  878. package/js/src/static_dependencies/noble-hashes/blake3.js +0 -6
  879. package/js/src/static_dependencies/noble-hashes/crypto.js +0 -6
  880. package/js/src/static_dependencies/noble-hashes/cryptoNode.js +0 -6
  881. package/js/src/static_dependencies/noble-hashes/eskdf.js +0 -6
  882. package/js/src/static_dependencies/noble-hashes/hkdf.js +0 -6
  883. package/js/src/static_dependencies/noble-hashes/hmac.js +0 -6
  884. package/js/src/static_dependencies/noble-hashes/index.js +0 -6
  885. package/js/src/static_dependencies/noble-hashes/md5.js +0 -6
  886. package/js/src/static_dependencies/noble-hashes/pbkdf2.js +0 -6
  887. package/js/src/static_dependencies/noble-hashes/ripemd160.js +0 -6
  888. package/js/src/static_dependencies/noble-hashes/scrypt.js +0 -6
  889. package/js/src/static_dependencies/noble-hashes/sha1.js +0 -6
  890. package/js/src/static_dependencies/noble-hashes/sha256.js +0 -6
  891. package/js/src/static_dependencies/noble-hashes/sha3-addons.js +0 -6
  892. package/js/src/static_dependencies/noble-hashes/sha3.js +0 -6
  893. package/js/src/static_dependencies/noble-hashes/sha512.js +0 -6
  894. package/js/src/static_dependencies/noble-hashes/utils.js +0 -6
  895. package/js/src/static_dependencies/node-fetch/body.js +0 -6
  896. package/js/src/static_dependencies/node-fetch/errors/abort-error.js +0 -6
  897. package/js/src/static_dependencies/node-fetch/errors/base.js +0 -6
  898. package/js/src/static_dependencies/node-fetch/errors/fetch-error.js +0 -6
  899. package/js/src/static_dependencies/node-fetch/headers.js +0 -6
  900. package/js/src/static_dependencies/node-fetch/index.js +0 -6
  901. package/js/src/static_dependencies/node-fetch/request.js +0 -6
  902. package/js/src/static_dependencies/node-fetch/response.js +0 -6
  903. package/js/src/static_dependencies/node-fetch/utils/get-search.js +0 -6
  904. package/js/src/static_dependencies/node-fetch/utils/is-redirect.js +0 -6
  905. package/js/src/static_dependencies/node-fetch/utils/is.js +0 -6
  906. package/js/src/static_dependencies/node-fetch/utils/referrer.js +0 -6
  907. package/js/src/static_dependencies/proxies/agent-base/helpers.js +0 -6
  908. package/js/src/static_dependencies/proxies/agent-base/index.js +0 -6
  909. package/js/src/static_dependencies/proxies/http-proxy-agent/index.js +0 -6
  910. package/js/src/static_dependencies/proxies/https-proxy-agent/index.js +0 -6
  911. package/js/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +0 -6
  912. package/js/src/static_dependencies/qs/formats.js +0 -6
  913. package/js/src/static_dependencies/qs/index.js +0 -6
  914. package/js/src/static_dependencies/qs/parse.js +0 -6
  915. package/js/src/static_dependencies/qs/stringify.js +0 -6
  916. package/js/src/static_dependencies/qs/utils.js +0 -6
  917. package/js/src/static_dependencies/scure-base/index.js +0 -6
  918. package/js/src/static_dependencies/scure-bip32/index.js +0 -6
  919. package/js/src/static_dependencies/scure-bip39/index.js +0 -6
  920. package/js/src/static_dependencies/scure-bip39/wordlists/english.js +0 -6
  921. package/js/src/static_dependencies/scure-starknet/index.js +0 -6
  922. package/js/src/static_dependencies/starknet/constants.js +0 -6
  923. package/js/src/static_dependencies/starknet/index.js +0 -6
  924. package/js/src/static_dependencies/starknet/types/cairoEnum.js +0 -6
  925. package/js/src/static_dependencies/starknet/types/calldata.js +0 -6
  926. package/js/src/static_dependencies/starknet/types/index.js +0 -6
  927. package/js/src/static_dependencies/starknet/types/lib/contract/abi.js +0 -6
  928. package/js/src/static_dependencies/starknet/types/lib/contract/index.js +0 -6
  929. package/js/src/static_dependencies/starknet/types/lib/contract/legacy.js +0 -6
  930. package/js/src/static_dependencies/starknet/types/lib/contract/sierra.js +0 -6
  931. package/js/src/static_dependencies/starknet/types/lib/index.js +0 -6
  932. package/js/src/static_dependencies/starknet/types/typedData.js +0 -6
  933. package/js/src/static_dependencies/starknet/utils/address.js +0 -6
  934. package/js/src/static_dependencies/starknet/utils/assert.js +0 -6
  935. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +0 -6
  936. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +0 -6
  937. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +0 -6
  938. package/js/src/static_dependencies/starknet/utils/calldata/byteArray.js +0 -6
  939. package/js/src/static_dependencies/starknet/utils/calldata/cairo.js +0 -6
  940. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +0 -6
  941. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +0 -6
  942. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +0 -6
  943. package/js/src/static_dependencies/starknet/utils/calldata/enum/index.js +0 -6
  944. package/js/src/static_dependencies/starknet/utils/calldata/formatter.js +0 -6
  945. package/js/src/static_dependencies/starknet/utils/calldata/index.js +0 -6
  946. package/js/src/static_dependencies/starknet/utils/calldata/parser/index.js +0 -6
  947. package/js/src/static_dependencies/starknet/utils/calldata/parser/interface.js +0 -6
  948. package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +0 -6
  949. package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +0 -6
  950. package/js/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +0 -6
  951. package/js/src/static_dependencies/starknet/utils/calldata/requestParser.js +0 -6
  952. package/js/src/static_dependencies/starknet/utils/calldata/responseParser.js +0 -6
  953. package/js/src/static_dependencies/starknet/utils/calldata/tuple.js +0 -6
  954. package/js/src/static_dependencies/starknet/utils/calldata/validate.js +0 -6
  955. package/js/src/static_dependencies/starknet/utils/encode.js +0 -6
  956. package/js/src/static_dependencies/starknet/utils/hash/classHash.js +0 -6
  957. package/js/src/static_dependencies/starknet/utils/hash/index.js +0 -6
  958. package/js/src/static_dependencies/starknet/utils/merkle.js +0 -6
  959. package/js/src/static_dependencies/starknet/utils/num.js +0 -6
  960. package/js/src/static_dependencies/starknet/utils/selector.js +0 -6
  961. package/js/src/static_dependencies/starknet/utils/shortString.js +0 -6
  962. package/js/src/static_dependencies/starknet/utils/starknetId.js +0 -6
  963. package/js/src/static_dependencies/starknet/utils/typedData.js +0 -6
  964. package/js/src/static_dependencies/starknet/utils/uint256.js +0 -6
  965. package/js/src/static_dependencies/starknet/utils/url.js +0 -6
  966. package/js/src/static_dependencies/watchable/src/index.js +0 -6
  967. package/js/src/static_dependencies/watchable/src/types.js +0 -6
  968. package/js/src/static_dependencies/watchable/src/unpromise.js +0 -6
  969. package/js/src/static_dependencies/zklink/zklink-sdk-web.js +0 -6
  970. package/js/src/timex.js +0 -6
  971. package/js/src/tokocrypto.js +0 -6
  972. package/js/src/toobit.js +0 -6
  973. package/js/src/upbit.js +0 -6
  974. package/js/src/wavesexchange.js +0 -6
  975. package/js/src/whitebit.js +4 -8
  976. package/js/src/woo.js +0 -6
  977. package/js/src/woofipro.js +0 -6
  978. package/js/src/xt.js +0 -6
  979. package/js/src/yobit.js +0 -6
  980. package/js/src/zaif.js +0 -6
  981. package/js/src/zebpay.d.ts +361 -0
  982. package/js/src/zebpay.js +1901 -0
  983. package/js/src/zonda.js +0 -6
  984. package/package.json +1 -1
@@ -0,0 +1,1908 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var zebpay$1 = require('./abstract/zebpay.js');
6
+ var number = require('./base/functions/number.js');
7
+ var errors = require('./base/errors.js');
8
+ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
9
+ var Precise = require('./base/Precise.js');
10
+
11
+ // ---------------------------------------------------------------------------
12
+ // ---------------------------------------------------------------------------
13
+ /**
14
+ * @class
15
+ * @augments Exchange
16
+ */
17
+ class zebpay extends zebpay$1["default"] {
18
+ describe() {
19
+ return this.deepExtend(super.describe(), {
20
+ 'id': 'zebpay',
21
+ 'name': 'Zebpay',
22
+ 'countries': ['IN'],
23
+ 'rateLimit': 50,
24
+ 'version': 'v1',
25
+ 'certified': false,
26
+ 'pro': false,
27
+ 'has': {
28
+ 'CORS': undefined,
29
+ 'spot': true,
30
+ 'margin': false,
31
+ 'swap': true,
32
+ 'future': false,
33
+ 'option': undefined,
34
+ 'addMargin': true,
35
+ 'cancelAllOrders': true,
36
+ 'cancelOrder': true,
37
+ 'cancelOrders': false,
38
+ 'closePosition': true,
39
+ 'createOrder': true,
40
+ 'fetchBalance': true,
41
+ 'fetchCurrencies': true,
42
+ 'fetchLeverage': true,
43
+ 'fetchLeverages': true,
44
+ 'fetchMarkets': true,
45
+ 'fetchMyTrades': true,
46
+ 'fetchOHLCV': true,
47
+ 'fetchOpenOrders': true,
48
+ 'fetchOrder': true,
49
+ 'fetchOrderBook': true,
50
+ 'fetchOrderTrades': true,
51
+ 'fetchPositions': true,
52
+ 'fetchTicker': true,
53
+ 'fetchTickers': true,
54
+ 'fetchTrades': true,
55
+ 'fetchTradingFee': true,
56
+ 'reduceMargin': true,
57
+ 'setLeverage': true,
58
+ },
59
+ 'timeframes': {
60
+ '1m': 1,
61
+ '5m': 5,
62
+ '15m': 15,
63
+ '30m': 30,
64
+ '1h': 60,
65
+ '2h': 120,
66
+ '4h': 480,
67
+ '12h': 720,
68
+ '1d': 1440,
69
+ '1w': 10080,
70
+ },
71
+ 'urls': {
72
+ 'logo': 'https://github.com/user-attachments/assets/8094e7be-55a7-46f4-a087-0ca31b48ecad',
73
+ 'api': {
74
+ 'spot': 'https://sapi.zebpay.com',
75
+ 'swap': 'https://futuresbe.zebpay.com',
76
+ },
77
+ 'test': {
78
+ 'spot': 'https://www.zebstage.com',
79
+ 'swap': 'https://dev-futuresbe.zebstage.com',
80
+ },
81
+ 'www': 'https://www.zebpay.com',
82
+ 'doc': 'https://github.com/zebpay/zebpay-api-references',
83
+ 'fees': 'https://zebpay.com/in/features/pricing',
84
+ },
85
+ 'api': {
86
+ 'public': {
87
+ 'spot': {
88
+ 'get': {
89
+ 'v2/system/time': 10,
90
+ 'v2/system/status': 10,
91
+ 'v2/market/orderbook': 10,
92
+ 'v2/market/trades': 10,
93
+ 'v2/market/ticker': 10,
94
+ 'v2/market/allTickers': 10,
95
+ 'v2/ex/exchangeInfo': 10,
96
+ 'v2/ex/currencies': 10,
97
+ 'v2/market/klines': 10,
98
+ 'v2/ex/tradefees': 10,
99
+ },
100
+ },
101
+ 'swap': {
102
+ 'get': {
103
+ 'v1/system/time': 10,
104
+ 'v1/system/status': 10,
105
+ 'v1/exchange/tradefee': 10,
106
+ 'v1/exchange/tradefees': 10,
107
+ 'v1/market/orderBook': 10,
108
+ 'v1/market/ticker24Hr': 10,
109
+ 'v1/market/markets': 10,
110
+ 'v1/market/aggTrade': 10,
111
+ },
112
+ 'post': {
113
+ 'v1/market/klines': 10,
114
+ },
115
+ },
116
+ },
117
+ 'private': {
118
+ 'spot': {
119
+ 'post': {
120
+ 'v2/ex/orders': 10,
121
+ },
122
+ 'get': {
123
+ 'v2/ex/orders': 10,
124
+ 'v2/account/balance': 10,
125
+ 'v2/ex/tradefee': 10,
126
+ 'v2/ex/order': 10,
127
+ 'v2/ex/order/fills': 10,
128
+ },
129
+ 'delete': {
130
+ 'v2/ex/order': 10,
131
+ 'v2/ex/orders': 10,
132
+ 'v2/ex/orders/cancelAll': 10,
133
+ },
134
+ },
135
+ 'swap': {
136
+ 'get': {
137
+ 'v1/wallet/balance': 10,
138
+ 'v1/trade/order': 10,
139
+ 'v1/trade/order/open-orders': 10,
140
+ 'v1/trade/userLeverages': 10,
141
+ 'v1/trade/userLeverage': 10,
142
+ 'v1/trade/positions': 10,
143
+ 'v1/trade/history': 10,
144
+ },
145
+ 'post': {
146
+ 'v1/trade/order': 10,
147
+ 'v1/trade/order/addTPSL': 10,
148
+ 'v1/trade/addMargin': 10,
149
+ 'v1/trade/reduceMargin': 10,
150
+ 'v1/trade/position/close': 10,
151
+ 'v1/trade/update/userLeverage': 10,
152
+ },
153
+ 'delete': {
154
+ 'v1/trade/order': 10,
155
+ },
156
+ },
157
+ },
158
+ },
159
+ 'precisionMode': number.TICK_SIZE,
160
+ 'fees': {},
161
+ 'commonCurrencies': {},
162
+ 'requiredCredentials': {
163
+ 'apiKey': true,
164
+ 'secret': true,
165
+ },
166
+ 'options': {
167
+ 'fetchMarkets': {
168
+ 'types': ['spot', 'swap'],
169
+ },
170
+ 'defaultType': 'spot', // 'spot', 'swap'
171
+ },
172
+ 'features': {
173
+ 'default': {
174
+ 'fetchOHLCV': {
175
+ 'limit': 100,
176
+ },
177
+ },
178
+ },
179
+ 'exceptions': {
180
+ 'exact': {
181
+ '77': errors.InvalidOrder,
182
+ '400': errors.BadRequest,
183
+ '401': errors.AuthenticationError,
184
+ '403': errors.NotSupported,
185
+ '404': errors.NotSupported,
186
+ '429': errors.RateLimitExceeded,
187
+ '500': errors.ExchangeNotAvailable,
188
+ '503': errors.ExchangeNotAvailable,
189
+ '3013': errors.OrderNotFound,
190
+ 'Order quantity is out of range': errors.InvalidOrder,
191
+ 'Invalid trade order type': errors.InvalidOrder,
192
+ 'Insufficient margin': errors.InsufficientFunds,
193
+ 'insufficient balance': errors.InsufficientFunds,
194
+ 'leverage must be in [1,8]': errors.BadRequest,
195
+ 'the request you sent is invalid': errors.BadRequest,
196
+ },
197
+ 'broad': {
198
+ 'InvalidOrder': errors.InvalidOrder, // Rate should be in the range of
199
+ },
200
+ },
201
+ });
202
+ }
203
+ /**
204
+ * @method
205
+ * @name zebpay#fetchStatus
206
+ * @description the latest known information on the availability of the exchange API
207
+ * @see [Spot] https://github.com/zebpay/zebpay-api-references/blob/main/spot/api-reference/public-endpoints.md#system-status
208
+ * @see [Swap] https://github.com/zebpay/zebpay-api-references/blob/main/futures/api-reference/public-endpoints/system.md#get-system-status
209
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
210
+ * @returns {object} a [status structure]{@link https://docs.ccxt.com/#/?id=exchange-status-structure}
211
+ */
212
+ async fetchStatus(params = {}) {
213
+ let type = undefined;
214
+ [type, params] = this.handleMarketTypeAndParams('fetchStatus', undefined, params);
215
+ const isSpot = (type === 'spot');
216
+ let response = undefined;
217
+ let data = {};
218
+ if (isSpot) {
219
+ response = await this.publicSpotGetV2SystemStatus(params);
220
+ data = response;
221
+ }
222
+ else {
223
+ response = await this.publicSwapGetV1SystemStatus(params);
224
+ data = this.safeDict(response, 'data', {});
225
+ }
226
+ //
227
+ // {
228
+ // "statusDescription": "OK",
229
+ // "data":
230
+ // {
231
+ // "systemStatus": "ok"
232
+ // }
233
+ // "statusCode": 200,
234
+ // "customMessage": ["OK"]
235
+ // }
236
+ //
237
+ const status = this.safeString2(data, 'systemStatus', 'status');
238
+ return {
239
+ 'status': status,
240
+ 'updated': undefined,
241
+ 'eta': undefined,
242
+ 'url': undefined,
243
+ 'info': response,
244
+ };
245
+ }
246
+ /**
247
+ * @method
248
+ * @name zebpayfutures#fetchTime
249
+ * @description fetches the current integer timestamp in milliseconds from the poloniexfutures server
250
+ * @see [Spot] https://github.com/zebpay/zebpay-api-references/blob/main/spot/api-reference/public-endpoints.md#get-server-time
251
+ * @see [Swap] https://github.com/zebpay/zebpay-api-references/blob/main/futures/api-reference/public-endpoints/system.md#get-system-time
252
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
253
+ * @returns {int} the current integer timestamp in milliseconds from the poloniexfutures server
254
+ */
255
+ async fetchTime(params = {}) {
256
+ let type = undefined;
257
+ [type, params] = this.handleMarketTypeAndParams('fetchTime', undefined, params);
258
+ const isSpot = (type === 'spot');
259
+ let response = undefined;
260
+ let data = {};
261
+ if (isSpot) {
262
+ response = await this.publicSpotGetV2SystemTime(params);
263
+ data = response;
264
+ }
265
+ else {
266
+ response = await this.publicSwapGetV1SystemTime(params);
267
+ data = this.safeDict(response, 'data', {});
268
+ }
269
+ //
270
+ // {
271
+ // "statusDescription": "OK",
272
+ // "data":
273
+ // {
274
+ // "timestamp": 1546837113087
275
+ // }
276
+ // "statusCode": 200,
277
+ // "customMessage": ["OK"]
278
+ // }
279
+ //
280
+ const time = this.safeInteger(data, 'timestamp');
281
+ return time;
282
+ }
283
+ /**
284
+ * @method
285
+ * @name zebpay#fetchMarkets
286
+ * @description retrieves data on all markets for zebpay
287
+ * @see [Spot] https://github.com/zebpay/zebpay-api-references/blob/main/spot/api-reference/public-endpoints.md#get-trading-pairs
288
+ * @see [Swap] https://github.com/zebpay/zebpay-api-references/blob/main/futures/api-reference/public-endpoints/market.md#fetch-markets
289
+ * @param {object} [params] extra parameters specific to the exchange api endpoint
290
+ * @returns {object[]} an array of objects representing market data
291
+ */
292
+ async fetchMarkets(params = {}) {
293
+ const promisesUnresolved = [];
294
+ const fetchMarketsOptions = this.safeDict(this.options, 'fetchMarkets');
295
+ const defaultMarkets = ['spot', 'swap'];
296
+ const types = this.safeList(fetchMarketsOptions, 'types', defaultMarkets);
297
+ for (let i = 0; i < types.length; i++) {
298
+ const type = types[i];
299
+ if (type === 'spot') {
300
+ promisesUnresolved.push(this.fetchSpotMarkets(params));
301
+ }
302
+ else if (type === 'swap') {
303
+ promisesUnresolved.push(this.fetchSwapMarkets(params));
304
+ }
305
+ else {
306
+ throw new errors.ExchangeError(this.id + ' fetchMarkets() this.options fetchMarkets "' + type + '" is not a supported market type');
307
+ }
308
+ }
309
+ const promises = await Promise.all(promisesUnresolved);
310
+ const spotMarkets = this.safeList(promises, 0, []);
311
+ const futureMarkets = this.safeList(promises, 1, []);
312
+ return this.arrayConcat(spotMarkets, futureMarkets);
313
+ }
314
+ /**
315
+ * @method
316
+ * @name zebpay#fetchCurrencies
317
+ * @description fetches all available currencies on an exchange
318
+ * @see [Spot] https://github.com/zebpay/zebpay-api-references/blob/main/spot/api-reference/public-endpoints.md#get-coin-settings
319
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
320
+ * @returns {object} an associative dictionary of currencies
321
+ */
322
+ async fetchCurrencies(params = {}) {
323
+ const response = await this.publicSpotGetV2ExCurrencies(params);
324
+ //
325
+ // {
326
+ // "data": [
327
+ // {
328
+ // "currency": "BTC",
329
+ // "name": "BTC",
330
+ // "fullName": "150",
331
+ // "precision": "0.2",
332
+ // "type": "fiat",
333
+ // "isDebitEnabled": false,
334
+ // "chains": [
335
+ // {
336
+ // "chainName": "Bitcoin",
337
+ // "withdrawalMinSize": "0.000482",
338
+ // "depositMinSize": "0.00000001",
339
+ // "withdrawalFee": "0.00040000",
340
+ // "isWithdrawEnabled": "true",
341
+ // "isDepositEnabled": "true",
342
+ // "contractAddress": "0x095418A82BC2439703b69fbE1210824F2247D77c",
343
+ // "withdrawPrecision": "8",
344
+ // "maxWithdraw": "2.43090487000000",
345
+ // "maxDeposit": "100.00000000",
346
+ // "needTag": "false",
347
+ // "chainId": "bitcoin",
348
+ // "AddressRegex": "^tb1[qpzry9x8gf2tvdw0s3jn54khce6mua7l]{39,59}|m[a-zA-Z0-9]{25,34}|n[a-zA-Z0-9]{25,34}|^2[a-zA-Z0-9]{25,34}$"
349
+ // }
350
+ // ]
351
+ // }
352
+ // ]
353
+ // }
354
+ //
355
+ const rows = this.safeList(response, 'data', []);
356
+ const result = {};
357
+ for (let i = 0; i < rows.length; i++) {
358
+ const currency = rows[i];
359
+ const currencyId = this.safeString(currency, 'currency');
360
+ const code = this.safeCurrencyCode(currencyId);
361
+ const name = this.safeString(currency, 'name');
362
+ const precision = this.parseNumber(this.parsePrecision(this.safeString(currency, 'precision')));
363
+ const chains = this.safeList(currency, 'chains', []);
364
+ const networks = {};
365
+ let minWithdrawFeeString = undefined;
366
+ let minWithdrawString = undefined;
367
+ let minDepositString = undefined;
368
+ let deposit = false;
369
+ let withdraw = false;
370
+ for (let j = 0; j < chains.length; j++) {
371
+ const chain = chains[j];
372
+ const networkId = this.safeString(chain, 'chainId');
373
+ const networkCode = this.networkIdToCode(networkId);
374
+ const depositAllowed = this.safeBool(chain, 'isDepositEnabled') === true;
375
+ deposit = (depositAllowed) ? depositAllowed : deposit;
376
+ const withdrawAllowed = this.safeBool(chain, 'isWithdrawEnabled') === true;
377
+ withdraw = (withdrawAllowed) ? withdrawAllowed : withdraw;
378
+ const withdrawFeeString = this.safeString(chain, 'withdrawalFee');
379
+ if (withdrawFeeString !== undefined) {
380
+ minWithdrawFeeString = (minWithdrawFeeString === undefined) ? withdrawFeeString : Precise["default"].stringMin(withdrawFeeString, minWithdrawFeeString);
381
+ }
382
+ const minNetworkWithdrawString = this.safeString(chain, 'withdrawalMinSize');
383
+ if (minNetworkWithdrawString !== undefined) {
384
+ minWithdrawString = (minWithdrawString === undefined) ? minNetworkWithdrawString : Precise["default"].stringMin(minNetworkWithdrawString, minWithdrawString);
385
+ }
386
+ const minNetworkDepositString = this.safeString(chain, 'depositMinSize');
387
+ if (minNetworkDepositString !== undefined) {
388
+ minDepositString = (minDepositString === undefined) ? minNetworkDepositString : Precise["default"].stringMin(minNetworkDepositString, minDepositString);
389
+ }
390
+ networks[networkCode] = {
391
+ 'info': chain,
392
+ 'id': networkId,
393
+ 'network': networkCode,
394
+ 'active': depositAllowed && withdrawAllowed,
395
+ 'deposit': depositAllowed,
396
+ 'withdraw': withdrawAllowed,
397
+ 'fee': this.parseNumber(withdrawFeeString),
398
+ 'precision': precision,
399
+ 'limits': {
400
+ 'withdraw': {
401
+ 'min': this.parseNumber(minNetworkWithdrawString),
402
+ 'max': undefined,
403
+ },
404
+ 'deposit': {
405
+ 'min': this.parseNumber(minNetworkDepositString),
406
+ 'max': undefined,
407
+ },
408
+ },
409
+ };
410
+ }
411
+ result[code] = this.safeCurrencyStructure({
412
+ 'info': currency,
413
+ 'code': code,
414
+ 'id': currencyId,
415
+ 'name': name,
416
+ 'active': deposit && withdraw,
417
+ 'deposit': deposit,
418
+ 'withdraw': withdraw,
419
+ 'fee': this.parseNumber(minWithdrawFeeString),
420
+ 'precision': precision,
421
+ 'limits': {
422
+ 'amount': {
423
+ 'min': undefined,
424
+ 'max': undefined,
425
+ },
426
+ 'withdraw': {
427
+ 'min': this.parseNumber(minWithdrawString),
428
+ 'max': undefined,
429
+ },
430
+ 'deposit': {
431
+ 'min': this.parseNumber(minDepositString),
432
+ 'max': undefined,
433
+ },
434
+ },
435
+ 'networks': networks,
436
+ });
437
+ }
438
+ return result;
439
+ }
440
+ /**
441
+ * @method
442
+ * @name zebpay#fetchTradingFee
443
+ * @description fetch the trading fees for a market
444
+ * @see [Spot] https://github.com/zebpay/zebpay-api-references/blob/main/spot/api-reference/private-endpoints.md#get-exchange-fee
445
+ * @see [Swap] https://github.com/zebpay/zebpay-api-references/blob/main/futures/api-reference/public-endpoints/exchange.md#get-trade-fee-single-symbol
446
+ * @param {string} symbol unified symbol of the market to fetch the order book for
447
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
448
+ * @param {object} [params.side] side to fetch trading fee
449
+ * @returns {object} a [status structure]{@link https://docs.ccxt.com/#/?id=exchange-status-structure}
450
+ */
451
+ async fetchTradingFee(symbol, params = {}) {
452
+ await this.loadMarkets();
453
+ const market = this.market(symbol);
454
+ let response = undefined;
455
+ let data;
456
+ const request = {
457
+ 'symbol': market['id'],
458
+ };
459
+ if (market['spot']) {
460
+ response = await this.privateSpotGetV2ExTradefee(this.extend(request, params));
461
+ //
462
+ // {
463
+ // "statusDescription": "Success",
464
+ // "data":
465
+ // {
466
+ // "symbol": "BTCINR",
467
+ // "takerFeeRate": "0.01",
468
+ // "makerFeeRate": "0.05",
469
+ // "percentage": true
470
+ // } ,
471
+ // "statusCode": 200,
472
+ // }
473
+ data = this.safeDict(response, 'data', {});
474
+ }
475
+ else {
476
+ response = await this.publicSwapGetV1ExchangeTradefee(this.extend(request, params));
477
+ //
478
+ // {
479
+ // "statusDescription": "OK",
480
+ // "data":
481
+ // [
482
+ // {
483
+ // "symbol": "BTCINR",
484
+ // "takerFee": "0.01",
485
+ // "makerFee": "0.05"
486
+ // }
487
+ // ] ,
488
+ // "statusCode": 200,
489
+ // "customMessage": ["OK"]
490
+ // }
491
+ //
492
+ const responseData = this.safeList(response, 'data', []);
493
+ data = this.safeDict(responseData, 0);
494
+ }
495
+ return this.parseTradingFee(data, market);
496
+ }
497
+ /**
498
+ * @method
499
+ * @name zebpay(futures)#fetchTradingFees
500
+ * @description fetch the trading fees for multiple markets
501
+ * @see [Swap] https://github.com/zebpay/zebpay-api-references/blob/main/futures/api-reference/public-endpoints/exchange.md#get-trade-fees-all-symbols
502
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
503
+ * @returns {object} a [status structure]{@link https://docs.ccxt.com/#/?id=exchange-status-structure}
504
+ */
505
+ async fetchTradingFees(params = {}) {
506
+ let type = undefined;
507
+ [type, params] = this.handleMarketTypeAndParams('fetchTradingFees', undefined, params);
508
+ let response = undefined;
509
+ if (type === 'spot') {
510
+ response = await this.publicSpotGetV2ExTradefees(params);
511
+ }
512
+ else {
513
+ response = await this.publicSwapGetV1ExchangeTradefees(params);
514
+ }
515
+ //
516
+ // {
517
+ // "statusDescription": "OK",
518
+ // "data": [
519
+ // {
520
+ // "symbol": "BTCINR",
521
+ // "takerFee": "0.01",
522
+ // "makerFee": "0.05"
523
+ // }
524
+ // ],
525
+ // "statusCode": 200,
526
+ // "customMessage": ["OK"]
527
+ // }
528
+ //
529
+ const fees = this.safeList(response, 'data', []);
530
+ const result = {};
531
+ for (let i = 0; i < fees.length; i++) {
532
+ const fee = this.parseTradingFee(fees[i]);
533
+ const symbol = fee['symbol'];
534
+ result[symbol] = fee;
535
+ }
536
+ return result;
537
+ }
538
+ /**
539
+ * @method
540
+ * @name zebpay#fetchOrderBook
541
+ * @description fetches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
542
+ * @see [Spot] https://github.com/zebpay/zebpay-api-references/blob/main/spot/api-reference/public-endpoints.md#get-order-book
543
+ * @see [Swap] https://github.com/zebpay/zebpay-api-references/blob/main/futures/api-reference/public-endpoints/market.md#get-order-book
544
+ * @param {string} symbol unified symbol of the market to fetch the order book for
545
+ * @param {int} [limit] the maximum amount of order book entries to return
546
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
547
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
548
+ */
549
+ async fetchOrderBook(symbol, limit = undefined, params = {}) {
550
+ await this.loadMarkets();
551
+ const market = this.market(symbol);
552
+ const request = {
553
+ 'symbol': market['id'],
554
+ };
555
+ let response = undefined;
556
+ if (market['spot']) {
557
+ if (limit !== undefined) {
558
+ request['limit'] = limit;
559
+ }
560
+ //
561
+ // {
562
+ // "asks": [
563
+ // [5000, 1000], //Price, quantity
564
+ // [6000, 1983] //Price, quantity
565
+ // ],
566
+ // "bids": [
567
+ // [3200, 800], //Price, quantity
568
+ // [3100, 100] //Price, quantity
569
+ // ],
570
+ // }
571
+ // }
572
+ response = await this.publicSpotGetV2MarketOrderbook(this.extend(request, params));
573
+ }
574
+ else {
575
+ response = await this.publicSwapGetV1MarketOrderBook(this.extend(request, params));
576
+ }
577
+ const bookData = this.safeDict(response, 'data', {});
578
+ const orderbook = this.parseOrderBook(bookData, market['symbol'], undefined, 'bids', 'asks', 0, 1);
579
+ orderbook['nonce'] = this.safeInteger(bookData, 'nonce');
580
+ return orderbook;
581
+ }
582
+ /**
583
+ * @method
584
+ * @name zebpay#fetchTicker
585
+ * @description fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
586
+ * @see [Spot] https://github.com/zebpay/zebpay-api-references/blob/main/spot/api-reference/public-endpoints.md#get-ticker
587
+ * @see [Swap] https://github.com/zebpay/zebpay-api-references/blob/main/futures/api-reference/public-endpoints/market.md#get-24hr-ticker
588
+ * @param {string} symbol unified symbol of the market to fetch the ticker for
589
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
590
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
591
+ */
592
+ async fetchTicker(symbol, params = {}) {
593
+ await this.loadMarkets();
594
+ const market = this.market(symbol);
595
+ const request = {
596
+ 'symbol': market['id'],
597
+ };
598
+ let response = undefined;
599
+ if (market['spot']) {
600
+ response = await this.publicSpotGetV2MarketTicker(this.extend(request, params));
601
+ //
602
+ // [
603
+ // {
604
+ // "symbol": "BTC-INR",
605
+ // "bestBid": "4900000",
606
+ // "bestBidQty": "0.00014938",
607
+ // "bestAsk": "",
608
+ // "bestAskQty": "0",
609
+ // "priceChange": "-98134.56",
610
+ // "priceChangePercent": "-1.84",
611
+ // "high": "5433400",
612
+ // "low": "5333400",
613
+ // "vol": "0.0002",
614
+ // "volValue": "1066.68",
615
+ // "last": "5333400"
616
+ // }
617
+ // ]
618
+ //
619
+ }
620
+ else {
621
+ response = await this.publicSwapGetV1MarketTicker24Hr(this.extend(request, params));
622
+ }
623
+ const data = this.safeDict(response, 'data', {});
624
+ return this.parseTicker(data, market);
625
+ }
626
+ /**
627
+ * @method
628
+ * @name zebpay#fetchTickers
629
+ * @description fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
630
+ * @see [Spot] https://github.com/zebpay/zebpay-api-references/blob/main/spot/api-reference/public-endpoints.md#get-all-tickers
631
+ * @param {string[]|undefined} symbols unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
632
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
633
+ * @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
634
+ */
635
+ async fetchTickers(symbols = undefined, params = {}) {
636
+ let type = undefined;
637
+ [type, params] = this.handleMarketTypeAndParams('fetchTickers', undefined, params);
638
+ if (type !== 'spot') {
639
+ throw new errors.NotSupported(this.id + ' fetchTickers() does not support ' + type + ' markets');
640
+ }
641
+ await this.loadMarkets();
642
+ symbols = this.marketSymbols(symbols);
643
+ const response = await this.publicSpotGetV2MarketAllTickers(params);
644
+ //
645
+ // [
646
+ // {
647
+ // "symbol": "BTC-INR",
648
+ // "bestBid": "4900000",
649
+ // "bestBidQty": "0.00014938",
650
+ // "bestAsk": "",
651
+ // "bestAskQty": "0",
652
+ // "priceChange": "-98134.56",
653
+ // "priceChangePercent": "-1.84",
654
+ // "high": "5433400",
655
+ // "low": "5333400",
656
+ // "vol": "0.0002",
657
+ // "volValue": "1066.68",
658
+ // "last": "5333400"
659
+ // }
660
+ // ]
661
+ //
662
+ const tickerList = this.safeList(response, 'data', []);
663
+ return this.parseTickers(tickerList, symbols);
664
+ }
665
+ /**
666
+ * @method
667
+ * @name zebpay#fetchOHLCV
668
+ * @description fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
669
+ * @see [Spot] https://github.com/zebpay/zebpay-api-references/blob/main/spot/api-reference/public-endpoints.md#get-klinescandlesticks
670
+ * @see [Swap] https://github.com/zebpay/zebpay-api-references/blob/main/futures/api-reference/public-endpoints/market.md#-get-k-lines-ohlcv-data
671
+ * @param {string} symbol unified symbol of the market to fetch OHLCV data for
672
+ * @param {string} timeframe the length of time each candle represents
673
+ * @param {int} [since] timestamp in ms of the earliest candle to fetch
674
+ * @param {int} [limit] the maximum amount of candles to fetch
675
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
676
+ * @param {int} [params.endtime] the latest time in ms to fetch orders for
677
+ * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
678
+ */
679
+ async fetchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
680
+ await this.loadMarkets();
681
+ const market = this.market(symbol);
682
+ if (limit === undefined) {
683
+ limit = 100; // default is 200
684
+ }
685
+ const request = {
686
+ 'symbol': market['id'],
687
+ };
688
+ if (market['spot']) {
689
+ request['interval'] = this.safeString(this.timeframes, timeframe, timeframe);
690
+ }
691
+ else {
692
+ request['interval'] = timeframe;
693
+ }
694
+ if (market['contract'] && (limit !== undefined)) {
695
+ request['limit'] = limit;
696
+ }
697
+ if (since !== undefined) {
698
+ if (market['spot']) {
699
+ request['startTime'] = since;
700
+ }
701
+ else {
702
+ request['since'] = since;
703
+ }
704
+ }
705
+ const until = this.safeInteger2(params, 'until', 'endtime');
706
+ if (until !== undefined) {
707
+ request['endTime'] = until;
708
+ params = this.omit(params, ['endtime', 'until']);
709
+ }
710
+ let response = undefined;
711
+ if (market['spot']) {
712
+ if (until === undefined || since === undefined) {
713
+ throw new errors.ArgumentsRequired(this.id + ' fetchOHLCV() requires a both a since and until/endtime parameter for spot markets');
714
+ }
715
+ response = await this.publicSpotGetV2MarketKlines(this.extend(request, params));
716
+ }
717
+ else {
718
+ response = await this.publicSwapPostV1MarketKlines(this.extend(request, params));
719
+ }
720
+ //
721
+ // [
722
+ // [
723
+ // "1670608800000",
724
+ // "17071",
725
+ // "17073",
726
+ // "17027",
727
+ // "17055.5",
728
+ // "268611",
729
+ // "15.74462667"
730
+ // ],
731
+ // [
732
+ // "1670605200000",
733
+ // "17071.5",
734
+ // "17071.5",
735
+ // "17061",
736
+ // "17071",
737
+ // "4177",
738
+ // "0.24469757"
739
+ // ],
740
+ // [
741
+ // "1670601600000",
742
+ // "17086.5",
743
+ // "17088",
744
+ // "16978",
745
+ // "17071.5",
746
+ // "6356",
747
+ // "0.37288112"
748
+ // ]
749
+ // ]
750
+ //
751
+ const data = this.safeList(response, 'data', []);
752
+ return this.parseOHLCVs(data, market, timeframe, since, limit);
753
+ }
754
+ /**
755
+ * @method
756
+ * @name zebpay#fetchTrades
757
+ * @description get the list of most recent trades for a particular symbol
758
+ * @see [Spot] https://github.com/zebpay/zebpay-api-references/blob/main/spot/api-reference/public-endpoints.md#get-recent-trades
759
+ * @see https://github.com/zebpay/zebpay-api-references/blob/main/futures/api-reference/public-endpoints/market.md#get-aggregate-trades
760
+ * @param {string} symbol unified symbol of the market to fetch trades for
761
+ * @param {int} [since] timestamp in ms of the earliest trade to fetch
762
+ * @param {int} [limit] the maximum amount of trades to fetch
763
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
764
+ * @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
765
+ */
766
+ async fetchTrades(symbol, since = undefined, limit = undefined, params = {}) {
767
+ await this.loadMarkets();
768
+ const market = this.market(symbol);
769
+ const request = {
770
+ 'symbol': market['id'],
771
+ };
772
+ if (market['spot'] && limit !== undefined) {
773
+ request['limit'] = limit;
774
+ }
775
+ let response = undefined;
776
+ if (market['spot']) {
777
+ response = await this.publicSpotGetV2MarketTrades(this.extend(request, params));
778
+ }
779
+ else {
780
+ response = await this.publicSwapGetV1MarketAggTrade(this.extend(request, params));
781
+ }
782
+ //
783
+ // [
784
+ // {
785
+ // "id" : "60014521",
786
+ // "price" : "23162.94",
787
+ // "qty" : "0.00009",
788
+ // "side" : "SELL",
789
+ // "time" : 1659684602042,
790
+ // "isBuyerMaker" : 1659684602036
791
+ // }
792
+ // ]
793
+ //
794
+ const data = this.safeList(response, 'data', []);
795
+ return this.parseTrades(data, market, since, limit);
796
+ }
797
+ /**
798
+ * @method
799
+ * @name zebpay#fetchMyTrades
800
+ * @description get the list of most recent trades for a particular symbol
801
+ * @see https://github.com/zebpay/zebpay-api-references/blob/main/futures/api-reference/private-endpoints/trade.md#-get-trade-history
802
+ * @param {string} symbol unified symbol of the market to fetch trades for
803
+ * @param {int} [since] timestamp in ms of the earliest trade to fetch
804
+ * @param {int} [limit] the maximum amount of trades to fetch
805
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
806
+ * @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
807
+ */
808
+ async fetchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
809
+ await this.loadMarkets();
810
+ let market = undefined;
811
+ if (symbol !== undefined) {
812
+ market = this.market(symbol);
813
+ }
814
+ let type = undefined;
815
+ [type, params] = this.handleMarketTypeAndParams('fetchMyTrades', market, params);
816
+ let response = undefined;
817
+ if (type === 'spot') {
818
+ throw new errors.NotSupported(this.id + ' fetchMyTrades() does not support spot markets');
819
+ }
820
+ else {
821
+ response = await this.privateSwapGetV1TradeHistory(params);
822
+ }
823
+ const data = this.safeDict(response, 'data', {});
824
+ const items = this.safeList(data, 'items', []);
825
+ return this.parseTrades(items, market, since, limit);
826
+ }
827
+ /**
828
+ * @method
829
+ * @name zebpatspot#fetchOrderTrades
830
+ * @description fetch all the trades made from a single order
831
+ * @see [Spot] https://github.com/zebpay/zebpay-api-references/blob/main/spot/api-reference/private-endpoints.md#get-order-fills
832
+ * @param {string} id order id
833
+ * @param {string} symbol unified market symbol
834
+ * @param {int} [since] the earliest time in ms to fetch trades for
835
+ * @param {int} [limit] the maximum number of trades to retrieve
836
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
837
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure}
838
+ */
839
+ async fetchOrderTrades(id, symbol = undefined, since = undefined, limit = undefined, params = {}) {
840
+ let type = undefined;
841
+ [type, params] = this.handleMarketTypeAndParams('fetchOrderTrades', undefined, params);
842
+ if (type !== 'spot') {
843
+ throw new errors.NotSupported(this.id + ' fetchOrderTrades() does not support ' + type + ' markets');
844
+ }
845
+ await this.loadMarkets();
846
+ const request = {
847
+ 'orderId': id,
848
+ };
849
+ const response = await this.privateSpotGetV2ExOrderFills(this.extend(request, params));
850
+ //
851
+ // {
852
+ // "orderId": "456789",
853
+ // "symbol": "LINK_USDT",
854
+ // "origQty": "1.5",
855
+ // "orderId": "30249408733945856",
856
+ // "side": "BUY",
857
+ // "type": "LIMIT",
858
+ // "matchRole": "MAKER",
859
+ // "createTime": 1648200366864,
860
+ // "price": "3.1",
861
+ // "avgExecutedPrice": "2.3456"
862
+ // "openQty": "1",
863
+ // "filledQty": "0",
864
+ // "fees": "0.00145",
865
+ // }
866
+ //
867
+ const data = this.safeDict(response, 'data', {});
868
+ const trades = [data];
869
+ return this.parseTrades(trades);
870
+ }
871
+ parseTrade(trade, market = undefined) {
872
+ //
873
+ // fetchMyTrades
874
+ //
875
+ // {
876
+ // "id": "32164924331503616",
877
+ // "symbol": "LINK_USDT",
878
+ // "accountType": "SPOT",
879
+ // "orderId": "32164923987566592",
880
+ // "side": "SELL",
881
+ // "type": "MARKET",
882
+ // "matchRole": "TAKER",
883
+ // "createTime": 1648635115525,
884
+ // "price": "11",
885
+ // "quantity": "0.5",
886
+ // "amount": "5.5",
887
+ // "feeCurrency": "USDT",
888
+ // "feeAmount": "0.007975",
889
+ // "pageId": "32164924331503616",
890
+ // "clientOrderId": "myOwnId-321"
891
+ // }
892
+ // {
893
+ // aggregateTradeId: '2659115835',
894
+ // symbol: 'ETHINR',
895
+ // price: '292848',
896
+ // quantity: '0.147',
897
+ // firstTradeId: '7018766077',
898
+ // lastTradeId: '7018766081',
899
+ // tradeTime: '1765381971447',
900
+ // isBuyerMarketMaker: true
901
+ // }
902
+ //
903
+ //
904
+ const id = this.safeString2(trade, 'id', 'aggregateTradeId');
905
+ const orderId = this.safeString2(trade, 'id', 'order');
906
+ const timestamp = this.safeInteger2(trade, 'timestamp', 'tradeTime');
907
+ const marketId = this.safeString(trade, 'symbol');
908
+ market = this.safeMarket(marketId, market, '_');
909
+ const symbol = market['symbol'];
910
+ const side = this.safeStringLower(trade, 'side');
911
+ const priceString = this.safeString(trade, 'price');
912
+ const amountString = this.safeString2(trade, 'amount', 'quantity');
913
+ return this.safeTrade({
914
+ 'id': id,
915
+ 'info': trade,
916
+ 'timestamp': timestamp,
917
+ 'datetime': this.iso8601(timestamp),
918
+ 'symbol': symbol,
919
+ 'order': orderId,
920
+ 'type': this.safeStringLower(trade, 'type'),
921
+ 'side': side,
922
+ 'takerOrMaker': undefined,
923
+ 'price': priceString,
924
+ 'amount': amountString,
925
+ 'cost': this.safeString(trade, 'cost'),
926
+ 'fee': this.safeDict(trade, 'fee'),
927
+ }, market);
928
+ }
929
+ /**
930
+ * @method
931
+ * @name zebpay#fetchBalance
932
+ * @description query for balance and get the amount of funds available for trading or funds locked in orders
933
+ * @see [Spot] https://github.com/zebpay/zebpay-api-references/blob/main/spot/api-reference/private-endpoints.md#get-account-balance
934
+ * @see [Swap] https://github.com/zebpay/zebpay-api-references/blob/main/futures/api-reference/private-endpoints/wallet.md#get-wallet-balance
935
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
936
+ * @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
937
+ */
938
+ async fetchBalance(params = {}) {
939
+ await this.loadMarkets();
940
+ let type = undefined;
941
+ [type, params] = this.handleMarketTypeAndParams('fetchBalance', undefined, params);
942
+ const isSpot = (type === 'spot');
943
+ let response = undefined;
944
+ if (isSpot) {
945
+ response = await this.privateSpotGetV2AccountBalance(params);
946
+ }
947
+ else {
948
+ response = await this.privateSwapGetV1WalletBalance(params);
949
+ }
950
+ //
951
+ // {
952
+ // "data": [
953
+ // {
954
+ // "free": 200,
955
+ // "used": 100,
956
+ // "total": 300,
957
+ // "currency": "INR"
958
+ // },
959
+ // {
960
+ // "free": 0,
961
+ // "used": 0,
962
+ // "total": 0,
963
+ // "currency": "USDT"
964
+ // }
965
+ // ]
966
+ // }
967
+ //
968
+ return this.parseBalance(response);
969
+ }
970
+ /**
971
+ * @method
972
+ * @name zebpay#createOrder
973
+ * @description Create an order on the exchange
974
+ * @see [Spot] https://github.com/zebpay/zebpay-api-references/blob/main/spot/api-reference/private-endpoints.md#place-new-order
975
+ * @see [Swap] https://github.com/zebpay/zebpay-api-references/blob/main/futures/api-reference/private-endpoints/trade.md#--create-order
976
+ * @param {string} symbol Unified CCXT market symbol
977
+ * @param {string} type 'limit' or 'market'
978
+ * @param {string} side 'buy' or 'sell'
979
+ * @param {float} amount the amount of currency to trade
980
+ * @param {float} [price] the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
981
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
982
+ * @param {string} [params.formType] The price at which a trigger order is triggered at
983
+ * @param {string} [params.marginAsset] The asset the order creates, default is INR.
984
+ * @param {boolean} [params.takeProfit] Takeprofit flag for the order.
985
+ * @param {boolean} [params.stopLoss] Stop loss flag for the order.
986
+ * @param {string} [params.positionId] PositionId of the order.
987
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
988
+ */
989
+ async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
990
+ await this.loadMarkets();
991
+ const market = this.market(symbol);
992
+ const upperCaseType = type.toUpperCase();
993
+ const takeProfitPrice = this.safeString(params, 'takeProfitPrice');
994
+ const stopLossPrice = this.safeString(params, 'stopLossPrice');
995
+ params = this.omit(params, ['marginAsset', 'takeProfitPrice', 'takeProfitPrice']);
996
+ let request = {
997
+ 'symbol': market['id'],
998
+ 'side': side.toUpperCase(),
999
+ };
1000
+ let response = undefined;
1001
+ if (market['spot']) {
1002
+ [request, params] = this.orderRequest(symbol, type, amount, request, price, params);
1003
+ response = await this.privateSpotPostV2ExOrders(this.extend(request, params));
1004
+ }
1005
+ else {
1006
+ const marginAsset = this.safeString(params, 'marginAsset', 'INR');
1007
+ const formType = this.safeStringUpper(params, 'formType', 'ORDER_FORM');
1008
+ request['formType'] = formType;
1009
+ request['amount'] = this.parseToNumeric(this.amountToPrecision(market['id'], amount));
1010
+ request['marginAsset'] = marginAsset;
1011
+ const hasTP = takeProfitPrice !== undefined;
1012
+ const hasSL = stopLossPrice !== undefined;
1013
+ if (hasTP || hasSL) {
1014
+ if (hasTP) {
1015
+ request['takeProfitPrice'] = this.parseToNumeric(this.priceToPrecision(symbol, takeProfitPrice));
1016
+ }
1017
+ if (hasSL) {
1018
+ request['stopLossPrice'] = this.parseToNumeric(this.priceToPrecision(symbol, stopLossPrice));
1019
+ }
1020
+ response = await this.privateSwapPostV1TradeOrderAddTPSL(this.extend(request, params));
1021
+ }
1022
+ else {
1023
+ request['type'] = upperCaseType;
1024
+ if (type === 'limit') {
1025
+ if (price === undefined) {
1026
+ throw new errors.ArgumentsRequired(this.id + ' createOrder() requires a price argument for limit orders');
1027
+ }
1028
+ request['price'] = this.parseToNumeric(this.priceToPrecision(symbol, price));
1029
+ }
1030
+ response = await this.privateSwapPostV1TradeOrder(this.extend(request, params));
1031
+ }
1032
+ }
1033
+ //
1034
+ // {
1035
+ // "data": {
1036
+ // "clientOrderId": "619717484f1d010001510cde",
1037
+ // },
1038
+ // }
1039
+ //
1040
+ const data = this.safeDict(response, 'data', {});
1041
+ return this.parseOrder(data, market);
1042
+ }
1043
+ orderRequest(symbol, type, amount, request, price = undefined, params = {}) {
1044
+ const upperCaseType = type.toUpperCase();
1045
+ const triggerPrice = this.safeString(params, 'stopLossPrice', undefined);
1046
+ const quoteOrderQty = this.safeString2(params, 'quoteOrderQty', 'cost', undefined);
1047
+ const timeInForce = this.safeString(params, 'timeInForce', 'GTC');
1048
+ const clientOrderId = this.safeString(params, 'clientOrderId', this.uuid());
1049
+ params = this.omit(params, ['stopLossPrice', 'cost', 'timeInForce', 'clientOrderId']);
1050
+ request['type'] = upperCaseType;
1051
+ request['clientOrderId'] = clientOrderId;
1052
+ request['timeInForce'] = timeInForce;
1053
+ if (upperCaseType === 'MARKET') {
1054
+ if (quoteOrderQty === undefined) {
1055
+ throw new errors.ExchangeError(this.id + ' spot market orders require cost in params');
1056
+ }
1057
+ request['quoteOrderAmount'] = this.costToPrecision(symbol, quoteOrderQty);
1058
+ }
1059
+ else {
1060
+ if (triggerPrice !== undefined) {
1061
+ request['stopLossPrice'] = this.priceToPrecision(symbol, triggerPrice);
1062
+ }
1063
+ request['amount'] = this.amountToPrecision(symbol, amount);
1064
+ request['price'] = this.priceToPrecision(symbol, price);
1065
+ }
1066
+ return [request, params];
1067
+ }
1068
+ /**
1069
+ * @method
1070
+ * @name zebpay#cancelOrder
1071
+ * @description cancels an open order
1072
+ * @see [Spot] https://github.com/zebpay/zebpay-api-references/blob/main/spot/api-reference/private-endpoints.md#cancel-order
1073
+ * @see [Swap] https://github.com/zebpay/zebpay-api-references/blob/main/futures/api-reference/private-endpoints/trade.md#-cancel-order
1074
+ * @param {string} id order id
1075
+ * @param {string} symbol unified symbol of the market the order was made in
1076
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1077
+ * @param {object} [params.timestamp] extra parameters specific to the exchange API endpoint
1078
+ * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1079
+ */
1080
+ async cancelOrder(id, symbol = undefined, params = {}) {
1081
+ await this.loadMarkets();
1082
+ const market = this.market(symbol);
1083
+ let response = undefined;
1084
+ const request = {};
1085
+ if (market['spot']) {
1086
+ request['orderId'] = id;
1087
+ response = await this.privateSpotDeleteV2ExOrder(this.extend(request, params));
1088
+ }
1089
+ else {
1090
+ const clientOrderId = this.safeString(params, 'clientOrderId');
1091
+ if (clientOrderId === undefined) {
1092
+ throw new errors.ArgumentsRequired(this.id + ' cancelOrder() requires a clientOrderId parameter for swap orders');
1093
+ }
1094
+ request['clientOrderId'] = clientOrderId;
1095
+ request['symbol'] = market['id'];
1096
+ response = await this.privateSwapDeleteV1TradeOrder(this.extend(request, params));
1097
+ }
1098
+ //
1099
+ // {
1100
+ // "data": {
1101
+ // "clientOrderId": "619714b8b6353000014c505a",
1102
+ // "status": "canceled"
1103
+ // },
1104
+ // }
1105
+ //
1106
+ return this.parseOrder(this.safeDict(response, 'data'));
1107
+ }
1108
+ /**
1109
+ * @method
1110
+ * @name zebpay#cancelOrders
1111
+ * @description cancels all open orders
1112
+ * @see [Spot] https://github.com/zebpay/zebpay-api-references/blob/main/spot/api-reference/private-endpoints.md#cancel-all-orders
1113
+ * @param {string} symbol unified symbol of the market the order was made in
1114
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1115
+ * @param {object} [params.timestamp] extra parameters specific to the exchange API endpoint
1116
+ * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1117
+ */
1118
+ async cancelAllOrders(symbol = undefined, params = {}) {
1119
+ let type = undefined;
1120
+ [type, params] = this.handleMarketTypeAndParams('cancelAllOrders', undefined, params);
1121
+ if (type !== 'spot') {
1122
+ throw new errors.NotSupported(this.id + ' cancelAllOrders() does not support ' + type + ' markets');
1123
+ }
1124
+ await this.loadMarkets();
1125
+ const response = await this.privateSpotDeleteV2ExOrdersCancelAll(params);
1126
+ //
1127
+ // {
1128
+ // "data": {
1129
+ // "orderId": "12345",
1130
+ // "symbol": 'BTC-INR
1131
+ // },
1132
+ // }
1133
+ //
1134
+ const data = this.safeDict(response, 'data', {});
1135
+ const parsedOrder = this.parseOrder(data);
1136
+ return [parsedOrder];
1137
+ }
1138
+ /**
1139
+ * @method
1140
+ * @name zebpay#fetchOpenOrders
1141
+ * @description fetches information on multiple open orders made by the user
1142
+ * @see [Spot] https://github.com/zebpay/zebpay-api-references/blob/main/spot/api-reference/private-endpoints.md#get-orders
1143
+ * @see [Swap] https://github.com/zebpay/zebpay-api-references/blob/main/futures/api-reference/private-endpoints/trade.md#-get-open-orders
1144
+ * @param {string} symbol unified market symbol of the market orders were made in
1145
+ * @param {int} [since] the earliest time in ms to fetch orders for
1146
+ * @param {int} [limit] the maximum number of order structures to retrieve
1147
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1148
+ * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1149
+ */
1150
+ async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1151
+ await this.loadMarkets();
1152
+ const market = this.market(symbol);
1153
+ const request = {
1154
+ 'symbol': market['id'],
1155
+ };
1156
+ let response = undefined;
1157
+ let orders = [];
1158
+ if (market['spot']) {
1159
+ request['currentPage'] = 1;
1160
+ if (limit !== undefined) {
1161
+ request['pageSize'] = limit;
1162
+ }
1163
+ response = await this.privateSpotGetV2ExOrders(this.extend(request, params));
1164
+ const responseData = this.safeDict(response, 'data', {});
1165
+ orders = this.safeList(responseData, 'items', []);
1166
+ }
1167
+ else {
1168
+ if (since !== undefined) {
1169
+ request['since'] = since;
1170
+ }
1171
+ if (limit !== undefined) {
1172
+ request['limit'] = limit;
1173
+ }
1174
+ response = await this.privateSwapGetV1TradeOrderOpenOrders(this.extend(request, params));
1175
+ const responseData = this.safeDict(response, 'data', {});
1176
+ orders = this.safeList(responseData, 'data', []);
1177
+ }
1178
+ //
1179
+ // {
1180
+ // "data": {
1181
+ // "nextTimeStamp": null,
1182
+ // "totalCount": 100,
1183
+ // "data": [
1184
+ // {
1185
+ // "clientOrderId": "64507d02921f1c0001ff6892-123-zeb",
1186
+ // "datetime": "2025-03-14T14:34:34.4567",
1187
+ // "timestamp": 1741962557553,
1188
+ // "status": "open",
1189
+ // "symbol": "BTCINR",
1190
+ // "type": "market",
1191
+ // "timeInForce": "GTC",
1192
+ // "side": "buy",
1193
+ // "price": 700000,
1194
+ // "amount": 0.002,
1195
+ // "filled": null,
1196
+ // "remaining": 0.002,
1197
+ // "trades": []
1198
+ // }
1199
+ // ]
1200
+ // }
1201
+ // }
1202
+ //
1203
+ return this.parseOrders(orders, market, undefined, limit);
1204
+ }
1205
+ /**
1206
+ * @method
1207
+ * @name zebpay#fetchOrder
1208
+ * @description fetches information on an order made by the user
1209
+ * @see [Spot] https://github.com/zebpay/zebpay-api-references/blob/main/spot/api-reference/private-endpoints.md#get-order-details
1210
+ * @see [Swap] https://github.com/zebpay/zebpay-api-references/blob/main/futures/api-reference/private-endpoints/trade.md#-get-order-details
1211
+ * @param {string} id order id
1212
+ * @param {string} symbol unified symbol of the market the order was made in
1213
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1214
+ * @param {string} [params.clientOrderId] cancel order by client order id
1215
+ * @param {string} [params.timestamp] cancel order by client order id
1216
+ * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1217
+ */
1218
+ async fetchOrder(id, symbol = undefined, params = {}) {
1219
+ await this.loadMarkets();
1220
+ const market = this.market(symbol);
1221
+ const request = {};
1222
+ let response = undefined;
1223
+ if (market['spot']) {
1224
+ request['orderId'] = id;
1225
+ response = await this.privateSpotGetV2ExOrder(this.extend(request, params));
1226
+ }
1227
+ else {
1228
+ request['id'] = id;
1229
+ response = await this.privateSwapGetV1TradeOrder(this.extend(request, params));
1230
+ }
1231
+ //
1232
+ // {
1233
+ // "data": {
1234
+ // "nextTimeStamp": null,
1235
+ // "totalCount": 100,
1236
+ // "data": [
1237
+ // {
1238
+ // "clientOrderId": "64507d02921f1c0001ff6892-123-zeb",
1239
+ // "datetime": "2025-03-14T14:34:34.4567",
1240
+ // "timestamp": 1741962557553,
1241
+ // "status": "open",
1242
+ // "symbol": "BTCINR",
1243
+ // "type": "market",
1244
+ // "timeInForce": "GTC",
1245
+ // "side": "buy",
1246
+ // "price": 700000,
1247
+ // "amount": 0.002,
1248
+ // "filled": null,
1249
+ // "remaining": 0.002,
1250
+ // "trades": []
1251
+ // }
1252
+ // ]
1253
+ // }
1254
+ // }
1255
+ //
1256
+ const responseData = this.safeDict(response, 'data');
1257
+ return this.parseOrder(responseData, market);
1258
+ }
1259
+ parseOrder(order, market = undefined) {
1260
+ //
1261
+ // {
1262
+ // "clientOrderId": "64507d02921f1c0001ff6892-123-zeb",
1263
+ // "datetime": "2025-03-14T14:34:34.4567",
1264
+ // "timestamp": 1741962557553,
1265
+ // "status": "open",
1266
+ // "symbol": "BTCINR",
1267
+ // "type": "market",
1268
+ // "timeInForce": "GTC",
1269
+ // "side": "buy",
1270
+ // "price": 700000,
1271
+ // "amount": 0.002,
1272
+ // "filled": null,
1273
+ // "remaining": 0.002,
1274
+ // "trades": []
1275
+ // }
1276
+ //
1277
+ const marketId = this.safeString(order, 'symbol');
1278
+ market = this.safeMarket(marketId, market);
1279
+ const symbol = market['symbol'];
1280
+ const type = this.safeString(order, 'type');
1281
+ const timestamp = this.safeNumber(order, 'timestamp');
1282
+ const datetime = this.iso8601(timestamp);
1283
+ const price = this.safeString(order, 'price');
1284
+ const side = this.safeString(order, 'side');
1285
+ const amount = this.safeString(order, 'amount');
1286
+ const clientOrderId = this.safeString(order, 'clientOrderId');
1287
+ const timeInForce = this.safeString(order, 'timeInForce');
1288
+ const status = this.safeStringLower(order, 'status');
1289
+ const orderId = this.safeString(order, 'orderId', undefined);
1290
+ const parsedOrder = this.safeOrder({
1291
+ 'id': orderId,
1292
+ 'clientOrderId': clientOrderId,
1293
+ 'symbol': symbol,
1294
+ 'type': type,
1295
+ 'timeInForce': timeInForce,
1296
+ 'postOnly': undefined,
1297
+ 'reduceOnly': undefined,
1298
+ 'side': side,
1299
+ 'amount': amount,
1300
+ 'price': price,
1301
+ 'triggerPrice': undefined,
1302
+ 'cost': undefined,
1303
+ 'filled': undefined,
1304
+ 'remaining': undefined,
1305
+ 'timestamp': timestamp,
1306
+ 'datetime': datetime,
1307
+ 'fee': undefined,
1308
+ 'status': status,
1309
+ 'info': order,
1310
+ 'lastTradeTimestamp': undefined,
1311
+ 'lastUpdateTimestamp': undefined,
1312
+ 'average': undefined,
1313
+ 'trades': undefined,
1314
+ }, market);
1315
+ return parsedOrder;
1316
+ }
1317
+ /**
1318
+ * @method
1319
+ * @name zebpay#closePosition
1320
+ * @description closes open positions for a market
1321
+ * @see [Swap] https://github.com/zebpay/zebpay-api-references/blob/main/futures/api-reference/private-endpoints/trade.md#-close-position
1322
+ * @param {string} symbol Unified CCXT market symbol
1323
+ * @param {string} side not used by kucoinfutures closePositions
1324
+ * @param {object} [params] extra parameters specific to the okx api endpoint
1325
+ * @param {string} [params.positionId] client order id of the order
1326
+ * @returns {object[]} [A list of position structures]{@link https://docs.ccxt.com/#/?id=position-structure}
1327
+ */
1328
+ async closePosition(symbol, side = undefined, params = {}) {
1329
+ await this.loadMarkets();
1330
+ const market = this.market(symbol);
1331
+ const request = {
1332
+ 'symbol': market['id'],
1333
+ };
1334
+ const response = await this.privateSwapPostV1TradePositionClose(this.extend(request, params));
1335
+ const data = this.safeDict(response, 'data', {});
1336
+ return this.parseOrder(data, market);
1337
+ }
1338
+ /**
1339
+ * @method
1340
+ * @name zebpay#fetchLeverages
1341
+ * @description fetch the set leverage for all contract and margin markets
1342
+ * @see [Swap] https://github.com/zebpay/zebpay-api-references/blob/main/futures/api-reference/private-endpoints/trade.md#-get-all-user-leverages
1343
+ * @param {string[]} [symbols] a list of unified market symbols
1344
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1345
+ * @returns {object} a list of [leverage structures]{@link https://docs.ccxt.com/#/?id=leverage-structure}
1346
+ */
1347
+ async fetchLeverages(symbols = undefined, params = {}) {
1348
+ await this.loadMarkets();
1349
+ const response = await this.privateSwapGetV1TradeUserLeverages(params);
1350
+ //
1351
+ // {
1352
+ // "leveragePreferences": [
1353
+ // {
1354
+ // "symbol": "ETHINR",
1355
+ // "shortLeverage": 1,
1356
+ // "longLeverage": 10,
1357
+ // "marginMode": "isolated"
1358
+ // },
1359
+ // ]
1360
+ // }
1361
+ //
1362
+ const leveragePreferences = this.safeList(response, 'data', []);
1363
+ return this.parseLeverages(leveragePreferences, symbols, 'symbol');
1364
+ }
1365
+ /**
1366
+ * @method
1367
+ * @name zebpay#fetchLeverage
1368
+ * @description fetch the set leverage for a market
1369
+ * @see [Swap] https://github.com/zebpay/zebpay-api-references/blob/main/futures/api-reference/private-endpoints/trade.md#get-user-leverage-single-symbol
1370
+ * @param {string} symbol unified market symbol
1371
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1372
+ * @returns {object} a [leverage structure]{@link https://docs.ccxt.com/#/?id=leverage-structure}
1373
+ */
1374
+ async fetchLeverage(symbol, params = {}) {
1375
+ await this.loadMarkets();
1376
+ const market = this.market(symbol);
1377
+ const request = {
1378
+ 'symbol': market['id'].toUpperCase(),
1379
+ };
1380
+ const response = await this.privateSwapGetV1TradeUserLeverage(this.extend(request, params));
1381
+ //
1382
+ // {
1383
+ // "data": { symbol: "ETHINR", longLeverage: 1, shortLeverage: 1, marginMode: "isolated" }
1384
+ // }
1385
+ //
1386
+ const data = this.safeDict(response, 'data', {});
1387
+ return this.parseLeverage(data, market);
1388
+ }
1389
+ /**
1390
+ * @method
1391
+ * @name zebpay#setLeverage
1392
+ * @description set the level of leverage for a market
1393
+ * @see [Swap] https://github.com/zebpay/zebpay-api-references/blob/main/futures/api-reference/private-endpoints/trade.md#-update-user-leverage
1394
+ * @param {float} leverage the rate of leverage
1395
+ * @param {string} symbol unified market symbol
1396
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1397
+ * @returns {object} response from the exchange
1398
+ */
1399
+ async setLeverage(leverage, symbol = undefined, params = {}) {
1400
+ if (symbol === undefined) {
1401
+ throw new errors.ArgumentsRequired(this.id + ' setLeverage() requires a symbol argument');
1402
+ }
1403
+ await this.loadMarkets();
1404
+ const market = this.market(symbol);
1405
+ const request = {
1406
+ 'leverage': leverage,
1407
+ 'symbol': market['id'],
1408
+ };
1409
+ //
1410
+ // { data: { "symbol", "longLeverage": 10, "shortLeverage": 1, "marginMode": "isolated" }
1411
+ //
1412
+ const response = await this.privateSwapPostV1TradeUpdateUserLeverage(this.extend(request, params));
1413
+ return response;
1414
+ }
1415
+ /**
1416
+ * @method
1417
+ * @name zebpay#fetchPositions
1418
+ * @see [Swap] https://github.com/zebpay/zebpay-api-references/blob/main/futures/api-reference/private-endpoints/trade.md#--get-positions
1419
+ * @description Fetches current contract trading positions
1420
+ * @param {string[]} symbols List of unified symbols
1421
+ * @param {object} [params] Not used by krakenfutures
1422
+ * @returns Parsed exchange response for positions
1423
+ */
1424
+ async fetchPositions(symbols = undefined, params = {}) {
1425
+ await this.loadMarkets();
1426
+ const request = {};
1427
+ if (symbols !== undefined) {
1428
+ request['symbols'] = this.marketIds(symbols);
1429
+ }
1430
+ const response = await this.privateSwapGetV1TradePositions(this.extend(request, params));
1431
+ //
1432
+ // {
1433
+ // "data": [
1434
+ // {
1435
+ // "id": "31998678-6056-413f-9d0d-fc3678641650",
1436
+ // "symbol": "ETHINR",
1437
+ // "entryPrice": "0.7533",
1438
+ // "datetime": "2022-03-03T22:51:16.566Z",
1439
+ // "contractSize": "230"
1440
+ // }
1441
+ // ],
1442
+ // }
1443
+ //
1444
+ const positions = this.safeList(response, 'data', []);
1445
+ const result = this.parsePositions(positions);
1446
+ return this.filterByArrayPositions(result, 'symbol', symbols, false);
1447
+ }
1448
+ /**
1449
+ * @method
1450
+ * @name zebpayfutures#addMargin
1451
+ * @description add margin
1452
+ * @see [Swap] https://github.com/zebpay/zebpay-api-references/blob/main/futures/api-reference/private-endpoints/trade.md#-add-margin-to-position
1453
+ * @param {string} symbol unified market symbol
1454
+ * @param {float} amount amount of margin to add
1455
+ * @param {object} [params] extra parameters specific to the exchange API endpoint.
1456
+ * @param {string} [params.positionId] PositionId of the order to add margin.
1457
+ * @param {string} [params.timestamp] Tiemstamp.
1458
+ * @returns {object} a [margin structure]{@link https://docs.ccxt.com/#/?id=add-margin-structure}
1459
+ */
1460
+ async addMargin(symbol, amount, params = {}) {
1461
+ await this.loadMarkets();
1462
+ const market = this.market(symbol);
1463
+ const request = {
1464
+ 'symbol': market['id'],
1465
+ 'amount': amount,
1466
+ };
1467
+ const response = await this.privateSwapPostV1TradeAddMargin(this.extend(request, params));
1468
+ //
1469
+ // {
1470
+ // "code": "200000",
1471
+ // "data": {
1472
+ // "symbol": "BTCINR",
1473
+ // "type": "add",
1474
+ // "amount": 1000,
1475
+ // "code": "INR",
1476
+ // "status": "ok"
1477
+ // }
1478
+ // }
1479
+ //
1480
+ //
1481
+ // {
1482
+ // "code":"200000",
1483
+ // "msg":"Position does not exist"
1484
+ // }
1485
+ //
1486
+ const data = this.safeDict(response, 'data', {});
1487
+ return this.extend(this.parseMarginModification(data, market), {
1488
+ 'amount': amount,
1489
+ 'direction': 'in',
1490
+ });
1491
+ }
1492
+ /**
1493
+ * @method
1494
+ * @name zebpayfutures#reduceMargin
1495
+ * @description add margin
1496
+ * @see [Swap] https://github.com/zebpay/zebpay-api-references/blob/main/futures/api-reference/private-endpoints/trade.md#-reduce-margin-from-position
1497
+ * @param {string} symbol unified market symbol.
1498
+ * @param {float} amount amount of margin to add.
1499
+ * @param {object} [params] extra parameters specific to the exchange API endpoint.
1500
+ * @param {string} [params.positionId] PositionId of the order to add margin.
1501
+ * @param {string} [params.timestamp] Tiemstamp.
1502
+ * @returns {object} a [margin structure]{@link https://docs.ccxt.com/#/?id=add-margin-structure}
1503
+ */
1504
+ async reduceMargin(symbol, amount, params = {}) {
1505
+ await this.loadMarkets();
1506
+ const market = this.market(symbol);
1507
+ const request = {
1508
+ 'symbol': market['id'],
1509
+ 'amount': amount,
1510
+ };
1511
+ const response = await this.privateSwapPostV1TradeReduceMargin(this.extend(request, params));
1512
+ //
1513
+ // {
1514
+ // "code": "200000",
1515
+ // "data": {
1516
+ // "symbol": "BTCINR",
1517
+ // "type": "reduce",
1518
+ // "amount": 1000,
1519
+ // "code": "INR",
1520
+ // "status": "ok"
1521
+ // }
1522
+ // }
1523
+ //
1524
+ const data = this.safeDict(response, 'data', {});
1525
+ return this.extend(this.parseMarginModification(data, market), {
1526
+ 'amount': amount,
1527
+ 'direction': 'out',
1528
+ });
1529
+ }
1530
+ async fetchSpotMarkets(params = {}) {
1531
+ const response = await this.publicSpotGetV2ExExchangeInfo(params);
1532
+ //
1533
+ // {
1534
+ // "data": {
1535
+ // "symbol": "ETH-INR",
1536
+ // "name": "ETH-INR",
1537
+ // "baseCurrency": "ETH",
1538
+ // "quoteCurrency": "INR",
1539
+ // "feeCurrency": "INR",
1540
+ // "baseMinSize": "",
1541
+ // "quoteMinSize": "100",
1542
+ // "baseMaxSize": "",
1543
+ // "quoteMaxSize": "2000",
1544
+ // "baseIncrement": "0.00001"
1545
+ // "quoteIncrement": "0.00001",
1546
+ // "enableTrading": true
1547
+ // }
1548
+ // }
1549
+ //
1550
+ const result = [];
1551
+ const data = this.safeDict(response, 'data', {});
1552
+ const markets = this.safeList(data, 'symbols', []);
1553
+ for (let i = 0; i < markets.length; i++) {
1554
+ const market = markets[i];
1555
+ const id = this.safeString(market, 'symbol');
1556
+ const baseId = this.safeString(market, 'baseAsset');
1557
+ const quoteId = this.safeString(market, 'quoteAsset');
1558
+ const base = this.safeCurrencyCode(baseId);
1559
+ const quote = this.safeCurrencyCode(quoteId);
1560
+ const symbol = base + '/' + quote;
1561
+ result.push({
1562
+ 'id': id,
1563
+ 'symbol': symbol,
1564
+ 'base': base,
1565
+ 'quote': quote,
1566
+ 'baseId': baseId,
1567
+ 'quoteId': quoteId,
1568
+ 'type': 'spot',
1569
+ 'spot': true,
1570
+ 'swap': false,
1571
+ 'margin': false,
1572
+ 'future': false,
1573
+ 'option': false,
1574
+ 'active': undefined,
1575
+ 'contract': undefined,
1576
+ 'taker': this.safeNumber(market, 'takerFee'),
1577
+ 'maker': this.safeNumber(market, 'makerFee'),
1578
+ 'strike': undefined,
1579
+ 'optionType': undefined,
1580
+ 'precision': {
1581
+ 'amount': this.safeNumber(market, 'lotSz'),
1582
+ 'price': this.safeNumber(market, 'tickSz'),
1583
+ },
1584
+ 'limits': {
1585
+ 'amount': {
1586
+ 'min': undefined,
1587
+ 'max': undefined,
1588
+ },
1589
+ 'price': {
1590
+ 'min': undefined,
1591
+ 'max': undefined,
1592
+ },
1593
+ 'cost': {
1594
+ 'min': undefined,
1595
+ 'max': undefined,
1596
+ },
1597
+ },
1598
+ 'info': market,
1599
+ });
1600
+ }
1601
+ return result;
1602
+ }
1603
+ async fetchSwapMarkets(params = {}) {
1604
+ const response = await this.publicSwapGetV1MarketMarkets(params);
1605
+ //
1606
+ // {
1607
+ // "data": {
1608
+ // "symbol": "ETHUSDT",
1609
+ // "status": "TRADING",
1610
+ // "mainMarginPercent": "10",
1611
+ // "baseAsset": "ETH",
1612
+ // "quoteAsset": "USDT",
1613
+ // "pricePrecision": 1,
1614
+ // "quantityPrecision": 0.05,
1615
+ // "baseAssetPrecision": 0,
1616
+ // "quotePrecision": 0,
1617
+ // "orderType": ["LIMIT", "MARKET" ]
1618
+ // "timeInForce": ["GTC"],
1619
+ // "makerFee": "0.01",
1620
+ // "takerFee": "0.01",
1621
+ // "minLeverage": "1",
1622
+ // "maxLeverage": "20"
1623
+ // "tickSz": "0.1",
1624
+ // "lotSz": "0.1"
1625
+ // }
1626
+ // }
1627
+ //
1628
+ const result = [];
1629
+ const data = this.safeDict(response, 'data', {});
1630
+ const markets = this.safeList(data, 'symbols', []);
1631
+ for (let i = 0; i < markets.length; i++) {
1632
+ const market = markets[i];
1633
+ const id = this.safeString(market, 'symbol');
1634
+ const baseId = this.safeString(market, 'baseAsset');
1635
+ const quoteId = this.safeString(market, 'quoteAsset');
1636
+ const base = this.safeCurrencyCode(baseId);
1637
+ const quote = this.safeCurrencyCode(quoteId);
1638
+ const settle = this.safeCurrencyCode(quoteId);
1639
+ const status = this.safeString(market, 'status');
1640
+ const symbol = base + '/' + quote;
1641
+ result.push(this.safeMarketStructure({
1642
+ 'id': id,
1643
+ 'symbol': symbol + ':' + settle,
1644
+ 'base': base,
1645
+ 'quote': quote,
1646
+ 'baseId': baseId,
1647
+ 'quoteId': quoteId,
1648
+ 'spot': false,
1649
+ 'margin': false,
1650
+ 'swap': true,
1651
+ 'future': false,
1652
+ 'type': 'swap',
1653
+ 'option': false,
1654
+ 'active': (status === 'Open'),
1655
+ 'contract': true,
1656
+ 'taker': this.safeNumber(market, 'takerFee'),
1657
+ 'maker': this.safeNumber(market, 'makerFee'),
1658
+ 'strike': undefined,
1659
+ 'optionType': undefined,
1660
+ 'precision': {
1661
+ 'amount': this.safeNumber(market, 'lotSz'),
1662
+ 'price': this.safeNumber(market, 'tickSz'),
1663
+ },
1664
+ 'limits': {
1665
+ 'leverage': {
1666
+ 'min': this.safeNumber(market, 'minLeverage'),
1667
+ 'max': this.safeNumber(market, 'maxLeverage'),
1668
+ },
1669
+ },
1670
+ 'info': market,
1671
+ }));
1672
+ }
1673
+ return result;
1674
+ }
1675
+ parseBalance(response) {
1676
+ const result = {
1677
+ 'info': response,
1678
+ 'timestamp': undefined,
1679
+ 'datetime': undefined,
1680
+ };
1681
+ const currencyList = this.safeList(response, 'data', []);
1682
+ for (let i = 0; i < currencyList.length; i++) {
1683
+ const entry = currencyList[i];
1684
+ const account = this.account();
1685
+ account['total'] = this.safeString(entry, 'total');
1686
+ account['free'] = this.safeString(entry, 'free');
1687
+ account['used'] = this.safeString(entry, 'used');
1688
+ const currencyId = this.safeString(entry, 'currency');
1689
+ const code = this.safeCurrencyCode(currencyId);
1690
+ result[code] = account;
1691
+ }
1692
+ return this.safeBalance(result);
1693
+ }
1694
+ parsePosition(position, market = undefined) {
1695
+ //
1696
+ // isolated
1697
+ // {
1698
+ // "id":"long",
1699
+ // "symbol":"pf_ftmusd",
1700
+ // "entryPrice":"0.4921",
1701
+ // "datetime":"2023-02-22T11:37:16.685Z",
1702
+ // "contractSize":"1",
1703
+ // "leverage":"1.0"
1704
+ // }
1705
+ //
1706
+ const leverage = this.safeNumber(position, 'leverage');
1707
+ const datetime = this.safeString(position, 'datetime');
1708
+ const marketId = this.safeString(position, 'symbol');
1709
+ market = this.safeMarket(marketId, market);
1710
+ return {
1711
+ 'info': position,
1712
+ 'symbol': marketId,
1713
+ 'timestamp': this.parse8601(datetime),
1714
+ 'datetime': datetime,
1715
+ 'initialMargin': this.safeNumber(position, 'initialMargin'),
1716
+ 'initialMarginPercentage': undefined,
1717
+ 'maintenanceMargin': undefined,
1718
+ 'maintenanceMarginPercentage': undefined,
1719
+ 'entryPrice': this.safeNumber(position, 'entryPrice'),
1720
+ 'notional': this.safeNumber(position, 'notional'),
1721
+ 'leverage': leverage,
1722
+ 'unrealizedPnl': undefined,
1723
+ 'contracts': this.safeNumber(position, 'contracts'),
1724
+ 'contractSize': this.safeNumber(market, 'contractSize'),
1725
+ 'marginRatio': undefined,
1726
+ 'liquidationPrice': this.safeNumber(position, 'liquidationPrice'),
1727
+ 'markPrice': undefined,
1728
+ 'collateral': undefined,
1729
+ 'marginType': 'isolated',
1730
+ 'side': this.safeString(position, 'side'),
1731
+ 'percentage': undefined,
1732
+ };
1733
+ }
1734
+ parseLeverage(leverage, market = undefined) {
1735
+ const marketId = this.safeString(leverage, 'symbol');
1736
+ const info = this.safeDict(leverage, 'info');
1737
+ const leverageValue = this.safeInteger(leverage, 'longLeverage');
1738
+ const leverageValueShort = this.safeInteger(leverage, 'shortLeverage');
1739
+ const marginMode = this.safeString(leverage, 'marginMode');
1740
+ return {
1741
+ 'info': info,
1742
+ 'symbol': marketId,
1743
+ 'marginMode': marginMode,
1744
+ 'longLeverage': leverageValue,
1745
+ 'shortLeverage': leverageValueShort,
1746
+ };
1747
+ }
1748
+ parseTradingFee(fee, market = undefined) {
1749
+ const marketId = this.safeString(fee, 'symbol');
1750
+ const symbol = this.safeSymbol(marketId, market);
1751
+ return {
1752
+ 'info': fee,
1753
+ 'symbol': symbol,
1754
+ 'maker': this.safeNumber2(fee, 'makerFeeRate', 'makerFee'),
1755
+ 'taker': this.safeNumber2(fee, 'takerFeeRate', 'takerFee'),
1756
+ 'percentage': undefined,
1757
+ 'tierBased': undefined,
1758
+ };
1759
+ }
1760
+ parseTicker(ticker, market = undefined) {
1761
+ //
1762
+ // [
1763
+ // {
1764
+ // "symbol": "BTC-INR",
1765
+ // "bestBid": "4900000",
1766
+ // "bestBidQty": "0.00014938",
1767
+ // "bestAsk": "",
1768
+ // "bestAskQty": "0",
1769
+ // "priceChange": "-98134.56",
1770
+ // "priceChangePercent": "-1.84",
1771
+ // "high": "5433400",
1772
+ // "low": "5333400",
1773
+ // "vol": "0.0002",
1774
+ // "volValue": "1066.68",
1775
+ // "last": "5333400"
1776
+ // }
1777
+ // ]
1778
+ //
1779
+ const timestamp = this.safeInteger2(ticker, 'timestamp', 'ts', undefined);
1780
+ const marketId = this.safeString(ticker, 'symbol');
1781
+ market = this.safeMarket(marketId);
1782
+ const close = this.safeString(ticker, 'close', undefined);
1783
+ const last = this.safeString(ticker, 'last', undefined);
1784
+ const percentage = this.safeString(ticker, 'percentage');
1785
+ const bidVolume = this.safeString(ticker, 'bidVolume');
1786
+ const askVolume = this.safeString(ticker, 'askVolume');
1787
+ return this.safeTicker({
1788
+ 'id': marketId,
1789
+ 'symbol': market['symbol'],
1790
+ 'timestamp': timestamp,
1791
+ 'datetime': this.iso8601(timestamp),
1792
+ 'high': this.safeString(ticker, 'high'),
1793
+ 'low': this.safeString(ticker, 'low'),
1794
+ 'bid': this.safeString(ticker, 'bid'),
1795
+ 'bidVolume': bidVolume,
1796
+ 'ask': this.safeString(ticker, 'ask'),
1797
+ 'askVolume': askVolume,
1798
+ 'vwap': undefined,
1799
+ 'open': undefined,
1800
+ 'close': close,
1801
+ 'last': last,
1802
+ 'previousClose': this.safeString(ticker, 'previousClose'),
1803
+ 'change': this.safeString(ticker, 'change'),
1804
+ 'percentage': percentage,
1805
+ 'average': this.safeString(ticker, 'average'),
1806
+ 'baseVolume': this.safeString(ticker, 'baseVolume'),
1807
+ 'quoteVolume': this.safeString(ticker, 'quoteVolume'),
1808
+ 'markPrice': undefined,
1809
+ 'info': ticker,
1810
+ }, market);
1811
+ }
1812
+ parseMarginModification(info, market = undefined) {
1813
+ //
1814
+ // {
1815
+ // "symbol": "BTCINR",
1816
+ // "type": "reduce",
1817
+ // "amount": 1000,
1818
+ // "code": "INR",
1819
+ // "status": "ok"
1820
+ // }
1821
+ //
1822
+ const timestamp = this.milliseconds();
1823
+ return {
1824
+ 'info': info,
1825
+ 'symbol': market['id'],
1826
+ 'type': undefined,
1827
+ 'marginMode': undefined,
1828
+ 'amount': this.safeNumber(info, 'amount'),
1829
+ 'total': undefined,
1830
+ 'code': this.safeString(info, 'code'),
1831
+ 'status': this.safeString(info, 'status'),
1832
+ 'timestamp': timestamp,
1833
+ 'datetime': this.iso8601(timestamp),
1834
+ };
1835
+ }
1836
+ sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
1837
+ params = this.omit(params, 'defaultType');
1838
+ const isV1 = path.indexOf('v1/') > -1;
1839
+ const marketType = isV1 ? 'swap' : 'spot';
1840
+ let url = this.urls['api'][marketType];
1841
+ const tail = '/api/' + this.implodeParams(path, params);
1842
+ url += tail;
1843
+ const timestamp = this.milliseconds().toString();
1844
+ let signature = '';
1845
+ const query = this.omit(params, this.extractParams(path));
1846
+ const queryLength = Object.keys(query).length;
1847
+ const access = this.safeString(api, 0, 'public');
1848
+ if (access === 'public') {
1849
+ if (method === 'GET' || method === 'DELETE') {
1850
+ if (queryLength) {
1851
+ url += '?' + this.urlencode(query);
1852
+ }
1853
+ }
1854
+ else {
1855
+ body = JSON.stringify(params);
1856
+ headers = {
1857
+ 'Referrer': 'ccxt',
1858
+ 'Content-Type': 'application/json',
1859
+ };
1860
+ }
1861
+ }
1862
+ else {
1863
+ this.checkRequiredCredentials();
1864
+ const isSpot = marketType === 'spot';
1865
+ params['timestamp'] = timestamp;
1866
+ if (method === 'GET' || (method === 'DELETE' && isSpot)) {
1867
+ // For GET/DELETE: Append params to URL and sign the query string
1868
+ const queryString = this.urlencode(params);
1869
+ signature = this.hmac(this.encode(queryString), this.encode(this.secret), sha256.sha256, 'hex');
1870
+ url += '?' + queryString;
1871
+ }
1872
+ else {
1873
+ // For POST/PUT: Convert body to JSON and sign the stringified payload
1874
+ body = this.json(params);
1875
+ signature = this.hmac(this.encode(body), this.encode(this.secret), sha256.sha256, 'hex');
1876
+ }
1877
+ headers = {
1878
+ 'Referrer': 'ccxt',
1879
+ 'X-AUTH-APIKEY': this.apiKey,
1880
+ 'X-AUTH-SIGNATURE': signature,
1881
+ };
1882
+ headers['Content-Type'] = 'application/json';
1883
+ }
1884
+ return { 'url': url, 'method': method, 'body': body, 'headers': headers };
1885
+ }
1886
+ handleErrors(code, reason, url, method, headers, body, response, requestHeaders, requestBody) {
1887
+ if (!response) {
1888
+ this.throwBroadlyMatchedException(this.exceptions['broad'], body, body);
1889
+ return undefined;
1890
+ }
1891
+ //
1892
+ // bad
1893
+ // { "code": "400100", "msg": "validation.createOrder.clientOidIsRequired" }
1894
+ // good
1895
+ // { code: "200000", data: { ... }}
1896
+ // {"statusDescription":"Order quantity is out of range","data":{},"statusCode":400,"customMessage":["Order quantity is out of range"]}
1897
+ //
1898
+ const errorCode = this.safeString2(response, 'code', 'statusCode');
1899
+ const message = this.safeString2(response, 'msg', 'statusDescription');
1900
+ const feedback = this.id + ' ' + message;
1901
+ this.throwBroadlyMatchedException(this.exceptions['broad'], message, feedback);
1902
+ this.throwExactlyMatchedException(this.exceptions['exact'], message, feedback);
1903
+ this.throwExactlyMatchedException(this.exceptions['exact'], errorCode, feedback);
1904
+ return undefined;
1905
+ }
1906
+ }
1907
+
1908
+ exports["default"] = zebpay;