gate-io-api 0.0.23__tar.gz → 0.0.25__tar.gz

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.

Potentially problematic release.


This version of gate-io-api might be problematic. Click here for more details.

Files changed (289) hide show
  1. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/PKG-INFO +9 -3
  2. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/README.md +8 -2
  3. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/pyproject.toml +1 -1
  4. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/__init__.py +2 -3
  5. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/async_support/__init__.py +2 -3
  6. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/async_support/base/exchange.py +2 -2
  7. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/async_support/gate.py +12 -8
  8. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/base/exchange.py +109 -23
  9. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/gate.py +12 -8
  10. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/pro/__init__.py +2 -3
  11. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/pro/gate.py +22 -2
  12. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/.gitignore +0 -0
  13. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/__init__.py +0 -0
  14. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/abstract/gate.py +0 -0
  15. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/async_support/base/__init__.py +0 -0
  16. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/async_support/base/throttler.py +0 -0
  17. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/async_support/base/ws/__init__.py +0 -0
  18. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
  19. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/async_support/base/ws/cache.py +0 -0
  20. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/async_support/base/ws/client.py +0 -0
  21. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/async_support/base/ws/fast_client.py +0 -0
  22. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/async_support/base/ws/functions.py +0 -0
  23. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/async_support/base/ws/future.py +0 -0
  24. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/async_support/base/ws/order_book.py +0 -0
  25. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/async_support/base/ws/order_book_side.py +0 -0
  26. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/base/__init__.py +0 -0
  27. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/base/decimal_to_precision.py +0 -0
  28. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/base/errors.py +0 -0
  29. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/base/precise.py +0 -0
  30. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/base/types.py +0 -0
  31. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/README.md +0 -0
  32. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/__init__.py +0 -0
  33. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
  34. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ecdsa/_version.py +0 -0
  35. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ecdsa/curves.py +0 -0
  36. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ecdsa/der.py +0 -0
  37. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
  38. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
  39. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ecdsa/keys.py +0 -0
  40. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
  41. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
  42. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ecdsa/util.py +0 -0
  43. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/__init__.py +0 -0
  44. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
  45. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
  46. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
  47. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
  48. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
  49. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
  50. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
  51. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
  52. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
  53. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
  54. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  55. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
  56. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
  57. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
  58. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  59. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
  60. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
  61. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
  62. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
  63. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
  64. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
  65. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
  66. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
  67. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  68. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
  69. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
  70. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
  71. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  72. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
  73. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
  74. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
  75. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
  76. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
  77. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
  78. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
  79. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
  80. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
  81. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  82. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
  83. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
  84. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
  85. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
  86. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
  87. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
  88. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
  89. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
  90. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
  91. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
  92. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
  93. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
  94. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
  95. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
  96. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
  97. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
  98. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
  99. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  100. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
  101. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
  102. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
  103. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
  104. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
  105. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/keccak/__init__.py +0 -0
  106. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/keccak/keccak.py +0 -0
  107. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/__init__.py +0 -0
  108. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/__pyinstaller/__init__.py +0 -0
  109. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/__pyinstaller/hook-lark.py +0 -0
  110. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/ast_utils.py +0 -0
  111. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/common.py +0 -0
  112. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/exceptions.py +0 -0
  113. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/grammar.py +0 -0
  114. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/grammars/__init__.py +0 -0
  115. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/grammars/common.lark +0 -0
  116. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/grammars/lark.lark +0 -0
  117. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/grammars/python.lark +0 -0
  118. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/grammars/unicode.lark +0 -0
  119. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/indenter.py +0 -0
  120. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/lark.py +0 -0
  121. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/lexer.py +0 -0
  122. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/load_grammar.py +0 -0
  123. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/parse_tree_builder.py +0 -0
  124. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/parser_frontends.py +0 -0
  125. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/parsers/__init__.py +0 -0
  126. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/parsers/cyk.py +0 -0
  127. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/parsers/earley.py +0 -0
  128. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/parsers/earley_common.py +0 -0
  129. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/parsers/earley_forest.py +0 -0
  130. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/parsers/grammar_analysis.py +0 -0
  131. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/parsers/lalr_analysis.py +0 -0
  132. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/parsers/lalr_interactive_parser.py +0 -0
  133. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/parsers/lalr_parser.py +0 -0
  134. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/parsers/lalr_parser_state.py +0 -0
  135. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/parsers/xearley.py +0 -0
  136. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/py.typed +0 -0
  137. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/reconstruct.py +0 -0
  138. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/tools/__init__.py +0 -0
  139. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/tools/nearley.py +0 -0
  140. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/tools/serialize.py +0 -0
  141. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/tools/standalone.py +0 -0
  142. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/tree.py +0 -0
  143. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/tree_matcher.py +0 -0
  144. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/tree_templates.py +0 -0
  145. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/utils.py +0 -0
  146. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/lark/visitors.py +0 -0
  147. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/marshmallow/__init__.py +0 -0
  148. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/marshmallow/base.py +0 -0
  149. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/marshmallow/class_registry.py +0 -0
  150. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/marshmallow/decorators.py +0 -0
  151. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/marshmallow/error_store.py +0 -0
  152. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/marshmallow/exceptions.py +0 -0
  153. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/marshmallow/fields.py +0 -0
  154. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/marshmallow/orderedset.py +0 -0
  155. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/marshmallow/py.typed +0 -0
  156. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/marshmallow/schema.py +0 -0
  157. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/marshmallow/types.py +0 -0
  158. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/marshmallow/utils.py +0 -0
  159. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/marshmallow/validate.py +0 -0
  160. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/marshmallow/warnings.py +0 -0
  161. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/marshmallow_dataclass/__init__.py +0 -0
  162. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/marshmallow_dataclass/collection_field.py +0 -0
  163. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/marshmallow_dataclass/lazy_class_attribute.py +0 -0
  164. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/marshmallow_dataclass/mypy.py +0 -0
  165. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
  166. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/marshmallow_dataclass/typing.py +0 -0
  167. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/marshmallow_dataclass/union_field.py +0 -0
  168. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/marshmallow_oneofschema/__init__.py +0 -0
  169. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/marshmallow_oneofschema/one_of_schema.py +0 -0
  170. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
  171. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/msgpack/__init__.py +0 -0
  172. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/msgpack/_cmsgpack.pyx +0 -0
  173. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/msgpack/_packer.pyx +0 -0
  174. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/msgpack/_unpacker.pyx +0 -0
  175. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/msgpack/buff_converter.h +0 -0
  176. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
  177. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/msgpack/ext.py +0 -0
  178. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/msgpack/fallback.py +0 -0
  179. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/msgpack/pack.h +0 -0
  180. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/msgpack/pack_template.h +0 -0
  181. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/msgpack/sysdep.h +0 -0
  182. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/msgpack/unpack.h +0 -0
  183. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/msgpack/unpack_define.h +0 -0
  184. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/msgpack/unpack_template.h +0 -0
  185. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
  186. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
  187. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
  188. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
  189. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
  190. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/parsimonious/utils.py +0 -0
  191. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/__init__.py +0 -0
  192. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/abi/v0/__init__.py +0 -0
  193. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/abi/v0/model.py +0 -0
  194. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/abi/v0/parser.py +0 -0
  195. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/abi/v0/schemas.py +0 -0
  196. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/abi/v0/shape.py +0 -0
  197. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/abi/v1/__init__.py +0 -0
  198. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/abi/v1/core_structures.json +0 -0
  199. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/abi/v1/model.py +0 -0
  200. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/abi/v1/parser.py +0 -0
  201. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/abi/v1/parser_transformer.py +0 -0
  202. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/abi/v1/schemas.py +0 -0
  203. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/abi/v1/shape.py +0 -0
  204. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/abi/v2/__init__.py +0 -0
  205. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/abi/v2/model.py +0 -0
  206. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/abi/v2/parser.py +0 -0
  207. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/abi/v2/parser_transformer.py +0 -0
  208. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/abi/v2/schemas.py +0 -0
  209. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/abi/v2/shape.py +0 -0
  210. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/cairo/__init__.py +0 -0
  211. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/cairo/data_types.py +0 -0
  212. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/cairo/deprecated_parse/__init__.py +0 -0
  213. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/cairo/deprecated_parse/cairo_types.py +0 -0
  214. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser.py +0 -0
  215. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser_transformer.py +0 -0
  216. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/cairo/felt.py +0 -0
  217. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/cairo/type_parser.py +0 -0
  218. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/cairo/v1/__init__.py +0 -0
  219. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/cairo/v1/type_parser.py +0 -0
  220. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/cairo/v2/__init__.py +0 -0
  221. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/cairo/v2/type_parser.py +0 -0
  222. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/ccxt_utils.py +0 -0
  223. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/common.py +0 -0
  224. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/constants.py +0 -0
  225. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/hash/__init__.py +0 -0
  226. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/hash/address.py +0 -0
  227. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/hash/compiled_class_hash_objects.py +0 -0
  228. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/hash/selector.py +0 -0
  229. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/hash/storage.py +0 -0
  230. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/hash/utils.py +0 -0
  231. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/models/__init__.py +0 -0
  232. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/models/typed_data.py +0 -0
  233. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/serialization/__init__.py +0 -0
  234. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/serialization/_calldata_reader.py +0 -0
  235. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/serialization/_context.py +0 -0
  236. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/serialization/data_serializers/__init__.py +0 -0
  237. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/serialization/data_serializers/_common.py +0 -0
  238. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/serialization/data_serializers/array_serializer.py +0 -0
  239. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/serialization/data_serializers/bool_serializer.py +0 -0
  240. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/serialization/data_serializers/byte_array_serializer.py +0 -0
  241. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/serialization/data_serializers/cairo_data_serializer.py +0 -0
  242. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/serialization/data_serializers/enum_serializer.py +0 -0
  243. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/serialization/data_serializers/felt_serializer.py +0 -0
  244. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/serialization/data_serializers/named_tuple_serializer.py +0 -0
  245. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/serialization/data_serializers/option_serializer.py +0 -0
  246. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/serialization/data_serializers/output_serializer.py +0 -0
  247. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/serialization/data_serializers/payload_serializer.py +0 -0
  248. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/serialization/data_serializers/struct_serializer.py +0 -0
  249. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/serialization/data_serializers/tuple_serializer.py +0 -0
  250. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/serialization/data_serializers/uint256_serializer.py +0 -0
  251. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/serialization/data_serializers/uint_serializer.py +0 -0
  252. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/serialization/data_serializers/unit_serializer.py +0 -0
  253. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/serialization/errors.py +0 -0
  254. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/serialization/factory.py +0 -0
  255. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/serialization/function_serialization_adapter.py +0 -0
  256. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/serialization/tuple_dataclass.py +0 -0
  257. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/utils/__init__.py +0 -0
  258. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/utils/constructor_args_translator.py +0 -0
  259. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/utils/iterable.py +0 -0
  260. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/utils/schema.py +0 -0
  261. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starknet/utils/typed_data.py +0 -0
  262. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starkware/__init__.py +0 -0
  263. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starkware/crypto/__init__.py +0 -0
  264. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starkware/crypto/fast_pedersen_hash.py +0 -0
  265. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starkware/crypto/math_utils.py +0 -0
  266. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starkware/crypto/signature.py +0 -0
  267. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/starkware/crypto/utils.py +0 -0
  268. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/sympy/__init__.py +0 -0
  269. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/sympy/core/__init__.py +0 -0
  270. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/sympy/core/intfunc.py +0 -0
  271. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/sympy/external/__init__.py +0 -0
  272. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/sympy/external/gmpy.py +0 -0
  273. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/sympy/external/importtools.py +0 -0
  274. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/sympy/external/ntheory.py +0 -0
  275. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/sympy/external/pythonmpq.py +0 -0
  276. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/toolz/__init__.py +0 -0
  277. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/toolz/_signatures.py +0 -0
  278. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/toolz/_version.py +0 -0
  279. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/toolz/compatibility.py +0 -0
  280. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
  281. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
  282. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
  283. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
  284. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/toolz/functoolz.py +0 -0
  285. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
  286. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/toolz/recipes.py +0 -0
  287. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/toolz/utils.py +0 -0
  288. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/typing_inspect/__init__.py +0 -0
  289. {gate_io_api-0.0.23 → gate_io_api-0.0.25}/src/gate/ccxt/static_dependencies/typing_inspect/typing_inspect.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gate-io-api
