ccxt 4.2.77__py2.py3-none-any.whl → 4.4.49__py2.py3-none-any.whl

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 (546) hide show
  1. ccxt/__init__.py +36 -14
  2. ccxt/abstract/alpaca.py +4 -0
  3. ccxt/abstract/bigone.py +1 -1
  4. ccxt/abstract/binance.py +112 -48
  5. ccxt/abstract/binancecoinm.py +112 -48
  6. ccxt/abstract/binanceus.py +147 -83
  7. ccxt/abstract/binanceusdm.py +112 -48
  8. ccxt/abstract/bingx.py +133 -78
  9. ccxt/abstract/bitbank.py +5 -0
  10. ccxt/abstract/bitfinex.py +136 -65
  11. ccxt/abstract/bitfinex1.py +69 -0
  12. ccxt/abstract/bitflyer.py +1 -0
  13. ccxt/abstract/bitget.py +8 -1
  14. ccxt/abstract/bitmart.py +13 -1
  15. ccxt/abstract/bitopro.py +1 -0
  16. ccxt/abstract/bitpanda.py +0 -12
  17. ccxt/abstract/bitrue.py +3 -3
  18. ccxt/abstract/bitstamp.py +26 -3
  19. ccxt/abstract/blofin.py +24 -0
  20. ccxt/abstract/btcbox.py +1 -0
  21. ccxt/abstract/bybit.py +29 -14
  22. ccxt/abstract/cex.py +28 -29
  23. ccxt/abstract/coinbase.py +6 -0
  24. ccxt/abstract/coinbaseadvanced.py +94 -0
  25. ccxt/abstract/{coinbasepro.py → coinbaseexchange.py} +1 -0
  26. ccxt/abstract/coinbaseinternational.py +1 -1
  27. ccxt/abstract/coincatch.py +94 -0
  28. ccxt/abstract/coinex.py +233 -123
  29. ccxt/abstract/coinmetro.py +1 -0
  30. ccxt/abstract/cryptocom.py +14 -0
  31. ccxt/abstract/defx.py +69 -0
  32. ccxt/abstract/deribit.py +1 -0
  33. ccxt/abstract/digifinex.py +1 -0
  34. ccxt/abstract/ellipx.py +25 -0
  35. ccxt/abstract/gate.py +20 -0
  36. ccxt/abstract/gateio.py +20 -0
  37. ccxt/abstract/gemini.py +1 -0
  38. ccxt/abstract/hashkey.py +67 -0
  39. ccxt/abstract/hyperliquid.py +1 -1
  40. ccxt/abstract/independentreserve.py +6 -0
  41. ccxt/abstract/kraken.py +4 -3
  42. ccxt/abstract/krakenfutures.py +4 -0
  43. ccxt/abstract/kucoin.py +24 -0
  44. ccxt/abstract/kucoinfutures.py +34 -0
  45. ccxt/abstract/luno.py +2 -0
  46. ccxt/abstract/mexc.py +4 -0
  47. ccxt/abstract/myokx.py +340 -0
  48. ccxt/abstract/oceanex.py +5 -0
  49. ccxt/abstract/okx.py +30 -0
  50. ccxt/abstract/onetrading.py +0 -12
  51. ccxt/abstract/oxfun.py +34 -0
  52. ccxt/abstract/paradex.py +40 -0
  53. ccxt/abstract/phemex.py +1 -0
  54. ccxt/abstract/upbit.py +4 -0
  55. ccxt/abstract/vertex.py +19 -0
  56. ccxt/abstract/whitebit.py +31 -1
  57. ccxt/abstract/woo.py +6 -2
  58. ccxt/abstract/woofipro.py +119 -0
  59. ccxt/abstract/xt.py +153 -0
  60. ccxt/abstract/zonda.py +6 -0
  61. ccxt/ace.py +164 -60
  62. ccxt/alpaca.py +727 -63
  63. ccxt/ascendex.py +395 -249
  64. ccxt/async_support/__init__.py +36 -14
  65. ccxt/async_support/ace.py +164 -60
  66. ccxt/async_support/alpaca.py +727 -63
  67. ccxt/async_support/ascendex.py +396 -249
  68. ccxt/async_support/base/exchange.py +531 -155
  69. ccxt/async_support/base/ws/aiohttp_client.py +28 -5
  70. ccxt/async_support/base/ws/cache.py +3 -2
  71. ccxt/async_support/base/ws/client.py +26 -5
  72. ccxt/async_support/base/ws/fast_client.py +4 -3
  73. ccxt/async_support/base/ws/functions.py +1 -1
  74. ccxt/async_support/base/ws/future.py +40 -31
  75. ccxt/async_support/base/ws/order_book_side.py +3 -0
  76. ccxt/async_support/bequant.py +1 -1
  77. ccxt/async_support/bigone.py +329 -202
  78. ccxt/async_support/binance.py +3030 -1087
  79. ccxt/async_support/binancecoinm.py +2 -1
  80. ccxt/async_support/binanceus.py +12 -1
  81. ccxt/async_support/binanceusdm.py +3 -1
  82. ccxt/async_support/bingx.py +3205 -937
  83. ccxt/async_support/bit2c.py +119 -38
  84. ccxt/async_support/bitbank.py +215 -76
  85. ccxt/async_support/bitbns.py +124 -53
  86. ccxt/async_support/bitfinex.py +3236 -1078
  87. ccxt/async_support/bitfinex1.py +1711 -0
  88. ccxt/async_support/bitflyer.py +238 -49
  89. ccxt/async_support/bitget.py +1525 -573
  90. ccxt/async_support/bithumb.py +199 -65
  91. ccxt/async_support/bitmart.py +1320 -435
  92. ccxt/async_support/bitmex.py +308 -111
  93. ccxt/async_support/bitopro.py +256 -96
  94. ccxt/async_support/bitrue.py +365 -233
  95. ccxt/async_support/bitso.py +201 -89
  96. ccxt/async_support/bitstamp.py +438 -269
  97. ccxt/async_support/bitteam.py +179 -73
  98. ccxt/async_support/bitvavo.py +180 -70
  99. ccxt/async_support/bl3p.py +92 -25
  100. ccxt/async_support/blockchaincom.py +193 -79
  101. ccxt/async_support/blofin.py +392 -148
  102. ccxt/async_support/btcalpha.py +161 -55
  103. ccxt/async_support/btcbox.py +250 -34
  104. ccxt/async_support/btcmarkets.py +232 -85
  105. ccxt/async_support/btcturk.py +159 -60
  106. ccxt/async_support/bybit.py +2231 -1193
  107. ccxt/async_support/cex.py +1409 -1329
  108. ccxt/async_support/coinbase.py +1454 -287
  109. ccxt/async_support/coinbaseadvanced.py +17 -0
  110. ccxt/async_support/{coinbasepro.py → coinbaseexchange.py} +233 -99
  111. ccxt/async_support/coinbaseinternational.py +428 -88
  112. ccxt/async_support/coincatch.py +5152 -0
  113. ccxt/async_support/coincheck.py +121 -38
  114. ccxt/async_support/coinex.py +4020 -3339
  115. ccxt/async_support/coinlist.py +273 -116
  116. ccxt/async_support/coinmate.py +204 -97
  117. ccxt/async_support/coinmetro.py +203 -110
  118. ccxt/async_support/coinone.py +142 -68
  119. ccxt/async_support/coinsph.py +223 -97
  120. ccxt/async_support/coinspot.py +137 -62
  121. ccxt/async_support/cryptocom.py +515 -185
  122. ccxt/async_support/currencycom.py +203 -85
  123. ccxt/async_support/defx.py +2066 -0
  124. ccxt/async_support/delta.py +404 -109
  125. ccxt/async_support/deribit.py +639 -323
  126. ccxt/async_support/digifinex.py +465 -233
  127. ccxt/async_support/ellipx.py +1887 -0
  128. ccxt/async_support/exmo.py +317 -128
  129. ccxt/async_support/gate.py +1472 -463
  130. ccxt/async_support/gemini.py +206 -84
  131. ccxt/async_support/hashkey.py +4164 -0
  132. ccxt/async_support/hitbtc.py +433 -178
  133. ccxt/async_support/hollaex.py +207 -83
  134. ccxt/async_support/htx.py +1095 -563
  135. ccxt/async_support/huobijp.py +178 -56
  136. ccxt/async_support/hyperliquid.py +1678 -292
  137. ccxt/async_support/idex.py +219 -95
  138. ccxt/async_support/independentreserve.py +300 -31
  139. ccxt/async_support/indodax.py +226 -62
  140. ccxt/async_support/kraken.py +871 -354
  141. ccxt/async_support/krakenfutures.py +324 -100
  142. ccxt/async_support/kucoin.py +917 -357
  143. ccxt/async_support/kucoinfutures.py +1004 -149
  144. ccxt/async_support/kuna.py +198 -107
  145. ccxt/async_support/latoken.py +199 -79
  146. ccxt/async_support/lbank.py +360 -113
  147. ccxt/async_support/luno.py +185 -62
  148. ccxt/async_support/lykke.py +168 -55
  149. ccxt/async_support/mercado.py +101 -29
  150. ccxt/async_support/mexc.py +995 -429
  151. ccxt/async_support/myokx.py +53 -0
  152. ccxt/async_support/ndax.py +234 -82
  153. ccxt/async_support/novadax.py +195 -75
  154. ccxt/async_support/oceanex.py +244 -59
  155. ccxt/async_support/okcoin.py +301 -165
  156. ccxt/async_support/okx.py +1776 -454
  157. ccxt/async_support/onetrading.py +198 -414
  158. ccxt/async_support/oxfun.py +2898 -0
  159. ccxt/async_support/p2b.py +142 -52
  160. ccxt/async_support/paradex.py +2085 -0
  161. ccxt/async_support/paymium.py +56 -32
  162. ccxt/async_support/phemex.py +572 -196
  163. ccxt/async_support/poloniex.py +218 -95
  164. ccxt/async_support/poloniexfutures.py +260 -92
  165. ccxt/async_support/probit.py +143 -110
  166. ccxt/async_support/timex.py +123 -70
  167. ccxt/async_support/tokocrypto.py +129 -93
  168. ccxt/async_support/tradeogre.py +39 -25
  169. ccxt/async_support/upbit.py +322 -113
  170. ccxt/async_support/vertex.py +2983 -0
  171. ccxt/async_support/wavesexchange.py +227 -173
  172. ccxt/async_support/wazirx.py +145 -65
  173. ccxt/async_support/whitebit.py +533 -138
  174. ccxt/async_support/woo.py +1137 -296
  175. ccxt/async_support/woofipro.py +2716 -0
  176. ccxt/async_support/xt.py +4628 -0
  177. ccxt/async_support/yobit.py +160 -92
  178. ccxt/async_support/zaif.py +80 -33
  179. ccxt/async_support/zonda.py +140 -69
  180. ccxt/base/errors.py +51 -20
  181. ccxt/base/exchange.py +1722 -480
  182. ccxt/base/precise.py +10 -0
  183. ccxt/base/types.py +223 -4
  184. ccxt/bequant.py +1 -1
  185. ccxt/bigone.py +329 -202
  186. ccxt/binance.py +3030 -1087
  187. ccxt/binancecoinm.py +2 -1
  188. ccxt/binanceus.py +12 -1
  189. ccxt/binanceusdm.py +3 -1
  190. ccxt/bingx.py +3205 -937
  191. ccxt/bit2c.py +119 -38
  192. ccxt/bitbank.py +215 -76
  193. ccxt/bitbns.py +124 -53
  194. ccxt/bitfinex.py +3235 -1078
  195. ccxt/bitfinex1.py +1710 -0
  196. ccxt/bitflyer.py +238 -49
  197. ccxt/bitget.py +1525 -573
  198. ccxt/bithumb.py +198 -65
  199. ccxt/bitmart.py +1320 -435
  200. ccxt/bitmex.py +308 -111
  201. ccxt/bitopro.py +256 -96
  202. ccxt/bitrue.py +365 -233
  203. ccxt/bitso.py +201 -89
  204. ccxt/bitstamp.py +438 -269
  205. ccxt/bitteam.py +179 -73
  206. ccxt/bitvavo.py +180 -70
  207. ccxt/bl3p.py +92 -25
  208. ccxt/blockchaincom.py +193 -79
  209. ccxt/blofin.py +392 -148
  210. ccxt/btcalpha.py +161 -55
  211. ccxt/btcbox.py +250 -34
  212. ccxt/btcmarkets.py +232 -85
  213. ccxt/btcturk.py +159 -60
  214. ccxt/bybit.py +2231 -1193
  215. ccxt/cex.py +1408 -1329
  216. ccxt/coinbase.py +1454 -287
  217. ccxt/coinbaseadvanced.py +17 -0
  218. ccxt/{coinbasepro.py → coinbaseexchange.py} +233 -99
  219. ccxt/coinbaseinternational.py +428 -88
  220. ccxt/coincatch.py +5152 -0
  221. ccxt/coincheck.py +121 -38
  222. ccxt/coinex.py +4020 -3339
  223. ccxt/coinlist.py +273 -116
  224. ccxt/coinmate.py +204 -97
  225. ccxt/coinmetro.py +203 -110
  226. ccxt/coinone.py +142 -68
  227. ccxt/coinsph.py +223 -97
  228. ccxt/coinspot.py +137 -62
  229. ccxt/cryptocom.py +515 -185
  230. ccxt/currencycom.py +203 -85
  231. ccxt/defx.py +2065 -0
  232. ccxt/delta.py +404 -109
  233. ccxt/deribit.py +639 -323
  234. ccxt/digifinex.py +465 -233
  235. ccxt/ellipx.py +1887 -0
  236. ccxt/exmo.py +317 -128
  237. ccxt/gate.py +1472 -463
  238. ccxt/gemini.py +206 -84
  239. ccxt/hashkey.py +4164 -0
  240. ccxt/hitbtc.py +433 -178
  241. ccxt/hollaex.py +207 -83
  242. ccxt/htx.py +1095 -563
  243. ccxt/huobijp.py +178 -56
  244. ccxt/hyperliquid.py +1677 -292
  245. ccxt/idex.py +219 -95
  246. ccxt/independentreserve.py +299 -31
  247. ccxt/indodax.py +226 -62
  248. ccxt/kraken.py +871 -354
  249. ccxt/krakenfutures.py +324 -100
  250. ccxt/kucoin.py +917 -357
  251. ccxt/kucoinfutures.py +1004 -149
  252. ccxt/kuna.py +198 -107
  253. ccxt/latoken.py +199 -79
  254. ccxt/lbank.py +360 -113
  255. ccxt/luno.py +185 -62
  256. ccxt/lykke.py +168 -55
  257. ccxt/mercado.py +101 -29
  258. ccxt/mexc.py +994 -429
  259. ccxt/myokx.py +53 -0
  260. ccxt/ndax.py +234 -82
  261. ccxt/novadax.py +195 -75
  262. ccxt/oceanex.py +244 -59
  263. ccxt/okcoin.py +301 -165
  264. ccxt/okx.py +1776 -454
  265. ccxt/onetrading.py +198 -414
  266. ccxt/oxfun.py +2897 -0
  267. ccxt/p2b.py +142 -52
  268. ccxt/paradex.py +2085 -0
  269. ccxt/paymium.py +56 -32
  270. ccxt/phemex.py +572 -196
  271. ccxt/poloniex.py +218 -95
  272. ccxt/poloniexfutures.py +260 -92
  273. ccxt/pro/__init__.py +29 -5
  274. ccxt/pro/alpaca.py +32 -17
  275. ccxt/pro/ascendex.py +62 -14
  276. ccxt/pro/bequant.py +4 -0
  277. ccxt/pro/binance.py +1596 -329
  278. ccxt/pro/binancecoinm.py +1 -0
  279. ccxt/pro/binanceus.py +2 -9
  280. ccxt/pro/binanceusdm.py +2 -0
  281. ccxt/pro/bingx.py +527 -134
  282. ccxt/pro/bitcoincom.py +4 -1
  283. ccxt/pro/bitfinex.py +731 -266
  284. ccxt/pro/bitfinex1.py +635 -0
  285. ccxt/pro/bitget.py +726 -357
  286. ccxt/pro/bithumb.py +380 -0
  287. ccxt/pro/bitmart.py +143 -39
  288. ccxt/pro/bitmex.py +199 -40
  289. ccxt/pro/bitopro.py +25 -13
  290. ccxt/pro/bitrue.py +31 -32
  291. ccxt/pro/bitstamp.py +7 -6
  292. ccxt/pro/bitvavo.py +203 -81
  293. ccxt/pro/blockchaincom.py +30 -17
  294. ccxt/pro/blofin.py +692 -0
  295. ccxt/pro/bybit.py +791 -82
  296. ccxt/pro/cex.py +99 -51
  297. ccxt/pro/coinbase.py +220 -30
  298. ccxt/{async_support/hitbtc3.py → pro/coinbaseadvanced.py} +5 -5
  299. ccxt/pro/{coinbasepro.py → coinbaseexchange.py} +19 -19
  300. ccxt/pro/coinbaseinternational.py +193 -30
  301. ccxt/pro/coincatch.py +1464 -0
  302. ccxt/pro/coincheck.py +11 -6
  303. ccxt/pro/coinex.py +965 -665
  304. ccxt/pro/coinone.py +17 -10
  305. ccxt/pro/cryptocom.py +446 -66
  306. ccxt/pro/currencycom.py +11 -10
  307. ccxt/pro/defx.py +832 -0
  308. ccxt/pro/deribit.py +167 -31
  309. ccxt/pro/exmo.py +252 -20
  310. ccxt/pro/gate.py +729 -64
  311. ccxt/pro/gemini.py +44 -26
  312. ccxt/pro/hashkey.py +802 -0
  313. ccxt/pro/hitbtc.py +208 -103
  314. ccxt/pro/hollaex.py +25 -9
  315. ccxt/pro/htx.py +83 -39
  316. ccxt/pro/huobijp.py +17 -16
  317. ccxt/pro/hyperliquid.py +502 -31
  318. ccxt/pro/idex.py +28 -13
  319. ccxt/pro/independentreserve.py +21 -16
  320. ccxt/pro/kraken.py +298 -51
  321. ccxt/pro/krakenfutures.py +166 -75
  322. ccxt/pro/kucoin.py +395 -77
  323. ccxt/pro/kucoinfutures.py +400 -99
  324. ccxt/pro/lbank.py +52 -31
  325. ccxt/pro/luno.py +12 -10
  326. ccxt/pro/mexc.py +400 -50
  327. ccxt/pro/myokx.py +28 -0
  328. ccxt/pro/ndax.py +25 -12
  329. ccxt/pro/okcoin.py +28 -9
  330. ccxt/pro/okx.py +935 -124
  331. ccxt/pro/onetrading.py +41 -24
  332. ccxt/pro/oxfun.py +1054 -0
  333. ccxt/pro/p2b.py +100 -24
  334. ccxt/pro/paradex.py +352 -0
  335. ccxt/pro/phemex.py +92 -33
  336. ccxt/pro/poloniex.py +128 -49
  337. ccxt/pro/poloniexfutures.py +53 -32
  338. ccxt/pro/probit.py +92 -85
  339. ccxt/pro/upbit.py +401 -8
  340. ccxt/pro/vertex.py +943 -0
  341. ccxt/pro/wazirx.py +46 -28
  342. ccxt/pro/whitebit.py +65 -12
  343. ccxt/pro/woo.py +437 -65
  344. ccxt/pro/woofipro.py +1271 -0
  345. ccxt/pro/xt.py +1067 -0
  346. ccxt/probit.py +143 -110
  347. ccxt/static_dependencies/__init__.py +1 -1
  348. ccxt/static_dependencies/lark/__init__.py +38 -0
  349. ccxt/static_dependencies/lark/__pyinstaller/__init__.py +6 -0
  350. ccxt/static_dependencies/lark/__pyinstaller/hook-lark.py +14 -0
  351. ccxt/static_dependencies/lark/ast_utils.py +59 -0
  352. ccxt/static_dependencies/lark/common.py +86 -0
  353. ccxt/static_dependencies/lark/exceptions.py +292 -0
  354. ccxt/static_dependencies/lark/grammar.py +130 -0
  355. ccxt/static_dependencies/lark/grammars/__init__.py +0 -0
  356. ccxt/static_dependencies/lark/indenter.py +143 -0
  357. ccxt/static_dependencies/lark/lark.py +658 -0
  358. ccxt/static_dependencies/lark/lexer.py +678 -0
  359. ccxt/static_dependencies/lark/load_grammar.py +1428 -0
  360. ccxt/static_dependencies/lark/parse_tree_builder.py +391 -0
  361. ccxt/static_dependencies/lark/parser_frontends.py +257 -0
  362. ccxt/static_dependencies/lark/parsers/__init__.py +0 -0
  363. ccxt/static_dependencies/lark/parsers/cyk.py +340 -0
  364. ccxt/static_dependencies/lark/parsers/earley.py +314 -0
  365. ccxt/static_dependencies/lark/parsers/earley_common.py +42 -0
  366. ccxt/static_dependencies/lark/parsers/earley_forest.py +801 -0
  367. ccxt/static_dependencies/lark/parsers/grammar_analysis.py +203 -0
  368. ccxt/static_dependencies/lark/parsers/lalr_analysis.py +332 -0
  369. ccxt/static_dependencies/lark/parsers/lalr_interactive_parser.py +158 -0
  370. ccxt/static_dependencies/lark/parsers/lalr_parser.py +122 -0
  371. ccxt/static_dependencies/lark/parsers/lalr_parser_state.py +110 -0
  372. ccxt/static_dependencies/lark/parsers/xearley.py +165 -0
  373. ccxt/static_dependencies/lark/py.typed +0 -0
  374. ccxt/static_dependencies/lark/reconstruct.py +107 -0
  375. ccxt/static_dependencies/lark/tools/__init__.py +70 -0
  376. ccxt/static_dependencies/lark/tools/nearley.py +202 -0
  377. ccxt/static_dependencies/lark/tools/serialize.py +32 -0
  378. ccxt/static_dependencies/lark/tools/standalone.py +196 -0
  379. ccxt/static_dependencies/lark/tree.py +267 -0
  380. ccxt/static_dependencies/lark/tree_matcher.py +186 -0
  381. ccxt/static_dependencies/lark/tree_templates.py +180 -0
  382. ccxt/static_dependencies/lark/utils.py +343 -0
  383. ccxt/static_dependencies/lark/visitors.py +596 -0
  384. ccxt/static_dependencies/marshmallow/__init__.py +81 -0
  385. ccxt/static_dependencies/marshmallow/base.py +65 -0
  386. ccxt/static_dependencies/marshmallow/class_registry.py +94 -0
  387. ccxt/static_dependencies/marshmallow/decorators.py +231 -0
  388. ccxt/static_dependencies/marshmallow/error_store.py +60 -0
  389. ccxt/static_dependencies/marshmallow/exceptions.py +71 -0
  390. ccxt/static_dependencies/marshmallow/fields.py +2114 -0
  391. ccxt/static_dependencies/marshmallow/orderedset.py +89 -0
  392. ccxt/static_dependencies/marshmallow/py.typed +0 -0
  393. ccxt/static_dependencies/marshmallow/schema.py +1228 -0
  394. ccxt/static_dependencies/marshmallow/types.py +12 -0
  395. ccxt/static_dependencies/marshmallow/utils.py +378 -0
  396. ccxt/static_dependencies/marshmallow/validate.py +678 -0
  397. ccxt/static_dependencies/marshmallow/warnings.py +2 -0
  398. ccxt/static_dependencies/marshmallow_dataclass/__init__.py +1047 -0
  399. ccxt/static_dependencies/marshmallow_dataclass/collection_field.py +51 -0
  400. ccxt/static_dependencies/marshmallow_dataclass/lazy_class_attribute.py +45 -0
  401. ccxt/static_dependencies/marshmallow_dataclass/mypy.py +71 -0
  402. ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
  403. ccxt/static_dependencies/marshmallow_dataclass/typing.py +14 -0
  404. ccxt/static_dependencies/marshmallow_dataclass/union_field.py +82 -0
  405. ccxt/static_dependencies/marshmallow_oneofschema/__init__.py +1 -0
  406. ccxt/static_dependencies/marshmallow_oneofschema/one_of_schema.py +193 -0
  407. ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
  408. ccxt/static_dependencies/starknet/__init__.py +0 -0
  409. ccxt/static_dependencies/starknet/cairo/__init__.py +0 -0
  410. ccxt/static_dependencies/starknet/cairo/data_types.py +123 -0
  411. ccxt/static_dependencies/starknet/cairo/deprecated_parse/__init__.py +0 -0
  412. ccxt/static_dependencies/starknet/cairo/deprecated_parse/cairo_types.py +77 -0
  413. ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser.py +46 -0
  414. ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser_transformer.py +138 -0
  415. ccxt/static_dependencies/starknet/cairo/felt.py +64 -0
  416. ccxt/static_dependencies/starknet/cairo/type_parser.py +121 -0
  417. ccxt/static_dependencies/starknet/cairo/v1/__init__.py +0 -0
  418. ccxt/static_dependencies/starknet/cairo/v1/type_parser.py +59 -0
  419. ccxt/static_dependencies/starknet/cairo/v2/__init__.py +0 -0
  420. ccxt/static_dependencies/starknet/cairo/v2/type_parser.py +77 -0
  421. ccxt/static_dependencies/starknet/ccxt_utils.py +7 -0
  422. ccxt/static_dependencies/starknet/common.py +15 -0
  423. ccxt/static_dependencies/starknet/constants.py +39 -0
  424. ccxt/static_dependencies/starknet/hash/__init__.py +0 -0
  425. ccxt/static_dependencies/starknet/hash/address.py +79 -0
  426. ccxt/static_dependencies/starknet/hash/compiled_class_hash_objects.py +111 -0
  427. ccxt/static_dependencies/starknet/hash/selector.py +16 -0
  428. ccxt/static_dependencies/starknet/hash/storage.py +12 -0
  429. ccxt/static_dependencies/starknet/hash/utils.py +78 -0
  430. ccxt/static_dependencies/starknet/models/__init__.py +0 -0
  431. ccxt/static_dependencies/starknet/models/typed_data.py +45 -0
  432. ccxt/static_dependencies/starknet/serialization/__init__.py +24 -0
  433. ccxt/static_dependencies/starknet/serialization/_calldata_reader.py +40 -0
  434. ccxt/static_dependencies/starknet/serialization/_context.py +142 -0
  435. ccxt/static_dependencies/starknet/serialization/data_serializers/__init__.py +10 -0
  436. ccxt/static_dependencies/starknet/serialization/data_serializers/_common.py +82 -0
  437. ccxt/static_dependencies/starknet/serialization/data_serializers/array_serializer.py +43 -0
  438. ccxt/static_dependencies/starknet/serialization/data_serializers/bool_serializer.py +37 -0
  439. ccxt/static_dependencies/starknet/serialization/data_serializers/byte_array_serializer.py +66 -0
  440. ccxt/static_dependencies/starknet/serialization/data_serializers/cairo_data_serializer.py +71 -0
  441. ccxt/static_dependencies/starknet/serialization/data_serializers/enum_serializer.py +71 -0
  442. ccxt/static_dependencies/starknet/serialization/data_serializers/felt_serializer.py +50 -0
  443. ccxt/static_dependencies/starknet/serialization/data_serializers/named_tuple_serializer.py +58 -0
  444. ccxt/static_dependencies/starknet/serialization/data_serializers/option_serializer.py +43 -0
  445. ccxt/static_dependencies/starknet/serialization/data_serializers/output_serializer.py +40 -0
  446. ccxt/static_dependencies/starknet/serialization/data_serializers/payload_serializer.py +72 -0
  447. ccxt/static_dependencies/starknet/serialization/data_serializers/struct_serializer.py +36 -0
  448. ccxt/static_dependencies/starknet/serialization/data_serializers/tuple_serializer.py +36 -0
  449. ccxt/static_dependencies/starknet/serialization/data_serializers/uint256_serializer.py +76 -0
  450. ccxt/static_dependencies/starknet/serialization/data_serializers/uint_serializer.py +100 -0
  451. ccxt/static_dependencies/starknet/serialization/data_serializers/unit_serializer.py +32 -0
  452. ccxt/static_dependencies/starknet/serialization/errors.py +10 -0
  453. ccxt/static_dependencies/starknet/serialization/factory.py +229 -0
  454. ccxt/static_dependencies/starknet/serialization/function_serialization_adapter.py +110 -0
  455. ccxt/static_dependencies/starknet/serialization/tuple_dataclass.py +59 -0
  456. ccxt/static_dependencies/starknet/utils/__init__.py +0 -0
  457. ccxt/static_dependencies/starknet/utils/constructor_args_translator.py +86 -0
  458. ccxt/static_dependencies/starknet/utils/iterable.py +13 -0
  459. ccxt/static_dependencies/starknet/utils/schema.py +13 -0
  460. ccxt/static_dependencies/starknet/utils/typed_data.py +182 -0
  461. ccxt/static_dependencies/starkware/__init__.py +0 -0
  462. ccxt/static_dependencies/starkware/crypto/__init__.py +0 -0
  463. ccxt/static_dependencies/starkware/crypto/fast_pedersen_hash.py +50 -0
  464. ccxt/static_dependencies/starkware/crypto/math_utils.py +78 -0
  465. ccxt/static_dependencies/starkware/crypto/signature.py +2344 -0
  466. ccxt/static_dependencies/starkware/crypto/utils.py +63 -0
  467. ccxt/static_dependencies/sympy/__init__.py +0 -0
  468. ccxt/static_dependencies/sympy/core/__init__.py +0 -0
  469. ccxt/static_dependencies/sympy/core/intfunc.py +35 -0
  470. ccxt/static_dependencies/sympy/external/__init__.py +0 -0
  471. ccxt/static_dependencies/sympy/external/gmpy.py +345 -0
  472. ccxt/static_dependencies/sympy/external/importtools.py +187 -0
  473. ccxt/static_dependencies/sympy/external/ntheory.py +637 -0
  474. ccxt/static_dependencies/sympy/external/pythonmpq.py +341 -0
  475. ccxt/static_dependencies/typing_inspect/__init__.py +0 -0
  476. ccxt/static_dependencies/typing_inspect/typing_inspect.py +851 -0
  477. ccxt/test/{test_async.py → tests_async.py} +456 -391
  478. ccxt/test/tests_helpers.py +285 -0
  479. ccxt/test/tests_init.py +39 -0
  480. ccxt/test/{test_sync.py → tests_sync.py} +456 -393
  481. ccxt/timex.py +123 -70
  482. ccxt/tokocrypto.py +129 -93
  483. ccxt/tradeogre.py +39 -25
  484. ccxt/upbit.py +322 -113
  485. ccxt/vertex.py +2983 -0
  486. ccxt/wavesexchange.py +227 -173
  487. ccxt/wazirx.py +145 -65
  488. ccxt/whitebit.py +533 -138
  489. ccxt/woo.py +1137 -296
  490. ccxt/woofipro.py +2716 -0
  491. ccxt/xt.py +4627 -0
  492. ccxt/yobit.py +159 -92
  493. ccxt/zaif.py +80 -33
  494. ccxt/zonda.py +140 -69
  495. ccxt-4.4.49.dist-info/LICENSE.txt +21 -0
  496. ccxt-4.4.49.dist-info/METADATA +646 -0
  497. ccxt-4.4.49.dist-info/RECORD +669 -0
  498. {ccxt-4.2.77.dist-info → ccxt-4.4.49.dist-info}/WHEEL +1 -1
  499. ccxt/abstract/bitbay.py +0 -47
  500. ccxt/abstract/bitfinex2.py +0 -139
  501. ccxt/abstract/hitbtc3.py +0 -115
  502. ccxt/async_support/bitbay.py +0 -17
  503. ccxt/async_support/bitfinex2.py +0 -3496
  504. ccxt/async_support/flowbtc.py +0 -34
  505. ccxt/bitbay.py +0 -17
  506. ccxt/bitfinex2.py +0 -3496
  507. ccxt/flowbtc.py +0 -34
  508. ccxt/hitbtc3.py +0 -16
  509. ccxt/pro/bitfinex2.py +0 -1081
  510. ccxt/test/base/__init__.py +0 -28
  511. ccxt/test/base/test_account.py +0 -26
  512. ccxt/test/base/test_balance.py +0 -56
  513. ccxt/test/base/test_borrow_interest.py +0 -35
  514. ccxt/test/base/test_borrow_rate.py +0 -32
  515. ccxt/test/base/test_calculate_fee.py +0 -51
  516. ccxt/test/base/test_crypto.py +0 -127
  517. ccxt/test/base/test_currency.py +0 -76
  518. ccxt/test/base/test_datetime.py +0 -103
  519. ccxt/test/base/test_decimal_to_precision.py +0 -392
  520. ccxt/test/base/test_deep_extend.py +0 -68
  521. ccxt/test/base/test_deposit_withdrawal.py +0 -50
  522. ccxt/test/base/test_exchange_datetime_functions.py +0 -76
  523. ccxt/test/base/test_funding_rate_history.py +0 -29
  524. ccxt/test/base/test_last_price.py +0 -32
  525. ccxt/test/base/test_ledger_entry.py +0 -45
  526. ccxt/test/base/test_ledger_item.py +0 -48
  527. ccxt/test/base/test_leverage_tier.py +0 -33
  528. ccxt/test/base/test_margin_mode.py +0 -24
  529. ccxt/test/base/test_margin_modification.py +0 -35
  530. ccxt/test/base/test_market.py +0 -190
  531. ccxt/test/base/test_number.py +0 -411
  532. ccxt/test/base/test_ohlcv.py +0 -32
  533. ccxt/test/base/test_open_interest.py +0 -32
  534. ccxt/test/base/test_order.py +0 -64
  535. ccxt/test/base/test_order_book.py +0 -63
  536. ccxt/test/base/test_position.py +0 -60
  537. ccxt/test/base/test_shared_methods.py +0 -345
  538. ccxt/test/base/test_status.py +0 -24
  539. ccxt/test/base/test_throttle.py +0 -126
  540. ccxt/test/base/test_ticker.py +0 -86
  541. ccxt/test/base/test_trade.py +0 -47
  542. ccxt/test/base/test_trading_fee.py +0 -26
  543. ccxt/test/base/test_transaction.py +0 -39
  544. ccxt-4.2.77.dist-info/METADATA +0 -626
  545. ccxt-4.2.77.dist-info/RECORD +0 -534
  546. {ccxt-4.2.77.dist-info → ccxt-4.4.49.dist-info}/top_level.txt +0 -0
