ccxt 4.5.62 → 4.5.64

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 (900) hide show
  1. package/README.md +7 -8
  2. package/dist/ccxt.browser.min.js +4 -4
  3. package/dist/cjs/ccxt.js +11 -12
  4. package/dist/cjs/src/abstract/aftermath.js +1 -1
  5. package/dist/cjs/src/abstract/alpaca.js +1 -1
  6. package/dist/cjs/src/abstract/apex.js +1 -1
  7. package/dist/cjs/src/abstract/aster.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/btcbox.js +1 -1
  31. package/dist/cjs/src/abstract/btcmarkets.js +1 -1
  32. package/dist/cjs/src/abstract/btcturk.js +1 -1
  33. package/dist/cjs/src/abstract/bullish.js +1 -1
  34. package/dist/cjs/src/abstract/bybit.js +1 -1
  35. package/dist/cjs/src/abstract/bydfi.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/coincheck.js +1 -1
  41. package/dist/cjs/src/abstract/coinex.js +1 -1
  42. package/dist/cjs/src/abstract/coinmate.js +1 -1
  43. package/dist/cjs/src/abstract/coinone.js +1 -1
  44. package/dist/cjs/src/abstract/coinsph.js +1 -1
  45. package/dist/cjs/src/abstract/coinspot.js +1 -1
  46. package/dist/cjs/src/abstract/cryptocom.js +1 -1
  47. package/dist/cjs/src/abstract/cryptomus.js +1 -1
  48. package/dist/cjs/src/abstract/deepcoin.js +1 -1
  49. package/dist/cjs/src/abstract/delta.js +1 -1
  50. package/dist/cjs/src/abstract/deribit.js +1 -1
  51. package/dist/cjs/src/abstract/derive.js +1 -1
  52. package/dist/cjs/src/abstract/digifinex.js +1 -1
  53. package/dist/cjs/src/abstract/dydx.js +1 -1
  54. package/dist/cjs/src/abstract/exmo.js +1 -1
  55. package/dist/cjs/src/abstract/extended.js +1 -1
  56. package/dist/cjs/src/abstract/foxbit.js +1 -1
  57. package/dist/cjs/src/abstract/gate.js +1 -1
  58. package/dist/cjs/src/abstract/gemini.js +1 -1
  59. package/dist/cjs/src/abstract/grvt.js +1 -1
  60. package/dist/cjs/src/abstract/hashkey.js +1 -1
  61. package/dist/cjs/src/abstract/hibachi.js +1 -1
  62. package/dist/cjs/src/abstract/hitbtc.js +1 -1
  63. package/dist/cjs/src/abstract/hollaex.js +1 -1
  64. package/dist/cjs/src/abstract/htx.js +1 -1
  65. package/dist/cjs/src/abstract/hyperliquid.js +1 -1
  66. package/dist/cjs/src/abstract/independentreserve.js +1 -1
  67. package/dist/cjs/src/abstract/indodax.js +1 -1
  68. package/dist/cjs/src/abstract/kraken.js +1 -1
  69. package/dist/cjs/src/abstract/krakenfutures.js +1 -1
  70. package/dist/cjs/src/abstract/kucoin.js +1 -1
  71. package/dist/cjs/src/abstract/latoken.js +1 -1
  72. package/dist/cjs/src/abstract/lbank.js +1 -1
  73. package/dist/cjs/src/abstract/lighter.js +1 -1
  74. package/dist/cjs/src/abstract/luno.js +1 -1
  75. package/dist/cjs/src/abstract/mercado.js +1 -1
  76. package/dist/cjs/src/abstract/mexc.js +1 -1
  77. package/dist/cjs/src/abstract/modetrade.js +1 -1
  78. package/dist/cjs/src/abstract/{ascendex.js → mudrex.js} +1 -1
  79. package/dist/cjs/src/abstract/ndax.js +1 -1
  80. package/dist/cjs/src/abstract/okx.js +1 -1
  81. package/dist/cjs/src/abstract/onetrading.js +1 -1
  82. package/dist/cjs/src/abstract/p2b.js +1 -1
  83. package/dist/cjs/src/abstract/pacifica.js +1 -1
  84. package/dist/cjs/src/abstract/paradex.js +1 -1
  85. package/dist/cjs/src/abstract/paymium.js +1 -1
  86. package/dist/cjs/src/abstract/phemex.js +1 -1
  87. package/dist/cjs/src/abstract/poloniex.js +1 -1
  88. package/dist/cjs/src/abstract/tokocrypto.js +1 -1
  89. package/dist/cjs/src/abstract/toobit.js +1 -1
  90. package/dist/cjs/src/abstract/upbit.js +1 -1
  91. package/dist/cjs/src/abstract/weex.js +1 -1
  92. package/dist/cjs/src/abstract/whitebit.js +1 -1
  93. package/dist/cjs/src/abstract/woo.js +1 -1
  94. package/dist/cjs/src/abstract/woofipro.js +1 -1
  95. package/dist/cjs/src/abstract/xt.js +1 -1
  96. package/dist/cjs/src/abstract/zaif.js +1 -1
  97. package/dist/cjs/src/abstract/zebpay.js +1 -1
  98. package/dist/cjs/src/aftermath.js +0 -1
  99. package/dist/cjs/src/alpaca.js +1 -1
  100. package/dist/cjs/src/apex.js +1 -1
  101. package/dist/cjs/src/aster.js +3 -3
  102. package/dist/cjs/src/backpack.js +1 -1
  103. package/dist/cjs/src/base/Exchange.js +34 -3
  104. package/dist/cjs/src/base/Precise.js +0 -6
  105. package/dist/cjs/src/base/errors.js +0 -6
  106. package/dist/cjs/src/base/functions/crypto.js +1 -1
  107. package/dist/cjs/src/base/functions/encode.js +1 -1
  108. package/dist/cjs/src/base/functions/io.js +1 -1
  109. package/dist/cjs/src/base/functions/misc.js +0 -1
  110. package/dist/cjs/src/base/functions/number.js +0 -6
  111. package/dist/cjs/src/base/functions/platform.js +0 -6
  112. package/dist/cjs/src/base/functions/rsa.js +0 -1
  113. package/dist/cjs/src/base/functions/string.js +0 -6
  114. package/dist/cjs/src/base/functions/throttle.js +1 -1
  115. package/dist/cjs/src/base/functions/time.js +0 -6
  116. package/dist/cjs/src/base/functions/totp.js +0 -1
  117. package/dist/cjs/src/base/functions/type.js +0 -6
  118. package/dist/cjs/src/base/functions.js +1 -1
  119. package/dist/cjs/src/base/ws/Cache.js +0 -6
  120. package/dist/cjs/src/base/ws/Client.js +0 -1
  121. package/dist/cjs/src/base/ws/Future.js +1 -1
  122. package/dist/cjs/src/base/ws/OrderBook.js +1 -1
  123. package/dist/cjs/src/base/ws/OrderBookSide.js +0 -6
  124. package/dist/cjs/src/base/ws/WsClient.js +1 -1
  125. package/dist/cjs/src/bequant.js +1 -1
  126. package/dist/cjs/src/bigone.js +1 -1
  127. package/dist/cjs/src/binance.js +41 -22
  128. package/dist/cjs/src/binancecoinm.js +1 -1
  129. package/dist/cjs/src/binanceus.js +1 -1
  130. package/dist/cjs/src/binanceusdm.js +1 -1
  131. package/dist/cjs/src/bingx.js +1 -1
  132. package/dist/cjs/src/bit2c.js +1 -1
  133. package/dist/cjs/src/bitbank.js +1 -1
  134. package/dist/cjs/src/bitbns.js +1 -1
  135. package/dist/cjs/src/bitfinex.js +1 -1
  136. package/dist/cjs/src/bitflyer.js +1 -1
  137. package/dist/cjs/src/bitget.js +6 -4
  138. package/dist/cjs/src/bithumb.js +1 -1
  139. package/dist/cjs/src/bitmart.js +1 -1
  140. package/dist/cjs/src/bitmex.js +2 -2
  141. package/dist/cjs/src/bitopro.js +1 -1
  142. package/dist/cjs/src/bitrue.js +1 -1
  143. package/dist/cjs/src/bitso.js +1 -1
  144. package/dist/cjs/src/bitstamp.js +3 -2
  145. package/dist/cjs/src/bitteam.js +1 -1
  146. package/dist/cjs/src/bittrade.js +1 -1
  147. package/dist/cjs/src/bitvavo.js +1 -0
  148. package/dist/cjs/src/blockchaincom.js +1 -1
  149. package/dist/cjs/src/blofin.js +1 -1
  150. package/dist/cjs/src/btcbox.js +2 -2
  151. package/dist/cjs/src/btcmarkets.js +1 -1
  152. package/dist/cjs/src/btcturk.js +1 -1
  153. package/dist/cjs/src/bullish.js +2 -2
  154. package/dist/cjs/src/bybit.js +115 -13
  155. package/dist/cjs/src/bybiteu.js +4 -1
  156. package/dist/cjs/src/bydfi.js +1 -1
  157. package/dist/cjs/src/cex.js +2 -1
  158. package/dist/cjs/src/coinbase.js +3 -2
  159. package/dist/cjs/src/coinbaseinternational.js +1 -1
  160. package/dist/cjs/src/coincheck.js +52 -1
  161. package/dist/cjs/src/coinex.js +1 -1
  162. package/dist/cjs/src/coinmate.js +1 -1
  163. package/dist/cjs/src/coinone.js +1 -1
  164. package/dist/cjs/src/coinsph.js +35 -29
  165. package/dist/cjs/src/coinspot.js +1 -1
  166. package/dist/cjs/src/cryptocom.js +1 -1
  167. package/dist/cjs/src/cryptomus.js +1 -1
  168. package/dist/cjs/src/deepcoin.js +1 -1
  169. package/dist/cjs/src/delta.js +24 -2
  170. package/dist/cjs/src/deribit.js +1 -1
  171. package/dist/cjs/src/derive.js +2 -2
  172. package/dist/cjs/src/digifinex.js +13 -1
  173. package/dist/cjs/src/dydx.js +3 -3
  174. package/dist/cjs/src/exmo.js +1 -1
  175. package/dist/cjs/src/extended.js +2 -2
  176. package/dist/cjs/src/fmfwio.js +1 -1
  177. package/dist/cjs/src/foxbit.js +1 -1
  178. package/dist/cjs/src/gate.js +1 -1
  179. package/dist/cjs/src/gateeu.js +2 -1
  180. package/dist/cjs/src/gemini.js +1 -1
  181. package/dist/cjs/src/grvt.js +2 -2
  182. package/dist/cjs/src/hashkey.js +128 -7
  183. package/dist/cjs/src/hibachi.js +21 -11
  184. package/dist/cjs/src/hitbtc.js +0 -1
  185. package/dist/cjs/src/hollaex.js +1 -1
  186. package/dist/cjs/src/htx.js +1 -1
  187. package/dist/cjs/src/hyperliquid.js +14 -7
  188. package/dist/cjs/src/independentreserve.js +1 -1
  189. package/dist/cjs/src/indodax.js +1 -1
  190. package/dist/cjs/src/kraken.js +3 -1
  191. package/dist/cjs/src/krakenfutures.js +1 -1
  192. package/dist/cjs/src/kucoin.js +2 -2
  193. package/dist/cjs/src/kucoineu.js +35 -0
  194. package/dist/cjs/src/kucoinfutures.js +1 -1
  195. package/dist/cjs/src/latoken.js +1 -1
  196. package/dist/cjs/src/lbank.js +1 -1
  197. package/dist/cjs/src/lighter.js +7 -5
  198. package/dist/cjs/src/luno.js +1 -1
  199. package/dist/cjs/src/mercado.js +1 -1
  200. package/dist/cjs/src/mexc.js +1 -1
  201. package/dist/cjs/src/modetrade.js +1 -1
  202. package/dist/cjs/src/mudrex.js +1328 -0
  203. package/dist/cjs/src/myokx.js +4 -1
  204. package/dist/cjs/src/ndax.js +1 -1
  205. package/dist/cjs/src/okx.js +1 -1
  206. package/dist/cjs/src/okxus.js +2 -6
  207. package/dist/cjs/src/onetrading.js +2 -1
  208. package/dist/cjs/src/p2b.js +1 -1
  209. package/dist/cjs/src/pacifica.js +2 -2
  210. package/dist/cjs/src/paradex.js +1 -1
  211. package/dist/cjs/src/paymium.js +1 -1
  212. package/dist/cjs/src/poloniex.js +2 -2
  213. package/dist/cjs/src/pro/alpaca.js +1 -1
  214. package/dist/cjs/src/pro/apex.js +1 -1
  215. package/dist/cjs/src/pro/aster.js +1 -1
  216. package/dist/cjs/src/pro/backpack.js +1 -1
  217. package/dist/cjs/src/pro/bequant.js +1 -1
  218. package/dist/cjs/src/pro/binancecoinm.js +1 -1
  219. package/dist/cjs/src/pro/binanceus.js +1 -1
  220. package/dist/cjs/src/pro/binanceusdm.js +1 -1
  221. package/dist/cjs/src/pro/bingx.js +5 -3
  222. package/dist/cjs/src/pro/bitfinex.js +1 -1
  223. package/dist/cjs/src/pro/bitget.js +10 -8
  224. package/dist/cjs/src/pro/bithumb.js +1 -1
  225. package/dist/cjs/src/pro/bitmart.js +1 -1
  226. package/dist/cjs/src/pro/bitmex.js +1 -1
  227. package/dist/cjs/src/pro/bitrue.js +1 -1
  228. package/dist/cjs/src/pro/bitstamp.js +1 -1
  229. package/dist/cjs/src/pro/bitvavo.js +1 -1
  230. package/dist/cjs/src/pro/blockchaincom.js +1 -1
  231. package/dist/cjs/src/pro/blofin.js +1 -1
  232. package/dist/cjs/src/pro/bullish.js +1 -1
  233. package/dist/cjs/src/pro/bybit.js +1 -1
  234. package/dist/cjs/src/pro/bybiteu.js +1 -1
  235. package/dist/cjs/src/pro/bydfi.js +1 -1
  236. package/dist/cjs/src/pro/cex.js +2 -2
  237. package/dist/cjs/src/pro/coinbase.js +1 -1
  238. package/dist/cjs/src/pro/coinbaseexchange.js +1 -1
  239. package/dist/cjs/src/pro/coinbaseinternational.js +1 -1
  240. package/dist/cjs/src/pro/coincheck.js +1 -1
  241. package/dist/cjs/src/pro/coinex.js +1 -1
  242. package/dist/cjs/src/pro/coinone.js +1 -1
  243. package/dist/cjs/src/pro/cryptocom.js +1 -1
  244. package/dist/cjs/src/pro/deepcoin.js +1 -1
  245. package/dist/cjs/src/pro/deribit.js +1 -1
  246. package/dist/cjs/src/pro/dydx.js +1 -1
  247. package/dist/cjs/src/pro/exmo.js +1 -1
  248. package/dist/cjs/src/pro/gate.js +1 -1
  249. package/dist/cjs/src/pro/gateeu.js +1 -1
  250. package/dist/cjs/src/pro/gemini.js +1 -1
  251. package/dist/cjs/src/pro/grvt.js +2 -2
  252. package/dist/cjs/src/pro/hashkey.js +2 -2
  253. package/dist/cjs/src/pro/hitbtc.js +1 -1
  254. package/dist/cjs/src/pro/hollaex.js +1 -1
  255. package/dist/cjs/src/pro/htx.js +1 -1
  256. package/dist/cjs/src/pro/hyperliquid.js +1 -1
  257. package/dist/cjs/src/pro/independentreserve.js +1 -1
  258. package/dist/cjs/src/pro/kraken.js +2 -2
  259. package/dist/cjs/src/pro/krakenfutures.js +1 -1
  260. package/dist/cjs/src/pro/kucoin.js +1 -1
  261. package/dist/cjs/src/pro/kucoineu.js +29 -0
  262. package/dist/cjs/src/pro/kucoinfutures.js +1 -1
  263. package/dist/cjs/src/pro/lbank.js +0 -1
  264. package/dist/cjs/src/pro/lighter.js +13 -4
  265. package/dist/cjs/src/pro/luno.js +1 -1
  266. package/dist/cjs/src/pro/mexc.js +1 -1
  267. package/dist/cjs/src/pro/mudrex.js +226 -0
  268. package/dist/cjs/src/pro/myokx.js +1 -1
  269. package/dist/cjs/src/pro/ndax.js +1 -1
  270. package/dist/cjs/src/pro/okx.js +1 -1
  271. package/dist/cjs/src/pro/okxus.js +2 -2
  272. package/dist/cjs/src/pro/onetrading.js +1 -1
  273. package/dist/cjs/src/pro/p2b.js +1 -1
  274. package/dist/cjs/src/pro/pacifica.js +1 -1
  275. package/dist/cjs/src/pro/paradex.js +1 -1
  276. package/dist/cjs/src/pro/phemex.js +1 -1
  277. package/dist/cjs/src/pro/poloniex.js +1 -1
  278. package/dist/cjs/src/pro/toobit.js +1 -1
  279. package/dist/cjs/src/pro/upbit.js +1 -1
  280. package/dist/cjs/src/pro/weex.js +1 -1
  281. package/dist/cjs/src/pro/whitebit.js +1 -1
  282. package/dist/cjs/src/pro/xt.js +1 -1
  283. package/dist/cjs/src/protobuf/mexc/compiled.cjs.js +1 -0
  284. package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/base/v1beta1/coin.js +0 -1
  285. package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/crypto/multisig/v1beta1/multisig.js +0 -1
  286. package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/crypto/secp256k1/keys.js +0 -1
  287. package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/tx/signing/v1beta1/signing.js +0 -1
  288. package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/tx/v1beta1/tx.js +0 -1
  289. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/accountplus/tx.js +0 -1
  290. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/clob_pair.js +0 -1
  291. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order.js +0 -1
  292. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order_removals.js +0 -1
  293. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/tx.js +0 -1
  294. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/transfer.js +0 -1
  295. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/tx.js +0 -1
  296. package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/subaccount.js +0 -1
  297. package/dist/cjs/src/static_dependencies/dydx-v4-client/google/protobuf/any.js +0 -1
  298. package/dist/cjs/src/static_dependencies/dydx-v4-client/helpers.js +0 -6
  299. package/dist/cjs/src/static_dependencies/dydx-v4-client/onboarding.js +0 -1
  300. package/dist/cjs/src/static_dependencies/dydx-v4-client/registry.js +0 -1
  301. package/dist/cjs/src/static_dependencies/ethers/abi-coder.js +12 -1
  302. package/dist/cjs/src/static_dependencies/ethers/address/address.js +1 -1
  303. package/dist/cjs/src/static_dependencies/ethers/coders/abstract-coder.js +0 -1
  304. package/dist/cjs/src/static_dependencies/ethers/coders/address.js +0 -1
  305. package/dist/cjs/src/static_dependencies/ethers/coders/anonymous.js +0 -1
  306. package/dist/cjs/src/static_dependencies/ethers/coders/array.js +0 -1
  307. package/dist/cjs/src/static_dependencies/ethers/coders/boolean.js +0 -1
  308. package/dist/cjs/src/static_dependencies/ethers/coders/bytes.js +0 -1
  309. package/dist/cjs/src/static_dependencies/ethers/coders/fixed-bytes.js +0 -1
  310. package/dist/cjs/src/static_dependencies/ethers/coders/null.js +0 -1
  311. package/dist/cjs/src/static_dependencies/ethers/coders/number.js +0 -1
  312. package/dist/cjs/src/static_dependencies/ethers/coders/string.js +0 -1
  313. package/dist/cjs/src/static_dependencies/ethers/coders/tuple.js +0 -1
  314. package/dist/cjs/src/static_dependencies/ethers/fragments.js +0 -6
  315. package/dist/cjs/src/static_dependencies/ethers/hash/typed-data.js +1 -1
  316. package/dist/cjs/src/static_dependencies/ethers/index.js +10 -1
  317. package/dist/cjs/src/static_dependencies/ethers/typed.js +14 -1
  318. package/dist/cjs/src/static_dependencies/ethers/utils/base58.js +13 -1
  319. package/dist/cjs/src/static_dependencies/ethers/utils/data.js +6 -1
  320. package/dist/cjs/src/static_dependencies/ethers/utils/errors.js +9 -1
  321. package/dist/cjs/src/static_dependencies/ethers/utils/fixednumber.js +0 -1
  322. package/dist/cjs/src/static_dependencies/ethers/utils/index.js +7 -1
  323. package/dist/cjs/src/static_dependencies/ethers/utils/maths.js +5 -1
  324. package/dist/cjs/src/static_dependencies/ethers/utils/properties.js +0 -6
  325. package/dist/cjs/src/static_dependencies/ethers/utils/utf8.js +8 -1
  326. package/dist/cjs/src/static_dependencies/fflake/browser.js +1 -1
  327. package/dist/cjs/src/static_dependencies/messagepack/msgpack.js +0 -6
  328. package/dist/cjs/src/static_dependencies/node-fetch/body.js +5 -1
  329. package/dist/cjs/src/static_dependencies/node-fetch/errors/abort-error.js +0 -1
  330. package/dist/cjs/src/static_dependencies/node-fetch/errors/base.js +0 -6
  331. package/dist/cjs/src/static_dependencies/node-fetch/errors/fetch-error.js +0 -1
  332. package/dist/cjs/src/static_dependencies/node-fetch/headers.js +5 -1
  333. package/dist/cjs/src/static_dependencies/node-fetch/index.js +7 -1
  334. package/dist/cjs/src/static_dependencies/node-fetch/request.js +7 -1
  335. package/dist/cjs/src/static_dependencies/node-fetch/response.js +5 -1
  336. package/dist/cjs/src/static_dependencies/node-fetch/utils/get-search.js +0 -6
  337. package/dist/cjs/src/static_dependencies/node-fetch/utils/is-redirect.js +0 -6
  338. package/dist/cjs/src/static_dependencies/node-fetch/utils/is.js +0 -6
  339. package/dist/cjs/src/static_dependencies/node-fetch/utils/referrer.js +0 -1
  340. package/dist/cjs/src/static_dependencies/proxies/agent-base/index.js +0 -1
  341. package/dist/cjs/src/static_dependencies/proxies/http-proxy-agent/index.js +0 -1
  342. package/dist/cjs/src/static_dependencies/proxies/https-proxy-agent/index.js +0 -1
  343. package/dist/cjs/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +0 -6
  344. package/dist/cjs/src/static_dependencies/qs/formats.js +0 -6
  345. package/dist/cjs/src/static_dependencies/qs/index.js +0 -1
  346. package/dist/cjs/src/static_dependencies/qs/parse.js +0 -1
  347. package/dist/cjs/src/static_dependencies/qs/stringify.js +0 -1
  348. package/dist/cjs/src/static_dependencies/qs/utils.js +0 -6
  349. package/dist/cjs/src/static_dependencies/starknet/constants.js +1 -1
  350. package/dist/cjs/src/static_dependencies/starknet/types/calldata.js +0 -6
  351. package/dist/cjs/src/static_dependencies/starknet/types/lib/contract/abi.js +0 -6
  352. package/dist/cjs/src/static_dependencies/starknet/types/lib/contract/index.js +0 -6
  353. package/dist/cjs/src/static_dependencies/starknet/types/lib/index.js +0 -6
  354. package/dist/cjs/src/static_dependencies/starknet/types/typedData.js +0 -6
  355. package/dist/cjs/src/static_dependencies/starknet/utils/assert.js +0 -6
  356. package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +1 -1
  357. package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +1 -1
  358. package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +1 -1
  359. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/byteArray.js +0 -1
  360. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/cairo.js +0 -1
  361. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +0 -6
  362. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +0 -6
  363. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +0 -6
  364. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/formatter.js +0 -1
  365. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/index.js +1 -1
  366. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/index.js +0 -1
  367. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +0 -1
  368. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +0 -6
  369. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +0 -1
  370. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/requestParser.js +0 -1
  371. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/responseParser.js +0 -1
  372. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/tuple.js +1 -1
  373. package/dist/cjs/src/static_dependencies/starknet/utils/calldata/validate.js +4 -1
  374. package/dist/cjs/src/static_dependencies/starknet/utils/encode.js +0 -1
  375. package/dist/cjs/src/static_dependencies/starknet/utils/hash/classHash.js +3 -1
  376. package/dist/cjs/src/static_dependencies/starknet/utils/merkle.js +0 -1
  377. package/dist/cjs/src/static_dependencies/starknet/utils/num.js +0 -1
  378. package/dist/cjs/src/static_dependencies/starknet/utils/selector.js +0 -1
  379. package/dist/cjs/src/static_dependencies/starknet/utils/shortString.js +0 -1
  380. package/dist/cjs/src/static_dependencies/starknet/utils/typedData.js +1 -1
  381. package/dist/cjs/src/static_dependencies/watchable/src/unpromise.js +0 -6
  382. package/dist/cjs/src/static_dependencies/zklink/zklink-sdk-web.js +0 -6
  383. package/dist/cjs/src/tokocrypto.js +1 -1
  384. package/dist/cjs/src/toobit.js +1 -1
  385. package/dist/cjs/src/upbit.js +1 -1
  386. package/dist/cjs/src/weex.js +1 -1
  387. package/dist/cjs/src/whitebit.js +1 -1
  388. package/dist/cjs/src/woo.js +1 -1
  389. package/dist/cjs/src/woofipro.js +1 -1
  390. package/dist/cjs/src/xt.js +1 -1
  391. package/dist/cjs/src/zaif.js +1 -1
  392. package/dist/cjs/src/zebpay.js +1 -1
  393. package/js/ccxt.d.ts +14 -14
  394. package/js/ccxt.js +10 -16
  395. package/js/src/abstract/aftermath.js +0 -6
  396. package/js/src/abstract/alpaca.js +0 -6
  397. package/js/src/abstract/apex.js +0 -6
  398. package/js/src/abstract/aster.js +0 -6
  399. package/js/src/abstract/backpack.js +0 -6
  400. package/js/src/abstract/bequant.js +0 -6
  401. package/js/src/abstract/bigone.js +0 -6
  402. package/js/src/abstract/binance.d.ts +3 -0
  403. package/js/src/abstract/binance.js +0 -6
  404. package/js/src/abstract/binancecoinm.d.ts +3 -0
  405. package/js/src/abstract/binancecoinm.js +0 -6
  406. package/js/src/abstract/binanceus.d.ts +3 -0
  407. package/js/src/abstract/binanceus.js +0 -6
  408. package/js/src/abstract/binanceusdm.d.ts +3 -0
  409. package/js/src/abstract/binanceusdm.js +0 -6
  410. package/js/src/abstract/bingx.js +0 -6
  411. package/js/src/abstract/bit2c.js +0 -6
  412. package/js/src/abstract/bitbank.js +0 -6
  413. package/js/src/abstract/bitbns.js +0 -6
  414. package/js/src/abstract/bitfinex.js +0 -6
  415. package/js/src/abstract/bitflyer.js +0 -6
  416. package/js/src/abstract/bitget.js +0 -6
  417. package/js/src/abstract/bithumb.js +0 -6
  418. package/js/src/abstract/bitmart.js +0 -6
  419. package/js/src/abstract/bitmex.js +0 -6
  420. package/js/src/abstract/bitopro.js +0 -6
  421. package/js/src/abstract/bitrue.js +0 -6
  422. package/js/src/abstract/bitso.js +0 -6
  423. package/js/src/abstract/bitstamp.js +0 -6
  424. package/js/src/abstract/bitteam.js +0 -6
  425. package/js/src/abstract/bittrade.js +0 -6
  426. package/js/src/abstract/bitvavo.js +0 -6
  427. package/js/src/abstract/blockchaincom.js +0 -6
  428. package/js/src/abstract/blofin.js +0 -6
  429. package/js/src/abstract/btcbox.js +0 -6
  430. package/js/src/abstract/btcmarkets.js +0 -6
  431. package/js/src/abstract/btcturk.js +0 -6
  432. package/js/src/abstract/bullish.js +0 -6
  433. package/js/src/abstract/bybit.d.ts +39 -0
  434. package/js/src/abstract/bybit.js +0 -6
  435. package/js/src/abstract/bybiteu.d.ts +39 -0
  436. package/js/src/abstract/bybiteu.js +0 -6
  437. package/js/src/abstract/bydfi.js +0 -6
  438. package/js/src/abstract/cex.js +0 -6
  439. package/js/src/abstract/coinbase.js +0 -6
  440. package/js/src/abstract/coinbaseexchange.js +0 -6
  441. package/js/src/abstract/coinbaseinternational.js +0 -6
  442. package/js/src/abstract/coincheck.d.ts +3 -0
  443. package/js/src/abstract/coincheck.js +0 -6
  444. package/js/src/abstract/coinex.js +0 -6
  445. package/js/src/abstract/coinmate.js +0 -6
  446. package/js/src/abstract/coinone.js +0 -6
  447. package/js/src/abstract/coinsph.d.ts +8 -1
  448. package/js/src/abstract/coinsph.js +0 -6
  449. package/js/src/abstract/coinspot.js +0 -6
  450. package/js/src/abstract/cryptocom.js +0 -6
  451. package/js/src/abstract/cryptomus.js +0 -6
  452. package/js/src/abstract/deepcoin.js +0 -6
  453. package/js/src/abstract/delta.js +0 -6
  454. package/js/src/abstract/deribit.js +0 -6
  455. package/js/src/abstract/derive.js +0 -6
  456. package/js/src/abstract/digifinex.js +0 -6
  457. package/js/src/abstract/dydx.js +0 -6
  458. package/js/src/abstract/exmo.js +0 -6
  459. package/js/src/abstract/extended.js +0 -6
  460. package/js/src/abstract/fmfwio.js +0 -6
  461. package/js/src/abstract/foxbit.js +0 -6
  462. package/js/src/abstract/gate.js +0 -6
  463. package/js/src/abstract/gateeu.js +0 -6
  464. package/js/src/abstract/gemini.js +0 -6
  465. package/js/src/abstract/grvt.js +0 -6
  466. package/js/src/abstract/hashkey.js +0 -6
  467. package/js/src/abstract/hibachi.js +0 -6
  468. package/js/src/abstract/hitbtc.js +0 -6
  469. package/js/src/abstract/hollaex.js +0 -6
  470. package/js/src/abstract/htx.js +0 -6
  471. package/js/src/abstract/hyperliquid.js +0 -6
  472. package/js/src/abstract/independentreserve.js +0 -6
  473. package/js/src/abstract/indodax.js +0 -6
  474. package/js/src/abstract/kraken.js +0 -6
  475. package/js/src/abstract/krakenfutures.js +0 -6
  476. package/js/src/abstract/kucoin.js +0 -6
  477. package/js/src/abstract/kucoineu.d.ts +356 -0
  478. package/js/src/abstract/kucoineu.js +5 -0
  479. package/js/src/abstract/kucoinfutures.js +0 -6
  480. package/js/src/abstract/latoken.js +0 -6
  481. package/js/src/abstract/lbank.js +0 -6
  482. package/js/src/abstract/lighter.js +0 -6
  483. package/js/src/abstract/luno.js +0 -6
  484. package/js/src/abstract/mercado.js +0 -6
  485. package/js/src/abstract/mexc.js +0 -6
  486. package/js/src/abstract/modetrade.js +0 -6
  487. package/js/src/abstract/mudrex.d.ts +33 -0
  488. package/js/src/abstract/mudrex.js +5 -0
  489. package/js/src/abstract/myokx.js +0 -6
  490. package/js/src/abstract/ndax.js +0 -6
  491. package/js/src/abstract/okx.js +0 -6
  492. package/js/src/abstract/okxus.js +0 -6
  493. package/js/src/abstract/onetrading.js +0 -6
  494. package/js/src/abstract/p2b.js +0 -6
  495. package/js/src/abstract/pacifica.js +0 -6
  496. package/js/src/abstract/paradex.js +0 -6
  497. package/js/src/abstract/paymium.js +0 -6
  498. package/js/src/abstract/phemex.js +0 -6
  499. package/js/src/abstract/poloniex.js +0 -6
  500. package/js/src/abstract/tokocrypto.js +0 -6
  501. package/js/src/abstract/toobit.js +0 -6
  502. package/js/src/abstract/upbit.js +0 -6
  503. package/js/src/abstract/weex.js +0 -6
  504. package/js/src/abstract/whitebit.js +0 -6
  505. package/js/src/abstract/woo.js +0 -6
  506. package/js/src/abstract/woofipro.js +0 -6
  507. package/js/src/abstract/xt.js +0 -6
  508. package/js/src/abstract/zaif.js +0 -6
  509. package/js/src/abstract/zebpay.js +0 -6
  510. package/js/src/aftermath.js +0 -6
  511. package/js/src/alpaca.js +0 -6
  512. package/js/src/apex.js +0 -6
  513. package/js/src/aster.js +2 -8
  514. package/js/src/backpack.js +0 -6
  515. package/js/src/base/Exchange.d.ts +10 -1
  516. package/js/src/base/Exchange.js +34 -9
  517. package/js/src/base/Precise.js +0 -6
  518. package/js/src/base/errorHierarchy.js +0 -6
  519. package/js/src/base/errors.js +0 -6
  520. package/js/src/base/functions/crypto.js +0 -6
  521. package/js/src/base/functions/encode.js +0 -6
  522. package/js/src/base/functions/generic.js +0 -6
  523. package/js/src/base/functions/io.js +0 -6
  524. package/js/src/base/functions/misc.js +0 -6
  525. package/js/src/base/functions/number.js +0 -6
  526. package/js/src/base/functions/platform.js +0 -6
  527. package/js/src/base/functions/rsa.js +0 -6
  528. package/js/src/base/functions/string.js +0 -6
  529. package/js/src/base/functions/throttle.js +0 -6
  530. package/js/src/base/functions/time.js +0 -6
  531. package/js/src/base/functions/totp.js +0 -6
  532. package/js/src/base/functions/type.js +0 -6
  533. package/js/src/base/functions.js +0 -6
  534. package/js/src/base/types.js +0 -6
  535. package/js/src/base/ws/Cache.js +0 -6
  536. package/js/src/base/ws/Client.js +0 -6
  537. package/js/src/base/ws/Future.js +0 -6
  538. package/js/src/base/ws/OrderBook.js +0 -6
  539. package/js/src/base/ws/OrderBookSide.js +0 -6
  540. package/js/src/base/ws/WsClient.js +0 -6
  541. package/js/src/base/ws/functions.js +0 -6
  542. package/js/src/bequant.js +0 -6
  543. package/js/src/bigone.js +0 -6
  544. package/js/src/binance.js +40 -27
  545. package/js/src/binancecoinm.js +0 -6
  546. package/js/src/binanceus.js +0 -6
  547. package/js/src/binanceusdm.js +0 -6
  548. package/js/src/bingx.js +0 -6
  549. package/js/src/bit2c.js +0 -6
  550. package/js/src/bitbank.js +0 -6
  551. package/js/src/bitbns.js +0 -6
  552. package/js/src/bitfinex.js +0 -6
  553. package/js/src/bitflyer.js +0 -6
  554. package/js/src/bitget.js +5 -9
  555. package/js/src/bithumb.js +0 -6
  556. package/js/src/bitmart.js +0 -6
  557. package/js/src/bitmex.js +1 -7
  558. package/js/src/bitopro.js +0 -6
  559. package/js/src/bitrue.js +0 -6
  560. package/js/src/bitso.js +0 -6
  561. package/js/src/bitstamp.js +2 -7
  562. package/js/src/bitteam.js +0 -6
  563. package/js/src/bittrade.js +0 -6
  564. package/js/src/bitvavo.js +1 -6
  565. package/js/src/blockchaincom.js +0 -6
  566. package/js/src/blofin.js +0 -6
  567. package/js/src/btcbox.js +1 -7
  568. package/js/src/btcmarkets.js +0 -6
  569. package/js/src/btcturk.js +0 -6
  570. package/js/src/bullish.js +1 -7
  571. package/js/src/bybit.d.ts +9 -0
  572. package/js/src/bybit.js +114 -18
  573. package/js/src/bybiteu.js +3 -6
  574. package/js/src/bydfi.js +0 -6
  575. package/js/src/cex.d.ts +1 -0
  576. package/js/src/cex.js +1 -6
  577. package/js/src/coinbase.js +3 -8
  578. package/js/src/coinbaseexchange.js +0 -6
  579. package/js/src/coinbaseinternational.js +1 -7
  580. package/js/src/coincheck.d.ts +9 -0
  581. package/js/src/coincheck.js +51 -6
  582. package/js/src/coinex.js +0 -6
  583. package/js/src/coinmate.js +0 -6
  584. package/js/src/coinone.js +0 -6
  585. package/js/src/coinsph.d.ts +27 -27
  586. package/js/src/coinsph.js +35 -34
  587. package/js/src/coinspot.js +0 -6
  588. package/js/src/cryptocom.js +0 -6
  589. package/js/src/cryptomus.js +0 -6
  590. package/js/src/deepcoin.js +0 -6
  591. package/js/src/delta.d.ts +12 -0
  592. package/js/src/delta.js +23 -7
  593. package/js/src/deribit.js +0 -6
  594. package/js/src/derive.js +1 -7
  595. package/js/src/digifinex.d.ts +12 -0
  596. package/js/src/digifinex.js +12 -6
  597. package/js/src/dydx.d.ts +2 -2
  598. package/js/src/dydx.js +2 -8
  599. package/js/src/exmo.js +0 -6
  600. package/js/src/extended.js +1 -7
  601. package/js/src/fmfwio.js +0 -6
  602. package/js/src/foxbit.js +0 -6
  603. package/js/src/gate.js +0 -6
  604. package/js/src/gateeu.js +1 -6
  605. package/js/src/gemini.js +0 -6
  606. package/js/src/grvt.d.ts +1 -1
  607. package/js/src/grvt.js +1 -7
  608. package/js/src/hashkey.d.ts +40 -3
  609. package/js/src/hashkey.js +127 -12
  610. package/js/src/hibachi.d.ts +9 -5
  611. package/js/src/hibachi.js +20 -16
  612. package/js/src/hitbtc.js +0 -6
  613. package/js/src/hollaex.js +0 -6
  614. package/js/src/htx.js +0 -6
  615. package/js/src/hyperliquid.js +13 -12
  616. package/js/src/independentreserve.js +0 -6
  617. package/js/src/indodax.js +0 -6
  618. package/js/src/kraken.js +2 -6
  619. package/js/src/krakenfutures.js +0 -6
  620. package/js/src/kucoin.js +1 -7
  621. package/js/src/kucoineu.d.ts +4 -0
  622. package/js/src/kucoineu.js +28 -0
  623. package/js/src/kucoinfutures.js +0 -6
  624. package/js/src/latoken.js +0 -6
  625. package/js/src/lbank.js +0 -6
  626. package/js/src/lighter.js +6 -10
  627. package/js/src/luno.js +0 -6
  628. package/js/src/mercado.js +0 -6
  629. package/js/src/mexc.js +0 -6
  630. package/js/src/modetrade.js +0 -6
  631. package/js/src/mudrex.d.ts +310 -0
  632. package/js/src/mudrex.js +1321 -0
  633. package/js/src/myokx.js +3 -6
  634. package/js/src/ndax.js +0 -6
  635. package/js/src/okx.js +0 -6
  636. package/js/src/okxus.js +1 -11
  637. package/js/src/onetrading.js +1 -6
  638. package/js/src/p2b.js +0 -6
  639. package/js/src/pacifica.js +1 -7
  640. package/js/src/paradex.js +0 -6
  641. package/js/src/paymium.js +0 -6
  642. package/js/src/phemex.js +0 -6
  643. package/js/src/poloniex.js +1 -7
  644. package/js/src/pro/aftermath.js +0 -6
  645. package/js/src/pro/alpaca.js +0 -6
  646. package/js/src/pro/apex.js +0 -6
  647. package/js/src/pro/aster.js +0 -6
  648. package/js/src/pro/backpack.js +0 -6
  649. package/js/src/pro/bequant.js +0 -6
  650. package/js/src/pro/binance.js +0 -6
  651. package/js/src/pro/binancecoinm.js +0 -6
  652. package/js/src/pro/binanceus.js +0 -6
  653. package/js/src/pro/binanceusdm.js +0 -6
  654. package/js/src/pro/bingx.js +4 -8
  655. package/js/src/pro/bitfinex.js +0 -6
  656. package/js/src/pro/bitget.js +9 -13
  657. package/js/src/pro/bithumb.js +0 -6
  658. package/js/src/pro/bitmart.js +0 -6
  659. package/js/src/pro/bitmex.js +0 -6
  660. package/js/src/pro/bitopro.js +0 -6
  661. package/js/src/pro/bitrue.js +0 -6
  662. package/js/src/pro/bitstamp.js +0 -6
  663. package/js/src/pro/bittrade.js +0 -6
  664. package/js/src/pro/bitvavo.js +0 -6
  665. package/js/src/pro/blockchaincom.js +0 -6
  666. package/js/src/pro/blofin.js +0 -6
  667. package/js/src/pro/bullish.js +0 -6
  668. package/js/src/pro/bybit.js +0 -6
  669. package/js/src/pro/bybiteu.js +0 -6
  670. package/js/src/pro/bydfi.js +0 -6
  671. package/js/src/pro/cex.d.ts +1 -1
  672. package/js/src/pro/cex.js +1 -7
  673. package/js/src/pro/coinbase.js +0 -6
  674. package/js/src/pro/coinbaseexchange.js +0 -6
  675. package/js/src/pro/coinbaseinternational.js +0 -6
  676. package/js/src/pro/coincheck.js +0 -6
  677. package/js/src/pro/coinex.js +0 -6
  678. package/js/src/pro/coinone.js +0 -6
  679. package/js/src/pro/cryptocom.js +0 -6
  680. package/js/src/pro/deepcoin.js +0 -6
  681. package/js/src/pro/deribit.js +0 -6
  682. package/js/src/pro/derive.js +0 -6
  683. package/js/src/pro/dydx.js +0 -6
  684. package/js/src/pro/exmo.js +0 -6
  685. package/js/src/pro/extended.js +0 -6
  686. package/js/src/pro/gate.js +0 -6
  687. package/js/src/pro/gateeu.js +0 -6
  688. package/js/src/pro/gemini.js +0 -6
  689. package/js/src/pro/grvt.d.ts +1 -1
  690. package/js/src/pro/grvt.js +1 -7
  691. package/js/src/pro/hashkey.d.ts +1 -1
  692. package/js/src/pro/hashkey.js +1 -7
  693. package/js/src/pro/hitbtc.js +0 -6
  694. package/js/src/pro/hollaex.js +0 -6
  695. package/js/src/pro/htx.js +0 -6
  696. package/js/src/pro/hyperliquid.js +0 -6
  697. package/js/src/pro/independentreserve.js +0 -6
  698. package/js/src/pro/kraken.js +1 -7
  699. package/js/src/pro/krakenfutures.js +0 -6
  700. package/js/src/pro/kucoin.js +0 -6
  701. package/js/src/pro/kucoineu.d.ts +4 -0
  702. package/js/src/pro/kucoineu.js +22 -0
  703. package/js/src/pro/kucoinfutures.js +0 -6
  704. package/js/src/pro/lbank.js +0 -6
  705. package/js/src/pro/lighter.js +12 -9
  706. package/js/src/pro/luno.js +0 -6
  707. package/js/src/pro/mexc.js +0 -6
  708. package/js/src/pro/modetrade.js +0 -6
  709. package/js/src/pro/mudrex.d.ts +23 -0
  710. package/js/src/pro/mudrex.js +219 -0
  711. package/js/src/pro/myokx.js +0 -6
  712. package/js/src/pro/ndax.js +0 -6
  713. package/js/src/pro/okx.js +0 -6
  714. package/js/src/pro/okxus.js +1 -7
  715. package/js/src/pro/onetrading.js +0 -6
  716. package/js/src/pro/p2b.js +0 -6
  717. package/js/src/pro/pacifica.js +0 -6
  718. package/js/src/pro/paradex.js +0 -6
  719. package/js/src/pro/phemex.js +0 -6
  720. package/js/src/pro/poloniex.js +0 -6
  721. package/js/src/pro/toobit.js +0 -6
  722. package/js/src/pro/upbit.js +0 -6
  723. package/js/src/pro/weex.js +0 -6
  724. package/js/src/pro/whitebit.js +0 -6
  725. package/js/src/pro/woo.js +0 -6
  726. package/js/src/pro/woofipro.js +0 -6
  727. package/js/src/pro/xt.js +0 -6
  728. package/js/src/protobuf/mexc/compiled.cjs +0 -6
  729. package/js/src/protobuf/mexc/compiled.d.cts +0 -6
  730. package/js/src/static_dependencies/dydx-v4-client/cosmos/base/v1beta1/coin.js +0 -6
  731. package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/multisig/keys.js +0 -6
  732. package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/multisig/v1beta1/multisig.js +0 -6
  733. package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/secp256k1/keys.js +0 -6
  734. package/js/src/static_dependencies/dydx-v4-client/cosmos/tx/signing/v1beta1/signing.js +0 -6
  735. package/js/src/static_dependencies/dydx-v4-client/cosmos/tx/v1beta1/tx.js +0 -6
  736. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/accountplus/tx.js +0 -6
  737. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/block_rate_limit_config.js +0 -6
  738. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/clob_pair.js +0 -6
  739. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/equity_tier_limit_config.js +0 -6
  740. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/finalize_block.js +0 -6
  741. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/liquidations.js +0 -6
  742. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/liquidations_config.js +0 -6
  743. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/matches.js +0 -6
  744. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order.js +0 -6
  745. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order_removals.js +0 -6
  746. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/tx.js +0 -6
  747. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/transfer.js +0 -6
  748. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/tx.js +0 -6
  749. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/asset_position.js +0 -6
  750. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/perpetual_position.js +0 -6
  751. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/subaccount.js +0 -6
  752. package/js/src/static_dependencies/dydx-v4-client/google/protobuf/any.js +0 -6
  753. package/js/src/static_dependencies/dydx-v4-client/helpers.js +0 -6
  754. package/js/src/static_dependencies/dydx-v4-client/long/index.cjs +0 -6
  755. package/js/src/static_dependencies/dydx-v4-client/long/index.d.cts +0 -6
  756. package/js/src/static_dependencies/dydx-v4-client/onboarding.js +0 -6
  757. package/js/src/static_dependencies/dydx-v4-client/registry.js +0 -6
  758. package/js/src/static_dependencies/ethers/abi-coder.js +0 -6
  759. package/js/src/static_dependencies/ethers/address/address.js +0 -6
  760. package/js/src/static_dependencies/ethers/address/checks.js +0 -6
  761. package/js/src/static_dependencies/ethers/address/contract-address.js +0 -6
  762. package/js/src/static_dependencies/ethers/address/index.js +0 -6
  763. package/js/src/static_dependencies/ethers/bytes32.js +0 -6
  764. package/js/src/static_dependencies/ethers/coders/abstract-coder.js +0 -6
  765. package/js/src/static_dependencies/ethers/coders/address.js +0 -6
  766. package/js/src/static_dependencies/ethers/coders/anonymous.js +0 -6
  767. package/js/src/static_dependencies/ethers/coders/array.js +0 -6
  768. package/js/src/static_dependencies/ethers/coders/boolean.js +0 -6
  769. package/js/src/static_dependencies/ethers/coders/bytes.js +0 -6
  770. package/js/src/static_dependencies/ethers/coders/fixed-bytes.js +0 -6
  771. package/js/src/static_dependencies/ethers/coders/null.js +0 -6
  772. package/js/src/static_dependencies/ethers/coders/number.js +0 -6
  773. package/js/src/static_dependencies/ethers/coders/string.js +0 -6
  774. package/js/src/static_dependencies/ethers/coders/tuple.js +0 -6
  775. package/js/src/static_dependencies/ethers/fragments.js +0 -6
  776. package/js/src/static_dependencies/ethers/hash/index.js +0 -6
  777. package/js/src/static_dependencies/ethers/hash/solidity.js +0 -6
  778. package/js/src/static_dependencies/ethers/hash/typed-data.js +0 -6
  779. package/js/src/static_dependencies/ethers/index.js +0 -6
  780. package/js/src/static_dependencies/ethers/interface.js +0 -6
  781. package/js/src/static_dependencies/ethers/typed.js +0 -6
  782. package/js/src/static_dependencies/ethers/utils/base58.js +0 -6
  783. package/js/src/static_dependencies/ethers/utils/base64-browser.js +0 -6
  784. package/js/src/static_dependencies/ethers/utils/base64.js +0 -6
  785. package/js/src/static_dependencies/ethers/utils/data.js +0 -6
  786. package/js/src/static_dependencies/ethers/utils/errors.js +0 -6
  787. package/js/src/static_dependencies/ethers/utils/events.js +0 -6
  788. package/js/src/static_dependencies/ethers/utils/fixednumber.js +0 -6
  789. package/js/src/static_dependencies/ethers/utils/index.js +0 -6
  790. package/js/src/static_dependencies/ethers/utils/maths.js +0 -6
  791. package/js/src/static_dependencies/ethers/utils/properties.js +0 -6
  792. package/js/src/static_dependencies/ethers/utils/rlp-decode.js +0 -6
  793. package/js/src/static_dependencies/ethers/utils/rlp-encode.js +0 -6
  794. package/js/src/static_dependencies/ethers/utils/rlp.js +0 -6
  795. package/js/src/static_dependencies/ethers/utils/units.js +0 -6
  796. package/js/src/static_dependencies/ethers/utils/utf8.js +0 -6
  797. package/js/src/static_dependencies/ethers/utils/uuid.js +0 -6
  798. package/js/src/static_dependencies/fflake/browser.js +0 -6
  799. package/js/src/static_dependencies/messagepack/msgpack.js +0 -6
  800. package/js/src/static_dependencies/node-fetch/body.js +0 -6
  801. package/js/src/static_dependencies/node-fetch/errors/abort-error.js +0 -6
  802. package/js/src/static_dependencies/node-fetch/errors/base.js +0 -6
  803. package/js/src/static_dependencies/node-fetch/errors/fetch-error.js +0 -6
  804. package/js/src/static_dependencies/node-fetch/headers.js +0 -6
  805. package/js/src/static_dependencies/node-fetch/index.js +0 -6
  806. package/js/src/static_dependencies/node-fetch/request.js +0 -6
  807. package/js/src/static_dependencies/node-fetch/response.js +0 -6
  808. package/js/src/static_dependencies/node-fetch/utils/get-search.js +0 -6
  809. package/js/src/static_dependencies/node-fetch/utils/is-redirect.js +0 -6
  810. package/js/src/static_dependencies/node-fetch/utils/is.js +0 -6
  811. package/js/src/static_dependencies/node-fetch/utils/referrer.js +0 -6
  812. package/js/src/static_dependencies/proxies/agent-base/helpers.js +0 -6
  813. package/js/src/static_dependencies/proxies/agent-base/index.js +0 -6
  814. package/js/src/static_dependencies/proxies/http-proxy-agent/index.js +0 -6
  815. package/js/src/static_dependencies/proxies/https-proxy-agent/index.js +0 -6
  816. package/js/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +0 -6
  817. package/js/src/static_dependencies/qs/formats.js +0 -6
  818. package/js/src/static_dependencies/qs/index.js +0 -6
  819. package/js/src/static_dependencies/qs/parse.js +0 -6
  820. package/js/src/static_dependencies/qs/stringify.js +0 -6
  821. package/js/src/static_dependencies/qs/utils.js +0 -6
  822. package/js/src/static_dependencies/starknet/constants.js +0 -6
  823. package/js/src/static_dependencies/starknet/index.js +0 -6
  824. package/js/src/static_dependencies/starknet/types/cairoEnum.js +0 -6
  825. package/js/src/static_dependencies/starknet/types/calldata.js +0 -6
  826. package/js/src/static_dependencies/starknet/types/index.js +0 -6
  827. package/js/src/static_dependencies/starknet/types/lib/contract/abi.js +0 -6
  828. package/js/src/static_dependencies/starknet/types/lib/contract/index.js +0 -6
  829. package/js/src/static_dependencies/starknet/types/lib/contract/legacy.js +0 -6
  830. package/js/src/static_dependencies/starknet/types/lib/contract/sierra.js +0 -6
  831. package/js/src/static_dependencies/starknet/types/lib/index.js +0 -6
  832. package/js/src/static_dependencies/starknet/types/typedData.js +0 -6
  833. package/js/src/static_dependencies/starknet/utils/address.js +0 -6
  834. package/js/src/static_dependencies/starknet/utils/assert.js +0 -6
  835. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +0 -6
  836. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +0 -6
  837. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +0 -6
  838. package/js/src/static_dependencies/starknet/utils/calldata/byteArray.js +0 -6
  839. package/js/src/static_dependencies/starknet/utils/calldata/cairo.js +0 -6
  840. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +0 -6
  841. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +0 -6
  842. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +0 -6
  843. package/js/src/static_dependencies/starknet/utils/calldata/enum/index.js +0 -6
  844. package/js/src/static_dependencies/starknet/utils/calldata/formatter.js +0 -6
  845. package/js/src/static_dependencies/starknet/utils/calldata/index.js +0 -6
  846. package/js/src/static_dependencies/starknet/utils/calldata/parser/index.js +0 -6
  847. package/js/src/static_dependencies/starknet/utils/calldata/parser/interface.js +0 -6
  848. package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +0 -6
  849. package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +0 -6
  850. package/js/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +0 -6
  851. package/js/src/static_dependencies/starknet/utils/calldata/requestParser.js +0 -6
  852. package/js/src/static_dependencies/starknet/utils/calldata/responseParser.js +0 -6
  853. package/js/src/static_dependencies/starknet/utils/calldata/tuple.js +0 -6
  854. package/js/src/static_dependencies/starknet/utils/calldata/validate.js +0 -6
  855. package/js/src/static_dependencies/starknet/utils/encode.js +0 -6
  856. package/js/src/static_dependencies/starknet/utils/hash/classHash.js +0 -6
  857. package/js/src/static_dependencies/starknet/utils/hash/index.js +0 -6
  858. package/js/src/static_dependencies/starknet/utils/merkle.js +0 -6
  859. package/js/src/static_dependencies/starknet/utils/num.js +0 -6
  860. package/js/src/static_dependencies/starknet/utils/selector.js +0 -6
  861. package/js/src/static_dependencies/starknet/utils/shortString.js +0 -6
  862. package/js/src/static_dependencies/starknet/utils/starknetId.js +0 -6
  863. package/js/src/static_dependencies/starknet/utils/typedData.js +0 -6
  864. package/js/src/static_dependencies/starknet/utils/uint256.js +0 -6
  865. package/js/src/static_dependencies/starknet/utils/url.js +0 -6
  866. package/js/src/static_dependencies/watchable/src/index.js +0 -6
  867. package/js/src/static_dependencies/watchable/src/types.js +0 -6
  868. package/js/src/static_dependencies/watchable/src/unpromise.js +0 -6
  869. package/js/src/static_dependencies/zklink/zklink-sdk-web.js +0 -6
  870. package/js/src/tokocrypto.js +0 -6
  871. package/js/src/toobit.js +0 -6
  872. package/js/src/upbit.js +0 -6
  873. package/js/src/weex.js +0 -6
  874. package/js/src/whitebit.js +0 -6
  875. package/js/src/woo.js +0 -6
  876. package/js/src/woofipro.js +0 -6
  877. package/js/src/xt.js +0 -6
  878. package/js/src/zaif.js +0 -6
  879. package/js/src/zebpay.js +0 -6
  880. package/package.json +17 -11
  881. package/dist/cjs/src/abstract/coinmetro.js +0 -11
  882. package/dist/cjs/src/abstract/novadax.js +0 -11
  883. package/dist/cjs/src/ascendex.js +0 -3780
  884. package/dist/cjs/src/coinmetro.js +0 -2030
  885. package/dist/cjs/src/novadax.js +0 -1678
  886. package/dist/cjs/src/pro/ascendex.js +0 -1013
  887. package/js/src/abstract/ascendex.d.ts +0 -80
  888. package/js/src/abstract/ascendex.js +0 -11
  889. package/js/src/abstract/coinmetro.d.ts +0 -37
  890. package/js/src/abstract/coinmetro.js +0 -11
  891. package/js/src/abstract/novadax.d.ts +0 -32
  892. package/js/src/abstract/novadax.js +0 -11
  893. package/js/src/ascendex.d.ts +0 -436
  894. package/js/src/ascendex.js +0 -3779
  895. package/js/src/coinmetro.d.ts +0 -245
  896. package/js/src/coinmetro.js +0 -2029
  897. package/js/src/novadax.d.ts +0 -279
  898. package/js/src/novadax.js +0 -1677
  899. package/js/src/pro/ascendex.d.ts +0 -99
  900. package/js/src/pro/ascendex.js +0 -1012