3
- Version: 0.0.23
3
+ Version: 0.0.25
4
4
  Summary: gate crypto exchange api client
5
5
  Project-URL: Homepage, https://github.com/ccxt/ccxt
6
6
  Project-URL: Issues, https://github.com/ccxt/ccxt
@@ -20,8 +20,10 @@ Description-Content-Type: text/markdown
20
20
  # gate-python
21
21
  Python SDK (sync and async) for Gate cryptocurrency exchange with Rest and WS capabilities.
22
22
 
23
- You can check the SDK docs here: [SDK](https://docs.ccxt.com/#/exchanges/gate)
24
- You can check Gate's docs here: [Docs](https://www.google.com/search?q=google+gate+cryptocurrency+exchange+api+docs)
23
+ - You can check the SDK docs here: [SDK](https://docs.ccxt.com/#/exchanges/gate)
24
+ - You can check Gate's docs here: [Docs](https://www.google.com/search?q=google+gate+cryptocurrency+exchange+api+docs)
25
+ - Github repo: https://github.com/ccxt/gate-python
26
+ - Pypi package: https://pypi.org/project/gate-io-api
25
27
 
26
28
 
27
29
  ## Installation
@@ -44,6 +46,8 @@ def main():
44
46
  #
45
47
  # balance = instance.fetch_balance()
46
48
  # order = instance.create_order("BTC/USDC", "limit", "buy", 1, 100000)
49
+
50
+ main()
47
51
  ```
48
52
 
49
53
  ### Async
@@ -92,6 +96,8 @@ async def main():
92
96
 
93
97
  # once you are done with the exchange
94
98
  await instance.close()
99
+
100
+ asyncio.run(main())
95
101
  ```
96
102
 
97
103
 
@@ -1,8 +1,10 @@
1
1
  # gate-python
2
2
  Python SDK (sync and async) for Gate cryptocurrency exchange with Rest and WS capabilities.
3
3
 
4
- You can check the SDK docs here: [SDK](https://docs.ccxt.com/#/exchanges/gate)
5
- You can check Gate's docs here: [Docs](https://www.google.com/search?q=google+gate+cryptocurrency+exchange+api+docs)
4
+ - You can check the SDK docs here: [SDK](https://docs.ccxt.com/#/exchanges/gate)
5
+ - You can check Gate's docs here: [Docs](https://www.google.com/search?q=google+gate+cryptocurrency+exchange+api+docs)
6
+ - Github repo: https://github.com/ccxt/gate-python
7
+ - Pypi package: https://pypi.org/project/gate-io-api
6
8
 
7
9
 
8
10
  ## Installation
@@ -25,6 +27,8 @@ def main():
25
27
  #
26
28
  # balance = instance.fetch_balance()
27
29
  # order = instance.create_order("BTC/USDC", "limit", "buy", 1, 100000)
30
+
31
+ main()
28
32
  ```
29
33
 
30
34
  ### Async
@@ -73,6 +77,8 @@ async def main():
73
77
 
74
78
  # once you are done with the exchange
75
79
  await instance.close()
80
+
81
+ asyncio.run(main())
76
82
  ```
77
83
 
78
84
 
@@ -11,7 +11,7 @@ only-include = ["src/gate"]
11
11
 
12
12
  [project]
13
13
  name = "gate-io-api"
14
- version = "0.0.23"
14
+ version = "0.0.25"
15
15
  authors = [
16
16
  { name="CCXT", email="info@ccxt.trade" },
17
17
  ]
@@ -26,7 +26,7 @@ sys.modules['ccxt'] = ccxt_module
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
29
- __version__ = '4.4.72'
29
+ __version__ = '4.4.78'
30
30
 
31
31
  # ----------------------------------------------------------------------------
32
32
 
@@ -87,10 +87,9 @@ from ccxt.base.errors import CancelPending # noqa: F4
87
87
  from ccxt.base.errors import UnsubscribeError # noqa: F401
88
88
  from ccxt.base.errors import error_hierarchy # noqa: F401
89
89
 
90
- from ccxt.bitfinex1 import bitfinex1 # noqa: F401
91
90
  from ccxt.gate import gate # noqa: F401
92
91
 
93
- exchanges = [ 'bitfinex1', 'gate',]
92
+ exchanges = [ 'gate',]
94
93
 
95
94
  base = [
96
95
  'Exchange',
@@ -8,7 +8,7 @@ sys.modules['ccxt'] = ccxt_module
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
11
- __version__ = '4.4.72'
11
+ __version__ = '4.4.78'
12
12
 
13
13
  # -----------------------------------------------------------------------------
14
14
 
@@ -67,10 +67,9 @@ from ccxt.base.errors import UnsubscribeError # noqa: F4
67
67
  from ccxt.base.errors import error_hierarchy # noqa: F401
68
68
 
69
69
 
70
- from ccxt.async_support.bitfinex1 import bitfinex1 # noqa: F401
71
70
  from ccxt.async_support.gate import gate # noqa: F401
72
71
 
73
- exchanges = [ 'bitfinex1', 'gate',]
72
+ exchanges = [ 'gate',]
74
73
 
75
74
  base = [
76
75
  'Exchange',
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.4.72'
5
+ __version__ = '4.4.78'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -154,7 +154,7 @@ class Exchange(BaseExchange):
154
154
  proxyUrl = self.check_proxy_url_settings(url, method, headers, body)
155
155
  if proxyUrl is not None:
156
156
  request_headers.update({'Origin': self.origin})
157
- url = proxyUrl + url
157
+ url = proxyUrl + self.url_encoder_for_proxy_url(url)
158
158
  # proxy agents
159
159
  final_proxy = None # set default
160
160
  proxy_session = None
@@ -1485,6 +1485,10 @@ class gate(Exchange, ImplicitAPI):
1485
1485
  takerPercent = self.safe_string(market, 'taker_fee_rate')
1486
1486
  makerPercent = self.safe_string(market, 'maker_fee_rate', takerPercent)
1487
1487
  isLinear = quote == settle
1488
+ contractSize = self.safe_string(market, 'quanto_multiplier')
1489
+ # exception only for one market: https://api.gateio.ws/api/v4/futures/btc/contracts
1490
+ if contractSize == '0':
1491
+ contractSize = '1' # 1 USD in WEB: https://i.imgur.com/MBBUI04.png
1488
1492
  return {
1489
1493
  'id': id,
1490
1494
  'symbol': symbol,
@@ -1506,7 +1510,7 @@ class gate(Exchange, ImplicitAPI):
1506
1510
  'inverse': not isLinear,
1507
1511
  'taker': self.parse_number(Precise.string_div(takerPercent, '100')), # Fee is in %, so divide by 100
1508
1512
  'maker': self.parse_number(Precise.string_div(makerPercent, '100')),
1509
- 'contractSize': self.safe_number(market, 'quanto_multiplier'),
1513
+ 'contractSize': self.parse_number(contractSize),
1510
1514
  'expiry': expiry,
1511
1515
  'expiryDatetime': self.iso8601(expiry),
1512
1516
  'strike': None,
@@ -1819,9 +1823,9 @@ class gate(Exchange, ImplicitAPI):
1819
1823
  partFirst = self.safe_string(parts, 0)
1820
1824
  # if there's an underscore then the second part is always the chain name(except the _OLD suffix)
1821
1825
  currencyName = currencyId if currencyId.endswith('_OLD') else partFirst
1822
- withdrawEnabled = not self.safe_bool(entry, 'withdraw_disabled')
1823
- depositEnabled = not self.safe_bool(entry, 'deposit_disabled')
1824
- tradeDisabled = not self.safe_bool(entry, 'trade_disabled')
1826
+ withdrawDisabled = self.safe_bool(entry, 'withdraw_disabled', False)
1827
+ depositDisabled = self.safe_bool(entry, 'deposit_disabled', False)
1828
+ tradeDisabled = self.safe_bool(entry, 'trade_disabled', False)
1825
1829
  precision = self.parse_number('0.0001') # temporary safe default, because no value provided from API
1826
1830
  code = self.safe_currency_code(currencyName)
1827
1831
  # check leveraged tokens(e.g. BTC3S, ETH5L)
@@ -1849,8 +1853,8 @@ class gate(Exchange, ImplicitAPI):
1849
1853
  },
1850
1854
  },
1851
1855
  'active': not tradeDisabled,
1852
- 'deposit': depositEnabled,
1853
- 'withdraw': withdrawEnabled,
1856
+ 'deposit': not depositDisabled,
1857
+ 'withdraw': not withdrawDisabled,
1854
1858
  'fee': None,
1855
1859
  'precision': precision,
1856
1860
  }
@@ -5720,7 +5724,7 @@ class gate(Exchange, ImplicitAPI):
5720
5724
  #
5721
5725
  return self.parse_position(response, market)
5722
5726
 
5723
- async def fetch_positions(self, symbols: Strings = None, params={}):
5727
+ async def fetch_positions(self, symbols: Strings = None, params={}) -> List[Position]:
5724
5728
  """
5725
5729
  fetch all open positions
5726
5730
 
@@ -6366,7 +6370,7 @@ class gate(Exchange, ImplicitAPI):
6366
6370
  queryString = self.urlencode(query)
6367
6371
  # https://github.com/ccxt/ccxt/issues/25570
6368
6372
  if queryString.find('currencies=') >= 0 and queryString.find('%2C') >= 0:
6369
- queryString = queryString.replace('%2', ',')
6373
+ queryString = queryString.replace('%2C', ',')
6370
6374
  url += '?' + queryString
6371
6375
  if method == 'PATCH':
6372
6376
  body = self.json(query)
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.4.72'
7
+ __version__ = '4.4.78'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -67,6 +67,10 @@ from ccxt.static_dependencies.starknet.hash.address import compute_address
67
67
  from ccxt.static_dependencies.starknet.hash.selector import get_selector_from_name
68
68
  from ccxt.static_dependencies.starknet.hash.utils import message_signature, private_to_stark_key
69
69
  from ccxt.static_dependencies.starknet.utils.typed_data import TypedData as TypedDataDataclass
70
+ try:
71
+ import apexpro.zklink_sdk as zklink_sdk
72
+ except ImportError:
73
+ zklink_sdk = None
70
74
 
71
75
  # -----------------------------------------------------------------------------
72
76
 
@@ -509,7 +513,7 @@ class Exchange(object):
509
513
  proxyUrl = self.check_proxy_url_settings(url, method, headers, body)
510
514
  if proxyUrl is not None:
511
515
  request_headers.update({'Origin': self.origin})
512
- url = proxyUrl + url
516
+ url = proxyUrl + self.url_encoder_for_proxy_url(url)
513
517
  # proxy agents
514
518
  proxies = None # set default
515
519
  httpProxy, httpsProxy, socksProxy = self.check_proxy_settings(url, method, headers, body)
@@ -1755,6 +1759,69 @@ class Exchange(object):
1755
1759
  def binary_length(self, binary):
1756
1760
  return len(binary)
1757
1761
 
1762
+ def get_zk_contract_signature_obj(self, seeds: str, params={}):
1763
+ if zklink_sdk is None:
1764
+ raise Exception('zklink_sdk is not installed, please do pip3 install apexomni-arm or apexomni-x86-mac or apexomni-x86-windows-linux')
1765
+
1766
+ slotId = self.safe_string(params, 'slotId')
1767
+ nonceInt = int(self.remove0x_prefix(self.hash(self.encode(slotId), 'sha256', 'hex')), 16)
1768
+
1769
+ maxUint64 = 18446744073709551615
1770
+ maxUint32 = 4294967295
1771
+
1772
+ slotId = (nonceInt % maxUint64) / maxUint32
1773
+ nonce = nonceInt % maxUint32
1774
+ accountId = int(self.safe_string(params, 'accountId'), 10) % maxUint32
1775
+
1776
+ priceStr = (Decimal(self.safe_string(params, 'price')) * Decimal(10) ** Decimal('18')).quantize(Decimal(0), rounding='ROUND_DOWN')
1777
+ sizeStr = (Decimal(self.safe_string(params, 'size')) * Decimal(10) ** Decimal('18')).quantize(Decimal(0), rounding='ROUND_DOWN')
1778
+
1779
+ takerFeeRateStr = (Decimal(self.safe_string(params, 'takerFeeRate')) * Decimal(10000)).quantize(Decimal(0), rounding='ROUND_UP')
1780
+ makerFeeRateStr = (Decimal(self.safe_string(params, 'makerFeeRate')) * Decimal(10000)).quantize(Decimal(0), rounding='ROUND_UP')
1781
+
1782
+ builder = zklink_sdk.ContractBuilder(
1783
+ int(accountId), int(0), int(slotId), int(nonce), int(self.safe_number(params, 'pairId')),
1784
+ sizeStr.__str__(), priceStr.__str__(), self.safe_string(params, 'direction') == "BUY",
1785
+ int(takerFeeRateStr), int(makerFeeRateStr), False)
1786
+
1787
+
1788
+ tx = zklink_sdk.Contract(builder)
1789
+ seedsByte = bytes.fromhex(seeds.removeprefix('0x'))
1790
+ signerSeed = zklink_sdk.ZkLinkSigner().new_from_seed(seedsByte)
1791
+ auth_data = signerSeed.sign_musig(tx.get_bytes())
1792
+ signature = auth_data.signature
1793
+ return signature
1794
+
1795
+ def get_zk_transfer_signature_obj(self, seeds: str, params={}):
1796
+ if zklink_sdk is None:
1797
+ raise Exception('zklink_sdk is not installed, please do pip3 install apexomni-arm or apexomni-x86-mac or apexomni-x86-windows-linux')
1798
+
1799
+ nonce = self.safe_string(params, 'nonce', '0')
1800
+ if self.safe_bool(params, 'isContract'):
1801
+ formattedUint32 = '4294967295'
1802
+ formattedNonce = int(self.remove0x_prefix(self.hash(self.encode(nonce), 'sha256', 'hex')), 16)
1803
+ nonce = Precise.string_mod(str(formattedNonce), formattedUint32)
1804
+
1805
+ tx_builder = zklink_sdk.TransferBuilder(
1806
+ int(self.safe_number(params, 'zkAccountId', 0)),
1807
+ self.safe_string(params, 'receiverAddress'),
1808
+ int(self.safe_number(params, 'subAccountId', 0)),
1809
+ int(self.safe_number(params, 'receiverSubAccountId', 0)),
1810
+ int(self.safe_number(params, 'tokenId', 0)),
1811
+ self.safe_string(params, 'amount', '0'),
1812
+ self.safe_string(params, 'fee', '0'),
1813
+ self.parse_to_int(nonce),
1814
+ int(self.safe_number(params, 'timestampSeconds', 0))
1815
+ )
1816
+
1817
+ tx = zklink_sdk.Transfer(tx_builder)
1818
+ seedsByte = bytes.fromhex(seeds.removeprefix('0x'))
1819
+ signerSeed = zklink_sdk.ZkLinkSigner().new_from_seed(seedsByte)
1820
+ auth_data = signerSeed.sign_musig(tx.get_bytes())
1821
+ signature = auth_data.signature
1822
+ return signature
1823
+
1824
+
1758
1825
  # ########################################################################
1759
1826
  # ########################################################################
1760
1827
  # ########################################################################
@@ -2254,6 +2321,12 @@ class Exchange(object):
2254
2321
  raise InvalidProxySettings(self.id + ' you have multiple conflicting proxy settings(' + joinedProxyNames + '), please use only one from : proxyUrl, proxy_url, proxyUrlCallback, proxy_url_callback')
2255
2322
  return proxyUrl
2256
2323
 
2324
+ def url_encoder_for_proxy_url(self, targetUrl: str):
2325
+ # to be overriden
2326
+ includesQuery = targetUrl.find('?') >= 0
2327
+ finalUrl = self.encode_uri_component(targetUrl) if includesQuery else targetUrl
2328
+ return finalUrl
2329
+
2257
2330
  def check_proxy_settings(self, url: Str = None, method: Str = None, headers=None, body=None):
2258
2331
  usedProxies = []
2259
2332
  httpProxy = None
@@ -2913,9 +2986,6 @@ class Exchange(object):
2913
2986
 
2914
2987
  def safe_currency_structure(self, currency: object):
2915
2988
  # derive data from networks: deposit, withdraw, active, fee, limits, precision
2916
- currencyDeposit = self.safe_bool(currency, 'deposit')
2917
- currencyWithdraw = self.safe_bool(currency, 'withdraw')
2918
- currencyActive = self.safe_bool(currency, 'active')
2919
2989
  networks = self.safe_dict(currency, 'networks', {})
2920
2990
  keys = list(networks.keys())
2921
2991
  length = len(keys)
@@ -2924,20 +2994,24 @@ class Exchange(object):
2924
2994
  key = keys[i]
2925
2995
  network = networks[key]
2926
2996
  deposit = self.safe_bool(network, 'deposit')
2997
+ currencyDeposit = self.safe_bool(currency, 'deposit')
2927
2998
  if currencyDeposit is None or deposit:
2928
2999
  currency['deposit'] = deposit
2929
3000
  withdraw = self.safe_bool(network, 'withdraw')
3001
+ currencyWithdraw = self.safe_bool(currency, 'withdraw')
2930
3002
  if currencyWithdraw is None or withdraw:
2931
3003
  currency['withdraw'] = withdraw
2932
- active = self.safe_bool(network, 'active')
2933
- if currencyActive is None or active:
2934
- currency['active'] = active
2935
3004
  # set network 'active' to False if D or W is disabled
2936
- if self.safe_bool(network, 'active') is None:
3005
+ active = self.safe_bool(network, 'active')
3006
+ if active is None:
2937
3007
  if deposit and withdraw:
2938
3008
  currency['networks'][key]['active'] = True
2939
3009
  elif deposit is not None and withdraw is not None:
2940
3010
  currency['networks'][key]['active'] = False
3011
+ active = self.safe_bool(network, 'active')
3012
+ currencyActive = self.safe_bool(currency, 'active')
3013
+ if currencyActive is None or active:
3014
+ currency['active'] = active
2941
3015
  # find lowest fee(which is more desired)
2942
3016
  fee = self.safe_string(network, 'fee')
2943
3017
  feeMain = self.safe_string(currency, 'fee')
@@ -2946,7 +3020,7 @@ class Exchange(object):
2946
3020
  # find lowest precision(which is more desired)
2947
3021
  precision = self.safe_string(network, 'precision')
2948
3022
  precisionMain = self.safe_string(currency, 'precision')
2949
- if precisionMain is None or Precise.string_lt(precision, precisionMain):
3023
+ if precisionMain is None or Precise.string_gt(precision, precisionMain):
2950
3024
  currency['precision'] = self.parse_number(precision)
2951
3025
  # limits
2952
3026
  limits = self.safe_dict(network, 'limits')
@@ -6471,24 +6545,36 @@ class Exchange(object):
6471
6545
  return self.sort_by(result, 'id', True)
6472
6546
  return result
6473
6547
 
6474
- def remove_repeated_elements_from_array(self, input):
6548
+ def remove_repeated_elements_from_array(self, input, fallbackToTimestamp: bool = True):
6549
+ uniqueDic = {}
6550
+ uniqueResult = []
6551
+ for i in range(0, len(input)):
6552
+ entry = input[i]
6553
+ uniqValue = self.safe_string_n(entry, ['id', 'timestamp', 0]) if fallbackToTimestamp else self.safe_string(entry, 'id')
6554
+ if uniqValue is not None and not (uniqValue in uniqueDic):
6555
+ uniqueDic[uniqValue] = 1
6556
+ uniqueResult.append(entry)
6557
+ valuesLength = len(uniqueResult)
6558
+ if valuesLength > 0:
6559
+ return uniqueResult
6560
+ return input
6561
+
6562
+ def remove_repeated_trades_from_array(self, input):
6475
6563
  uniqueResult = {}
6476
6564
  for i in range(0, len(input)):
6477
6565
  entry = input[i]
6478
6566
  id = self.safe_string(entry, 'id')
6479
- if id is not None:
6480
- if self.safe_string(uniqueResult, id) is None:
6481
- uniqueResult[id] = entry
6482
- else:
6483
- timestamp = self.safe_integer_2(entry, 'timestamp', 0)
6484
- if timestamp is not None:
6485
- if self.safe_string(uniqueResult, timestamp) is None:
6486
- uniqueResult[timestamp] = entry
6567
+ if id is None:
6568
+ price = self.safe_string(entry, 'price')
6569
+ amount = self.safe_string(entry, 'amount')
6570
+ timestamp = self.safe_string(entry, 'timestamp')
6571
+ side = self.safe_string(entry, 'side')
6572
+ # unique trade identifier
6573
+ id = 't_' + str(timestamp) + '_' + side + '_' + price + '_' + amount
6574
+ if id is not None and not (id in uniqueResult):
6575
+ uniqueResult[id] = entry
6487
6576
  values = list(uniqueResult.values())
6488
- valuesLength = len(values)
6489
- if valuesLength > 0:
6490
- return values
6491
- return input
6577
+ return values
6492
6578
 
6493
6579
  def handle_until_option(self, key: str, request, params, multiplier=1):
6494
6580
  until = self.safe_integer_2(params, 'until', 'till')
@@ -1484,6 +1484,10 @@ class gate(Exchange, ImplicitAPI):
1484
1484
  takerPercent = self.safe_string(market, 'taker_fee_rate')
1485
1485
  makerPercent = self.safe_string(market, 'maker_fee_rate', takerPercent)
1486
1486
  isLinear = quote == settle
1487
+ contractSize = self.safe_string(market, 'quanto_multiplier')
1488
+ # exception only for one market: https://api.gateio.ws/api/v4/futures/btc/contracts
1489
+ if contractSize == '0':
1490
+ contractSize = '1' # 1 USD in WEB: https://i.imgur.com/MBBUI04.png
1487
1491
  return {
1488
1492
  'id': id,
1489
1493
  'symbol': symbol,
@@ -1505,7 +1509,7 @@ class gate(Exchange, ImplicitAPI):
1505
1509
  'inverse': not isLinear,
1506
1510
  'taker': self.parse_number(Precise.string_div(takerPercent, '100')), # Fee is in %, so divide by 100
1507
1511
  'maker': self.parse_number(Precise.string_div(makerPercent, '100')),
1508
- 'contractSize': self.safe_number(market, 'quanto_multiplier'),
1512
+ 'contractSize': self.parse_number(contractSize),
1509
1513
  'expiry': expiry,
1510
1514
  'expiryDatetime': self.iso8601(expiry),
1511
1515
  'strike': None,
@@ -1818,9 +1822,9 @@ class gate(Exchange, ImplicitAPI):
1818
1822
  partFirst = self.safe_string(parts, 0)
1819
1823
  # if there's an underscore then the second part is always the chain name(except the _OLD suffix)
1820
1824
  currencyName = currencyId if currencyId.endswith('_OLD') else partFirst
1821
- withdrawEnabled = not self.safe_bool(entry, 'withdraw_disabled')
1822
- depositEnabled = not self.safe_bool(entry, 'deposit_disabled')
1823
- tradeDisabled = not self.safe_bool(entry, 'trade_disabled')
1825
+ withdrawDisabled = self.safe_bool(entry, 'withdraw_disabled', False)
1826
+ depositDisabled = self.safe_bool(entry, 'deposit_disabled', False)
1827
+ tradeDisabled = self.safe_bool(entry, 'trade_disabled', False)
1824
1828
  precision = self.parse_number('0.0001') # temporary safe default, because no value provided from API
1825
1829
  code = self.safe_currency_code(currencyName)
1826
1830
  # check leveraged tokens(e.g. BTC3S, ETH5L)
@@ -1848,8 +1852,8 @@ class gate(Exchange, ImplicitAPI):
1848
1852
  },
1849
1853
  },
1850
1854
  'active': not tradeDisabled,
1851
- 'deposit': depositEnabled,
1852
- 'withdraw': withdrawEnabled,
1855
+ 'deposit': not depositDisabled,
1856
+ 'withdraw': not withdrawDisabled,
1853
1857
  'fee': None,
1854
1858
  'precision': precision,
1855
1859
  }
@@ -5719,7 +5723,7 @@ class gate(Exchange, ImplicitAPI):
5719
5723
  #
5720
5724
  return self.parse_position(response, market)
5721
5725
 
5722
- def fetch_positions(self, symbols: Strings = None, params={}):
5726
+ def fetch_positions(self, symbols: Strings = None, params={}) -> List[Position]:
5723
5727
  """
5724
5728
  fetch all open positions
5725
5729
 
@@ -6365,7 +6369,7 @@ class gate(Exchange, ImplicitAPI):
6365
6369
  queryString = self.urlencode(query)
6366
6370
  # https://github.com/ccxt/ccxt/issues/25570
6367
6371
  if queryString.find('currencies=') >= 0 and queryString.find('%2C') >= 0:
6368
- queryString = queryString.replace('%2', ',')
6372
+ queryString = queryString.replace('%2C', ',')
6369
6373
  url += '?' + queryString
6370
6374
  if method == 'PATCH':
6371
6375
  body = self.json(query)
@@ -8,7 +8,7 @@ sys.modules['ccxt'] = ccxt_module
8
8
 
9
9
  # ----------------------------------------------------------------------------
10
10
 
11
- __version__ = '4.4.72'
11
+ __version__ = '4.4.78'
12
12
 
13
13
  # ----------------------------------------------------------------------------
14
14
 
@@ -16,7 +16,6 @@ from ccxt.async_support.base.exchange import Exchange # noqa: F401
16
16
 
17
17
  # CCXT Pro exchanges (now this is mainly used for importing exchanges in WS tests)
18
18
 
19
- from ccxt.pro.bitfinex1 import bitfinex1 # noqa: F401
20
19
  from ccxt.pro.gate import gate # noqa: F401
21
20
 
22
- exchanges = [ 'bitfinex1', 'gate',]
21
+ exchanges = [ 'gate',]
@@ -1178,8 +1178,28 @@ class gate(gateAsync):
1178
1178
  for i in range(0, len(data)):
1179
1179
  rawPosition = data[i]
1180
1180
  position = self.parse_position(rawPosition)
1181
- newPositions.append(position)
1182
- cache.append(position)
1181
+ symbol = self.safe_string(position, 'symbol')
1182
+ side = self.safe_string(position, 'side')
1183
+ # Control when position is closed no side is returned
1184
+ if side is None:
1185
+ prevLongPosition = self.safe_dict(cache, symbol + 'long')
1186
+ if prevLongPosition is not None:
1187
+ position['side'] = prevLongPosition['side']
1188
+ newPositions.append(position)
1189
+ cache.append(position)
1190
+ prevShortPosition = self.safe_dict(cache, symbol + 'short')
1191
+ if prevShortPosition is not None:
1192
+ position['side'] = prevShortPosition['side']
1193
+ newPositions.append(position)
1194
+ cache.append(position)
1195
+ # if no prev position is found, default to long
1196
+ if prevLongPosition is None and prevShortPosition is None:
1197
+ position['side'] = 'long'
1198
+ newPositions.append(position)
1199
+ cache.append(position)
1200
+ else:
1201
+ newPositions.append(position)
1202
+ cache.append(position)
1183
1203
  messageHashes = self.find_message_hashes(client, type + ':positions::')
1184
1204
  for i in range(0, len(messageHashes)):
1185
1205
  messageHash = messageHashes[i]
File without changes