ccxt/p2b.py CHANGED
@@ -8,11 +8,11 @@ from ccxt.abstract.p2b import ImplicitAPI
8
8
  import hashlib
9
9
  from ccxt.base.types import Int, Market, Num, Order, OrderSide, OrderType, Str, Strings, Ticker, Tickers
10
10
  from typing import List
11
+ from ccxt.base.errors import AuthenticationError
11
12
  from ccxt.base.errors import ArgumentsRequired
12
13
  from ccxt.base.errors import BadRequest
13
14
  from ccxt.base.errors import InsufficientFunds
14
15
  from ccxt.base.errors import ExchangeNotAvailable
15
- from ccxt.base.errors import AuthenticationError
16
16
  from ccxt.base.decimal_to_precision import TICK_SIZE
17
17
 
18
18
 
@@ -81,12 +81,14 @@ class p2b(Exchange, ImplicitAPI):
81
81
  'fetchOpenOrders': True,
82
82
  'fetchOrderBook': True,
83
83
  'fetchOrderBooks': False,
84
- 'fetchOrders': True,
84
+ 'fetchOrders': False,
85
85
  'fetchOrderTrades': True,
86
- 'fetchPermissions': False,
87
86
  'fetchPosition': False,
87
+ 'fetchPositionHistory': False,
88
+ 'fetchPositionMode': False,
88
89
  'fetchPositions': False,
