bitmart 0.0.116__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 (466) hide show
  1. bitmart/__init__.py +7 -0
  2. bitmart/ccxt/__init__.py +102 -0
  3. bitmart/ccxt/abstract/bitmart.py +117 -0
  4. bitmart/ccxt/async_support/__init__.py +81 -0
  5. bitmart/ccxt/async_support/base/__init__.py +1 -0
  6. bitmart/ccxt/async_support/base/exchange.py +2315 -0
  7. bitmart/ccxt/async_support/base/throttler.py +88 -0
  8. bitmart/ccxt/async_support/base/ws/__init__.py +38 -0
  9. bitmart/ccxt/async_support/base/ws/cache.py +219 -0
  10. bitmart/ccxt/async_support/base/ws/client.py +350 -0
  11. bitmart/ccxt/async_support/base/ws/functions.py +59 -0
  12. bitmart/ccxt/async_support/base/ws/future.py +46 -0
  13. bitmart/ccxt/async_support/base/ws/order_book.py +78 -0
  14. bitmart/ccxt/async_support/base/ws/order_book_side.py +174 -0
  15. bitmart/ccxt/async_support/bitmart.py +5361 -0
  16. bitmart/ccxt/base/__init__.py +27 -0
  17. bitmart/ccxt/base/decimal_to_precision.py +178 -0
  18. bitmart/ccxt/base/errors.py +273 -0
  19. bitmart/ccxt/base/exchange.py +7642 -0
  20. bitmart/ccxt/base/precise.py +297 -0
  21. bitmart/ccxt/base/types.py +619 -0
  22. bitmart/ccxt/bitmart.py +5361 -0
  23. bitmart/ccxt/pro/__init__.py +66 -0
  24. bitmart/ccxt/pro/bitmart.py +1917 -0
  25. bitmart/ccxt/static_dependencies/README.md +1 -0
  26. bitmart/ccxt/static_dependencies/__init__.py +1 -0
  27. bitmart/ccxt/static_dependencies/bip/__init__.py +6 -0
  28. bitmart/ccxt/static_dependencies/bip/addr/P2PKH_addr.py +205 -0
  29. bitmart/ccxt/static_dependencies/bip/addr/__init__.py +5 -0
  30. bitmart/ccxt/static_dependencies/bip/addr/addr_dec_utils.py +125 -0
  31. bitmart/ccxt/static_dependencies/bip/addr/addr_key_validator.py +162 -0
  32. bitmart/ccxt/static_dependencies/bip/addr/iaddr_decoder.py +48 -0
  33. bitmart/ccxt/static_dependencies/bip/addr/iaddr_encoder.py +50 -0
  34. bitmart/ccxt/static_dependencies/bip/base58/__init__.py +3 -0
  35. bitmart/ccxt/static_dependencies/bip/base58/base58.py +207 -0
  36. bitmart/ccxt/static_dependencies/bip/base58/base58_ex.py +25 -0
  37. bitmart/ccxt/static_dependencies/bip/base58/base58_xmr.py +155 -0
  38. bitmart/ccxt/static_dependencies/bip/bech32/__init__.py +4 -0
  39. bitmart/ccxt/static_dependencies/bip/bech32/bch_bech32.py +220 -0
  40. bitmart/ccxt/static_dependencies/bip/bech32/bech32.py +235 -0
  41. bitmart/ccxt/static_dependencies/bip/bech32/bech32_base.py +246 -0
  42. bitmart/ccxt/static_dependencies/bip/bech32/bech32_ex.py +25 -0
  43. bitmart/ccxt/static_dependencies/bip/bech32/segwit_bech32.py +173 -0
  44. bitmart/ccxt/static_dependencies/bip/bip32/__init__.py +14 -0
  45. bitmart/ccxt/static_dependencies/bip/bip32/base/__init__.py +3 -0
  46. bitmart/ccxt/static_dependencies/bip/bip32/base/bip32_base.py +581 -0
  47. bitmart/ccxt/static_dependencies/bip/bip32/base/ibip32_key_derivator.py +83 -0
  48. bitmart/ccxt/static_dependencies/bip/bip32/base/ibip32_mst_key_generator.py +47 -0
  49. bitmart/ccxt/static_dependencies/bip/bip32/bip32_const.py +35 -0
  50. bitmart/ccxt/static_dependencies/bip/bip32/bip32_ex.py +29 -0
  51. bitmart/ccxt/static_dependencies/bip/bip32/bip32_key_data.py +500 -0
  52. bitmart/ccxt/static_dependencies/bip/bip32/bip32_key_net_ver.py +83 -0
  53. bitmart/ccxt/static_dependencies/bip/bip32/bip32_key_ser.py +294 -0
  54. bitmart/ccxt/static_dependencies/bip/bip32/bip32_keys.py +457 -0
  55. bitmart/ccxt/static_dependencies/bip/bip32/bip32_path.py +247 -0
  56. bitmart/ccxt/static_dependencies/bip/bip32/bip32_utils.py +72 -0
  57. bitmart/ccxt/static_dependencies/bip/bip32/kholaw/__init__.py +4 -0
  58. bitmart/ccxt/static_dependencies/bip/bip32/kholaw/bip32_kholaw_ed25519.py +82 -0
  59. bitmart/ccxt/static_dependencies/bip/bip32/kholaw/bip32_kholaw_ed25519_key_derivator.py +118 -0
  60. bitmart/ccxt/static_dependencies/bip/bip32/kholaw/bip32_kholaw_key_derivator_base.py +204 -0
  61. bitmart/ccxt/static_dependencies/bip/bip32/kholaw/bip32_kholaw_mst_key_generator.py +119 -0
  62. bitmart/ccxt/static_dependencies/bip/bip32/slip10/__init__.py +1 -0
  63. bitmart/ccxt/static_dependencies/bip/bip32/slip10/bip32_slip10_key_derivator.py +200 -0
  64. bitmart/ccxt/static_dependencies/bip/bip32/slip10/bip32_slip10_mst_key_generator.py +168 -0
  65. bitmart/ccxt/static_dependencies/bip/bip32/slip10/bip32_slip10_secp256k1.py +82 -0
  66. bitmart/ccxt/static_dependencies/bip/bip44/__init__.py +1 -0
  67. bitmart/ccxt/static_dependencies/bip/bip44/bip44.py +265 -0
  68. bitmart/ccxt/static_dependencies/bip/bip44_base/__init__.py +3 -0
  69. bitmart/ccxt/static_dependencies/bip/bip44_base/bip44_base.py +624 -0
  70. bitmart/ccxt/static_dependencies/bip/bip44_base/bip44_base_ex.py +25 -0
  71. bitmart/ccxt/static_dependencies/bip/bip44_base/bip44_keys.py +225 -0
  72. bitmart/ccxt/static_dependencies/bip/coin_conf/__init__.py +2 -0
  73. bitmart/ccxt/static_dependencies/bip/coin_conf/coin_conf.py +68 -0
  74. bitmart/ccxt/static_dependencies/bip/coin_conf/coins_conf.py +890 -0
  75. bitmart/ccxt/static_dependencies/bip/conf/__init__.py +0 -0
  76. bitmart/ccxt/static_dependencies/bip/conf/bip44/__init__.py +3 -0
  77. bitmart/ccxt/static_dependencies/bip/conf/bip44/bip44_coins.py +126 -0
  78. bitmart/ccxt/static_dependencies/bip/conf/bip44/bip44_conf.py +1360 -0
  79. bitmart/ccxt/static_dependencies/bip/conf/bip44/bip44_conf_getter.py +153 -0
  80. bitmart/ccxt/static_dependencies/bip/conf/bip49/__init__.py +3 -0
  81. bitmart/ccxt/static_dependencies/bip/conf/bip49/bip49_coins.py +53 -0
  82. bitmart/ccxt/static_dependencies/bip/conf/bip49/bip49_conf.py +366 -0
  83. bitmart/ccxt/static_dependencies/bip/conf/bip49/bip49_conf_getter.py +80 -0
  84. bitmart/ccxt/static_dependencies/bip/conf/bip84/__init__.py +3 -0
  85. bitmart/ccxt/static_dependencies/bip/conf/bip84/bip84_coins.py +39 -0
  86. bitmart/ccxt/static_dependencies/bip/conf/bip84/bip84_conf.py +113 -0
  87. bitmart/ccxt/static_dependencies/bip/conf/bip84/bip84_conf_getter.py +66 -0
  88. bitmart/ccxt/static_dependencies/bip/conf/bip86/__init__.py +3 -0
  89. bitmart/ccxt/static_dependencies/bip/conf/bip86/bip86_coins.py +37 -0
  90. bitmart/ccxt/static_dependencies/bip/conf/bip86/bip86_conf.py +83 -0
  91. bitmart/ccxt/static_dependencies/bip/conf/bip86/bip86_conf_getter.py +64 -0
  92. bitmart/ccxt/static_dependencies/bip/conf/common/__init__.py +8 -0
  93. bitmart/ccxt/static_dependencies/bip/conf/common/atom_addr.py +104 -0
  94. bitmart/ccxt/static_dependencies/bip/conf/common/bip_bitcoin_cash_conf.py +106 -0
  95. bitmart/ccxt/static_dependencies/bip/conf/common/bip_coin_conf.py +217 -0
  96. bitmart/ccxt/static_dependencies/bip/conf/common/bip_coins.py +28 -0
  97. bitmart/ccxt/static_dependencies/bip/conf/common/bip_conf_const.py +30 -0
  98. bitmart/ccxt/static_dependencies/bip/conf/common/bip_litecoin_conf.py +121 -0
  99. bitmart/ccxt/static_dependencies/bip/ecc/__init__.py +42 -0
  100. bitmart/ccxt/static_dependencies/bip/ecc/common/__init__.py +0 -0
  101. bitmart/ccxt/static_dependencies/bip/ecc/common/dummy_point.py +219 -0
  102. bitmart/ccxt/static_dependencies/bip/ecc/common/ikeys.py +263 -0
  103. bitmart/ccxt/static_dependencies/bip/ecc/common/ipoint.py +190 -0
  104. bitmart/ccxt/static_dependencies/bip/ecc/conf.py +28 -0
  105. bitmart/ccxt/static_dependencies/bip/ecc/curve/__init__.py +0 -0
  106. bitmart/ccxt/static_dependencies/bip/ecc/curve/elliptic_curve.py +121 -0
  107. bitmart/ccxt/static_dependencies/bip/ecc/curve/elliptic_curve_getter.py +74 -0
  108. bitmart/ccxt/static_dependencies/bip/ecc/curve/elliptic_curve_types.py +37 -0
  109. bitmart/ccxt/static_dependencies/bip/ecc/ecdsa/__init__.py +0 -0
  110. bitmart/ccxt/static_dependencies/bip/ecc/ecdsa/ecdsa_keys.py +36 -0
  111. bitmart/ccxt/static_dependencies/bip/ecc/secp256k1/__init__.py +0 -0
  112. bitmart/ccxt/static_dependencies/bip/ecc/secp256k1/secp256k1.py +36 -0
  113. bitmart/ccxt/static_dependencies/bip/ecc/secp256k1/secp256k1_const.py +59 -0
  114. bitmart/ccxt/static_dependencies/bip/ecc/secp256k1/secp256k1_keys_ecdsa.py +248 -0
  115. bitmart/ccxt/static_dependencies/bip/ecc/secp256k1/secp256k1_point_ecdsa.py +234 -0
  116. bitmart/ccxt/static_dependencies/bip/slip/__init__.py +0 -0
  117. bitmart/ccxt/static_dependencies/bip/slip/slip173/__init__.py +1 -0
  118. bitmart/ccxt/static_dependencies/bip/slip/slip173/slip173.py +60 -0
  119. bitmart/ccxt/static_dependencies/bip/slip/slip32/__init__.py +4 -0
  120. bitmart/ccxt/static_dependencies/bip/slip/slip32/slip32.py +322 -0
  121. bitmart/ccxt/static_dependencies/bip/slip/slip32/slip32_key_net_ver.py +62 -0
  122. bitmart/ccxt/static_dependencies/bip/slip/slip44/__init__.py +1 -0
  123. bitmart/ccxt/static_dependencies/bip/slip/slip44/slip44.py +81 -0
  124. bitmart/ccxt/static_dependencies/bip/utils/__init__.py +0 -0
  125. bitmart/ccxt/static_dependencies/bip/utils/conf/__init__.py +1 -0
  126. bitmart/ccxt/static_dependencies/bip/utils/conf/coin_names.py +59 -0
  127. bitmart/ccxt/static_dependencies/bip/utils/crypto/__init__.py +10 -0
  128. bitmart/ccxt/static_dependencies/bip/utils/crypto/aes_ecb.py +152 -0
  129. bitmart/ccxt/static_dependencies/bip/utils/crypto/blake2.py +191 -0
  130. bitmart/ccxt/static_dependencies/bip/utils/crypto/chacha20_poly1305.py +101 -0
  131. bitmart/ccxt/static_dependencies/bip/utils/crypto/hash160.py +57 -0
  132. bitmart/ccxt/static_dependencies/bip/utils/crypto/hmac.py +118 -0
  133. bitmart/ccxt/static_dependencies/bip/utils/crypto/pbkdf2.py +66 -0
  134. bitmart/ccxt/static_dependencies/bip/utils/crypto/ripemd.py +58 -0
  135. bitmart/ccxt/static_dependencies/bip/utils/crypto/scrypt.py +66 -0
  136. bitmart/ccxt/static_dependencies/bip/utils/crypto/sha2.py +182 -0
  137. bitmart/ccxt/static_dependencies/bip/utils/crypto/sha3.py +99 -0
  138. bitmart/ccxt/static_dependencies/bip/utils/misc/__init__.py +7 -0
  139. bitmart/ccxt/static_dependencies/bip/utils/misc/algo.py +108 -0
  140. bitmart/ccxt/static_dependencies/bip/utils/misc/base32.py +151 -0
  141. bitmart/ccxt/static_dependencies/bip/utils/misc/bit.py +115 -0
  142. bitmart/ccxt/static_dependencies/bip/utils/misc/bytes.py +200 -0
  143. bitmart/ccxt/static_dependencies/bip/utils/misc/data_bytes.py +181 -0
  144. bitmart/ccxt/static_dependencies/bip/utils/misc/integer.py +97 -0
  145. bitmart/ccxt/static_dependencies/bip/utils/misc/string.py +54 -0
  146. bitmart/ccxt/static_dependencies/bip/utils/typing/__init__.py +1 -0
  147. bitmart/ccxt/static_dependencies/bip/utils/typing/literal.py +27 -0
  148. bitmart/ccxt/static_dependencies/bip/wif/__init__.py +1 -0
  149. bitmart/ccxt/static_dependencies/bip/wif/wif.py +144 -0
  150. bitmart/ccxt/static_dependencies/dydx_v4_client/amino/amino_pb2.py +31 -0
  151. bitmart/ccxt/static_dependencies/dydx_v4_client/cosmos/base/v1beta1/coin_pb2.py +47 -0
  152. bitmart/ccxt/static_dependencies/dydx_v4_client/cosmos/crypto/multisig/keys_pb2.py +33 -0
  153. bitmart/ccxt/static_dependencies/dydx_v4_client/cosmos/crypto/multisig/v1beta1/multisig_pb2.py +33 -0
  154. bitmart/ccxt/static_dependencies/dydx_v4_client/cosmos/crypto/secp256k1/keys_pb2.py +34 -0
  155. bitmart/ccxt/static_dependencies/dydx_v4_client/cosmos/msg/v1/msg_pb2.py +27 -0
  156. bitmart/ccxt/static_dependencies/dydx_v4_client/cosmos/tx/signing/v1beta1/signing_pb2.py +38 -0
  157. bitmart/ccxt/static_dependencies/dydx_v4_client/cosmos/tx/v1beta1/tx_pb2.py +75 -0
  158. bitmart/ccxt/static_dependencies/dydx_v4_client/cosmos_proto/cosmos_pb2.py +36 -0
  159. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/accountplus/accountplus_pb2.py +31 -0
  160. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/accountplus/genesis_pb2.py +40 -0
  161. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/accountplus/models_pb2.py +26 -0
  162. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/accountplus/params_pb2.py +29 -0
  163. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/accountplus/query_pb2.py +57 -0
  164. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/accountplus/tx_pb2.py +51 -0
  165. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/clob/block_rate_limit_config_pb2.py +37 -0
  166. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/clob/clob_pair_pb2.py +41 -0
  167. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/clob/equity_tier_limit_config_pb2.py +35 -0
  168. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/clob/finalize_block_pb2.py +27 -0
  169. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/clob/liquidations_config_pb2.py +39 -0
  170. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/clob/liquidations_pb2.py +38 -0
  171. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/clob/matches_pb2.py +55 -0
  172. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/clob/mev_pb2.py +49 -0
  173. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/clob/operation_pb2.py +32 -0
  174. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/clob/order_pb2.py +86 -0
  175. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/clob/order_removals_pb2.py +32 -0
  176. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/clob/process_proposer_matches_events_pb2.py +42 -0
  177. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/clob/query_pb2.py +124 -0
  178. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/clob/streaming_pb2.py +29 -0
  179. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/clob/tx_pb2.py +117 -0
  180. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/sending/genesis_pb2.py +26 -0
  181. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/sending/query_pb2.py +26 -0
  182. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/sending/transfer_pb2.py +61 -0
  183. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/sending/tx_pb2.py +37 -0
  184. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/subaccounts/asset_position_pb2.py +29 -0
  185. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/subaccounts/genesis_pb2.py +30 -0
  186. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/subaccounts/perpetual_position_pb2.py +33 -0
  187. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/subaccounts/query_pb2.py +63 -0
  188. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/subaccounts/streaming_pb2.py +31 -0
  189. bitmart/ccxt/static_dependencies/dydx_v4_client/dydxprotocol/subaccounts/subaccount_pb2.py +33 -0
  190. bitmart/ccxt/static_dependencies/dydx_v4_client/gogoproto/gogo_pb2.py +102 -0
  191. bitmart/ccxt/static_dependencies/dydx_v4_client/registry.py +38 -0
  192. bitmart/ccxt/static_dependencies/ecdsa/__init__.py +14 -0
  193. bitmart/ccxt/static_dependencies/ecdsa/_version.py +520 -0
  194. bitmart/ccxt/static_dependencies/ecdsa/curves.py +56 -0
  195. bitmart/ccxt/static_dependencies/ecdsa/der.py +221 -0
  196. bitmart/ccxt/static_dependencies/ecdsa/ecdsa.py +310 -0
  197. bitmart/ccxt/static_dependencies/ecdsa/ellipticcurve.py +1039 -0
  198. bitmart/ccxt/static_dependencies/ecdsa/keys.py +343 -0
  199. bitmart/ccxt/static_dependencies/ecdsa/numbertheory.py +531 -0
  200. bitmart/ccxt/static_dependencies/ecdsa/rfc6979.py +100 -0
  201. bitmart/ccxt/static_dependencies/ecdsa/util.py +266 -0
  202. bitmart/ccxt/static_dependencies/ethereum/__init__.py +7 -0
  203. bitmart/ccxt/static_dependencies/ethereum/abi/__init__.py +16 -0
  204. bitmart/ccxt/static_dependencies/ethereum/abi/abi.py +19 -0
  205. bitmart/ccxt/static_dependencies/ethereum/abi/base.py +152 -0
  206. bitmart/ccxt/static_dependencies/ethereum/abi/codec.py +217 -0
  207. bitmart/ccxt/static_dependencies/ethereum/abi/constants.py +3 -0
  208. bitmart/ccxt/static_dependencies/ethereum/abi/decoding.py +565 -0
  209. bitmart/ccxt/static_dependencies/ethereum/abi/encoding.py +720 -0
  210. bitmart/ccxt/static_dependencies/ethereum/abi/exceptions.py +139 -0
  211. bitmart/ccxt/static_dependencies/ethereum/abi/grammar.py +443 -0
  212. bitmart/ccxt/static_dependencies/ethereum/abi/packed.py +13 -0
  213. bitmart/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  214. bitmart/ccxt/static_dependencies/ethereum/abi/registry.py +643 -0
  215. bitmart/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +3 -0
  216. bitmart/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +230 -0
  217. bitmart/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  218. bitmart/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +83 -0
  219. bitmart/ccxt/static_dependencies/ethereum/abi/utils/padding.py +27 -0
  220. bitmart/ccxt/static_dependencies/ethereum/abi/utils/string.py +19 -0
  221. bitmart/ccxt/static_dependencies/ethereum/account/__init__.py +3 -0
  222. bitmart/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +4 -0
  223. bitmart/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +239 -0
  224. bitmart/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +40 -0
  225. bitmart/ccxt/static_dependencies/ethereum/account/messages.py +263 -0
  226. bitmart/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  227. bitmart/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +5 -0
  228. bitmart/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +54 -0
  229. bitmart/ccxt/static_dependencies/ethereum/hexbytes/main.py +65 -0
  230. bitmart/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  231. bitmart/ccxt/static_dependencies/ethereum/typing/__init__.py +63 -0
  232. bitmart/ccxt/static_dependencies/ethereum/typing/abi.py +6 -0
  233. bitmart/ccxt/static_dependencies/ethereum/typing/bls.py +7 -0
  234. bitmart/ccxt/static_dependencies/ethereum/typing/discovery.py +5 -0
  235. bitmart/ccxt/static_dependencies/ethereum/typing/encoding.py +7 -0
  236. bitmart/ccxt/static_dependencies/ethereum/typing/enums.py +17 -0
  237. bitmart/ccxt/static_dependencies/ethereum/typing/ethpm.py +9 -0
  238. bitmart/ccxt/static_dependencies/ethereum/typing/evm.py +20 -0
  239. bitmart/ccxt/static_dependencies/ethereum/typing/networks.py +1122 -0
  240. bitmart/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  241. bitmart/ccxt/static_dependencies/ethereum/utils/__init__.py +115 -0
  242. bitmart/ccxt/static_dependencies/ethereum/utils/abi.py +72 -0
  243. bitmart/ccxt/static_dependencies/ethereum/utils/address.py +171 -0
  244. bitmart/ccxt/static_dependencies/ethereum/utils/applicators.py +151 -0
  245. bitmart/ccxt/static_dependencies/ethereum/utils/conversions.py +190 -0
  246. bitmart/ccxt/static_dependencies/ethereum/utils/currency.py +107 -0
  247. bitmart/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +269 -0
  248. bitmart/ccxt/static_dependencies/ethereum/utils/debug.py +20 -0
  249. bitmart/ccxt/static_dependencies/ethereum/utils/decorators.py +132 -0
  250. bitmart/ccxt/static_dependencies/ethereum/utils/encoding.py +6 -0
  251. bitmart/ccxt/static_dependencies/ethereum/utils/exceptions.py +4 -0
  252. bitmart/ccxt/static_dependencies/ethereum/utils/functional.py +75 -0
  253. bitmart/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +74 -0
  254. bitmart/ccxt/static_dependencies/ethereum/utils/humanize.py +188 -0
  255. bitmart/ccxt/static_dependencies/ethereum/utils/logging.py +159 -0
  256. bitmart/ccxt/static_dependencies/ethereum/utils/module_loading.py +31 -0
  257. bitmart/ccxt/static_dependencies/ethereum/utils/numeric.py +43 -0
  258. bitmart/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  259. bitmart/ccxt/static_dependencies/ethereum/utils/toolz.py +76 -0
  260. bitmart/ccxt/static_dependencies/ethereum/utils/types.py +54 -0
  261. bitmart/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +18 -0
  262. bitmart/ccxt/static_dependencies/ethereum/utils/typing/misc.py +14 -0
  263. bitmart/ccxt/static_dependencies/ethereum/utils/units.py +31 -0
  264. bitmart/ccxt/static_dependencies/keccak/__init__.py +3 -0
  265. bitmart/ccxt/static_dependencies/keccak/keccak.py +197 -0
  266. bitmart/ccxt/static_dependencies/lark/__init__.py +38 -0
  267. bitmart/ccxt/static_dependencies/lark/__pyinstaller/__init__.py +6 -0
  268. bitmart/ccxt/static_dependencies/lark/__pyinstaller/hook-lark.py +14 -0
  269. bitmart/ccxt/static_dependencies/lark/ast_utils.py +59 -0
  270. bitmart/ccxt/static_dependencies/lark/common.py +86 -0
  271. bitmart/ccxt/static_dependencies/lark/exceptions.py +292 -0
  272. bitmart/ccxt/static_dependencies/lark/grammar.py +130 -0
  273. bitmart/ccxt/static_dependencies/lark/grammars/__init__.py +0 -0
  274. bitmart/ccxt/static_dependencies/lark/grammars/common.lark +59 -0
  275. bitmart/ccxt/static_dependencies/lark/grammars/lark.lark +62 -0
  276. bitmart/ccxt/static_dependencies/lark/grammars/python.lark +302 -0
  277. bitmart/ccxt/static_dependencies/lark/grammars/unicode.lark +7 -0
  278. bitmart/ccxt/static_dependencies/lark/indenter.py +143 -0
  279. bitmart/ccxt/static_dependencies/lark/lark.py +658 -0
  280. bitmart/ccxt/static_dependencies/lark/lexer.py +678 -0
  281. bitmart/ccxt/static_dependencies/lark/load_grammar.py +1428 -0
  282. bitmart/ccxt/static_dependencies/lark/parse_tree_builder.py +391 -0
  283. bitmart/ccxt/static_dependencies/lark/parser_frontends.py +257 -0
  284. bitmart/ccxt/static_dependencies/lark/parsers/__init__.py +0 -0
  285. bitmart/ccxt/static_dependencies/lark/parsers/cyk.py +340 -0
  286. bitmart/ccxt/static_dependencies/lark/parsers/earley.py +314 -0
  287. bitmart/ccxt/static_dependencies/lark/parsers/earley_common.py +42 -0
  288. bitmart/ccxt/static_dependencies/lark/parsers/earley_forest.py +801 -0
  289. bitmart/ccxt/static_dependencies/lark/parsers/grammar_analysis.py +203 -0
  290. bitmart/ccxt/static_dependencies/lark/parsers/lalr_analysis.py +332 -0
  291. bitmart/ccxt/static_dependencies/lark/parsers/lalr_interactive_parser.py +158 -0
  292. bitmart/ccxt/static_dependencies/lark/parsers/lalr_parser.py +122 -0
  293. bitmart/ccxt/static_dependencies/lark/parsers/lalr_parser_state.py +110 -0
  294. bitmart/ccxt/static_dependencies/lark/parsers/xearley.py +165 -0
  295. bitmart/ccxt/static_dependencies/lark/py.typed +0 -0
  296. bitmart/ccxt/static_dependencies/lark/reconstruct.py +107 -0
  297. bitmart/ccxt/static_dependencies/lark/tools/__init__.py +70 -0
  298. bitmart/ccxt/static_dependencies/lark/tools/nearley.py +202 -0
  299. bitmart/ccxt/static_dependencies/lark/tools/serialize.py +32 -0
  300. bitmart/ccxt/static_dependencies/lark/tools/standalone.py +196 -0
  301. bitmart/ccxt/static_dependencies/lark/tree.py +267 -0
  302. bitmart/ccxt/static_dependencies/lark/tree_matcher.py +186 -0
  303. bitmart/ccxt/static_dependencies/lark/tree_templates.py +180 -0
  304. bitmart/ccxt/static_dependencies/lark/utils.py +343 -0
  305. bitmart/ccxt/static_dependencies/lark/visitors.py +596 -0
  306. bitmart/ccxt/static_dependencies/marshmallow/__init__.py +81 -0
  307. bitmart/ccxt/static_dependencies/marshmallow/base.py +65 -0
  308. bitmart/ccxt/static_dependencies/marshmallow/class_registry.py +94 -0
  309. bitmart/ccxt/static_dependencies/marshmallow/decorators.py +231 -0
  310. bitmart/ccxt/static_dependencies/marshmallow/error_store.py +60 -0
  311. bitmart/ccxt/static_dependencies/marshmallow/exceptions.py +71 -0
  312. bitmart/ccxt/static_dependencies/marshmallow/fields.py +2114 -0
  313. bitmart/ccxt/static_dependencies/marshmallow/orderedset.py +89 -0
  314. bitmart/ccxt/static_dependencies/marshmallow/py.typed +0 -0
  315. bitmart/ccxt/static_dependencies/marshmallow/schema.py +1228 -0
  316. bitmart/ccxt/static_dependencies/marshmallow/types.py +12 -0
  317. bitmart/ccxt/static_dependencies/marshmallow/utils.py +378 -0
  318. bitmart/ccxt/static_dependencies/marshmallow/validate.py +678 -0
  319. bitmart/ccxt/static_dependencies/marshmallow/warnings.py +2 -0
  320. bitmart/ccxt/static_dependencies/marshmallow_dataclass/__init__.py +1047 -0
  321. bitmart/ccxt/static_dependencies/marshmallow_dataclass/collection_field.py +51 -0
  322. bitmart/ccxt/static_dependencies/marshmallow_dataclass/lazy_class_attribute.py +45 -0
  323. bitmart/ccxt/static_dependencies/marshmallow_dataclass/mypy.py +71 -0
  324. bitmart/ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
  325. bitmart/ccxt/static_dependencies/marshmallow_dataclass/typing.py +14 -0
  326. bitmart/ccxt/static_dependencies/marshmallow_dataclass/union_field.py +82 -0
  327. bitmart/ccxt/static_dependencies/marshmallow_oneofschema/__init__.py +1 -0
  328. bitmart/ccxt/static_dependencies/marshmallow_oneofschema/one_of_schema.py +193 -0
  329. bitmart/ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
  330. bitmart/ccxt/static_dependencies/mnemonic/__init__.py +4 -0
  331. bitmart/ccxt/static_dependencies/mnemonic/mnemonic.py +282 -0
  332. bitmart/ccxt/static_dependencies/mnemonic/py.typed +1 -0
  333. bitmart/ccxt/static_dependencies/mnemonic/wordlist/chinese_simplified.txt +2048 -0
  334. bitmart/ccxt/static_dependencies/mnemonic/wordlist/chinese_traditional.txt +2048 -0
  335. bitmart/ccxt/static_dependencies/mnemonic/wordlist/czech.txt +2048 -0
  336. bitmart/ccxt/static_dependencies/mnemonic/wordlist/english.txt +2048 -0
  337. bitmart/ccxt/static_dependencies/mnemonic/wordlist/french.txt +2048 -0
  338. bitmart/ccxt/static_dependencies/mnemonic/wordlist/italian.txt +2048 -0
  339. bitmart/ccxt/static_dependencies/mnemonic/wordlist/japanese.txt +2048 -0
  340. bitmart/ccxt/static_dependencies/mnemonic/wordlist/korean.txt +2048 -0
  341. bitmart/ccxt/static_dependencies/mnemonic/wordlist/portuguese.txt +2048 -0
  342. bitmart/ccxt/static_dependencies/mnemonic/wordlist/russian.txt +2048 -0
  343. bitmart/ccxt/static_dependencies/mnemonic/wordlist/spanish.txt +2048 -0
  344. bitmart/ccxt/static_dependencies/mnemonic/wordlist/turkish.txt +2048 -0
  345. bitmart/ccxt/static_dependencies/msgpack/__init__.py +55 -0
  346. bitmart/ccxt/static_dependencies/msgpack/_cmsgpack.pyx +11 -0
  347. bitmart/ccxt/static_dependencies/msgpack/_packer.pyx +374 -0
  348. bitmart/ccxt/static_dependencies/msgpack/_unpacker.pyx +547 -0
  349. bitmart/ccxt/static_dependencies/msgpack/buff_converter.h +8 -0
  350. bitmart/ccxt/static_dependencies/msgpack/exceptions.py +48 -0
  351. bitmart/ccxt/static_dependencies/msgpack/ext.py +168 -0
  352. bitmart/ccxt/static_dependencies/msgpack/fallback.py +951 -0
  353. bitmart/ccxt/static_dependencies/msgpack/pack.h +89 -0
  354. bitmart/ccxt/static_dependencies/msgpack/pack_template.h +820 -0
  355. bitmart/ccxt/static_dependencies/msgpack/sysdep.h +194 -0
  356. bitmart/ccxt/static_dependencies/msgpack/unpack.h +391 -0
  357. bitmart/ccxt/static_dependencies/msgpack/unpack_define.h +95 -0
  358. bitmart/ccxt/static_dependencies/msgpack/unpack_template.h +464 -0
  359. bitmart/ccxt/static_dependencies/parsimonious/__init__.py +10 -0
  360. bitmart/ccxt/static_dependencies/parsimonious/exceptions.py +105 -0
  361. bitmart/ccxt/static_dependencies/parsimonious/expressions.py +479 -0
  362. bitmart/ccxt/static_dependencies/parsimonious/grammar.py +487 -0
  363. bitmart/ccxt/static_dependencies/parsimonious/nodes.py +325 -0
  364. bitmart/ccxt/static_dependencies/parsimonious/utils.py +40 -0
  365. bitmart/ccxt/static_dependencies/starknet/__init__.py +0 -0
  366. bitmart/ccxt/static_dependencies/starknet/abi/v0/__init__.py +2 -0
  367. bitmart/ccxt/static_dependencies/starknet/abi/v0/model.py +44 -0
  368. bitmart/ccxt/static_dependencies/starknet/abi/v0/parser.py +216 -0
  369. bitmart/ccxt/static_dependencies/starknet/abi/v0/schemas.py +72 -0
  370. bitmart/ccxt/static_dependencies/starknet/abi/v0/shape.py +63 -0
  371. bitmart/ccxt/static_dependencies/starknet/abi/v1/__init__.py +2 -0
  372. bitmart/ccxt/static_dependencies/starknet/abi/v1/core_structures.json +14 -0
  373. bitmart/ccxt/static_dependencies/starknet/abi/v1/model.py +39 -0
  374. bitmart/ccxt/static_dependencies/starknet/abi/v1/parser.py +220 -0
  375. bitmart/ccxt/static_dependencies/starknet/abi/v1/parser_transformer.py +179 -0
  376. bitmart/ccxt/static_dependencies/starknet/abi/v1/schemas.py +66 -0
  377. bitmart/ccxt/static_dependencies/starknet/abi/v1/shape.py +47 -0
  378. bitmart/ccxt/static_dependencies/starknet/abi/v2/__init__.py +2 -0
  379. bitmart/ccxt/static_dependencies/starknet/abi/v2/model.py +89 -0
  380. bitmart/ccxt/static_dependencies/starknet/abi/v2/parser.py +293 -0
  381. bitmart/ccxt/static_dependencies/starknet/abi/v2/parser_transformer.py +192 -0
  382. bitmart/ccxt/static_dependencies/starknet/abi/v2/schemas.py +132 -0
  383. bitmart/ccxt/static_dependencies/starknet/abi/v2/shape.py +107 -0
  384. bitmart/ccxt/static_dependencies/starknet/cairo/__init__.py +0 -0
  385. bitmart/ccxt/static_dependencies/starknet/cairo/data_types.py +123 -0
  386. bitmart/ccxt/static_dependencies/starknet/cairo/deprecated_parse/__init__.py +0 -0
  387. bitmart/ccxt/static_dependencies/starknet/cairo/deprecated_parse/cairo_types.py +77 -0
  388. bitmart/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser.py +46 -0
  389. bitmart/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser_transformer.py +138 -0
  390. bitmart/ccxt/static_dependencies/starknet/cairo/felt.py +64 -0
  391. bitmart/ccxt/static_dependencies/starknet/cairo/type_parser.py +121 -0
  392. bitmart/ccxt/static_dependencies/starknet/cairo/v1/__init__.py +0 -0
  393. bitmart/ccxt/static_dependencies/starknet/cairo/v1/type_parser.py +59 -0
  394. bitmart/ccxt/static_dependencies/starknet/cairo/v2/__init__.py +0 -0
  395. bitmart/ccxt/static_dependencies/starknet/cairo/v2/type_parser.py +77 -0
  396. bitmart/ccxt/static_dependencies/starknet/ccxt_utils.py +7 -0
  397. bitmart/ccxt/static_dependencies/starknet/common.py +15 -0
  398. bitmart/ccxt/static_dependencies/starknet/constants.py +39 -0
  399. bitmart/ccxt/static_dependencies/starknet/hash/__init__.py +0 -0
  400. bitmart/ccxt/static_dependencies/starknet/hash/address.py +79 -0
  401. bitmart/ccxt/static_dependencies/starknet/hash/compiled_class_hash_objects.py +111 -0
  402. bitmart/ccxt/static_dependencies/starknet/hash/selector.py +16 -0
  403. bitmart/ccxt/static_dependencies/starknet/hash/storage.py +12 -0
  404. bitmart/ccxt/static_dependencies/starknet/hash/utils.py +78 -0
  405. bitmart/ccxt/static_dependencies/starknet/models/__init__.py +0 -0
  406. bitmart/ccxt/static_dependencies/starknet/models/typed_data.py +45 -0
  407. bitmart/ccxt/static_dependencies/starknet/serialization/__init__.py +24 -0
  408. bitmart/ccxt/static_dependencies/starknet/serialization/_calldata_reader.py +40 -0
  409. bitmart/ccxt/static_dependencies/starknet/serialization/_context.py +142 -0
  410. bitmart/ccxt/static_dependencies/starknet/serialization/data_serializers/__init__.py +10 -0
  411. bitmart/ccxt/static_dependencies/starknet/serialization/data_serializers/_common.py +82 -0
  412. bitmart/ccxt/static_dependencies/starknet/serialization/data_serializers/array_serializer.py +43 -0
  413. bitmart/ccxt/static_dependencies/starknet/serialization/data_serializers/bool_serializer.py +37 -0
  414. bitmart/ccxt/static_dependencies/starknet/serialization/data_serializers/byte_array_serializer.py +66 -0
  415. bitmart/ccxt/static_dependencies/starknet/serialization/data_serializers/cairo_data_serializer.py +71 -0
  416. bitmart/ccxt/static_dependencies/starknet/serialization/data_serializers/enum_serializer.py +71 -0
  417. bitmart/ccxt/static_dependencies/starknet/serialization/data_serializers/felt_serializer.py +50 -0
  418. bitmart/ccxt/static_dependencies/starknet/serialization/data_serializers/named_tuple_serializer.py +58 -0
  419. bitmart/ccxt/static_dependencies/starknet/serialization/data_serializers/option_serializer.py +43 -0
  420. bitmart/ccxt/static_dependencies/starknet/serialization/data_serializers/output_serializer.py +40 -0
  421. bitmart/ccxt/static_dependencies/starknet/serialization/data_serializers/payload_serializer.py +72 -0
  422. bitmart/ccxt/static_dependencies/starknet/serialization/data_serializers/struct_serializer.py +36 -0
  423. bitmart/ccxt/static_dependencies/starknet/serialization/data_serializers/tuple_serializer.py +36 -0
  424. bitmart/ccxt/static_dependencies/starknet/serialization/data_serializers/uint256_serializer.py +76 -0
  425. bitmart/ccxt/static_dependencies/starknet/serialization/data_serializers/uint_serializer.py +100 -0
  426. bitmart/ccxt/static_dependencies/starknet/serialization/data_serializers/unit_serializer.py +32 -0
  427. bitmart/ccxt/static_dependencies/starknet/serialization/errors.py +10 -0
  428. bitmart/ccxt/static_dependencies/starknet/serialization/factory.py +229 -0
  429. bitmart/ccxt/static_dependencies/starknet/serialization/function_serialization_adapter.py +110 -0
  430. bitmart/ccxt/static_dependencies/starknet/serialization/tuple_dataclass.py +59 -0
  431. bitmart/ccxt/static_dependencies/starknet/utils/__init__.py +0 -0
  432. bitmart/ccxt/static_dependencies/starknet/utils/constructor_args_translator.py +86 -0
  433. bitmart/ccxt/static_dependencies/starknet/utils/iterable.py +13 -0
  434. bitmart/ccxt/static_dependencies/starknet/utils/schema.py +13 -0
  435. bitmart/ccxt/static_dependencies/starknet/utils/typed_data.py +182 -0
  436. bitmart/ccxt/static_dependencies/starkware/__init__.py +0 -0
  437. bitmart/ccxt/static_dependencies/starkware/crypto/__init__.py +0 -0
  438. bitmart/ccxt/static_dependencies/starkware/crypto/fast_pedersen_hash.py +50 -0
  439. bitmart/ccxt/static_dependencies/starkware/crypto/math_utils.py +78 -0
  440. bitmart/ccxt/static_dependencies/starkware/crypto/signature.py +2344 -0
  441. bitmart/ccxt/static_dependencies/starkware/crypto/utils.py +63 -0
  442. bitmart/ccxt/static_dependencies/sympy/__init__.py +0 -0
  443. bitmart/ccxt/static_dependencies/sympy/core/__init__.py +0 -0
  444. bitmart/ccxt/static_dependencies/sympy/core/intfunc.py +35 -0
  445. bitmart/ccxt/static_dependencies/sympy/external/__init__.py +0 -0
  446. bitmart/ccxt/static_dependencies/sympy/external/gmpy.py +345 -0
  447. bitmart/ccxt/static_dependencies/sympy/external/importtools.py +187 -0
  448. bitmart/ccxt/static_dependencies/sympy/external/ntheory.py +637 -0
  449. bitmart/ccxt/static_dependencies/sympy/external/pythonmpq.py +341 -0
  450. bitmart/ccxt/static_dependencies/toolz/__init__.py +26 -0
  451. bitmart/ccxt/static_dependencies/toolz/_signatures.py +784 -0
  452. bitmart/ccxt/static_dependencies/toolz/_version.py +520 -0
  453. bitmart/ccxt/static_dependencies/toolz/compatibility.py +30 -0
  454. bitmart/ccxt/static_dependencies/toolz/curried/__init__.py +101 -0
  455. bitmart/ccxt/static_dependencies/toolz/curried/exceptions.py +22 -0
  456. bitmart/ccxt/static_dependencies/toolz/curried/operator.py +22 -0
  457. bitmart/ccxt/static_dependencies/toolz/dicttoolz.py +339 -0
  458. bitmart/ccxt/static_dependencies/toolz/functoolz.py +1049 -0
  459. bitmart/ccxt/static_dependencies/toolz/itertoolz.py +1057 -0
  460. bitmart/ccxt/static_dependencies/toolz/recipes.py +46 -0
  461. bitmart/ccxt/static_dependencies/toolz/utils.py +9 -0
  462. bitmart/ccxt/static_dependencies/typing_inspect/__init__.py +0 -0
  463. bitmart/ccxt/static_dependencies/typing_inspect/typing_inspect.py +851 -0
  464. bitmart-0.0.116.dist-info/METADATA +342 -0
  465. bitmart-0.0.116.dist-info/RECORD +466 -0
  466. bitmart-0.0.116.dist-info/WHEEL +4 -0
@@ -0,0 +1,27 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ # MIT License
4
+ # Copyright (c) 2017 Igor Kroitor
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+
23
+ from ccxt.base import errors
24
+ from ccxt.base import exchange
25
+ from ccxt.base import decimal_to_precision
26
+
27
+ __all__ = exchange.__all__ + decimal_to_precision.__all__ + errors.__all__ # noqa: F405
@@ -0,0 +1,178 @@
1
+ import decimal
2
+ import numbers
3
+ import itertools
4
+ import re
5
+
6
+ __all__ = [
7
+ 'TRUNCATE',
8
+ 'ROUND',
9
+ 'ROUND_UP',
10
+ 'ROUND_DOWN',
11
+ 'DECIMAL_PLACES',
12
+ 'SIGNIFICANT_DIGITS',
13
+ 'TICK_SIZE',
14
+ 'NO_PADDING',
15
+ 'PAD_WITH_ZERO',
16
+ 'decimal_to_precision',
17
+ ]
18
+
19
+
20
+ # rounding mode
21
+ TRUNCATE = 0
22
+ ROUND = 1
23
+ ROUND_UP = 2
24
+ ROUND_DOWN = 3
25
+
26
+ # digits counting mode
27
+ DECIMAL_PLACES = 2
28
+ SIGNIFICANT_DIGITS = 3
29
+ TICK_SIZE = 4
30
+
31
+ # padding mode
32
+ NO_PADDING = 5
33
+ PAD_WITH_ZERO = 6
34
+
35
+
36
+ def decimal_to_precision(n, rounding_mode=ROUND, precision=None, counting_mode=DECIMAL_PLACES, padding_mode=NO_PADDING):
37
+ assert precision is not None, 'precision should not be None'
38
+
39
+ if isinstance(precision, str):
40
+ precision = float(precision)
41
+ assert isinstance(precision, float) or isinstance(precision, decimal.Decimal) or isinstance(precision, numbers.Integral), 'precision has an invalid number'
42
+
43
+ if counting_mode == TICK_SIZE:
44
+ assert precision > 0, 'negative or zero precision can not be used with TICK_SIZE precisionMode'
45
+ else:
46
+ assert isinstance(precision, numbers.Integral)
47
+
48
+ assert rounding_mode in [TRUNCATE, ROUND]
49
+ assert counting_mode in [DECIMAL_PLACES, SIGNIFICANT_DIGITS, TICK_SIZE]
50
+ assert padding_mode in [NO_PADDING, PAD_WITH_ZERO]
51
+ # end of checks
52
+
53
+ context = decimal.getcontext()
54
+
55
+ if counting_mode != TICK_SIZE:
56
+ precision = min(context.prec - 2, precision)
57
+
58
+ # all default except decimal.Underflow (raised when a number is rounded to zero)
59
+ context.traps[decimal.Underflow] = True
60
+ context.rounding = decimal.ROUND_HALF_UP # rounds 0.5 away from zero
61
+
62
+ dec = decimal.Decimal(str(n))
63
+ precision_dec = decimal.Decimal(str(precision))
64
+ string = '{:f}'.format(dec) # convert to string using .format to avoid engineering notation
65
+ precise = None
66
+
67
+ def power_of_10(x):
68
+ return decimal.Decimal('10') ** (-x)
69
+
70
+ if precision < 0:
71
+ if counting_mode == TICK_SIZE:
72
+ raise ValueError('TICK_SIZE cant be used with negative numPrecisionDigits')
73
+ to_nearest = power_of_10(precision)
74
+ if rounding_mode == ROUND:
75
+ return "{:f}".format(to_nearest * decimal.Decimal(decimal_to_precision(dec / to_nearest, rounding_mode, 0, DECIMAL_PLACES, padding_mode)))
76
+ elif rounding_mode == TRUNCATE:
77
+ return decimal_to_precision(dec - dec % to_nearest, rounding_mode, 0, DECIMAL_PLACES, padding_mode)
78
+
79
+ if counting_mode == TICK_SIZE:
80
+ # python modulo with negative numbers behaves different than js/php, so use abs first
81
+ missing = abs(dec) % precision_dec
82
+ if missing != 0:
83
+ if rounding_mode == ROUND:
84
+ if dec > 0:
85
+ if missing >= precision_dec / 2:
86
+ dec = dec - missing + precision_dec
87
+ else:
88
+ dec = dec - missing
89
+ else:
90
+ if missing >= precision_dec / 2:
91
+ dec = dec + missing - precision_dec
92
+ else:
93
+ dec = dec + missing
94
+ elif rounding_mode == TRUNCATE:
95
+ if dec < 0:
96
+ dec = dec + missing
97
+ else:
98
+ dec = dec - missing
99
+ parts = re.sub(r'0+$', '', '{:f}'.format(precision_dec)).split('.')
100
+ if len(parts) > 1:
101
+ new_precision = len(parts[1])
102
+ else:
103
+ match = re.search(r'0+$', parts[0])
104
+ if match is None:
105
+ new_precision = 0
106
+ else:
107
+ new_precision = - len(match.group(0))
108
+ return decimal_to_precision('{:f}'.format(dec), ROUND, new_precision, DECIMAL_PLACES, padding_mode)
109
+
110
+ if rounding_mode == ROUND:
111
+ if counting_mode == DECIMAL_PLACES:
112
+ precise = '{:f}'.format(dec.quantize(power_of_10(precision))) # ROUND_HALF_EVEN is default context
113
+ elif counting_mode == SIGNIFICANT_DIGITS:
114
+ q = precision - dec.adjusted() - 1
115
+ sigfig = power_of_10(q)
116
+ if q < 0:
117
+ string_to_precision = string[:precision]
118
+ # string_to_precision is '' when we have zero precision
119
+ below = sigfig * decimal.Decimal(string_to_precision if string_to_precision else '0')
120
+ above = below + sigfig
121
+ precise = '{:f}'.format(min((below, above), key=lambda x: abs(x - dec)))
122
+ else:
123
+ precise = '{:f}'.format(dec.quantize(sigfig))
124
+ if precise.startswith('-0') and all(c in '0.' for c in precise[1:]):
125
+ precise = precise[1:]
126
+
127
+ elif rounding_mode == TRUNCATE:
128
+ # Slice a string
129
+ if counting_mode == DECIMAL_PLACES:
130
+ before, after = string.split('.') if '.' in string else (string, '')
131
+ precise = before + '.' + after[:precision]
132
+ elif counting_mode == SIGNIFICANT_DIGITS:
133
+ if precision == 0:
134
+ return '0'
135
+ dot = string.index('.') if '.' in string else len(string)
136
+ start = dot - dec.adjusted()
137
+ end = start + precision
138
+ # need to clarify these conditionals
139
+ if dot >= end:
140
+ end -= 1
141
+ if precision >= len(string.replace('.', '')):
142
+ precise = string
143
+ else:
144
+ precise = string[:end].ljust(dot, '0')
145
+ if precise.startswith('-0') and all(c in '0.' for c in precise[1:]):
146
+ precise = precise[1:]
147
+ precise = precise.rstrip('.')
148
+
149
+ if padding_mode == NO_PADDING:
150
+ return precise.rstrip('0').rstrip('.') if '.' in precise else precise
151
+ elif padding_mode == PAD_WITH_ZERO:
152
+ if '.' in precise:
153
+ if counting_mode == DECIMAL_PLACES:
154
+ before, after = precise.split('.')
155
+ return before + '.' + after.ljust(precision, '0')
156
+
157
+ elif counting_mode == SIGNIFICANT_DIGITS:
158
+ fsfg = len(list(itertools.takewhile(lambda x: x == '.' or x == '0', precise)))
159
+ if '.' in precise[fsfg:]:
160
+ precision += 1
161
+ return precise[:fsfg] + precise[fsfg:].rstrip('0').ljust(precision, '0')
162
+ else:
163
+ if counting_mode == SIGNIFICANT_DIGITS:
164
+ if precision > len(precise):
165
+ return precise + '.' + (precision - len(precise)) * '0'
166
+ elif counting_mode == DECIMAL_PLACES:
167
+ if precision > 0:
168
+ return precise + '.' + precision * '0'
169
+ return precise
170
+
171
+
172
+ def number_to_string(x):
173
+ # avoids scientific notation for too large and too small numbers
174
+ if x is None:
175
+ return None
176
+ d = decimal.Decimal(str(x))
177
+ formatted = '{:f}'.format(d)
178
+ return formatted.rstrip('0').rstrip('.') if '.' in formatted else formatted
@@ -0,0 +1,273 @@
1
+ # ----------------------------------------------------------------------------
2
+
3
+ # PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
4
+ # https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
5
+ # EDIT THE CORRESPONDENT .ts FILE INSTEAD
6
+
7
+ error_hierarchy = {
8
+ 'BaseError': {
9
+ 'ExchangeError': {
10
+ 'AuthenticationError': {
11
+ 'PermissionDenied': {
12
+ 'AccountNotEnabled': {},
13
+ },
14
+ 'AccountSuspended': {},
15
+ },
16
+ 'ArgumentsRequired': {},
17
+ 'BadRequest': {
18
+ 'BadSymbol': {},
19
+ },
20
+ 'OperationRejected': {
21
+ 'NoChange': {
22
+ 'MarginModeAlreadySet': {},
23
+ },
24
+ 'MarketClosed': {},
25
+ 'ManualInteractionNeeded': {},
26
+ 'RestrictedLocation': {},
27
+ },
28
+ 'InsufficientFunds': {},
29
+ 'InvalidAddress': {
30
+ 'AddressPending': {},
31
+ },
32
+ 'InvalidOrder': {
33
+ 'OrderNotFound': {},
34
+ 'OrderNotCached': {},
35
+ 'OrderImmediatelyFillable': {},
36
+ 'OrderNotFillable': {},
37
+ 'DuplicateOrderId': {},
38
+ 'ContractUnavailable': {},
39
+ },
40
+ 'NotSupported': {},
41
+ 'InvalidProxySettings': {},
42
+ 'ExchangeClosedByUser': {},
43
+ },
44
+ 'OperationFailed': {
45
+ 'NetworkError': {
46
+ 'DDoSProtection': {},
47
+ 'RateLimitExceeded': {},
48
+ 'ExchangeNotAvailable': {
49
+ 'OnMaintenance': {},
50
+ },
51
+ 'InvalidNonce': {
52
+ 'ChecksumError': {},
53
+ },
54
+ 'RequestTimeout': {},
55
+ },
56
+ 'BadResponse': {
57
+ 'NullResponse': {},
58
+ },
59
+ 'CancelPending': {},
60
+ },
61
+ 'UnsubscribeError': {},
62
+ },
63
+ }
64
+
65
+
66
+ class BaseError(Exception):
67
+ pass
68
+
69
+
70
+ class ExchangeError(BaseError):
71
+ pass
72
+
73
+
74
+ class AuthenticationError(ExchangeError):
75
+ pass
76
+
77
+
78
+ class PermissionDenied(AuthenticationError):
79
+ pass
80
+
81
+
82
+ class AccountNotEnabled(PermissionDenied):
83
+ pass
84
+
85
+
86
+ class AccountSuspended(AuthenticationError):
87
+ pass
88
+
89
+
90
+ class ArgumentsRequired(ExchangeError):
91
+ pass
92
+
93
+
94
+ class BadRequest(ExchangeError):
95
+ pass
96
+
97
+
98
+ class BadSymbol(BadRequest):
99
+ pass
100
+
101
+
102
+ class OperationRejected(ExchangeError):
103
+ pass
104
+
105
+
106
+ class NoChange(OperationRejected):
107
+ pass
108
+
109
+
110
+ class MarginModeAlreadySet(NoChange):
111
+ pass
112
+
113
+
114
+ class MarketClosed(OperationRejected):
115
+ pass
116
+
117
+
118
+ class ManualInteractionNeeded(OperationRejected):
119
+ pass
120
+
121
+
122
+ class RestrictedLocation(OperationRejected):
123
+ pass
124
+
125
+
126
+ class InsufficientFunds(ExchangeError):
127
+ pass
128
+
129
+
130
+ class InvalidAddress(ExchangeError):
131
+ pass
132
+
133
+
134
+ class AddressPending(InvalidAddress):
135
+ pass
136
+
137
+
138
+ class InvalidOrder(ExchangeError):
139
+ pass
140
+
141
+
142
+ class OrderNotFound(InvalidOrder):
143
+ pass
144
+
145
+
146
+ class OrderNotCached(InvalidOrder):
147
+ pass
148
+
149
+
150
+ class OrderImmediatelyFillable(InvalidOrder):
151
+ pass
152
+
153
+
154
+ class OrderNotFillable(InvalidOrder):
155
+ pass
156
+
157
+
158
+ class DuplicateOrderId(InvalidOrder):
159
+ pass
160
+
161
+
162
+ class ContractUnavailable(InvalidOrder):
163
+ pass
164
+
165
+
166
+ class NotSupported(ExchangeError):
167
+ pass
168
+
169
+
170
+ class InvalidProxySettings(ExchangeError):
171
+ pass
172
+
173
+
174
+ class ExchangeClosedByUser(ExchangeError):
175
+ pass
176
+
177
+
178
+ class OperationFailed(BaseError):
179
+ pass
180
+
181
+
182
+ class NetworkError(OperationFailed):
183
+ pass
184
+
185
+
186
+ class DDoSProtection(NetworkError):
187
+ pass
188
+
189
+
190
+ class RateLimitExceeded(NetworkError):
191
+ pass
192
+
193
+
194
+ class ExchangeNotAvailable(NetworkError):
195
+ pass
196
+
197
+
198
+ class OnMaintenance(ExchangeNotAvailable):
199
+ pass
200
+
201
+
202
+ class InvalidNonce(NetworkError):
203
+ pass
204
+
205
+
206
+ class ChecksumError(InvalidNonce):
207
+ pass
208
+
209
+
210
+ class RequestTimeout(NetworkError):
211
+ pass
212
+
213
+
214
+ class BadResponse(OperationFailed):
215
+ pass
216
+
217
+
218
+ class NullResponse(BadResponse):
219
+ pass
220
+
221
+
222
+ class CancelPending(OperationFailed):
223
+ pass
224
+
225
+
226
+ class UnsubscribeError(BaseError):
227
+ pass
228
+
229
+
230
+ __all__ = [
231
+ 'error_hierarchy',
232
+ 'BaseError',
233
+ 'ExchangeError',
234
+ 'AuthenticationError',
235
+ 'PermissionDenied',
236
+ 'AccountNotEnabled',
237
+ 'AccountSuspended',
238
+ 'ArgumentsRequired',
239
+ 'BadRequest',
240
+ 'BadSymbol',
241
+ 'OperationRejected',
242
+ 'NoChange',
243
+ 'MarginModeAlreadySet',
244
+ 'MarketClosed',
245
+ 'ManualInteractionNeeded',
246
+ 'RestrictedLocation',
247
+ 'InsufficientFunds',
248
+ 'InvalidAddress',
249
+ 'AddressPending',
250
+ 'InvalidOrder',
251
+ 'OrderNotFound',
252
+ 'OrderNotCached',
253
+ 'OrderImmediatelyFillable',
254
+ 'OrderNotFillable',
255
+ 'DuplicateOrderId',
256
+ 'ContractUnavailable',
257
+ 'NotSupported',
258
+ 'InvalidProxySettings',
259
+ 'ExchangeClosedByUser',
260
+ 'OperationFailed',
261
+ 'NetworkError',
262
+ 'DDoSProtection',
263
+ 'RateLimitExceeded',
264
+ 'ExchangeNotAvailable',
265
+ 'OnMaintenance',
266
+ 'InvalidNonce',
267
+ 'ChecksumError',
268
+ 'RequestTimeout',
269
+ 'BadResponse',
270
+ 'NullResponse',
271
+ 'CancelPending',
272
+ 'UnsubscribeError'
273
+ ]