package/js/src/novadax.js DELETED
@@ -1,1677 +0,0 @@
1
- // ----------------------------------------------------------------------------
2
-
3
- // PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
4
- // https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
5
- // EDIT THE CORRESPONDENT .ts FILE INSTEAD
6
-
7
- // ---------------------------------------------------------------------------
8
- import { sha256 } from '@noble/hashes/sha2.js';
9
- import { md5 } from '@noble/hashes/legacy.js';
10
- import Exchange from './abstract/novadax.js';
11
- import { AuthenticationError, ExchangeError, PermissionDenied, BadRequest, CancelPending, OrderNotFound, InsufficientFunds, RateLimitExceeded, InvalidOrder, AccountSuspended, BadSymbol, OnMaintenance, ArgumentsRequired, AccountNotEnabled } from './base/errors.js';
12
- import { Precise } from './base/Precise.js';
13
- import { TICK_SIZE } from './base/functions/number.js';
14
- // ---------------------------------------------------------------------------
15
- /**
16
- * @class novadax
17
- * @augments Exchange
18
- */
19
- export default class novadax extends Exchange {
20
- describe() {
21
- return this.deepExtend(super.describe(), {
22
- 'id': 'novadax',
23
- 'name': 'NovaDAX',
24
- 'countries': ['BR'], // Brazil
25
- // 6000 weight per min => 100 weight per second => min weight = 1
26
- // 100 requests per second => ( 1000ms / 100 ) = 10 ms between requests on average
27
- 'rateLimit': 10,
28
- 'version': 'v1',
29
- // new metainfo interface
30
- 'has': {
31
- 'CORS': undefined,
32
- 'spot': true,
33
- 'margin': false,
34
- 'swap': false,
35
- 'future': false,
36
- 'option': false,
37
- 'addMargin': false,
38
- 'borrowCrossMargin': false,
39
- 'borrowIsolatedMargin': false,
40
- 'borrowMargin': false,
41
- 'cancelOrder': true,
42
- 'closeAllPositions': false,
43
- 'closePosition': false,
44
- 'createMarketBuyOrderWithCost': true,
45
- 'createMarketOrderWithCost': false,
46
- 'createMarketSellOrderWithCost': false,
47
- 'createOrder': true,
48
- 'createReduceOnlyOrder': false,
49
- 'createStopLimitOrder': true,
50
- 'createStopMarketOrder': true,
51
- 'createStopOrder': true,
52
- 'fetchAccounts': true,
53
- 'fetchAllGreeks': false,
54
- 'fetchBalance': true,
55
- 'fetchBorrowInterest': false,
56
- 'fetchBorrowRate': false,
57
- 'fetchBorrowRateHistories': false,
58
- 'fetchBorrowRateHistory': false,
59
- 'fetchBorrowRates': false,
60
- 'fetchBorrowRatesPerSymbol': false,
61
- 'fetchClosedOrders': true,
62
- 'fetchCrossBorrowRate': false,
63
- 'fetchCrossBorrowRates': false,
64
- 'fetchCurrencies': false,
65
- 'fetchDepositAddress': false,
66
- 'fetchDepositAddresses': false,
67
- 'fetchDepositAddressesByNetwork': false,
68
- 'fetchDeposits': true,
69
- 'fetchDepositsWithdrawals': true,
70
- 'fetchFundingHistory': false,
71
- 'fetchFundingInterval': false,
72
- 'fetchFundingIntervals': false,
73
- 'fetchFundingRate': false,
74
- 'fetchFundingRateHistory': false,
75
- 'fetchFundingRates': false,
76
- 'fetchGreeks': false,
77
- 'fetchIndexOHLCV': false,
78
- 'fetchIsolatedBorrowRate': false,
79
- 'fetchIsolatedBorrowRates': false,
80
- 'fetchIsolatedPositions': false,
81
- 'fetchLeverage': false,
82
- 'fetchLeverages': false,
83
- 'fetchLeverageTiers': false,
84
- 'fetchLiquidations': false,
85
- 'fetchLongShortRatio': false,
86
- 'fetchLongShortRatioHistory': false,
87
- 'fetchMarginAdjustmentHistory': false,
88
- 'fetchMarginMode': false,
89
- 'fetchMarginModes': false,
90
- 'fetchMarketLeverageTiers': false,
91
- 'fetchMarkets': true,
92
- 'fetchMarkOHLCV': false,
93
- 'fetchMarkPrice': false,
94
- 'fetchMarkPrices': false,
95
- 'fetchMyLiquidations': false,
96
- 'fetchMySettlementHistory': false,
97
- 'fetchMyTrades': true,
98
- 'fetchOHLCV': true,
99
- 'fetchOpenInterest': false,
100
- 'fetchOpenInterestHistory': false,
101
- 'fetchOpenInterests': false,
102
- 'fetchOpenOrders': true,
103
- 'fetchOption': false,
104
- 'fetchOptionChain': false,
105
- 'fetchOrder': true,
106
- 'fetchOrderBook': true,
107
- 'fetchOrders': true,
108
- 'fetchOrderTrades': true,
109
- 'fetchPosition': false,
110
- 'fetchPositionHistory': false,
111
- 'fetchPositionMode': false,
112
- 'fetchPositions': false,
113
- 'fetchPositionsForSymbol': false,
114
- 'fetchPositionsHistory': false,
115
- 'fetchPositionsRisk': false,
116
- 'fetchPremiumIndexOHLCV': false,
117
- 'fetchSettlementHistory': false,
118
- 'fetchTicker': true,
119
- 'fetchTickers': true,
120
- 'fetchTime': true,
121
- 'fetchTrades': true,
122
- 'fetchTradingFee': false,
123
- 'fetchTradingFees': false,
124
- 'fetchTransactions': 'emulated',
125
- 'fetchUnderlyingAssets': false,
126
- 'fetchVolatilityHistory': false,
127
- 'fetchWithdrawals': true,
128
- 'reduceMargin': false,
129
- 'repayCrossMargin': false,
130
- 'repayIsolatedMargin': false,
131
- 'setLeverage': false,
132
- 'setMargin': false,
133
- 'setMarginMode': false,
134
- 'setPositionMode': false,
135
- 'transfer': true,
136
- 'withdraw': true,
137
- },
138
- 'timeframes': {
139
- '1m': 'ONE_MIN',
140
- '5m': 'FIVE_MIN',
141
- '15m': 'FIFTEEN_MIN',
142
- '30m': 'HALF_HOU',
143
- '1h': 'ONE_HOU',
144
- '1d': 'ONE_DAY',
145
- '1w': 'ONE_WEE',
146
- '1M': 'ONE_MON',
147
- },
148
- 'urls': {
149
- 'logo': 'https://user-images.githubusercontent.com/1294454/92337550-2b085500-f0b3-11ea-98e7-5794fb07dd3b.jpg',
150
- 'api': {
151
- 'public': 'https://api.novadax.com',
152
- 'private': 'https://api.novadax.com',
153
- },
154
- 'www': 'https://www.novadax.com.br',
155
- 'doc': [
156
- 'https://doc.novadax.com/pt-BR/',
157
- ],
158
- 'fees': 'https://www.novadax.com.br/fees-and-limits',
159
- 'referral': 'https://www.novadax.com.br/?s=ccxt',
160
- },
161
- 'api': {
162
- 'public': {
163
- 'get': {
164
- 'common/symbol': 1,
165
- 'common/symbols': 1,
166
- 'common/timestamp': 1,
167
- 'market/tickers': 5,
168
- 'market/ticker': 1,
169
- 'market/depth': 1,
170
- 'market/trades': 5,
171
- 'market/kline/history': 5,
172
- },
173
- },
174
- 'private': {
175
- 'get': {
176
- 'orders/get': 1,
177
- 'orders/list': 10,
178
- 'orders/fill': 3, // not found in doc
179
- 'orders/fills': 10,
180
- 'account/getBalance': 1,
181
- 'account/subs': 1,
182
- 'account/subs/balance': 1,
183
- 'account/subs/transfer/record': 10,
184
- 'wallet/query/deposit-withdraw': 3,
185
- },
186
- 'post': {
187
- 'orders/create': 5,
188
- 'orders/batch-create': 50,
189
- 'orders/cancel': 1,
190
- 'orders/batch-cancel': 10,
191
- 'orders/cancel-by-symbol': 10,
192
- 'account/subs/transfer': 5,
193
- 'wallet/withdraw/coin': 3,
194
- 'account/withdraw/coin': 3, // not found in doc
195
- },
196
- },
197
- },
198
- 'fees': {
199
- 'trading': {
200
- 'tierBased': false,
201
- 'percentage': true,
202
- 'taker': this.parseNumber('0.005'),
203
- 'maker': this.parseNumber('0.0025'),
204
- },
205
- },
206
- 'requiredCredentials': {
207
- 'apiKey': true,
208
- 'secret': true,
209
- },
210
- 'precisionMode': TICK_SIZE,
211
- 'exceptions': {
212
- 'exact': {
213
- 'A99999': ExchangeError, // 500 Failed Internal error
214
- // 'A10000': ExchangeError, // 200 Success Successful request
215
- 'A10001': BadRequest, // 400 Params error Parameter is invalid
216
- 'A10002': ExchangeError, // 404 Api not found API used is irrelevant
217
- 'A10003': AuthenticationError, // 403 Authentication failed Authentication is failed
218
- 'A10004': RateLimitExceeded, // 429 Too many requests Too many requests are made
219
- 'A10005': PermissionDenied, // 403 Kyc required Need to complete KYC firstly
220
- 'A10006': AccountSuspended, // 403 Customer canceled Account is canceled
221
- 'A10007': AccountNotEnabled, // 400 Account not exist Sub account does not exist
222
- 'A10011': BadSymbol, // 400 Symbol not exist Trading symbol does not exist
223
- 'A10012': BadSymbol, // 400 Symbol not trading Trading symbol is temporarily not available
224
- 'A10013': OnMaintenance, // 503 Symbol maintain Trading symbol is in maintain
225
- 'A30001': OrderNotFound, // 400 Order not found Queried order is not found
226
- 'A30002': InvalidOrder, // 400 Order amount is too small Order amount is too small
227
- 'A30003': InvalidOrder, // 400 Order amount is invalid Order amount is invalid
228
- 'A30004': InvalidOrder, // 400 Order value is too small Order value is too small
229
- 'A30005': InvalidOrder, // 400 Order value is invalid Order value is invalid
230
- 'A30006': InvalidOrder, // 400 Order price is invalid Order price is invalid
231
- 'A30007': InsufficientFunds, // 400 Insufficient balance The balance is insufficient
232
- 'A30008': InvalidOrder, // 400 Order was closed The order has been executed
233
- 'A30009': InvalidOrder, // 400 Order canceled The order has been cancelled
234
- 'A30010': CancelPending, // 400 Order cancelling The order is being cancelled
235
- 'A30011': InvalidOrder, // 400 Order price too high The order price is too high
236
- 'A30012': InvalidOrder, // 400 Order price too low The order price is too low
237
- 'A40004': InsufficientFunds, // {"code":"A40004","data":[],"message":"sub account balance Insufficient"}
238
- },
239
- 'broad': {},
240
- },
241
- 'options': {
242
- 'fetchOHLCV': {
243
- 'volume': 'amount', // 'amount' for base volume or 'vol' for quote volume
244
- },
245
- 'transfer': {
246
- 'fillResponseFromRequest': true,
247
- },
248
- },
249
- 'features': {
250
- 'spot': {
251
- 'sandbox': false,
252
- 'createOrder': {
253
- 'marginMode': false,
254
- 'triggerPrice': true,
255
- 'triggerDirection': true, // todo
256
- 'triggerPriceType': undefined,
257
- 'stopLossPrice': false, // todo
258
- 'takeProfitPrice': false, // todo
259
- 'attachedStopLossTakeProfit': undefined,
260
- // todo
261
- 'timeInForce': {
262
- 'IOC': false,
263
- 'FOK': false,
264
- 'PO': false,
265
- 'GTD': false,
266
- },
267
- 'hedged': false,
268
- 'trailing': false,
269
- 'leverage': false,
270
- 'marketBuyByCost': true,
271
- 'marketBuyRequiresPrice': false,
272
- 'selfTradePrevention': false,
273
- 'iceberg': true, // todo
274
- },
275
- 'createOrders': undefined, // todo: add implementation
276
- 'fetchMyTrades': {
277
- 'marginMode': false,
278
- 'limit': 100,
279
- 'daysBack': 100000, // todo
280
- 'untilDays': 100000, // todo
281
- 'symbolRequired': false,
282
- },
283
- 'fetchOrder': {
284
- 'marginMode': false,
285
- 'trigger': false,
286
- 'trailing': false,
287
- 'symbolRequired': false,
288
- },
289
- 'fetchOpenOrders': {
290
- 'marginMode': false,
291
- 'limit': undefined,
292
- 'trigger': false,
293
- 'trailing': false,
294
- 'symbolRequired': false,
295
- },
296
- 'fetchOrders': {
297
- 'marginMode': false,
298
- 'limit': 100,
299
- 'daysBack': 100000, // todo
300
- 'untilDays': 100000, // todo
301
- 'trigger': false,
302
- 'trailing': false,
303
- 'symbolRequired': false,
304
- },
305
- 'fetchClosedOrders': {
306
- 'marginMode': false,
307
- 'limit': 100,
308
- 'daysBack': 100000, // todo
309
- 'daysBackCanceled': 1, // todo
310
- 'untilDays': 100000, // todo
311
- 'trigger': false,
312
- 'trailing': false,
313
- 'symbolRequired': false,
314
- },
315
- 'fetchOHLCV': {
316
- 'limit': undefined, // todo max 3000
317
- },
318
- },
319
- 'swap': {
320
- 'linear': undefined,
321
- 'inverse': undefined,
322
- },
323
- 'future': {
324
- 'linear': undefined,
325
- 'inverse': undefined,
326
- },
327
- },
328
- });
329
- }
330
- /**
331
- * @method
332
- * @name novadax#fetchTime
333
- * @description fetches the current integer timestamp in milliseconds from the exchange server
334
- * @see https://doc.novadax.com/en-US/#get-current-system-time
335
- * @param {object} [params] extra parameters specific to the exchange API endpoint
336
- * @returns {int} the current integer timestamp in milliseconds from the exchange server
337
- */
338
- async fetchTime(params = {}) {
339
- const response = await this.publicGetCommonTimestamp(params);
340
- //
341
- // {
342
- // "code":"A10000",
343
- // "data":1599090512080,
344
- // "message":"Success"
345
- // }
346
- //
347
- return this.safeInteger(response, 'data');
348
- }
349
- /**
350
- * @method
351
- * @name novadax#fetchMarkets
352
- * @description retrieves data on all markets for novadax
353
- * @see https://doc.novadax.com/en-US/#get-all-supported-trading-symbol
354
- * @param {object} [params] extra parameters specific to the exchange API endpoint
355
- * @returns {object[]} an array of objects representing market data
356
- */
357
- async fetchMarkets(params = {}) {
358
- const response = await this.publicGetCommonSymbols(params);
359
- //
360
- // {
361
- // "code":"A10000",
362
- // "data":[
363
- // {
364
- // "amountPrecision":8,
365
- // "baseCurrency":"BTC",
366
- // "minOrderAmount":"0.001",
367
- // "minOrderValue":"25",
368
- // "pricePrecision":2,
369
- // "quoteCurrency":"BRL",
370
- // "status":"ONLINE",
371
- // "symbol":"BTC_BRL",
372
- // "valuePrecision":2
373
- // },
374
- // ],
375
- // "message":"Success"
376
- // }
377
- //
378
- const data = this.safeValue(response, 'data', []);
379
- return this.parseMarkets(data);
380
- }
381
- parseMarket(market) {
382
- const baseId = this.safeString(market, 'baseCurrency');
383
- const quoteId = this.safeString(market, 'quoteCurrency');
384
- const id = this.safeString(market, 'symbol');
385
- const base = this.safeCurrencyCode(baseId);
386
- const quote = this.safeCurrencyCode(quoteId);
387
- const status = this.safeString(market, 'status');
388
- return {
389
- 'id': id,
390
- 'symbol': base + '/' + quote,
391
- 'base': base,
392
- 'quote': quote,
393
- 'settle': undefined,
394
- 'baseId': baseId,
395
- 'quoteId': quoteId,
396
- 'settleId': undefined,
397
- 'type': 'spot',
398
- 'spot': true,
399
- 'margin': false,
400
- 'swap': false,
401
- 'future': false,
402
- 'option': false,
403
- 'active': (status === 'ONLINE'),
404
- 'contract': false,
405
- 'linear': undefined,
406
- 'inverse': undefined,
407
- 'contractSize': undefined,
408
- 'expiry': undefined,
409
- 'expiryDatetime': undefined,
410
- 'strike': undefined,
411
- 'optionType': undefined,
412
- 'precision': {
413
- 'amount': this.parseNumber(this.parsePrecision(this.safeString(market, 'amountPrecision'))),
414
- 'price': this.parseNumber(this.parsePrecision(this.safeString(market, 'pricePrecision'))),
415
- // 'cost': this.parseNumber (this.parsePrecision (this.safeString (market, 'valuePrecision'))),
416
- },
417
- 'limits': {
418
- 'leverage': {
419
- 'min': undefined,
420
- 'max': undefined,
421
- },
422
- 'amount': {
423
- 'min': this.safeNumber(market, 'minOrderAmount'),
424
- 'max': undefined,
425
- },
426
- 'price': {
427
- 'min': undefined,
428
- 'max': undefined,
429
- },
430
- 'cost': {
431
- 'min': this.safeNumber(market, 'minOrderValue'),
432
- 'max': undefined,
433
- },
434
- },
435
- 'created': undefined,
436
- 'info': market,
437
- };
438
- }
439
- parseTicker(ticker, market = undefined) {
440
- //
441
- // fetchTicker, fetchTickers
442
- //
443
- // {
444
- // "ask":"61946.1",
445
- // "baseVolume24h":"164.41930186",
446
- // "bid":"61815",
447
- // "high24h":"64930.72",
448
- // "lastPrice":"61928.41",
449
- // "low24h":"61156.32",
450
- // "open24h":"64512.46",
451
- // "quoteVolume24h":"10308157.95",
452
- // "symbol":"BTC_BRL",
453
- // "timestamp":1599091115090
454
- // }
455
- //
456
- const timestamp = this.safeInteger(ticker, 'timestamp');
457
- const marketId = this.safeString(ticker, 'symbol');
458
- const symbol = this.safeSymbol(marketId, market, '_');
459
- const open = this.safeString(ticker, 'open24h');
460
- const last = this.safeString(ticker, 'lastPrice');
461
- const baseVolume = this.safeString(ticker, 'baseVolume24h');
462
- const quoteVolume = this.safeString(ticker, 'quoteVolume24h');
463
- return this.safeTicker({
464
- 'symbol': symbol,
465
- 'timestamp': timestamp,
466
- 'datetime': this.iso8601(timestamp),
467
- 'high': this.safeString(ticker, 'high24h'),
468
- 'low': this.safeString(ticker, 'low24h'),
469
- 'bid': this.safeString(ticker, 'bid'),
470
- 'bidVolume': undefined,
471
- 'ask': this.safeString(ticker, 'ask'),
472
- 'askVolume': undefined,
473
- 'vwap': undefined,
474
- 'open': open,
475
- 'close': last,
476
- 'last': last,
477
- 'previousClose': undefined,
478
- 'change': undefined,
479
- 'percentage': undefined,
480
- 'average': undefined,
481
- 'baseVolume': baseVolume,
482
- 'quoteVolume': quoteVolume,
483
- 'info': ticker,
484
- }, market);
485
- }
486
- /**
487
- * @method
488
- * @name novadax#fetchTicker
489
- * @description fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
490
- * @see https://doc.novadax.com/en-US/#get-latest-ticker-for-specific-pair
491
- * @param {string} symbol unified symbol of the market to fetch the ticker for
492
- * @param {object} [params] extra parameters specific to the exchange API endpoint
493
- * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/?id=ticker-structure}
494
- */
495
- async fetchTicker(symbol, params = {}) {
496
- await this.loadMarkets();
497
- const market = this.market(symbol);
498
- const request = {
499
- 'symbol': market['id'],
500
- };
501
- const response = await this.publicGetMarketTicker(this.extend(request, params));
502
- //
503
- // {
504
- // "code":"A10000",
505
- // "data":{
506
- // "ask":"61946.1",
507
- // "baseVolume24h":"164.41930186",
508
- // "bid":"61815",
509
- // "high24h":"64930.72",
510
- // "lastPrice":"61928.41",
511
- // "low24h":"61156.32",
512
- // "open24h":"64512.46",
513
- // "quoteVolume24h":"10308157.95",
514
- // "symbol":"BTC_BRL",
515
- // "timestamp":1599091115090
516
- // },
517
- // "message":"Success"
518
- // }
519
- //
520
- const data = this.safeDict(response, 'data', {});
521
- return this.parseTicker(data, market);
522
- }
523
- /**
524
- * @method
525
- * @name novadax#fetchTickers
526
- * @description fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
527
- * @see https://doc.novadax.com/en-US/#get-latest-tickers-for-all-trading-pairs
528
- * @param {string[]|undefined} symbols unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
529
- * @param {object} [params] extra parameters specific to the exchange API endpoint
530
- * @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/?id=ticker-structure}
531
- */
532
- async fetchTickers(symbols = undefined, params = {}) {
533
- await this.loadMarkets();
534
- symbols = this.marketSymbols(symbols);
535
- const response = await this.publicGetMarketTickers(params);
536
- //
537
- // {
538
- // "code":"A10000",
539
- // "data":[
540
- // {
541
- // "ask":"61879.36",
542
- // "baseVolume24h":"164.40955092",
543
- // "bid":"61815",
544
- // "high24h":"64930.72",
545
- // "lastPrice":"61820.04",
546
- // "low24h":"61156.32",
547
- // "open24h":"64624.19",
548
- // "quoteVolume24h":"10307493.92",
549
- // "symbol":"BTC_BRL",
550
- // "timestamp":1599091291083
551
- // },
552
- // ],
553
- // "message":"Success"
554
- // }
555
- //
556
- const data = this.safeValue(response, 'data', []);
557
- const result = {};
558
- for (let i = 0; i < data.length; i++) {
559
- const ticker = this.parseTicker(data[i]);
560
- const symbol = ticker['symbol'];
561
- result[symbol] = ticker;
562
- }
563
- return this.filterByArrayTickers(result, 'symbol', symbols);
564
- }
565
- /**
566
- * @method
567
- * @name novadax#fetchOrderBook
568
- * @description fetches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
569
- * @see https://doc.novadax.com/en-US/#get-market-depth
570
- * @param {string} symbol unified symbol of the market to fetch the order book for
571
- * @param {int} [limit] the maximum amount of order book entries to return
572
- * @param {object} [params] extra parameters specific to the exchange API endpoint
573
- * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure}
574
- */
575
- async fetchOrderBook(symbol, limit = undefined, params = {}) {
576
- await this.loadMarkets();
577
- const market = this.market(symbol);
578
- const request = {
579
- 'symbol': market['id'],
580
- };
581
- if (limit !== undefined) {
582
- request['limit'] = limit; // default 10, max 20
583
- }
584
- const response = await this.publicGetMarketDepth(this.extend(request, params));
585
- //
586
- // {
587
- // "code":"A10000",
588
- // "data":{
589
- // "asks":[
590
- // ["0.037159","0.3741"],
591
- // ["0.037215","0.2706"],
592
- // ["0.037222","1.8459"],
593
- // ],
594
- // "bids":[
595
- // ["0.037053","0.3857"],
596
- // ["0.036969","0.8101"],
597
- // ["0.036953","1.5226"],
598
- // ],
599
- // "timestamp":1599280414448
600
- // },
601
- // "message":"Success"
602
- // }
603
- //
604
- const data = this.safeValue(response, 'data', {});
605
- const timestamp = this.safeInteger(data, 'timestamp');
606
- return this.parseOrderBook(data, market['symbol'], timestamp, 'bids', 'asks');
607
- }
608
- parseTrade(trade, market = undefined) {
609
- //
610
- // public fetchTrades
611
- //
612
- // {
613
- // "amount":"0.0632",
614
- // "price":"0.037288",
615
- // "side":"BUY",
616
- // "timestamp":1599279694576
617
- // }
618
- //
619
- // private fetchOrderTrades
620
- //
621
- // {
622
- // "id": "608717046691139584",
623
- // "orderId": "608716957545402368",
624
- // "symbol": "BTC_BRL",
625
- // "side": "BUY",
626
- // "amount": "0.0988",
627
- // "price": "45514.76",
628
- // "fee": "0.0000988 BTC",
629
- // "feeAmount": "0.0000988",
630
- // "feeCurrency": "BTC",
631
- // "role": "MAKER",
632
- // "timestamp": 1565171053345
633
- // }
634
- //
635
- // private fetchMyTrades (same endpoint as fetchOrderTrades)
636
- //
637
- // {
638
- // "id": "608717046691139584",
639
- // "orderId": "608716957545402368",
640
- // "symbol": "BTC_BRL",
641
- // "side": "BUY",
642
- // "amount": "0.0988",
643
- // "price": "45514.76",
644
- // "fee": "0.0000988 BTC",
645
- // "feeAmount": "0.0000988",
646
- // "feeCurrency": "BTC",
647
- // "role": "MAKER",
648
- // "timestamp": 1565171053345
649
- // }
650
- //
651
- const id = this.safeString(trade, 'id');
652
- const orderId = this.safeString(trade, 'orderId');
653
- const timestamp = this.safeInteger(trade, 'timestamp');
654
- const side = this.safeStringLower(trade, 'side');
655
- const priceString = this.safeString(trade, 'price');
656
- const amountString = this.safeString(trade, 'amount');
657
- const marketId = this.safeString(trade, 'symbol');
658
- const symbol = this.safeSymbol(marketId, market, '_');
659
- const takerOrMaker = this.safeStringLower(trade, 'role');
660
- const feeString = this.safeString(trade, 'fee');
661
- let fee = undefined;
662
- if (feeString !== undefined) {
663
- const feeCurrencyId = this.safeString(trade, 'feeCurrency');
664
- const feeCurrencyCode = this.safeCurrencyCode(feeCurrencyId);
665
- fee = {
666
- 'cost': this.safeString(trade, 'feeAmount'),
667
- 'currency': feeCurrencyCode,
668
- };
669
- }
670
- return this.safeTrade({
671
- 'id': id,
672
- 'order': orderId,
673
- 'timestamp': timestamp,
674
- 'datetime': this.iso8601(timestamp),
675
- 'symbol': symbol,
676
- 'type': undefined,
677
- 'side': side,
678
- 'price': priceString,
679
- 'amount': amountString,
680
- 'cost': undefined,
681
- 'takerOrMaker': takerOrMaker,
682
- 'fee': fee,
683
- 'info': trade,
684
- }, market);
685
- }
686
- /**
687
- * @method
688
- * @name novadax#fetchTrades
689
- * @description get the list of most recent trades for a particular symbol
690
- * @see https://doc.novadax.com/en-US/#get-recent-trades
691
- * @param {string} symbol unified symbol of the market to fetch trades for
692
- * @param {int} [since] timestamp in ms of the earliest trade to fetch
693
- * @param {int} [limit] the maximum amount of trades to fetch
694
- * @param {object} [params] extra parameters specific to the exchange API endpoint
695
- * @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/?id=public-trades}
696
- */
697
- async fetchTrades(symbol, since = undefined, limit = undefined, params = {}) {
698
- await this.loadMarkets();
699
- const market = this.market(symbol);
700
- const request = {
701
- 'symbol': market['id'],
702
- };
703
- if (limit !== undefined) {
704
- request['limit'] = limit; // default 100
705
- }
706
- const response = await this.publicGetMarketTrades(this.extend(request, params));
707
- //
708
- // {
709
- // "code":"A10000",
710
- // "data":[
711
- // {"amount":"0.0632","price":"0.037288","side":"BUY","timestamp":1599279694576},
712
- // {"amount":"0.0052","price":"0.03715","side":"SELL","timestamp":1599276606852},
713
- // {"amount":"0.0058","price":"0.037188","side":"SELL","timestamp":1599275187812},
714
- // ],
715
- // "message":"Success"
716
- // }
717
- //
718
- const data = this.safeList(response, 'data', []);
719
- return this.parseTrades(data, market, since, limit);
720
- }
721
- /**
722
- * @method
723
- * @name novadax#fetchOHLCV
724
- * @description fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
725
- * @see https://doc.novadax.com/en-US/#get-kline-data
726
- * @param {string} symbol unified symbol of the market to fetch OHLCV data for
727
- * @param {string} timeframe the length of time each candle represents
728
- * @param {int} [since] timestamp in ms of the earliest candle to fetch
729
- * @param {int} [limit] the maximum amount of candles to fetch
730
- * @param {object} [params] extra parameters specific to the exchange API endpoint
731
- * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
732
- */
733
- async fetchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
734
- await this.loadMarkets();
735
- const market = this.market(symbol);
736
- const request = {
737
- 'symbol': market['id'],
738
- 'unit': this.safeString(this.timeframes, timeframe, timeframe),
739
- };
740
- const duration = this.parseTimeframe(timeframe);
741
- const now = this.seconds();
742
- if (limit === undefined) {
743
- limit = 3000; // max
744
- }
745
- if (since === undefined) {
746
- request['from'] = now - limit * duration;
747
- request['to'] = now;
748
- }
749
- else {
750
- const startFrom = this.parseToInt(since / 1000);
751
- request['from'] = startFrom;
752
- request['to'] = this.sum(startFrom, limit * duration);
753
- }
754
- const response = await this.publicGetMarketKlineHistory(this.extend(request, params));
755
- //
756
- // {
757
- // "code": "A10000",
758
- // "data": [
759
- // {
760
- // "amount": 8.25709100,
761
- // "closePrice": 62553.20,
762
- // "count": 29,
763
- // "highPrice": 62592.87,
764
- // "lowPrice": 62553.20,
765
- // "openPrice": 62554.23,
766
- // "score": 1602501480,
767
- // "symbol": "BTC_BRL",
768
- // "vol": 516784.2504067500
769
- // }
770
- // ],
771
- // "message": "Success"
772
- // }
773
- //
774
- const data = this.safeList(response, 'data', []);
775
- return this.parseOHLCVs(data, market, timeframe, since, limit);
776
- }
777
- parseOHLCV(ohlcv, market = undefined) {
778
- //
779
- // {
780
- // "amount": 8.25709100,
781
- // "closePrice": 62553.20,
782
- // "count": 29,
783
- // "highPrice": 62592.87,
784
- // "lowPrice": 62553.20,
785
- // "openPrice": 62554.23,
786
- // "score": 1602501480,
787
- // "symbol": "BTC_BRL",
788
- // "vol": 516784.2504067500
789
- // }
790
- //
791
- const options = this.safeValue(this.options, 'fetchOHLCV', {});
792
- const volumeField = this.safeString(options, 'volume', 'amount'); // or vol
793
- return [
794
- this.safeTimestamp(ohlcv, 'score'),
795
- this.safeNumber(ohlcv, 'openPrice'),
796
- this.safeNumber(ohlcv, 'highPrice'),
797
- this.safeNumber(ohlcv, 'lowPrice'),
798
- this.safeNumber(ohlcv, 'closePrice'),
799
- this.safeNumber(ohlcv, volumeField),
800
- ];
801
- }
802
- parseBalance(response) {
803
- const data = this.safeValue(response, 'data', []);
804
- const result = {
805
- 'info': response,
806
- 'timestamp': undefined,
807
- 'datetime': undefined,
808
- };
809
- for (let i = 0; i < data.length; i++) {
810
- const balance = data[i];
811
- const currencyId = this.safeString(balance, 'currency');
812
- const code = this.safeCurrencyCode(currencyId);
813
- const account = this.account();
814
- account['total'] = this.safeString(balance, 'balance');
815
- account['free'] = this.safeString(balance, 'available');
816
- account['used'] = this.safeString(balance, 'hold');
817
- result[code] = account;
818
- }
819
- return this.safeBalance(result);
820
- }
821
- /**
822
- * @method
823
- * @name novadax#fetchBalance
824
- * @description query for balance and get the amount of funds available for trading or funds locked in orders
825
- * @see https://doc.novadax.com/en-US/#get-account-balance
826
- * @param {object} [params] extra parameters specific to the exchange API endpoint
827
- * @returns {object} a [balance structure]{@link https://docs.ccxt.com/?id=balance-structure}
828
- */
829
- async fetchBalance(params = {}) {
830
- await this.loadMarkets();
831
- const response = await this.privateGetAccountGetBalance(params);
832
- //
833
- // {
834
- // "code": "A10000",
835
- // "data": [
836
- // {
837
- // "available": "1.23",
838
- // "balance": "0.23",
839
- // "currency": "BTC",
840
- // "hold": "1"
841
- // }
842
- // ],
843
- // "message": "Success"
844
- // }
845
- //
846
- return this.parseBalance(response);
847
- }
848
- /**
849
- * @method
850
- * @name novadax#createOrder
851
- * @description create a trade order
852
- * @see https://doc.novadax.com/en-US/#order-introduction
853
- * @param {string} symbol unified symbol of the market to create an order in
854
- * @param {string} type 'market' or 'limit'
855
- * @param {string} side 'buy' or 'sell'
856
- * @param {float} amount how much you want to trade in units of the base currency
857
- * @param {float} [price] the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
858
- * @param {object} [params] extra parameters specific to the exchange API endpoint
859
- * @param {float} [params.cost] for spot market buy orders, the quote quantity that can be used as an alternative for the amount
860
- * @returns {object} an [order structure]{@link https://docs.ccxt.com/?id=order-structure}
861
- */
862
- async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
863
- await this.loadMarkets();
864
- const market = this.market(symbol);
865
- let uppercaseType = type.toUpperCase();
866
- const uppercaseSide = side.toUpperCase();
867
- const request = {
868
- 'symbol': market['id'],
869
- 'side': uppercaseSide, // or SELL
870
- // "amount": this.amountToPrecision (symbol, amount),
871
- // "price": "1234.5678", // required for LIMIT and STOP orders
872
- // "operator": "" // for stop orders, can be found in order introduction
873
- // "stopPrice": this.priceToPrecision (symbol, stopPrice),
874
- // "accountId": "...", // subaccount id, optional
875
- };
876
- const triggerPrice = this.safeValue2(params, 'triggerPrice', 'stopPrice');
877
- if (triggerPrice === undefined) {
878
- if ((uppercaseType === 'STOP_LIMIT') || (uppercaseType === 'STOP_MARKET')) {
879
- throw new ArgumentsRequired(this.id + ' createOrder() requires a stopPrice parameter for ' + uppercaseType + ' orders');
880
- }
881
- }
882
- else {
883
- if (uppercaseType === 'LIMIT') {
884
- uppercaseType = 'STOP_LIMIT';
885
- }
886
- else if (uppercaseType === 'MARKET') {
887
- uppercaseType = 'STOP_MARKET';
888
- }
889
- const defaultOperator = (uppercaseSide === 'BUY') ? 'LTE' : 'GTE';
890
- request['operator'] = this.safeString(params, 'operator', defaultOperator);
891
- request['stopPrice'] = this.priceToPrecision(symbol, triggerPrice);
892
- params = this.omit(params, ['triggerPrice', 'stopPrice']);
893
- }
894
- if ((uppercaseType === 'LIMIT') || (uppercaseType === 'STOP_LIMIT')) {
895
- request['price'] = this.priceToPrecision(symbol, price);
896
- request['amount'] = this.amountToPrecision(symbol, amount);
897
- }
898
- else if ((uppercaseType === 'MARKET') || (uppercaseType === 'STOP_MARKET')) {
899
- if (uppercaseSide === 'SELL') {
900
- request['amount'] = this.amountToPrecision(symbol, amount);
901
- }
902
- else if (uppercaseSide === 'BUY') {
903
- let quoteAmount = undefined;
904
- let createMarketBuyOrderRequiresPrice = true;
905
- [createMarketBuyOrderRequiresPrice, params] = this.handleOptionAndParams(params, 'createOrder', 'createMarketBuyOrderRequiresPrice', true);
906
- const cost = this.safeNumber2(params, 'cost', 'value');
907
- params = this.omit(params, 'cost');
908
- if (cost !== undefined) {
909
- quoteAmount = this.costToPrecision(symbol, cost);
910
- }
911
- else if (createMarketBuyOrderRequiresPrice) {
912
- if (price === undefined) {
913
- throw new InvalidOrder(this.id + ' createOrder() requires the price argument for market buy orders to calculate the total cost to spend (amount * price), alternatively set the createMarketBuyOrderRequiresPrice option or param to false and pass the cost to spend (quote quantity) in the amount argument');
914
- }
915
- else {
916
- const amountString = this.numberToString(amount);
917
- const priceString = this.numberToString(price);
918
- const costRequest = Precise.stringMul(amountString, priceString);
919
- quoteAmount = this.costToPrecision(symbol, costRequest);
920
- }
921
- }
922
- else {
923
- quoteAmount = this.costToPrecision(symbol, amount);
924
- }
925
- request['value'] = quoteAmount;
926
- }
927
- }
928
- request['type'] = uppercaseType;
929
- const response = await this.privatePostOrdersCreate(this.extend(request, params));
930
- //
931
- // {
932
- // "code": "A10000",
933
- // "data": {
934
- // "amount": "0.001",
935
- // "averagePrice": null,
936
- // "filledAmount": "0",
937
- // "filledFee": "0",
938
- // "filledValue": "0",
939
- // "id": "870613508008464384",
940
- // "operator": "GTE",
941
- // "price": "210000",
942
- // "side": "BUY",
943
- // "status": "SUBMITTED",
944
- // "stopPrice": "211000",
945
- // "symbol": "BTC_BRL",
946
- // "timestamp": 1627612035528,
947
- // "type": "STOP_LIMIT",
948
- // "value": "210"
949
- // },
950
- // "message": "Success"
951
- // }
952
- //
953
- const data = this.safeDict(response, 'data', {});
954
- return this.parseOrder(data, market);
955
- }
956
- /**
957
- * @method
958
- * @name novadax#cancelOrder
959
- * @description cancels an open order
960
- * @see https://doc.novadax.com/en-US/#cancel-an-order
961
- * @param {string} id order id
962
- * @param {string} symbol not used by novadax cancelOrder ()
963
- * @param {object} [params] extra parameters specific to the exchange API endpoint
964
- * @returns {object} An [order structure]{@link https://docs.ccxt.com/?id=order-structure}
965
- */
966
- async cancelOrder(id, symbol = undefined, params = {}) {
967
- await this.loadMarkets();
968
- const request = {
969
- 'id': id,
970
- };
971
- const response = await this.privatePostOrdersCancel(this.extend(request, params));
972
- //
973
- // {
974
- // "code": "A10000",
975
- // "data": {
976
- // "result": true
977
- // },
978
- // "message": "Success"
979
- // }
980
- //
981
- const data = this.safeDict(response, 'data', {});
982
- return this.parseOrder(data);
983
- }
984
- /**
985
- * @method
986
- * @name novadax#fetchOrder
987
- * @description fetches information on an order made by the user
988
- * @see https://doc.novadax.com/en-US/#get-order-details
989
- * @param {string} id order id
990
- * @param {string} symbol not used by novadax fetchOrder
991
- * @param {object} [params] extra parameters specific to the exchange API endpoint
992
- * @returns {object} An [order structure]{@link https://docs.ccxt.com/?id=order-structure}
993
- */
994
- async fetchOrder(id, symbol = undefined, params = {}) {
995
- await this.loadMarkets();
996
- const request = {
997
- 'id': id,
998
- };
999
- const response = await this.privateGetOrdersGet(this.extend(request, params));
1000
- //
1001
- // {
1002
- // "code": "A10000",
1003
- // "data": {
1004
- // "id": "608695623247466496",
1005
- // "symbol": "BTC_BRL",
1006
- // "type": "MARKET",
1007
- // "side": "SELL",
1008
- // "price": null,
1009
- // "averagePrice": "0",
1010
- // "amount": "0.123",
1011
- // "filledAmount": "0",
1012
- // "value": null,
1013
- // "filledValue": "0",
1014
- // "filledFee": "0",
1015
- // "status": "REJECTED",
1016
- // "timestamp": 1565165945588
1017
- // },
1018
- // "message": "Success"
1019
- // }
1020
- //
1021
- const data = this.safeDict(response, 'data', {});
1022
- return this.parseOrder(data);
1023
- }
1024
- /**
1025
- * @method
1026
- * @name novadax#fetchOrders
1027
- * @description fetches information on multiple orders made by the user
1028
- * @see https://doc.novadax.com/en-US/#get-order-history
1029
- * @param {string} symbol unified market symbol of the market orders were made in
1030
- * @param {int} [since] the earliest time in ms to fetch orders for
1031
- * @param {int} [limit] the maximum number of order structures to retrieve
1032
- * @param {object} [params] extra parameters specific to the exchange API endpoint
1033
- * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/?id=order-structure}
1034
- */
1035
- async fetchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1036
- await this.loadMarkets();
1037
- const request = {
1038
- // 'symbol': market['id'],
1039
- // 'status': 'SUBMITTED,PROCESSING', // SUBMITTED, PROCESSING, PARTIAL_FILLED, CANCELING, FILLED, CANCELED, REJECTED
1040
- // 'fromId': '...', // order id to begin with
1041
- // 'toId': '...', // order id to end up with
1042
- // 'fromTimestamp': since,
1043
- // 'toTimestamp': this.milliseconds (),
1044
- // 'limit': limit, // default 100, max 100
1045
- };
1046
- let market = undefined;
1047
- if (symbol !== undefined) {
1048
- market = this.market(symbol);
1049
- request['symbol'] = market['id'];
1050
- }
1051
- if (limit !== undefined) {
1052
- request['limit'] = limit; // default 100, max 100
1053
- }
1054
- if (since !== undefined) {
1055
- request['fromTimestamp'] = since;
1056
- }
1057
- const response = await this.privateGetOrdersList(this.extend(request, params));
1058
- //
1059
- // {
1060
- // "code": "A10000",
1061
- // "data": [
1062
- // {
1063
- // "id": "608695678650028032",
1064
- // "symbol": "BTC_BRL",
1065
- // "type": "MARKET",
1066
- // "side": "SELL",
1067
- // "price": null,
1068
- // "averagePrice": "0",
1069
- // "amount": "0.123",
1070
- // "filledAmount": "0",
1071
- // "value": null,
1072
- // "filledValue": "0",
1073
- // "filledFee": "0",
1074
- // "status": "REJECTED",
1075
- // "timestamp": 1565165958796
1076
- // },
1077
- // ],
1078
- // "message": "Success"
1079
- // }
1080
- //
1081
- const data = this.safeList(response, 'data', []);
1082
- return this.parseOrders(data, market, since, limit);
1083
- }
1084
- /**
1085
- * @method
1086
- * @name novadax#fetchOpenOrders
1087
- * @description fetch all unfilled currently open orders
1088
- * @see https://doc.novadax.com/en-US/#get-order-history
1089
- * @param {string} symbol unified market symbol
1090
- * @param {int} [since] the earliest time in ms to fetch open orders for
1091
- * @param {int} [limit] the maximum number of open orders structures to retrieve
1092
- * @param {object} [params] extra parameters specific to the exchange API endpoint
1093
- * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/?id=order-structure}
1094
- */
1095
- async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1096
- const request = {
1097
- 'status': 'SUBMITTED,PROCESSING,PARTIAL_FILLED,CANCELING',
1098
- };
1099
- return await this.fetchOrders(symbol, since, limit, this.extend(request, params));
1100
- }
1101
- /**
1102
- * @method
1103
- * @name novadax#fetchClosedOrders
1104
- * @description fetches information on multiple closed orders made by the user
1105
- * @see https://doc.novadax.com/en-US/#get-order-history
1106
- * @param {string} symbol unified market symbol of the market orders were made in
1107
- * @param {int} [since] the earliest time in ms to fetch orders for
1108
- * @param {int} [limit] the maximum number of order structures to retrieve
1109
- * @param {object} [params] extra parameters specific to the exchange API endpoint
1110
- * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/?id=order-structure}
1111
- */
1112
- async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1113
- const request = {
1114
- 'status': 'FILLED,CANCELED,REJECTED',
1115
- };
1116
- return await this.fetchOrders(symbol, since, limit, this.extend(request, params));
1117
- }
1118
- /**
1119
- * @method
1120
- * @name novadax#fetchOrderTrades
1121
- * @description fetch all the trades made from a single order
1122
- * @see https://doc.novadax.com/en-US/#get-order-match-details
1123
- * @param {string} id order id
1124
- * @param {string} symbol unified market symbol
1125
- * @param {int} [since] the earliest time in ms to fetch trades for
1126
- * @param {int} [limit] the maximum number of trades to retrieve
1127
- * @param {object} [params] extra parameters specific to the exchange API endpoint
1128
- * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/?id=trade-structure}
1129
- */
1130
- async fetchOrderTrades(id, symbol = undefined, since = undefined, limit = undefined, params = {}) {
1131
- await this.loadMarkets();
1132
- const request = {
1133
- 'id': id,
1134
- };
1135
- const response = await this.privateGetOrdersFill(this.extend(request, params));
1136
- let market = undefined;
1137
- if (symbol !== undefined) {
1138
- market = this.market(symbol);
1139
- }
1140
- const data = this.safeValue(response, 'data', []);
1141
- //
1142
- // {
1143
- // "code": "A10000",
1144
- // "data": [
1145
- // {
1146
- // "id": "608717046691139584",
1147
- // "orderId": "608716957545402368",
1148
- // "symbol": "BTC_BRL",
1149
- // "side": "BUY",
1150
- // "amount": "0.0988",
1151
- // "price": "45514.76",
1152
- // "fee": "0.0000988 BTC",
1153
- // "feeAmount": "0.0000988",
1154
- // "feeCurrency": "BTC",
1155
- // "role": "MAKER",
1156
- // "timestamp": 1565171053345
1157
- // },
1158
- // ],
1159
- // "message": "Success"
1160
- // }
1161
- //
1162
- return this.parseTrades(data, market, since, limit);
1163
- }
1164
- parseOrderStatus(status) {
1165
- const statuses = {
1166
- 'SUBMITTED': 'open',
1167
- 'PROCESSING': 'open',
1168
- 'PARTIAL_FILLED': 'open',
1169
- 'CANCELING': 'open',
1170
- 'FILLED': 'closed',
1171
- 'CANCELED': 'canceled',
1172
- 'REJECTED': 'rejected',
1173
- };
1174
- return this.safeString(statuses, status, status);
1175
- }
1176
- parseOrder(order, market = undefined) {
1177
- //
1178
- // createOrder, fetchOrders, fetchOrder
1179
- //
1180
- // {
1181
- // "amount": "0.001",
1182
- // "averagePrice": null,
1183
- // "filledAmount": "0",
1184
- // "filledFee": "0",
1185
- // "filledValue": "0",
1186
- // "id": "870613508008464384",
1187
- // "operator": "GTE",
1188
- // "price": "210000",
1189
- // "side": "BUY",
1190
- // "status": "SUBMITTED",
1191
- // "stopPrice": "211000",
1192
- // "symbol": "BTC_BRL",
1193
- // "timestamp": 1627612035528,
1194
- // "type": "STOP_LIMIT",
1195
- // "value": "210"
1196
- // }
1197
- //
1198
- // cancelOrder
1199
- //
1200
- // {
1201
- // "result": true
1202
- // }
1203
- //
1204
- const id = this.safeString(order, 'id');
1205
- const amount = this.safeString(order, 'amount');
1206
- const price = this.safeString(order, 'price');
1207
- const cost = this.safeString2(order, 'filledValue', 'value');
1208
- const type = this.safeStringLower(order, 'type');
1209
- const side = this.safeStringLower(order, 'side');
1210
- const status = this.parseOrderStatus(this.safeString(order, 'status'));
1211
- const timestamp = this.safeInteger(order, 'timestamp');
1212
- const average = this.safeString(order, 'averagePrice');
1213
- const filled = this.safeString(order, 'filledAmount');
1214
- let fee = undefined;
1215
- const feeCost = this.safeNumber(order, 'filledFee');
1216
- if (feeCost !== undefined) {
1217
- fee = {
1218
- 'cost': feeCost,
1219
- 'currency': undefined,
1220
- };
1221
- }
1222
- const marketId = this.safeString(order, 'symbol');
1223
- const symbol = this.safeSymbol(marketId, market, '_');
1224
- return this.safeOrder({
1225
- 'id': id,
1226
- 'clientOrderId': undefined,
1227
- 'info': order,
1228
- 'timestamp': timestamp,
1229
- 'datetime': this.iso8601(timestamp),
1230
- 'lastTradeTimestamp': undefined,
1231
- 'symbol': symbol,
1232
- 'type': type,
1233
- 'timeInForce': undefined,
1234
- 'postOnly': undefined,
1235
- 'side': side,
1236
- 'price': price,
1237
- 'triggerPrice': this.safeNumber(order, 'stopPrice'),
1238
- 'amount': amount,
1239
- 'cost': cost,
1240
- 'average': average,
1241
- 'filled': filled,
1242
- 'remaining': undefined,
1243
- 'status': status,
1244
- 'fee': fee,
1245
- 'trades': undefined,
1246
- }, market);
1247
- }
1248
- /**
1249
- * @method
1250
- * @name novadax#transfer
1251
- * @description transfer currency internally between wallets on the same account
1252
- * @see https://doc.novadax.com/en-US/#get-sub-account-transfer
1253
- * @param {string} code unified currency code
1254
- * @param {float} amount amount to transfer
1255
- * @param {string} fromAccount account to transfer from
1256
- * @param {string} toAccount account to transfer to
1257
- * @param {object} [params] extra parameters specific to the exchange API endpoint
1258
- * @returns {object} a [transfer structure]{@link https://docs.ccxt.com/?id=transfer-structure}
1259
- */
1260
- async transfer(code, amount, fromAccount, toAccount, params = {}) {
1261
- await this.loadMarkets();
1262
- const currency = this.currency(code);
1263
- if (fromAccount !== 'main' && toAccount !== 'main') {
1264
- throw new ExchangeError(this.id + ' transfer() supports transfers between main account and subaccounts only');
1265
- }
1266
- // master-transfer-in = from master account to subaccount
1267
- // master-transfer-out = from subaccount to master account
1268
- const type = (fromAccount === 'main') ? 'master-transfer-in' : 'master-transfer-out';
1269
- const request = {
1270
- 'transferAmount': this.currencyToPrecision(code, amount),
1271
- 'currency': currency['id'],
1272
- 'subId': (type === 'master-transfer-in') ? toAccount : fromAccount,
1273
- 'transferType': type,
1274
- };
1275
- const response = await this.privatePostAccountSubsTransfer(this.extend(request, params));
1276
- //
1277
- // {
1278
- // "code":"A10000",
1279
- // "message":"Success",
1280
- // "data":40
1281
- // }
1282
- //
1283
- const transfer = this.parseTransfer(response, currency);
1284
- const transferOptions = this.safeValue(this.options, 'transfer', {});
1285
- const fillResponseFromRequest = this.safeBool(transferOptions, 'fillResponseFromRequest', true);
1286
- if (fillResponseFromRequest) {
1287
- transfer['fromAccount'] = fromAccount;
1288
- transfer['toAccount'] = toAccount;
1289
- transfer['amount'] = amount;
1290
- }
1291
- return transfer;
1292
- }
1293
- parseTransfer(transfer, currency = undefined) {
1294
- //
1295
- // {
1296
- // "code":"A10000",
1297
- // "message":"Success",
1298
- // "data":40
1299
- // }
1300
- //
1301
- const id = this.safeString(transfer, 'data');
1302
- const status = this.safeString(transfer, 'message');
1303
- const currencyCode = this.safeCurrencyCode(undefined, currency);
1304
- return {
1305
- 'info': transfer,
1306
- 'id': id,
1307
- 'amount': undefined,
1308
- 'currency': currencyCode,
1309
- 'fromAccount': undefined,
1310
- 'toAccount': undefined,
1311
- 'timestamp': undefined,
1312
- 'datetime': undefined,
1313
- 'status': status,
1314
- };
1315
- }
1316
- parseTransferStatus(status) {
1317
- const statuses = {
1318
- 'SUCCESS': 'pending',
1319
- };
1320
- return this.safeString(statuses, status, 'failed');
1321
- }
1322
- /**
1323
- * @method
1324
- * @name novadax#withdraw
1325
- * @description make a withdrawal
1326
- * @see https://doc.novadax.com/en-US/#send-cryptocurrencies
1327
- * @param {string} code unified currency code
1328
- * @param {float} amount the amount to withdraw
1329
- * @param {string} address the address to withdraw to
1330
- * @param {string} tag
1331
- * @param {object} [params] extra parameters specific to the exchange API endpoint
1332
- * @returns {object} a [transaction structure]{@link https://docs.ccxt.com/?id=transaction-structure}
1333
- */
1334
- async withdraw(code, amount, address, tag = undefined, params = {}) {
1335
- [tag, params] = this.handleWithdrawTagAndParams(tag, params);
1336
- await this.loadMarkets();
1337
- const currency = this.currency(code);
1338
- const request = {
1339
- 'code': currency['id'],
1340
- 'amount': this.currencyToPrecision(code, amount),
1341
- 'wallet': address,
1342
- };
1343
- if (tag !== undefined) {
1344
- request['tag'] = tag;
1345
- }
1346
- const response = await this.privatePostAccountWithdrawCoin(this.extend(request, params));
1347
- //
1348
- // {
1349
- // "code":"A10000",
1350
- // "data": "DR123",
1351
- // "message":"Success"
1352
- // }
1353
- //
1354
- return this.parseTransaction(response, currency);
1355
- }
1356
- /**
1357
- * @method
1358
- * @name novadax#fetchAccounts
1359
- * @description fetch all the accounts associated with a profile
1360
- * @see https://doc.novadax.com/en-US/#get-sub-account-list
1361
- * @param {object} [params] extra parameters specific to the exchange API endpoint
1362
- * @returns {object} a dictionary of [account structures]{@link https://docs.ccxt.com/?id=account-structure} indexed by the account type
1363
- */
1364
- async fetchAccounts(params = {}) {
1365
- const response = await this.privateGetAccountSubs(params);
1366
- //
1367
- // {
1368
- // "code": "A10000",
1369
- // "data": [
1370
- // {
1371
- // "subId": "CA648856083527372800",
1372
- // "state": "Normal",
1373
- // "subAccount": "003",
1374
- // "subIdentify": "003"
1375
- // }
1376
- // ],
1377
- // "message": "Success"
1378
- // }
1379
- //
1380
- const data = this.safeValue(response, 'data', []);
1381
- const result = [];
1382
- for (let i = 0; i < data.length; i++) {
1383
- const account = data[i];
1384
- const accountId = this.safeString(account, 'subId');
1385
- const type = this.safeString(account, 'subAccount');
1386
- result.push({
1387
- 'id': accountId,
1388
- 'type': type,
1389
- 'currency': undefined,
1390
- 'info': account,
1391
- });
1392
- }
1393
- return result;
1394
- }
1395
- /**
1396
- * @method
1397
- * @name novadax#fetchDeposits
1398
- * @description fetch all deposits made to an account
1399
- * @see https://doc.novadax.com/en-US/#wallet-records-of-deposits-and-withdraws
1400
- * @param {string} code unified currency code
1401
- * @param {int} [since] the earliest time in ms to fetch deposits for
1402
- * @param {int} [limit] the maximum number of deposits structures to retrieve
1403
- * @param {object} [params] extra parameters specific to the exchange API endpoint
1404
- * @returns {object[]} a list of [transaction structures]{@link https://docs.ccxt.com/?id=transaction-structure}
1405
- */
1406
- async fetchDeposits(code = undefined, since = undefined, limit = undefined, params = {}) {
1407
- const request = {
1408
- 'type': 'coin_in',
1409
- };
1410
- return await this.fetchDepositsWithdrawals(code, since, limit, this.extend(request, params));
1411
- }
1412
- /**
1413
- * @method
1414
- * @name novadax#fetchWithdrawals
1415
- * @description fetch all withdrawals made from an account
1416
- * @see https://doc.novadax.com/en-US/#wallet-records-of-deposits-and-withdraws
1417
- * @param {string} code unified currency code
1418
- * @param {int} [since] the earliest time in ms to fetch withdrawals for
1419
- * @param {int} [limit] the maximum number of withdrawals structures to retrieve
1420
- * @param {object} [params] extra parameters specific to the exchange API endpoint
1421
- * @returns {object[]} a list of [transaction structures]{@link https://docs.ccxt.com/?id=transaction-structure}
1422
- */
1423
- async fetchWithdrawals(code = undefined, since = undefined, limit = undefined, params = {}) {
1424
- const request = {
1425
- 'type': 'coin_out',
1426
- };
1427
- return await this.fetchDepositsWithdrawals(code, since, limit, this.extend(request, params));
1428
- }
1429
- /**
1430
- * @method
1431
- * @name novadax#fetchDepositsWithdrawals
1432
- * @description fetch history of deposits and withdrawals
1433
- * @see https://doc.novadax.com/en-US/#wallet-records-of-deposits-and-withdraws
1434
- * @param {string} [code] unified currency code for the currency of the deposit/withdrawals, default is undefined
1435
- * @param {int} [since] timestamp in ms of the earliest deposit/withdrawal, default is undefined
1436
- * @param {int} [limit] max number of deposit/withdrawals to return, default is undefined
1437
- * @param {object} [params] extra parameters specific to the exchange API endpoint
1438
- * @returns {object} a list of [transaction structure]{@link https://docs.ccxt.com/?id=transaction-structure}
1439
- */
1440
- async fetchDepositsWithdrawals(code = undefined, since = undefined, limit = undefined, params = {}) {
1441
- await this.loadMarkets();
1442
- const request = {
1443
- // 'currency': currency['id'],
1444
- // 'type': 'coin_in', // 'coin_out'
1445
- // 'direct': 'asc', // 'desc'
1446
- // 'size': limit, // default 100
1447
- // 'start': id, // offset id
1448
- };
1449
- let currency = undefined;
1450
- if (code !== undefined) {
1451
- currency = this.currency(code);
1452
- request['currency'] = currency['id'];
1453
- }
1454
- if (limit !== undefined) {
1455
- request['size'] = limit;
1456
- }
1457
- const response = await this.privateGetWalletQueryDepositWithdraw(this.extend(request, params));
1458
- //
1459
- // {
1460
- // "code": "A10000",
1461
- // "data": [
1462
- // {
1463
- // "id": "DR562339304588709888",
1464
- // "type": "COIN_IN",
1465
- // "currency": "XLM",
1466
- // "chain": "XLM",
1467
- // "address": "GCUTK7KHPJC3ZQJ3OMWWFHAK2OXIBRD4LNZQRCCOVE7A2XOPP2K5PU5Q",
1468
- // "addressTag": "1000009",
1469
- // "amount": 1.0,
1470
- // "state": "SUCCESS",
1471
- // "txHash": "39210645748822f8d4ce673c7559aa6622e6e9cdd7073bc0fcae14b1edfda5f4",
1472
- // "createdAt": 1554113737000,
1473
- // "updatedAt": 1601371273000
1474
- // }
1475
- // ],
1476
- // "message": "Success"
1477
- // }
1478
- //
1479
- const data = this.safeList(response, 'data', []);
1480
- return this.parseTransactions(data, currency, since, limit);
1481
- }
1482
- parseTransactionStatus(status) {
1483
- // Pending the record is wait broadcast to chain
1484
- // x/M confirming the comfirming state of tx, the M is total confirmings needed
1485
- // SUCCESS the record is success full
1486
- // FAIL the record failed
1487
- const parts = status.split(' ');
1488
- status = this.safeString(parts, 1, status);
1489
- const statuses = {
1490
- 'Pending': 'pending',
1491
- 'confirming': 'pending',
1492
- 'SUCCESS': 'ok',
1493
- 'FAIL': 'failed',
1494
- };
1495
- return this.safeString(statuses, status, status);
1496
- }
1497
- parseTransaction(transaction, currency = undefined) {
1498
- //
1499
- // withdraw
1500
- //
1501
- // {
1502
- // "code":"A10000",
1503
- // "data": "DR123",
1504
- // "message":"Success"
1505
- // }
1506
- //
1507
- // fetchDepositsWithdrawals
1508
- //
1509
- // {
1510
- // "id": "DR562339304588709888",
1511
- // "type": "COIN_IN",
1512
- // "currency": "XLM",
1513
- // "chain": "XLM",
1514
- // "address": "GCUTK7KHPJC3ZQJ3OMWWFHAK2OXIBRD4LNZQRCCOVE7A2XOPP2K5PU5Q",
1515
- // "addressTag": "1000009",
1516
- // "amount": 1.0,
1517
- // "state": "SUCCESS",
1518
- // "txHash": "39210645748822f8d4ce673c7559aa6622e6e9cdd7073bc0fcae14b1edfda5f4",
1519
- // "createdAt": 1554113737000,
1520
- // "updatedAt": 1601371273000
1521
- // }
1522
- //
1523
- const id = this.safeString2(transaction, 'id', 'data');
1524
- let type = this.safeString(transaction, 'type');
1525
- if (type === 'COIN_IN') {
1526
- type = 'deposit';
1527
- }
1528
- else if (type === 'COIN_OUT') {
1529
- type = 'withdraw';
1530
- }
1531
- const amount = this.safeNumber(transaction, 'amount');
1532
- const address = this.safeString(transaction, 'address');
1533
- const tag = this.safeString(transaction, 'addressTag');
1534
- const txid = this.safeString(transaction, 'txHash');
1535
- const timestamp = this.safeInteger(transaction, 'createdAt');
1536
- const updated = this.safeInteger(transaction, 'updatedAt');
1537
- const currencyId = this.safeString(transaction, 'currency');
1538
- const code = this.safeCurrencyCode(currencyId, currency);
1539
- const status = this.parseTransactionStatus(this.safeString(transaction, 'state'));
1540
- const network = this.safeString(transaction, 'chain');
1541
- return {
1542
- 'info': transaction,
1543
- 'id': id,
1544
- 'currency': code,
1545
- 'amount': amount,
1546
- 'network': network,
1547
- 'address': address,
1548
- 'addressTo': address,
1549
- 'addressFrom': undefined,
1550
- 'tag': tag,
1551
- 'tagTo': tag,
1552
- 'tagFrom': undefined,
1553
- 'status': status,
1554
- 'type': type,
1555
- 'updated': updated,
1556
- 'txid': txid,
1557
- 'timestamp': timestamp,
1558
- 'datetime': this.iso8601(timestamp),
1559
- 'comment': undefined,
1560
- 'internal': undefined,
1561
- 'fee': {
1562
- 'currency': undefined,
1563
- 'cost': undefined,
1564
- 'rate': undefined,
1565
- },
1566
- };
1567
- }
1568
- /**
1569
- * @method
1570
- * @name novadax#fetchMyTrades
1571
- * @description fetch all trades made by the user
1572
- * @see https://doc.novadax.com/en-US/#get-order-history
1573
- * @param {string} symbol unified market symbol
1574
- * @param {int} [since] the earliest time in ms to fetch trades for
1575
- * @param {int} [limit] the maximum number of trades structures to retrieve
1576
- * @param {object} [params] extra parameters specific to the exchange API endpoint
1577
- * @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/?id=trade-structure}
1578
- */
1579
- async fetchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1580
- await this.loadMarkets();
1581
- const request = {
1582
- // 'orderId': id, // Order ID, string
1583
- // 'symbol': market['id'], // The trading symbol, like BTC_BRL, string
1584
- // 'fromId': fromId, // Search fill id to begin with, string
1585
- // 'toId': toId, // Search fill id to end up with, string
1586
- // 'fromTimestamp': since, // Search order fill time to begin with, in milliseconds, string
1587
- // 'toTimestamp': this.milliseconds (), // Search order fill time to end up with, in milliseconds, string
1588
- // 'limit': limit, // The number of fills to return, default 100, max 100, string
1589
- // 'accountId': subaccountId, // Sub account ID, if not informed, the fills will be return under master account, string
1590
- };
1591
- let market = undefined;
1592
- if (symbol !== undefined) {
1593
- market = this.market(symbol);
1594
- request['symbol'] = market['id'];
1595
- }
1596
- if (limit !== undefined) {
1597
- request['limit'] = limit;
1598
- }
1599
- if (since !== undefined) {
1600
- request['fromTimestamp'] = since;
1601
- }
1602
- const response = await this.privateGetOrdersFills(this.extend(request, params));
1603
- //
1604
- // {
1605
- // "code": "A10000",
1606
- // "data": [
1607
- // {
1608
- // "id": "608717046691139584",
1609
- // "orderId": "608716957545402368",
1610
- // "symbol": "BTC_BRL",
1611
- // "side": "BUY",
1612
- // "amount": "0.0988",
1613
- // "price": "45514.76",
1614
- // "fee": "0.0000988 BTC",
1615
- // "feeAmount": "0.0000988",
1616
- // "feeCurrency": "BTC",
1617
- // "role": "MAKER",
1618
- // "timestamp": 1565171053345
1619
- // },
1620
- // ],
1621
- // "message": "Success"
1622
- // }
1623
- //
1624
- const data = this.safeList(response, 'data', []);
1625
- return this.parseTrades(data, market, since, limit);
1626
- }
1627
- sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
1628
- const request = '/' + this.version + '/' + this.implodeParams(path, params);
1629
- let url = this.urls['api'][api] + request;
1630
- const query = this.omit(params, this.extractParams(path));
1631
- if (api === 'public') {
1632
- if (Object.keys(query).length) {
1633
- url += '?' + this.urlencode(query);
1634
- }
1635
- }
1636
- else if (api === 'private') {
1637
- this.checkRequiredCredentials();
1638
- const timestamp = this.milliseconds().toString();
1639
- headers = {
1640
- 'X-Nova-Access-Key': this.apiKey,
1641
- 'X-Nova-Timestamp': timestamp,
1642
- };
1643
- let queryString = undefined;
1644
- if (method === 'POST') {
1645
- body = this.json(query);
1646
- queryString = this.hash(this.encode(body), md5);
1647
- headers['Content-Type'] = 'application/json';
1648
- }
1649
- else {
1650
- if (Object.keys(query).length) {
1651
- url += '?' + this.urlencode(query);
1652
- }
1653
- queryString = this.urlencode(this.keysort(query));
1654
- }
1655
- const auth = method + "\n" + request + "\n" + queryString + "\n" + timestamp; // eslint-disable-line quotes
1656
- headers['X-Nova-Signature'] = this.hmac(this.encode(auth), this.encode(this.secret), sha256);
1657
- }
1658
- return { 'url': url, 'method': method, 'body': body, 'headers': headers };
1659
- }
1660
- handleErrors(code, reason, url, method, headers, body, response, requestHeaders, requestBody) {
1661
- if (response === undefined) {
1662
- return undefined;
1663
- }
1664
- //
1665
- // {"code":"A10003","data":[],"message":"Authentication failed, Invalid accessKey."}
1666
- //
1667
- const errorCode = this.safeString(response, 'code');
1668
- if (errorCode !== 'A10000') {
1669
- const message = this.safeString(response, 'message');
1670
- const feedback = this.id + ' ' + body;
1671
- this.throwExactlyMatchedException(this.exceptions['exact'], errorCode, feedback);
1672
- this.throwBroadlyMatchedException(this.exceptions['broad'], message, feedback);
1673
- throw new ExchangeError(feedback); // unknown message
1674
- }
1675
- return undefined;
1676
- }
1677
- }