89
90
  'fetchPositionsForSymbol': False,
91
+ 'fetchPositionsHistory': False,
90
92
  'fetchPositionsRisk': False,
91
93
  'fetchPremiumIndexOHLCV': False,
92
94
  'fetchTicker': True,
@@ -186,6 +188,68 @@ class p2b(Exchange, ImplicitAPI):
186
188
  ],
187
189
  },
188
190
  },
191
+ 'features': {
192
+ 'spot': {
193
+ 'sandbox': False,
194
+ 'createOrder': {
195
+ 'marginMode': False,
196
+ 'triggerPrice': False,
197
+ 'triggerDirection': False,
198
+ 'triggerPriceType': None,
199
+ 'stopLossPrice': False,
200
+ 'takeProfitPrice': False,
201
+ 'attachedStopLossTakeProfit': None,
202
+ 'timeInForce': {
203
+ 'IOC': True,
204
+ 'FOK': True,
205
+ 'PO': True,
206
+ 'GTD': False,
207
+ },
208
+ 'hedged': False,
209
+ 'trailing': False,
210
+ 'leverage': False,
211
+ 'marketBuyByCost': False,
212
+ 'marketBuyRequiresPrice': False,
213
+ 'selfTradePrevention': False,
214
+ 'iceberg': False,
215
+ },
216
+ 'createOrders': None,
217
+ 'fetchMyTrades': {
218
+ 'marginMode': False,
219
+ 'limit': 100,
220
+ 'daysBack': 100000, # todo
221
+ 'untilDays': 1,
222
+ },
223
+ 'fetchOrder': None, # todo
224
+ 'fetchOpenOrders': {
225
+ 'marginMode': False,
226
+ 'limit': 100,
227
+ 'trigger': False,
228
+ 'trailing': False,
229
+ },
230
+ 'fetchOrders': None, # todo
231
+ 'fetchClosedOrders': {
232
+ 'marginMode': False,
233
+ 'limit': 100,
234
+ 'daysBack': 100000, # todo
235
+ 'daysBackCanceled': 1 / 12, # todo
236
+ 'untilDays': 1,
237
+ 'trigger': False,
238
+ 'trailing': False,
239
+ },
240
+ 'fetchOHLCV': {
241
+ 'limit': 500,
242
+ },
243
+ },
244
+ 'swap': {
245
+ 'linear': None,
246
+ 'inverse': None,
247
+ },
248
+ 'future': {
249
+ 'linear': None,
250
+ 'inverse': None,
251
+ },
252
+ },
189
253
  'commonCurrencies': {
190
254
  },
191
255
  'precisionMode': TICK_SIZE,
@@ -236,10 +300,12 @@ class p2b(Exchange, ImplicitAPI):
236
300
  },
237
301
  })
238
302
 
239
- def fetch_markets(self, params={}):
303
+ def fetch_markets(self, params={}) -> List[Market]:
240
304
  """
241
305
  retrieves data on all markets for bigone
242
- :see: https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#markets
306
+
307
+ https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#markets
308
+
243
309
  :param dict [params]: extra parameters specific to the exchange API endpoint
244
310
  :returns dict[]: an array of objects representing market data
245
311
  """
@@ -276,7 +342,7 @@ class p2b(Exchange, ImplicitAPI):
276
342
  markets = self.safe_value(response, 'result', [])
277
343
  return self.parse_markets(markets)
278
344
 
279
- def parse_market(self, market) -> Market:
345
+ def parse_market(self, market: dict) -> Market:
280
346
  marketId = self.safe_string(market, 'name')
281
347
  baseId = self.safe_string(market, 'stock')
282
348
  quoteId = self.safe_string(market, 'money')
@@ -338,7 +404,9 @@ class p2b(Exchange, ImplicitAPI):
338
404
  def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
339
405
  """
340
406
  fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
341
- :see: https://futures-docs.poloniex.com/#get-real-time-ticker-of-all-symbols
407
+
408
+ https://futures-docs.poloniex.com/#get-real-time-ticker-of-all-symbols
409
+
342
410
  :param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
343
411
  :param dict [params]: extra parameters specific to the exchange API endpoint
344
412
  :returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
@@ -376,14 +444,16 @@ class p2b(Exchange, ImplicitAPI):
376
444
  def fetch_ticker(self, symbol: str, params={}) -> Ticker:
377
445
  """
378
446
  fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
379
- :see: https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#ticker
447
+
448
+ https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#ticker
449
+
380
450
  :param str symbol: unified symbol of the market to fetch the ticker for
381
451
  :param dict [params]: extra parameters specific to the exchange API endpoint
382
452
  :returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
383
453
  """
384
454
  self.load_markets()
385
455
  market = self.market(symbol)
386
- request = {
456
+ request: dict = {
387
457
  'market': market['id'],
388
458
  }
389
459
  response = self.publicGetTicker(self.extend(request, params))
@@ -476,18 +546,20 @@ class p2b(Exchange, ImplicitAPI):
476
546
  def fetch_order_book(self, symbol: str, limit: Int = None, params={}):
477
547
  """
478
548
  fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
479
- :see: https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#depth-result
549
+
550
+ https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#depth-result
551
+
480
552
  :param str symbol: unified symbol of the market to fetch the order book for
481
553
  :param int [limit]: the maximum amount of order book entries to return
482
554
  :param dict [params]: extra parameters specific to the exchange API endpoint
483
- *
484
- * EXCHANGE SPECIFIC PARAMETERS
555
+
556
+ EXCHANGE SPECIFIC PARAMETERS
485
557
  :param str [params.interval]: 0(default), 0.00000001, 0.0000001, 0.000001, 0.00001, 0.0001, 0.001, 0.01, 0.1, 1
486
558
  :returns dict: A dictionary of `order book structures <https://docs.ccxt.com/#/?id=order-book-structure>` indexed by market symbols
487
559
  """
488
560
  self.load_markets()
489
561
  market = self.market(symbol)
490
- request = {
562
+ request: dict = {
491
563
  'market': market['id'],
492
564
  }
493
565
  if limit is not None:
@@ -525,7 +597,9 @@ class p2b(Exchange, ImplicitAPI):
525
597
  def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}):
526
598
  """
527
599
  get the list of most recent trades for a particular symbol
528
- :see: https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#history
600
+
601
+ https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#history
602
+
529
603
  :param str symbol: unified symbol of the market to fetch trades for
530
604
  :param int [since]: timestamp in ms of the earliest trade to fetch
531
605
  :param int [limit]: 1-100, default=50
@@ -538,7 +612,7 @@ class p2b(Exchange, ImplicitAPI):
538
612
  if lastId is None:
539
613
  raise ArgumentsRequired(self.id + ' fetchTrades() requires an extra parameter params["lastId"]')
540
614
  market = self.market(symbol)
541
- request = {
615
+ request: dict = {
542
616
  'market': market['id'],
543
617
  'lastId': lastId,
544
618
  }
@@ -564,10 +638,10 @@ class p2b(Exchange, ImplicitAPI):
564
638
  # current_time: '1699255571.413828'
565
639
  # }
566
640
  #
567
- result = self.safe_value(response, 'result', [])
641
+ result = self.safe_list(response, 'result', [])
568
642
  return self.parse_trades(result, market, since, limit)
569
643
 
570
- def parse_trade(self, trade, market: Market = None):
644
+ def parse_trade(self, trade: dict, market: Market = None):
571
645
  #
572
646
  # fetchTrades
573
647
  #
@@ -636,7 +710,9 @@ class p2b(Exchange, ImplicitAPI):
636
710
  def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}):
637
711
  """
638
712
  fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
639
- :see: https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#kline
713
+
714
+ https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#kline
715
+
640
716
  :param str symbol: unified symbol of the market to fetch OHLCV data for
641
717
  :param str timeframe: 1m, 1h, or 1d
642
718
  :param int [since]: timestamp in ms of the earliest candle to fetch
@@ -647,7 +723,7 @@ class p2b(Exchange, ImplicitAPI):
647
723
  """
648
724
  self.load_markets()
649
725
  market = self.market(symbol)
650
- request = {
726
+ request: dict = {
651
727
  'market': market['id'],
652
728
  'interval': timeframe,
653
729
  }
@@ -676,7 +752,7 @@ class p2b(Exchange, ImplicitAPI):
676
752
  # current_time: '1699256375.030494'
677
753
  # }
678
754
  #
679
- result = self.safe_value(response, 'result', [])
755
+ result = self.safe_list(response, 'result', [])
680
756
  return self.parse_ohlcvs(result, market, timeframe, since, limit)
681
757
 
682
758
  def parse_ohlcv(self, ohlcv, market: Market = None) -> list:
@@ -704,7 +780,9 @@ class p2b(Exchange, ImplicitAPI):
704
780
  def fetch_balance(self, params={}):
705
781
  """
706
782
  query for balance and get the amount of funds available for trading or funds locked in orders
707
- :see: https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#all-balances
783
+
784
+ https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#all-balances
785
+
708
786
  :param dict [params]: extra parameters specific to the exchange API endpoint
709
787
  :returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
710
788
  """
@@ -743,7 +821,7 @@ class p2b(Exchange, ImplicitAPI):
743
821
  # }
744
822
  # }
745
823
  #
746
- result = {
824
+ result: dict = {
747
825
  'info': response,
748
826
  }
749
827
  keys = list(response.keys())
@@ -753,7 +831,7 @@ class p2b(Exchange, ImplicitAPI):
753
831
  code = self.safe_currency_code(currencyId)
754
832
  used = self.safe_string(balance, 'freeze')
755
833
  available = self.safe_string(balance, 'available')
756
- account = {
834
+ account: dict = {
757
835
  'free': available,
758
836
  'used': used,
759
837
  }
@@ -763,12 +841,14 @@ class p2b(Exchange, ImplicitAPI):
763
841
  def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
764
842
  """
765
843
  create a trade order
766
- :see: https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#create-order
844
+
845
+ https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#create-order
846
+
767
847
  :param str symbol: unified symbol of the market to create an order in
768
848
  :param str type: must be 'limit'
769
849
  :param str side: 'buy' or 'sell'
770
850
  :param float amount: how much of currency you want to trade in units of base currency
771
- :param float price: the price at which the order is to be fullfilled, in units of the quote currency
851
+ :param float price: the price at which the order is to be fulfilled, in units of the quote currency
772
852
  :param dict [params]: extra parameters specific to the exchange API endpoint
773
853
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
774
854
  """
@@ -776,7 +856,7 @@ class p2b(Exchange, ImplicitAPI):
776
856
  if type == 'market':
777
857
  raise BadRequest(self.id + ' createOrder() can only accept orders with type "limit"')
778
858
  market = self.market(symbol)
779
- request = {
859
+ request: dict = {
780
860
  'market': market['id'],
781
861
  'side': side,
782
862
  'amount': self.amount_to_precision(symbol, amount),
@@ -805,13 +885,15 @@ class p2b(Exchange, ImplicitAPI):
805
885
  # }
806
886
  # }
807
887
  #
808
- result = self.safe_value(response, 'result')
888
+ result = self.safe_dict(response, 'result')
809
889
  return self.parse_order(result, market)
810
890
 
811
891
  def cancel_order(self, id: str, symbol: Str = None, params={}):
812
892
  """
813
893
  cancels an open order
814
- :see: https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#cancel-order
894
+
895
+ https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#cancel-order
896
+
815
897
  :param str id: order id
816
898
  :param str symbol: unified symbol of the market the order was made in
817
899
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -821,7 +903,7 @@ class p2b(Exchange, ImplicitAPI):
821
903
  raise ArgumentsRequired(self.id + ' cancelOrder() requires a symbol argument')
822
904
  self.load_markets()
823
905
  market = self.market(symbol)
824
- request = {
906
+ request: dict = {
825
907
  'market': market['id'],
826
908
  'orderId': id,
827
909
  }
@@ -848,19 +930,21 @@ class p2b(Exchange, ImplicitAPI):
848
930
  # }
849
931
  # }
850
932
  #
851
- result = self.safe_value(response, 'result')
933
+ result = self.safe_dict(response, 'result')
852
934
  return self.parse_order(result)
853
935
 
854
936
  def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
855
937
  """
856
938
  fetch all unfilled currently open orders
857
- :see: https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#open-orders
939
+
940
+ https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#open-orders
941
+
858
942
  :param str symbol: unified market symbol of the market orders were made in
859
943
  :param int [since]: the earliest time in ms to fetch orders for
860
944
  :param int [limit]: the maximum number of order structures to retrieve
861
945
  :param dict [params]: extra parameters specific to the exchange API endpoint
862
- *
863
- * EXCHANGE SPECIFIC PARAMETERS
946
+
947
+ EXCHANGE SPECIFIC PARAMETERS
864
948
  :param int [params.offset]: 0-10000, default=0
865
949
  :returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
866
950
  """
@@ -868,7 +952,7 @@ class p2b(Exchange, ImplicitAPI):
868
952
  raise ArgumentsRequired(self.id + ' fetchOpenOrders() requires the symbol argument')
869
953
  self.load_markets()
870
954
  market = self.market(symbol)
871
- request = {
955
+ request: dict = {
872
956
  'market': market['id'],
873
957
  }
874
958
  if limit is not None:
@@ -899,26 +983,28 @@ class p2b(Exchange, ImplicitAPI):
899
983
  # ]
900
984
  # }
901
985
  #
902
- result = self.safe_value(response, 'result', [])
986
+ result = self.safe_list(response, 'result', [])
903
987
  return self.parse_orders(result, market, since, limit)
904
988
 
905
989
  def fetch_order_trades(self, id: str, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
906
990
  """
907
991
  fetch all the trades made from a single order
908
- :see: https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#deals-by-order-id
992
+
993
+ https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#deals-by-order-id
994
+
909
995
  :param str id: order id
910
996
  :param str symbol: unified market symbol
911
997
  :param int [since]: the earliest time in ms to fetch trades for
912
998
  :param int [limit]: 1-100, default=50
913
999
  :param dict [params]: extra parameters specific to the exchange API endpoint
914
- *
915
- * EXCHANGE SPECIFIC PARAMETERS
1000
+
1001
+ EXCHANGE SPECIFIC PARAMETERS
916
1002
  :param int [params.offset]: 0-10000, default=0
917
1003
  :returns dict[]: a list of `trade structures <https://docs.ccxt.com/#/?id=trade-structure>`
918
1004
  """
919
1005
  self.load_markets()
920
1006
  market = self.safe_market(symbol)
921
- request = {
1007
+ request: dict = {
922
1008
  'orderId': id,
923
1009
  }
924
1010
  if limit is not None:
@@ -948,20 +1034,22 @@ class p2b(Exchange, ImplicitAPI):
948
1034
  # }
949
1035
  #
950
1036
  result = self.safe_value(response, 'result', {})
951
- records = self.safe_value(result, 'records', [])
1037
+ records = self.safe_list(result, 'records', [])
952
1038
  return self.parse_trades(records, market, since, limit)
953
1039
 
954
1040
  def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
955
1041
  """
956
1042
  fetch all trades made by the user, only the transaction records in the past 3 month can be queried, the time between since and params["until"] cannot be longer than 24 hours
957
- :see: https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#deals-history-by-market
1043
+
1044
+ https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#deals-history-by-market
1045
+
958
1046
  :param str symbol: unified market symbol of the market orders were made in
959
1047
  :param int [since]: the earliest time in ms to fetch orders for, default = params["until"] - 86400000
960
1048
  :param int [limit]: 1-100, default=50
961
1049
  :param dict [params]: extra parameters specific to the exchange API endpoint
962
1050
  :param int [params.until]: the latest time in ms to fetch orders for, default = current timestamp or since + 86400000
963
- *
964
- * EXCHANGE SPECIFIC PARAMETERS
1051
+
1052
+ EXCHANGE SPECIFIC PARAMETERS
965
1053
  :param int [params.offset]: 0-10000, default=0
966
1054
  :returns Trade[]: a list of `trade structures <https://docs.ccxt.com/#/?id=public-trades>`
967
1055
  """
@@ -980,7 +1068,7 @@ class p2b(Exchange, ImplicitAPI):
980
1068
  if (until - since) > 86400000:
981
1069
  raise BadRequest(self.id + ' fetchMyTrades() the time between since and params["until"] cannot be greater than 24 hours')
982
1070
  market = self.market(symbol)
983
- request = {
1071
+ request: dict = {
984
1072
  'market': market['id'],
985
1073
  'startTime': self.parse_to_int(since / 1000),
986
1074
  'endTime': self.parse_to_int(until / 1000),
@@ -1015,20 +1103,22 @@ class p2b(Exchange, ImplicitAPI):
1015
1103
  # }
1016
1104
  #
1017
1105
  result = self.safe_value(response, 'result', {})
1018
- deals = self.safe_value(result, 'deals', [])
1106
+ deals = self.safe_list(result, 'deals', [])
1019
1107
  return self.parse_trades(deals, market, since, limit)
1020
1108
 
1021
1109
  def fetch_closed_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
1022
1110
  """
1023
1111
  fetches information on multiple closed orders made by the user, the time between since and params["untnil"] cannot be longer than 24 hours
1024
- :see: https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#orders-history-by-market
1112
+
1113
+ https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#orders-history-by-market
1114
+
1025
1115
  :param str symbol: unified market symbol of the market orders were made in
1026
1116
  :param int [since]: the earliest time in ms to fetch orders for, default = params["until"] - 86400000
1027
1117
  :param int [limit]: 1-100, default=50
1028
1118
  :param dict [params]: extra parameters specific to the exchange API endpoint
1029
1119
  :param int [params.until]: the latest time in ms to fetch orders for, default = current timestamp or since + 86400000
1030
- *
1031
- * EXCHANGE SPECIFIC PARAMETERS
1120
+
1121
+ EXCHANGE SPECIFIC PARAMETERS
1032
1122
  :param int [params.offset]: 0-10000, default=0
1033
1123
  :returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
1034
1124
  """
@@ -1047,7 +1137,7 @@ class p2b(Exchange, ImplicitAPI):
1047
1137
  since = until - 86400000
1048
1138
  if (until - since) > 86400000:
1049
1139
  raise BadRequest(self.id + ' fetchClosedOrders() the time between since and params["until"] cannot be greater than 24 hours')
1050
- request = {
1140
+ request: dict = {
1051
1141
  'startTime': self.parse_to_int(since / 1000),
1052
1142
  'endTime': self.parse_to_int(until / 1000),
1053
1143
  }
@@ -1092,7 +1182,7 @@ class p2b(Exchange, ImplicitAPI):
1092
1182
  orders = self.array_concat(orders, parsedOrders)
1093
1183
  return orders
1094
1184
 
1095
- def parse_order(self, order, market: Market = None) -> Order:
1185
+ def parse_order(self, order: dict, market: Market = None) -> Order:
1096
1186
  #
1097
1187
  # cancelOrder, fetchOpenOrders, createOrder
1098
1188
  #
@@ -1146,7 +1236,7 @@ class p2b(Exchange, ImplicitAPI):
1146
1236
  'postOnly': None,
1147
1237
  'side': self.safe_string(order, 'side'),
1148
1238
  'price': self.safe_string(order, 'price'),
1149
- 'stopPrice': None,
1239
+ 'triggerPrice': None,
1150
1240
  'amount': self.safe_string(order, 'amount'),
1151
1241
  'cost': None,
1152
1242
  'average': None,
@@ -1179,7 +1269,7 @@ class p2b(Exchange, ImplicitAPI):
1179
1269
  body = self.json(params)
1180
1270
  return {'url': url, 'method': method, 'body': body, 'headers': headers}
1181
1271
 
1182
- def handle_errors(self, code, reason, url, method, headers, body, response, requestHeaders, requestBody):
1272
+ def handle_errors(self, code: int, reason: str, url: str, method: str, headers: dict, body: str, response, requestHeaders, requestBody):
1183
1273
  if response is None:
1184
1274
  return None
1185
1275
  if code == 400: