ccxt 4.2.77__py2.py3-none-any.whl → 4.4.48__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 +3104 -880
  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 +1513 -563
  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 +206 -89
  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 +557 -323
  126. ccxt/async_support/digifinex.py +340 -223
  127. ccxt/async_support/ellipx.py +1826 -0
  128. ccxt/async_support/exmo.py +259 -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 +334 -178
  133. ccxt/async_support/hollaex.py +134 -83
  134. ccxt/async_support/htx.py +1095 -563
  135. ccxt/async_support/huobijp.py +105 -56
  136. ccxt/async_support/hyperliquid.py +1633 -268
  137. ccxt/async_support/idex.py +148 -95
  138. ccxt/async_support/independentreserve.py +236 -31
  139. ccxt/async_support/indodax.py +165 -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 +138 -106
  145. ccxt/async_support/latoken.py +135 -79
  146. ccxt/async_support/lbank.py +290 -113
  147. ccxt/async_support/luno.py +112 -62
  148. ccxt/async_support/lykke.py +104 -55
  149. ccxt/async_support/mercado.py +36 -29
  150. ccxt/async_support/mexc.py +995 -429
  151. ccxt/async_support/myokx.py +43 -0
  152. ccxt/async_support/ndax.py +163 -82
  153. ccxt/async_support/novadax.py +121 -75
  154. ccxt/async_support/oceanex.py +175 -59
  155. ccxt/async_support/okcoin.py +222 -163
  156. ccxt/async_support/okx.py +1776 -454
  157. ccxt/async_support/onetrading.py +132 -414
  158. ccxt/async_support/oxfun.py +2832 -0
  159. ccxt/async_support/p2b.py +79 -51
  160. ccxt/async_support/paradex.py +2017 -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 +3104 -880
  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 +1513 -563
  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 +206 -89
  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 +557 -323
  234. ccxt/digifinex.py +340 -223
  235. ccxt/ellipx.py +1826 -0
  236. ccxt/exmo.py +259 -128
  237. ccxt/gate.py +1472 -463
  238. ccxt/gemini.py +206 -84
  239. ccxt/hashkey.py +4164 -0
  240. ccxt/hitbtc.py +334 -178
  241. ccxt/hollaex.py +134 -83
  242. ccxt/htx.py +1095 -563
  243. ccxt/huobijp.py +105 -56
  244. ccxt/hyperliquid.py +1632 -268
  245. ccxt/idex.py +148 -95
  246. ccxt/independentreserve.py +235 -31
  247. ccxt/indodax.py +165 -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 +138 -106
  253. ccxt/latoken.py +135 -79
  254. ccxt/lbank.py +290 -113
  255. ccxt/luno.py +112 -62
  256. ccxt/lykke.py +104 -55
  257. ccxt/mercado.py +36 -29
  258. ccxt/mexc.py +994 -429
  259. ccxt/myokx.py +43 -0
  260. ccxt/ndax.py +163 -82
  261. ccxt/novadax.py +121 -75
  262. ccxt/oceanex.py +175 -59
  263. ccxt/okcoin.py +222 -163
  264. ccxt/okx.py +1776 -454
  265. ccxt/onetrading.py +132 -414
  266. ccxt/oxfun.py +2831 -0
  267. ccxt/p2b.py +79 -51
  268. ccxt/paradex.py +2017 -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 +138 -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.48.dist-info/LICENSE.txt +21 -0
  496. ccxt-4.4.48.dist-info/METADATA +646 -0
  497. ccxt-4.4.48.dist-info/RECORD +669 -0
  498. {ccxt-4.2.77.dist-info → ccxt-4.4.48.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.48.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
 
@@ -83,10 +83,12 @@ class p2b(Exchange, ImplicitAPI):
83
83
  'fetchOrderBooks': False,
84
84
  'fetchOrders': True,
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,
@@ -236,10 +238,12 @@ class p2b(Exchange, ImplicitAPI):
236
238
  },
237
239
  })
238
240
 
239
- def fetch_markets(self, params={}):
241
+ def fetch_markets(self, params={}) -> List[Market]:
240
242
  """
241
243
  retrieves data on all markets for bigone
242
- :see: https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#markets
244
+
245
+ https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#markets
246
+
243
247
  :param dict [params]: extra parameters specific to the exchange API endpoint
244
248
  :returns dict[]: an array of objects representing market data
245
249
  """
@@ -276,7 +280,7 @@ class p2b(Exchange, ImplicitAPI):
276
280
  markets = self.safe_value(response, 'result', [])
277
281
  return self.parse_markets(markets)
278
282
 
279
- def parse_market(self, market) -> Market:
283
+ def parse_market(self, market: dict) -> Market:
280
284
  marketId = self.safe_string(market, 'name')
281
285
  baseId = self.safe_string(market, 'stock')
282
286
  quoteId = self.safe_string(market, 'money')
@@ -338,7 +342,9 @@ class p2b(Exchange, ImplicitAPI):
338
342
  def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
339
343
  """
340
344
  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
345
+
346
+ https://futures-docs.poloniex.com/#get-real-time-ticker-of-all-symbols
347
+
342
348
  :param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
343
349
  :param dict [params]: extra parameters specific to the exchange API endpoint
344
350
  :returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
@@ -376,14 +382,16 @@ class p2b(Exchange, ImplicitAPI):
376
382
  def fetch_ticker(self, symbol: str, params={}) -> Ticker:
377
383
  """
378
384
  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
385
+
386
+ https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#ticker
387
+
380
388
  :param str symbol: unified symbol of the market to fetch the ticker for
381
389
  :param dict [params]: extra parameters specific to the exchange API endpoint
382
390
  :returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
383
391
  """
384
392
  self.load_markets()
385
393
  market = self.market(symbol)
386
- request = {
394
+ request: dict = {
387
395
  'market': market['id'],
388
396
  }
389
397
  response = self.publicGetTicker(self.extend(request, params))
@@ -476,18 +484,20 @@ class p2b(Exchange, ImplicitAPI):
476
484
  def fetch_order_book(self, symbol: str, limit: Int = None, params={}):
477
485
  """
478
486
  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
487
+
488
+ https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#depth-result
489
+
480
490
  :param str symbol: unified symbol of the market to fetch the order book for
481
491
  :param int [limit]: the maximum amount of order book entries to return
482
492
  :param dict [params]: extra parameters specific to the exchange API endpoint
483
- *
484
- * EXCHANGE SPECIFIC PARAMETERS
493
+
494
+ EXCHANGE SPECIFIC PARAMETERS
485
495
  :param str [params.interval]: 0(default), 0.00000001, 0.0000001, 0.000001, 0.00001, 0.0001, 0.001, 0.01, 0.1, 1
486
496
  :returns dict: A dictionary of `order book structures <https://docs.ccxt.com/#/?id=order-book-structure>` indexed by market symbols
487
497
  """
488
498
  self.load_markets()
489
499
  market = self.market(symbol)
490
- request = {
500
+ request: dict = {
491
501
  'market': market['id'],
492
502
  }
493
503
  if limit is not None:
@@ -525,7 +535,9 @@ class p2b(Exchange, ImplicitAPI):
525
535
  def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}):
526
536
  """
527
537
  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
538
+
539
+ https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#history
540
+
529
541
  :param str symbol: unified symbol of the market to fetch trades for
530
542
  :param int [since]: timestamp in ms of the earliest trade to fetch
531
543
  :param int [limit]: 1-100, default=50
@@ -538,7 +550,7 @@ class p2b(Exchange, ImplicitAPI):
538
550
  if lastId is None:
539
551
  raise ArgumentsRequired(self.id + ' fetchTrades() requires an extra parameter params["lastId"]')
540
552
  market = self.market(symbol)
541
- request = {
553
+ request: dict = {
542
554
  'market': market['id'],
543
555
  'lastId': lastId,
544
556
  }
@@ -564,10 +576,10 @@ class p2b(Exchange, ImplicitAPI):
564
576
  # current_time: '1699255571.413828'
565
577
  # }
566
578
  #
567
- result = self.safe_value(response, 'result', [])
579
+ result = self.safe_list(response, 'result', [])
568
580
  return self.parse_trades(result, market, since, limit)
569
581
 
570
- def parse_trade(self, trade, market: Market = None):
582
+ def parse_trade(self, trade: dict, market: Market = None):
571
583
  #
572
584
  # fetchTrades
573
585
  #
@@ -636,7 +648,9 @@ class p2b(Exchange, ImplicitAPI):
636
648
  def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}):
637
649
  """
638
650
  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
651
+
652
+ https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#kline
653
+
640
654
  :param str symbol: unified symbol of the market to fetch OHLCV data for
641
655
  :param str timeframe: 1m, 1h, or 1d
642
656
  :param int [since]: timestamp in ms of the earliest candle to fetch
@@ -647,7 +661,7 @@ class p2b(Exchange, ImplicitAPI):
647
661
  """
648
662
  self.load_markets()
649
663
  market = self.market(symbol)
650
- request = {
664
+ request: dict = {
651
665
  'market': market['id'],
652
666
  'interval': timeframe,
653
667
  }
@@ -676,7 +690,7 @@ class p2b(Exchange, ImplicitAPI):
676
690
  # current_time: '1699256375.030494'
677
691
  # }
678
692
  #
679
- result = self.safe_value(response, 'result', [])
693
+ result = self.safe_list(response, 'result', [])
680
694
  return self.parse_ohlcvs(result, market, timeframe, since, limit)
681
695
 
682
696
  def parse_ohlcv(self, ohlcv, market: Market = None) -> list:
@@ -704,7 +718,9 @@ class p2b(Exchange, ImplicitAPI):
704
718
  def fetch_balance(self, params={}):
705
719
  """
706
720
  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
721
+
722
+ https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#all-balances
723
+
708
724
  :param dict [params]: extra parameters specific to the exchange API endpoint
709
725
  :returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
710
726
  """
@@ -743,7 +759,7 @@ class p2b(Exchange, ImplicitAPI):
743
759
  # }
744
760
  # }
745
761
  #
746
- result = {
762
+ result: dict = {
747
763
  'info': response,
748
764
  }
749
765
  keys = list(response.keys())
@@ -753,7 +769,7 @@ class p2b(Exchange, ImplicitAPI):
753
769
  code = self.safe_currency_code(currencyId)
754
770
  used = self.safe_string(balance, 'freeze')
755
771
  available = self.safe_string(balance, 'available')
756
- account = {
772
+ account: dict = {
757
773
  'free': available,
758
774
  'used': used,
759
775
  }
@@ -763,12 +779,14 @@ class p2b(Exchange, ImplicitAPI):
763
779
  def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
764
780
  """
765
781
  create a trade order
766
- :see: https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#create-order
782
+
783
+ https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#create-order
784
+
767
785
  :param str symbol: unified symbol of the market to create an order in
768
786
  :param str type: must be 'limit'
769
787
  :param str side: 'buy' or 'sell'
770
788
  :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
789
+ :param float price: the price at which the order is to be fulfilled, in units of the quote currency
772
790
  :param dict [params]: extra parameters specific to the exchange API endpoint
773
791
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
774
792
  """
@@ -776,7 +794,7 @@ class p2b(Exchange, ImplicitAPI):
776
794
  if type == 'market':
777
795
  raise BadRequest(self.id + ' createOrder() can only accept orders with type "limit"')
778
796
  market = self.market(symbol)
779
- request = {
797
+ request: dict = {
780
798
  'market': market['id'],
781
799
  'side': side,
782
800
  'amount': self.amount_to_precision(symbol, amount),
@@ -805,13 +823,15 @@ class p2b(Exchange, ImplicitAPI):
805
823
  # }
806
824
  # }
807
825
  #
808
- result = self.safe_value(response, 'result')
826
+ result = self.safe_dict(response, 'result')
809
827
  return self.parse_order(result, market)
810
828
 
811
829
  def cancel_order(self, id: str, symbol: Str = None, params={}):
812
830
  """
813
831
  cancels an open order
814
- :see: https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#cancel-order
832
+
833
+ https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#cancel-order
834
+
815
835
  :param str id: order id
816
836
  :param str symbol: unified symbol of the market the order was made in
817
837
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -821,7 +841,7 @@ class p2b(Exchange, ImplicitAPI):
821
841
  raise ArgumentsRequired(self.id + ' cancelOrder() requires a symbol argument')
822
842
  self.load_markets()
823
843
  market = self.market(symbol)
824
- request = {
844
+ request: dict = {
825
845
  'market': market['id'],
826
846
  'orderId': id,
827
847
  }
@@ -848,19 +868,21 @@ class p2b(Exchange, ImplicitAPI):
848
868
  # }
849
869
  # }
850
870
  #
851
- result = self.safe_value(response, 'result')
871
+ result = self.safe_dict(response, 'result')
852
872
  return self.parse_order(result)
853
873
 
854
874
  def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
855
875
  """
856
876
  fetch all unfilled currently open orders
857
- :see: https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#open-orders
877
+
878
+ https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#open-orders
879
+
858
880
  :param str symbol: unified market symbol of the market orders were made in
859
881
  :param int [since]: the earliest time in ms to fetch orders for
860
882
  :param int [limit]: the maximum number of order structures to retrieve
861
883
  :param dict [params]: extra parameters specific to the exchange API endpoint
862
- *
863
- * EXCHANGE SPECIFIC PARAMETERS
884
+
885
+ EXCHANGE SPECIFIC PARAMETERS
864
886
  :param int [params.offset]: 0-10000, default=0
865
887
  :returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
866
888
  """
@@ -868,7 +890,7 @@ class p2b(Exchange, ImplicitAPI):
868
890
  raise ArgumentsRequired(self.id + ' fetchOpenOrders() requires the symbol argument')
869
891
  self.load_markets()
870
892
  market = self.market(symbol)
871
- request = {
893
+ request: dict = {
872
894
  'market': market['id'],
873
895
  }
874
896
  if limit is not None:
@@ -899,26 +921,28 @@ class p2b(Exchange, ImplicitAPI):
899
921
  # ]
900
922
  # }
901
923
  #
902
- result = self.safe_value(response, 'result', [])
924
+ result = self.safe_list(response, 'result', [])
903
925
  return self.parse_orders(result, market, since, limit)
904
926
 
905
927
  def fetch_order_trades(self, id: str, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
906
928
  """
907
929
  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
930
+
931
+ https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#deals-by-order-id
932
+
909
933
  :param str id: order id
910
934
  :param str symbol: unified market symbol
911
935
  :param int [since]: the earliest time in ms to fetch trades for
912
936
  :param int [limit]: 1-100, default=50
913
937
  :param dict [params]: extra parameters specific to the exchange API endpoint
914
- *
915
- * EXCHANGE SPECIFIC PARAMETERS
938
+
939
+ EXCHANGE SPECIFIC PARAMETERS
916
940
  :param int [params.offset]: 0-10000, default=0
917
941
  :returns dict[]: a list of `trade structures <https://docs.ccxt.com/#/?id=trade-structure>`
918
942
  """
919
943
  self.load_markets()
920
944
  market = self.safe_market(symbol)
921
- request = {
945
+ request: dict = {
922
946
  'orderId': id,
923
947
  }
924
948
  if limit is not None:
@@ -948,20 +972,22 @@ class p2b(Exchange, ImplicitAPI):
948
972
  # }
949
973
  #
950
974
  result = self.safe_value(response, 'result', {})
951
- records = self.safe_value(result, 'records', [])
975
+ records = self.safe_list(result, 'records', [])
952
976
  return self.parse_trades(records, market, since, limit)
953
977
 
954
978
  def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
955
979
  """
956
980
  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
981
+
982
+ https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#deals-history-by-market
983
+
958
984
  :param str symbol: unified market symbol of the market orders were made in
959
985
  :param int [since]: the earliest time in ms to fetch orders for, default = params["until"] - 86400000
960
986
  :param int [limit]: 1-100, default=50
961
987
  :param dict [params]: extra parameters specific to the exchange API endpoint
962
988
  :param int [params.until]: the latest time in ms to fetch orders for, default = current timestamp or since + 86400000
963
- *
964
- * EXCHANGE SPECIFIC PARAMETERS
989
+
990
+ EXCHANGE SPECIFIC PARAMETERS
965
991
  :param int [params.offset]: 0-10000, default=0
966
992
  :returns Trade[]: a list of `trade structures <https://docs.ccxt.com/#/?id=public-trades>`
967
993
  """
@@ -980,7 +1006,7 @@ class p2b(Exchange, ImplicitAPI):
980
1006
  if (until - since) > 86400000:
981
1007
  raise BadRequest(self.id + ' fetchMyTrades() the time between since and params["until"] cannot be greater than 24 hours')
982
1008
  market = self.market(symbol)
983
- request = {
1009
+ request: dict = {
984
1010
  'market': market['id'],
985
1011
  'startTime': self.parse_to_int(since / 1000),
986
1012
  'endTime': self.parse_to_int(until / 1000),
@@ -1015,20 +1041,22 @@ class p2b(Exchange, ImplicitAPI):
1015
1041
  # }
1016
1042
  #
1017
1043
  result = self.safe_value(response, 'result', {})
1018
- deals = self.safe_value(result, 'deals', [])
1044
+ deals = self.safe_list(result, 'deals', [])
1019
1045
  return self.parse_trades(deals, market, since, limit)
1020
1046
 
1021
1047
  def fetch_closed_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
1022
1048
  """
1023
1049
  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
1050
+
1051
+ https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#orders-history-by-market
1052
+
1025
1053
  :param str symbol: unified market symbol of the market orders were made in
1026
1054
  :param int [since]: the earliest time in ms to fetch orders for, default = params["until"] - 86400000
1027
1055
  :param int [limit]: 1-100, default=50
1028
1056
  :param dict [params]: extra parameters specific to the exchange API endpoint
1029
1057
  :param int [params.until]: the latest time in ms to fetch orders for, default = current timestamp or since + 86400000
1030
- *
1031
- * EXCHANGE SPECIFIC PARAMETERS
1058
+
1059
+ EXCHANGE SPECIFIC PARAMETERS
1032
1060
  :param int [params.offset]: 0-10000, default=0
1033
1061
  :returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
1034
1062
  """
@@ -1047,7 +1075,7 @@ class p2b(Exchange, ImplicitAPI):
1047
1075
  since = until - 86400000
1048
1076
  if (until - since) > 86400000:
1049
1077
  raise BadRequest(self.id + ' fetchClosedOrders() the time between since and params["until"] cannot be greater than 24 hours')
1050
- request = {
1078
+ request: dict = {
1051
1079
  'startTime': self.parse_to_int(since / 1000),
1052
1080
  'endTime': self.parse_to_int(until / 1000),
1053
1081
  }
@@ -1092,7 +1120,7 @@ class p2b(Exchange, ImplicitAPI):
1092
1120
  orders = self.array_concat(orders, parsedOrders)
1093
1121
  return orders
1094
1122
 
1095
- def parse_order(self, order, market: Market = None) -> Order:
1123
+ def parse_order(self, order: dict, market: Market = None) -> Order:
1096
1124
  #
1097
1125
  # cancelOrder, fetchOpenOrders, createOrder
1098
1126
  #
@@ -1146,7 +1174,7 @@ class p2b(Exchange, ImplicitAPI):
1146
1174
  'postOnly': None,
1147
1175
  'side': self.safe_string(order, 'side'),
1148
1176
  'price': self.safe_string(order, 'price'),
1149
- 'stopPrice': None,
1177
+ 'triggerPrice': None,
1150
1178
  'amount': self.safe_string(order, 'amount'),
1151
1179
  'cost': None,
1152
1180
  'average': None,
@@ -1179,7 +1207,7 @@ class p2b(Exchange, ImplicitAPI):
1179
1207
  body = self.json(params)
1180
1208
  return {'url': url, 'method': method, 'body': body, 'headers': headers}
1181
1209
 
1182
- def handle_errors(self, code, reason, url, method, headers, body, response, requestHeaders, requestBody):
1210
+ def handle_errors(self, code: int, reason: str, url: str, method: str, headers: dict, body: str, response, requestHeaders, requestBody):
1183
1211
  if response is None:
1184
1212
  return None
1185
1213
  if code == 400: