polyester-sdk 0.1.0a55__tar.gz → 0.2.0__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.
Files changed (371) hide show
  1. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/.env.example +2 -2
  2. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/CHANGELOG.md +152 -1
  3. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/PKG-INFO +177 -11
  4. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/README.md +175 -9
  5. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/pyproject.toml +2 -2
  6. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/__init__.py +2 -0
  7. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/_version.py +1 -1
  8. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/_wire.py +5 -4
  9. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/catalogs/__init__.py +54 -0
  10. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/lifecycle.py +2 -0
  11. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/market_data.py +85 -8
  12. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/market_overview.py +14 -0
  13. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/orders.py +56 -1
  14. polyester_sdk-0.2.0/src/polyester/codecs/decode/private_orders.py +72 -0
  15. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/triggers.py +28 -4
  16. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/orders.py +25 -28
  17. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/proto_helpers.py +9 -0
  18. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/realtime_decode.py +2 -8
  19. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/scalars.py +23 -2
  20. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/triggers.py +80 -17
  21. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/wire_decode.py +0 -13
  22. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/environment.py +4 -4
  23. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/errors.py +65 -8
  24. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/api_keys_pb2.py +32 -31
  25. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/api_keys_pb2.pyi +1 -0
  26. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/auth_pb2.py +4 -4
  27. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/auth_pb2.pyi +4 -0
  28. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/policies_pb2.py +4 -4
  29. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/policies_pb2.pyi +6 -0
  30. polyester_sdk-0.2.0/src/polyester/gen/auth/v1/social_verification_pb2.py +82 -0
  31. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/social_verification_pb2.pyi +5 -2
  32. polyester_sdk-0.2.0/src/polyester/gen/auth/v1/subaccounts_pb2.py +286 -0
  33. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/subaccounts_pb2.pyi +7 -0
  34. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/lifecycle/v1/lifecycle_read_pb2.py +28 -28
  35. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/lifecycle/v1/lifecycle_read_pb2.pyi +12 -6
  36. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/lifecycle/v1/types_pb2.py +10 -10
  37. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/lifecycle/v1/types_pb2.pyi +4 -0
  38. polyester_sdk-0.2.0/src/polyester/gen/chain/withdraw/v1/auto_withdraw_connect.py +326 -0
  39. polyester_sdk-0.2.0/src/polyester/gen/chain/withdraw/v1/auto_withdraw_pb2.py +113 -0
  40. polyester_sdk-0.2.0/src/polyester/gen/chain/withdraw/v1/auto_withdraw_pb2.pyi +250 -0
  41. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/withdraw/v1/withdraw_pb2.py +8 -8
  42. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/withdraw/v1/withdraw_pb2.pyi +4 -0
  43. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/zipper/v1/reason_pb2.py +2 -2
  44. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/zipper/v1/reason_pb2.pyi +4 -0
  45. polyester_sdk-0.2.0/src/polyester/gen/checkpoints/v1/checkpoints_connect.py +135 -0
  46. polyester_sdk-0.2.0/src/polyester/gen/checkpoints/v1/checkpoints_pb2.py +119 -0
  47. polyester_sdk-0.2.0/src/polyester/gen/checkpoints/v1/checkpoints_pb2.pyi +352 -0
  48. polyester_sdk-0.2.0/src/polyester/gen/claims/v1/claims_pb2.py +71 -0
  49. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/claims/v1/claims_pb2.pyi +25 -6
  50. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/ledger/read/v1/ledger_read_pb2.py +24 -22
  51. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/ledger/read/v1/ledger_read_pb2.pyi +10 -2
  52. polyester_sdk-0.2.0/src/polyester/gen/marketdata/v1/marketdata_pb2.py +122 -0
  53. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/marketdata/v1/marketdata_pb2.pyi +60 -12
  54. polyester_sdk-0.2.0/src/polyester/gen/orders/v1/orders_pb2.py +342 -0
  55. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/orders/v1/orders_pb2.pyi +290 -16
  56. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/orders/v1/orders_read_pb2.py +38 -36
  57. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/orders/v1/orders_read_pb2.pyi +14 -4
  58. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/polyester/api/options_pb2.py +2 -2
  59. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/polyester/api/options_pb2.pyi +2 -0
  60. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/polyester/api/validation/v1/predefined_string_rules_pb2.py +3 -1
  61. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/polyester/api/validation/v1/predefined_string_rules_pb2.pyi +2 -0
  62. polyester_sdk-0.2.0/src/polyester/gen/privatews/v1/private_ws_pb2.py +118 -0
  63. polyester_sdk-0.2.0/src/polyester/gen/privatews/v1/private_ws_pb2.pyi +407 -0
  64. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/ratelimit/v1/ratelimit_connect.py +8 -4
  65. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/ratelimit/v1/ratelimit_pb2.py +3 -3
  66. polyester_sdk-0.2.0/src/polyester/gen/rewards/v1/rewards_connect.py +196 -0
  67. polyester_sdk-0.2.0/src/polyester/gen/rewards/v1/rewards_pb2.py +72 -0
  68. polyester_sdk-0.2.0/src/polyester/gen/rewards/v1/rewards_pb2.pyi +101 -0
  69. polyester_sdk-0.2.0/src/polyester/gen/swap/quickswap/v1/__init__.py +0 -0
  70. polyester_sdk-0.2.0/src/polyester/gen/swap/quickswap/v1/quickswap_broker_connect.py +1366 -0
  71. polyester_sdk-0.2.0/src/polyester/gen/swap/quickswap/v1/quickswap_broker_pb2.py +294 -0
  72. polyester_sdk-0.2.0/src/polyester/gen/swap/quickswap/v1/quickswap_broker_pb2.pyi +569 -0
  73. polyester_sdk-0.2.0/src/polyester/gen/swap/quickswap/v1/quickswap_connect.py +261 -0
  74. polyester_sdk-0.2.0/src/polyester/gen/swap/quickswap/v1/quickswap_pb2.py +173 -0
  75. polyester_sdk-0.2.0/src/polyester/gen/swap/quickswap/v1/quickswap_pb2.pyi +593 -0
  76. polyester_sdk-0.2.0/src/polyester/gen/swap/v1/__init__.py +0 -0
  77. polyester_sdk-0.2.0/src/polyester/gen/swap/v1/swap_connect.py +261 -0
  78. polyester_sdk-0.2.0/src/polyester/gen/swap/v1/swap_pb2.py +110 -0
  79. polyester_sdk-0.2.0/src/polyester/gen/swap/v1/swap_pb2.pyi +268 -0
  80. polyester_sdk-0.2.0/src/polyester/gen/tradews/__init__.py +0 -0
  81. polyester_sdk-0.2.0/src/polyester/gen/tradews/v1/__init__.py +0 -0
  82. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/tradews/v1/trade_ws_pb2.py +16 -16
  83. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/tradews/v1/trade_ws_pb2.pyi +16 -4
  84. polyester_sdk-0.2.0/src/polyester/gen/transfer/__init__.py +0 -0
  85. polyester_sdk-0.2.0/src/polyester/gen/transfer/v1/__init__.py +0 -0
  86. polyester_sdk-0.2.0/src/polyester/gen/triggers/__init__.py +0 -0
  87. polyester_sdk-0.2.0/src/polyester/gen/triggers/v1/__init__.py +0 -0
  88. polyester_sdk-0.2.0/src/polyester/gen/triggers/v1/triggers_pb2.py +267 -0
  89. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/triggers/v1/triggers_pb2.pyi +150 -8
  90. polyester_sdk-0.2.0/src/polyester/gen/vip/__init__.py +0 -0
  91. polyester_sdk-0.2.0/src/polyester/gen/vip/v1/__init__.py +0 -0
  92. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/vip/v1/vip_connect.py +8 -4
  93. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/vip/v1/vip_pb2.py +16 -8
  94. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/vip/v1/vip_pb2.pyi +26 -2
  95. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/__init__.py +28 -0
  96. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/market.py +26 -1
  97. polyester_sdk-0.2.0/src/polyester/models/private_orders.py +159 -0
  98. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/trading.py +73 -2
  99. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/realtime/client.py +48 -2
  100. polyester_sdk-0.2.0/src/polyester/realtime/private_orders.py +776 -0
  101. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/market_data.py +98 -6
  102. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/orders.py +22 -13
  103. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/triggers.py +16 -2
  104. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/transport.py +23 -2
  105. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/types/money.py +1 -1
  106. polyester_sdk-0.1.0a55/src/polyester/gen/auth/v1/social_verification_pb2.py +0 -81
  107. polyester_sdk-0.1.0a55/src/polyester/gen/auth/v1/subaccounts_pb2.py +0 -285
  108. polyester_sdk-0.1.0a55/src/polyester/gen/claims/v1/claims_pb2.py +0 -68
  109. polyester_sdk-0.1.0a55/src/polyester/gen/marketdata/v1/marketdata_pb2.py +0 -118
  110. polyester_sdk-0.1.0a55/src/polyester/gen/orders/v1/orders_pb2.py +0 -324
  111. polyester_sdk-0.1.0a55/src/polyester/gen/triggers/v1/triggers_pb2.py +0 -255
  112. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/.gitignore +0 -0
  113. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/LICENSE +0 -0
  114. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/SECURITY.md +0 -0
  115. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/examples/basic_bot.py +0 -0
  116. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/auth.py +0 -0
  117. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/auth_interceptor.py +0 -0
  118. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/catalogs/zipper.py +0 -0
  119. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/catalogs/zipper_supply.py +0 -0
  120. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/chain/__init__.py +0 -0
  121. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/chain/_deps.py +0 -0
  122. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/chain/calldata.py +0 -0
  123. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/chain/destination.py +0 -0
  124. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/chain/environment.py +0 -0
  125. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/chain/fees.py +0 -0
  126. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/chain/rpc.py +0 -0
  127. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/chain/safe.py +0 -0
  128. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/chain/userop.py +0 -0
  129. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/client.py +0 -0
  130. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/__init__.py +0 -0
  131. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/address_book.py +0 -0
  132. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/bps.py +0 -0
  133. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/correlation_id.py +0 -0
  134. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/__init__.py +0 -0
  135. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/address_book.py +0 -0
  136. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/api_keys.py +0 -0
  137. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/auth.py +0 -0
  138. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/balances.py +0 -0
  139. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/common.py +0 -0
  140. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/deposit.py +0 -0
  141. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/fees.py +0 -0
  142. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/guard_signer.py +0 -0
  143. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/heatmap.py +0 -0
  144. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/internal_transfers.py +0 -0
  145. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/invariants.py +0 -0
  146. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/orderbook.py +0 -0
  147. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/policies.py +0 -0
  148. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/ratelimit.py +0 -0
  149. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/resolve.py +0 -0
  150. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/sub_accounts.py +0 -0
  151. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/trading_rate_limits.py +0 -0
  152. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/transfers.py +0 -0
  153. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/vip.py +0 -0
  154. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/withdraw.py +0 -0
  155. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/zipper.py +0 -0
  156. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/enums.py +0 -0
  157. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/guard_signer.py +0 -0
  158. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/heatmap.py +0 -0
  159. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/ledger.py +0 -0
  160. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/ledger_amounts.py +0 -0
  161. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/orderbook.py +0 -0
  162. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/proto_build.py +0 -0
  163. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/sub_accounts.py +0 -0
  164. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/withdraw.py +0 -0
  165. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/__init__.py +0 -0
  166. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/__init__.py +0 -0
  167. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/__init__.py +0 -0
  168. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/address_book_connect.py +0 -0
  169. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/address_book_pb2.py +0 -0
  170. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/address_book_pb2.pyi +0 -0
  171. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/api_keys_connect.py +0 -0
  172. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/auth_connect.py +0 -0
  173. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/mfa_connect.py +0 -0
  174. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/mfa_pb2.py +0 -0
  175. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/mfa_pb2.pyi +0 -0
  176. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/policies_connect.py +0 -0
  177. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/profile_connect.py +0 -0
  178. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/profile_pb2.py +0 -0
  179. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/profile_pb2.pyi +0 -0
  180. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/resolve_connect.py +0 -0
  181. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/resolve_pb2.py +0 -0
  182. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/resolve_pb2.pyi +0 -0
  183. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/social_verification_connect.py +0 -0
  184. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/subaccounts_connect.py +0 -0
  185. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/buf/__init__.py +0 -0
  186. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/buf/validate/__init__.py +0 -0
  187. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/buf/validate/validate_pb2.py +0 -0
  188. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/buf/validate/validate_pb2.pyi +0 -0
  189. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/__init__.py +0 -0
  190. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/analytics/__init__.py +0 -0
  191. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/analytics/v1/__init__.py +0 -0
  192. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/analytics/v1/analytics_read_connect.py +0 -0
  193. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/analytics/v1/analytics_read_pb2.py +0 -0
  194. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/analytics/v1/analytics_read_pb2.pyi +0 -0
  195. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/deposit/__init__.py +0 -0
  196. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/deposit/v1/__init__.py +0 -0
  197. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/deposit/v1/deposit_connect.py +0 -0
  198. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/deposit/v1/deposit_pb2.py +0 -0
  199. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/deposit/v1/deposit_pb2.pyi +0 -0
  200. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/guard/__init__.py +0 -0
  201. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/guard/v1/__init__.py +0 -0
  202. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/guard/v1/guard_signer_connect.py +0 -0
  203. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/guard/v1/guard_signer_pb2.py +0 -0
  204. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/guard/v1/guard_signer_pb2.pyi +0 -0
  205. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/lifecycle/__init__.py +0 -0
  206. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/lifecycle/v1/__init__.py +0 -0
  207. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/lifecycle/v1/lifecycle_read_connect.py +0 -0
  208. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/withdraw/__init__.py +0 -0
  209. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/withdraw/v1/__init__.py +0 -0
  210. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/withdraw/v1/withdraw_connect.py +0 -0
  211. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/zipper/__init__.py +0 -0
  212. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/zipper/v1/__init__.py +0 -0
  213. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/zipper/v1/zipper_connect.py +0 -0
  214. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/zipper/v1/zipper_pb2.py +0 -0
  215. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/zipper/v1/zipper_pb2.pyi +0 -0
  216. {polyester_sdk-0.1.0a55/src/polyester/gen/claims → polyester_sdk-0.2.0/src/polyester/gen/checkpoints}/__init__.py +0 -0
  217. {polyester_sdk-0.1.0a55/src/polyester/gen/claims → polyester_sdk-0.2.0/src/polyester/gen/checkpoints}/v1/__init__.py +0 -0
  218. {polyester_sdk-0.1.0a55/src/polyester/gen/collab → polyester_sdk-0.2.0/src/polyester/gen/claims}/__init__.py +0 -0
  219. {polyester_sdk-0.1.0a55/src/polyester/gen/collab → polyester_sdk-0.2.0/src/polyester/gen/claims}/v1/__init__.py +0 -0
  220. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/claims/v1/claims_connect.py +0 -0
  221. {polyester_sdk-0.1.0a55/src/polyester/gen/fees → polyester_sdk-0.2.0/src/polyester/gen/collab}/__init__.py +0 -0
  222. {polyester_sdk-0.1.0a55/src/polyester/gen/fees → polyester_sdk-0.2.0/src/polyester/gen/collab}/v1/__init__.py +0 -0
  223. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/collab/v1/whiteboard_connect.py +0 -0
  224. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/collab/v1/whiteboard_pb2.py +0 -0
  225. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/collab/v1/whiteboard_pb2.pyi +0 -0
  226. {polyester_sdk-0.1.0a55/src/polyester/gen/gnostic → polyester_sdk-0.2.0/src/polyester/gen/fees}/__init__.py +0 -0
  227. {polyester_sdk-0.1.0a55/src/polyester/gen/gnostic/openapi → polyester_sdk-0.2.0/src/polyester/gen/fees/v1}/__init__.py +0 -0
  228. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/fees/v1/fees_connect.py +0 -0
  229. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/fees/v1/fees_pb2.py +0 -0
  230. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/fees/v1/fees_pb2.pyi +0 -0
  231. {polyester_sdk-0.1.0a55/src/polyester/gen/gnostic/openapi/v3 → polyester_sdk-0.2.0/src/polyester/gen/gnostic}/__init__.py +0 -0
  232. {polyester_sdk-0.1.0a55/src/polyester/gen/google → polyester_sdk-0.2.0/src/polyester/gen/gnostic/openapi}/__init__.py +0 -0
  233. {polyester_sdk-0.1.0a55/src/polyester/gen/google/api → polyester_sdk-0.2.0/src/polyester/gen/gnostic/openapi/v3}/__init__.py +0 -0
  234. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/gnostic/openapi/v3/annotations_pb2.py +0 -0
  235. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/gnostic/openapi/v3/annotations_pb2.pyi +0 -0
  236. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/gnostic/openapi/v3/openapiv3_pb2.py +0 -0
  237. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/gnostic/openapi/v3/openapiv3_pb2.pyi +0 -0
  238. {polyester_sdk-0.1.0a55/src/polyester/gen/layout → polyester_sdk-0.2.0/src/polyester/gen/google}/__init__.py +0 -0
  239. {polyester_sdk-0.1.0a55/src/polyester/gen/layout/v1 → polyester_sdk-0.2.0/src/polyester/gen/google/api}/__init__.py +0 -0
  240. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/google/api/annotations_pb2.py +0 -0
  241. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/google/api/annotations_pb2.pyi +0 -0
  242. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/google/api/field_behavior_pb2.py +0 -0
  243. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/google/api/field_behavior_pb2.pyi +0 -0
  244. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/google/api/http_pb2.py +0 -0
  245. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/google/api/http_pb2.pyi +0 -0
  246. {polyester_sdk-0.1.0a55/src/polyester/gen/ledger → polyester_sdk-0.2.0/src/polyester/gen/layout}/__init__.py +0 -0
  247. {polyester_sdk-0.1.0a55/src/polyester/gen/ledger/read → polyester_sdk-0.2.0/src/polyester/gen/layout/v1}/__init__.py +0 -0
  248. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/layout/v1/layout_connect.py +0 -0
  249. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/layout/v1/layout_pb2.py +0 -0
  250. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/layout/v1/layout_pb2.pyi +0 -0
  251. {polyester_sdk-0.1.0a55/src/polyester/gen/ledger/read/v1 → polyester_sdk-0.2.0/src/polyester/gen/ledger}/__init__.py +0 -0
  252. {polyester_sdk-0.1.0a55/src/polyester/gen/ledger/v1 → polyester_sdk-0.2.0/src/polyester/gen/ledger/read}/__init__.py +0 -0
  253. {polyester_sdk-0.1.0a55/src/polyester/gen/marketdata → polyester_sdk-0.2.0/src/polyester/gen/ledger/read/v1}/__init__.py +0 -0
  254. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/ledger/read/v1/ledger_read_connect.py +0 -0
  255. {polyester_sdk-0.1.0a55/src/polyester/gen/marketdata → polyester_sdk-0.2.0/src/polyester/gen/ledger}/v1/__init__.py +0 -0
  256. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/ledger/v1/catalog_pb2.py +0 -0
  257. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/ledger/v1/catalog_pb2.pyi +0 -0
  258. {polyester_sdk-0.1.0a55/src/polyester/gen/marketoverview → polyester_sdk-0.2.0/src/polyester/gen/marketdata}/__init__.py +0 -0
  259. {polyester_sdk-0.1.0a55/src/polyester/gen/marketoverview → polyester_sdk-0.2.0/src/polyester/gen/marketdata}/v1/__init__.py +0 -0
  260. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/marketdata/v1/heatmap_connect.py +0 -0
  261. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/marketdata/v1/heatmap_pb2.py +0 -0
  262. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/marketdata/v1/heatmap_pb2.pyi +0 -0
  263. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/marketdata/v1/marketdata_connect.py +0 -0
  264. {polyester_sdk-0.1.0a55/src/polyester/gen/orderbook → polyester_sdk-0.2.0/src/polyester/gen/marketoverview}/__init__.py +0 -0
  265. {polyester_sdk-0.1.0a55/src/polyester/gen/orderbook → polyester_sdk-0.2.0/src/polyester/gen/marketoverview}/v1/__init__.py +0 -0
  266. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/marketoverview/v1/marketoverview_connect.py +0 -0
  267. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/marketoverview/v1/marketoverview_pb2.py +0 -0
  268. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/marketoverview/v1/marketoverview_pb2.pyi +0 -0
  269. {polyester_sdk-0.1.0a55/src/polyester/gen/orders → polyester_sdk-0.2.0/src/polyester/gen/orderbook}/__init__.py +0 -0
  270. {polyester_sdk-0.1.0a55/src/polyester/gen/orders → polyester_sdk-0.2.0/src/polyester/gen/orderbook}/v1/__init__.py +0 -0
  271. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/orderbook/v1/orderbook_connect.py +0 -0
  272. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/orderbook/v1/orderbook_pb2.py +0 -0
  273. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/orderbook/v1/orderbook_pb2.pyi +0 -0
  274. {polyester_sdk-0.1.0a55/src/polyester/gen/polychart → polyester_sdk-0.2.0/src/polyester/gen/orders}/__init__.py +0 -0
  275. {polyester_sdk-0.1.0a55/src/polyester/gen/polychart/events → polyester_sdk-0.2.0/src/polyester/gen/orders/v1}/__init__.py +0 -0
  276. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/orders/v1/orders_connect.py +0 -0
  277. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/orders/v1/orders_read_connect.py +0 -0
  278. {polyester_sdk-0.1.0a55/src/polyester/gen/polychart/events/v1 → polyester_sdk-0.2.0/src/polyester/gen/polychart}/__init__.py +0 -0
  279. {polyester_sdk-0.1.0a55/src/polyester/gen/polychart/v1 → polyester_sdk-0.2.0/src/polyester/gen/polychart/events}/__init__.py +0 -0
  280. {polyester_sdk-0.1.0a55/src/polyester/gen/polyester → polyester_sdk-0.2.0/src/polyester/gen/polychart/events/v1}/__init__.py +0 -0
  281. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/polychart/events/v1/polychart_events_pb2.py +0 -0
  282. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/polychart/events/v1/polychart_events_pb2.pyi +0 -0
  283. {polyester_sdk-0.1.0a55/src/polyester/gen/polyester/api → polyester_sdk-0.2.0/src/polyester/gen/polychart/v1}/__init__.py +0 -0
  284. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/polychart/v1/polychart_connect.py +0 -0
  285. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/polychart/v1/polychart_pb2.py +0 -0
  286. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/polychart/v1/polychart_pb2.pyi +0 -0
  287. {polyester_sdk-0.1.0a55/src/polyester/gen/polyester/api/validation → polyester_sdk-0.2.0/src/polyester/gen/polyester}/__init__.py +0 -0
  288. {polyester_sdk-0.1.0a55/src/polyester/gen/polyester/api/validation/v1 → polyester_sdk-0.2.0/src/polyester/gen/polyester/api}/__init__.py +0 -0
  289. {polyester_sdk-0.1.0a55/src/polyester/gen/polyester/ratelimit → polyester_sdk-0.2.0/src/polyester/gen/polyester/api/validation}/__init__.py +0 -0
  290. {polyester_sdk-0.1.0a55/src/polyester/gen/polyester/ratelimit → polyester_sdk-0.2.0/src/polyester/gen/polyester/api/validation}/v1/__init__.py +0 -0
  291. {polyester_sdk-0.1.0a55/src/polyester/gen/polyester/type → polyester_sdk-0.2.0/src/polyester/gen/polyester/ratelimit}/__init__.py +0 -0
  292. {polyester_sdk-0.1.0a55/src/polyester/gen/polyester/type → polyester_sdk-0.2.0/src/polyester/gen/polyester/ratelimit}/v1/__init__.py +0 -0
  293. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/polyester/ratelimit/v1/types_pb2.py +0 -0
  294. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/polyester/ratelimit/v1/types_pb2.pyi +0 -0
  295. {polyester_sdk-0.1.0a55/src/polyester/gen/ratelimit → polyester_sdk-0.2.0/src/polyester/gen/polyester/type}/__init__.py +0 -0
  296. {polyester_sdk-0.1.0a55/src/polyester/gen/ratelimit → polyester_sdk-0.2.0/src/polyester/gen/polyester/type}/v1/__init__.py +0 -0
  297. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/polyester/type/v1/u128_pb2.py +0 -0
  298. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/polyester/type/v1/u128_pb2.pyi +0 -0
  299. {polyester_sdk-0.1.0a55/src/polyester/gen/tradews → polyester_sdk-0.2.0/src/polyester/gen/privatews}/__init__.py +0 -0
  300. {polyester_sdk-0.1.0a55/src/polyester/gen/tradews → polyester_sdk-0.2.0/src/polyester/gen/privatews}/v1/__init__.py +0 -0
  301. {polyester_sdk-0.1.0a55/src/polyester/gen/transfer → polyester_sdk-0.2.0/src/polyester/gen/ratelimit}/__init__.py +0 -0
  302. {polyester_sdk-0.1.0a55/src/polyester/gen/transfer → polyester_sdk-0.2.0/src/polyester/gen/ratelimit}/v1/__init__.py +0 -0
  303. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/ratelimit/v1/ratelimit_pb2.pyi +0 -0
  304. {polyester_sdk-0.1.0a55/src/polyester/gen/triggers → polyester_sdk-0.2.0/src/polyester/gen/rewards}/__init__.py +0 -0
  305. {polyester_sdk-0.1.0a55/src/polyester/gen/triggers → polyester_sdk-0.2.0/src/polyester/gen/rewards}/v1/__init__.py +0 -0
  306. {polyester_sdk-0.1.0a55/src/polyester/gen/vip → polyester_sdk-0.2.0/src/polyester/gen/swap}/__init__.py +0 -0
  307. {polyester_sdk-0.1.0a55/src/polyester/gen/vip/v1 → polyester_sdk-0.2.0/src/polyester/gen/swap/quickswap}/__init__.py +0 -0
  308. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/transfer/v1/internal_transfer_connect.py +0 -0
  309. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/transfer/v1/internal_transfer_pb2.py +0 -0
  310. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/transfer/v1/internal_transfer_pb2.pyi +0 -0
  311. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/triggers/v1/triggers_connect.py +0 -0
  312. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/market_overview/__init__.py +0 -0
  313. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/market_overview/subscription.py +0 -0
  314. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/address_book.py +0 -0
  315. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/auth.py +0 -0
  316. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/common.py +0 -0
  317. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/fees.py +0 -0
  318. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/guard_signer.py +0 -0
  319. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/order_key.py +0 -0
  320. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/policies.py +0 -0
  321. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/ratelimit.py +0 -0
  322. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/realtime.py +0 -0
  323. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/sub_accounts.py +0 -0
  324. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/trading_rate_limits.py +0 -0
  325. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/vip.py +0 -0
  326. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/zipper.py +0 -0
  327. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/orderbook/__init__.py +0 -0
  328. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/orderbook/local_book.py +0 -0
  329. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/orderbook/subscription.py +0 -0
  330. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/patch.py +0 -0
  331. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/py.typed +0 -0
  332. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/realtime/__init__.py +0 -0
  333. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/realtime/auth.py +0 -0
  334. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/realtime/protocol.py +0 -0
  335. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/realtime/snapshot_then_stream.py +0 -0
  336. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/__init__.py +0 -0
  337. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/_base.py +0 -0
  338. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/_generated.py +0 -0
  339. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/_realtime_subscribe.py +0 -0
  340. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/_scope.py +0 -0
  341. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/_symbols.py +0 -0
  342. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/_validation.py +0 -0
  343. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/address_book.py +0 -0
  344. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/api_keys.py +0 -0
  345. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/auth.py +0 -0
  346. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/balances.py +0 -0
  347. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/chain_analytics.py +0 -0
  348. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/deposit.py +0 -0
  349. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/fees.py +0 -0
  350. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/guard_signer.py +0 -0
  351. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/heatmap.py +0 -0
  352. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/internal_transfers.py +0 -0
  353. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/layout.py +0 -0
  354. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/lifecycle.py +0 -0
  355. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/market_overview.py +0 -0
  356. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/orderbook.py +0 -0
  357. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/policies.py +0 -0
  358. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/polychart.py +0 -0
  359. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/profile.py +0 -0
  360. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/rate_limits.py +0 -0
  361. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/social_verification.py +0 -0
  362. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/sub_accounts.py +0 -0
  363. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/trades.py +0 -0
  364. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/transfers.py +0 -0
  365. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/vip.py +0 -0
  366. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/whiteboard.py +0 -0
  367. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/withdraw.py +0 -0
  368. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/zipper.py +0 -0
  369. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/sync_subscribe.py +0 -0
  370. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/types/__init__.py +0 -0
  371. {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/user_agent.py +0 -0
@@ -36,8 +36,8 @@ POLYESTER_ACCOUNT_ID=your_account_id_here
36
36
  # POLYESTER_ENV=devnet
37
37
 
38
38
  # Optional URL overrides (defaults come from the selected environment)
39
- # POLYESTER_API_URL=https://api-devnet.polyester.ai
40
- # POLYESTER_WS_URL=wss://api-devnet.polyester.ai
39
+ # POLYESTER_API_URL=https://api.devnet.polyester.com
40
+ # POLYESTER_WS_URL=wss://api.devnet.polyester.com
41
41
 
42
42
  # On-chain Funding UserOps — caller-supplied EOA, NOT the API ed25519 key
43
43
  # and NOT a UI-exported "owner private key". SDK derives the Polyester Safe from this.
@@ -1,6 +1,157 @@
1
1
  # Changelog
2
2
 
3
- ## Unreleased
3
+ ## 0.2.0
4
+
5
+ Git tag: `v0.2.0`.
6
+
7
+ **Upgrade before trading.** 0.1.0a55 and earlier encode and decode prices at
8
+ 6 decimals while the API uses 9, so every price is 1,000 times off. Their
9
+ testnet preset points at a host that does not exist, and their devnet preset
10
+ at an undocumented host. This release uses 9-decimal prices and the
11
+ documented hosts (`api.devnet.polyester.com`, `api.testnet.polyester.com`),
12
+ and streams live orders over the private WebSocket.
13
+
14
+ **New version scheme.** The Go, Python and Rust SDKs now share one version
15
+ line and release together. Versions are plain SemVer (`0.2.0`, `0.2.1`,
16
+ `0.3.0`) instead of PEP 440 pre-releases (`0.1.0aN`), and Git tags are
17
+ `vX.Y.Z`. Before 1.0, a minor release (`0.3.0`) may include breaking changes;
18
+ a patch release (`0.2.1`) does not. Pin the exact version
19
+ (`polyester-sdk==0.2.0`). This release covers every change since 0.1.0a55.
20
+
21
+ ### Breaking
22
+ - Trading prices now use fixed 9-decimal price ticks (one tick is 1e-9 quote
23
+ units), matching the API. This covers order, trigger, trailing-stop,
24
+ ladder, order-book, trade, candle, and market-overview prices and
25
+ `Price.from_ticks`. Earlier SDK versions encode and decode prices at 6
26
+ decimals, which is 1,000 times off against the current API; upgrade
27
+ before trading. Integer `max_slippage_ticks` values are 64-bit Q9 ticks.
28
+ - `orders.subscribe()` now streams live orders over the private WebSocket
29
+ (`/v1/ws/private`) instead of the retired `private:spot:orders:<account>:proto`
30
+ realtime channel, which no longer issues subscribe tokens. It yields
31
+ `PrivateOrdersEvent` values instead of bare `Order` objects:
32
+ `PrivateOrdersSnapshot` (the full live view), `PrivateOrdersUnit` (changed
33
+ orders, removed order IDs and order events), `PrivateOrdersReady` (the
34
+ stream reflects every order read made before the subscribe; wait for it
35
+ before relying on the stream), `PrivateOrdersStale`,
36
+ `PrivateOrdersConnected`, `PrivateOrdersDisconnected` and
37
+ `PrivateOrdersError`. Orders are the same `Order` model the reads return.
38
+ The stream resumes from its last position after a gap, an expired token or
39
+ a reconnect. `orders.subscribe_sync(on_event=...)` receives the same events.
40
+ - `market_data.get_trades()` drops `from_match_id`, which never reached the
41
+ API (it failed before sending), and `MarketTradesResult.next_match_id` is
42
+ now `next_page_token`. Page a listing with `page_token`.
43
+ - A stop-loss or take-profit with a limit child now rejects
44
+ `max_slippage_ticks` / `max_slippage_bps`, and a sell trailing stop rejects
45
+ `limit_price`; earlier versions ignored them.
46
+ - `triggers.create()` no longer defaults `trigger_price_source` to `"last"`;
47
+ unset means the last trade price. A TWAP or ladder trigger now rejects
48
+ `trigger_price_source`, which earlier versions ignored.
49
+
50
+ ### Changed
51
+ - Documentation links (the PyPI "Documentation" URL, the README capability
52
+ matrix and Market Order Price Protection links) now point at the public
53
+ docs on `https://polyester.com/docs`. The price-protection link was
54
+ broken in earlier versions.
55
+ - Candle and market-overview base volume now use the base asset
56
+ `market_data_volume_scale` from `get_spot_config`. Primary candle prices
57
+ use the 9-decimal price scale.
58
+ - Composite reference-candle OHLC uses the pair `reference_price_scale`.
59
+ `get_candles(..., include_reference=True)` requests that series.
60
+ `MarketOverviewEntry.volume_24h_base` is the decoded decimal when the
61
+ catalog scale is known; `volume_24h_base_scaled` stays the integer.
62
+
63
+ ### Added
64
+ - Index-price triggers: stop-loss, take-profit and trailing-stop triggers,
65
+ standalone (`triggers.create(trigger_price_source=...)`) or attached to an
66
+ order (`trigger_price_source` on each attached leg, in create and modify),
67
+ accept `"last"`, `"index"` or `"mark"`; unset means the last trade price.
68
+ Reads report the same label on `Trigger.trigger_price_source`,
69
+ `RiskLeg.trigger_price_source` and `TrailingStop.trigger_price_source`, so
70
+ a leg read from an order can be passed back unchanged. Earlier versions
71
+ rejected the field on attached legs and dropped it on standalone triggers.
72
+ - `CancelAllOrdersResult.listing_status`: `included`, or
73
+ `not_retained_read_open_orders` for a retry with the same `request_id`
74
+ within 120 seconds. Such a retry returns the original counts with an empty
75
+ `cancelled_orders`; the empty list does not mean nothing was cancelled.
76
+ - `CancelAllAfterResult.effective_scope` (`DeadManSwitchScope` with
77
+ `account_id`, `symbol_id` and `side`): the orders an armed switch cancels
78
+ on expiry. `None` when the switch is disabled.
79
+ - `GetOrderResult.executions_complete`: true when the order's trades across
80
+ every page add up to its filled quantity.
81
+ - `LifecycleFlowSummary.is_delayed`: true when an open flow has made no
82
+ progress for well beyond its expected step time.
83
+ - New named values: lifecycle reason `deposit_source_not_confirmed`; trigger
84
+ cancel reasons `account_repair`, `pair_drain_trigger`, `pair_drain_twap`,
85
+ `pair_drain_ladder` and `pair_drain_attached_leg`; trigger failure reasons
86
+ `index_price_unavailable` and `trigger_would_trigger_immediately`; order
87
+ error code `ERROR_CODE_TRIGGER_WOULD_TRIGGER_IMMEDIATELY`; pair status
88
+ `PAIR_STATUS_HALTED` (only cancellations are accepted).
89
+ - Standalone buy trailing stops: `triggers.create(trigger_type="trailing_stop",
90
+ side="buy", limit_price=...)`, where `limit_price` is the required maximum
91
+ price (decimal or `Price.from_ticks`). Trigger reads show a buy trailing
92
+ stop as an IOC limit child with its maximum price as `limit_price`, and
93
+ `details.trailing.trough_price` as the lowest price tracked.
94
+ - `CancelAllOrdersResult.cancelled_orders` (up to 200 `CancelledOrder`
95
+ entries with `order_id` and `client_order_id`, oldest first),
96
+ `total_cancelled` and `truncated`.
97
+ - Gap-free public trade backfill: `market_data.get_trades(after_trade_id=...)`
98
+ walks a market's trades by trade ID, oldest first. Results carry
99
+ `complete_through_trade_id`, `next_after_trade_id` and `epoch_ends`
100
+ (`TradeEpochEnd`). `get_trades()` also accepts `start_time`, `end_time`,
101
+ `side` and `page_token`.
102
+ - `OrderMutationResult` (from `orders.create`), `ModifyOrderResult` and
103
+ accepted `BatchCreateResultItem` entries carry `take_profit_trigger_id`,
104
+ `stop_loss_trigger_id` and `trailing_stop_trigger_id`: the public IDs of
105
+ the triggers created for the order's attached-risk legs. Each is set only
106
+ for a leg the order configured and is empty otherwise.
107
+ - `PolyesterRealtimeError.code` (private WebSocket request error code, for
108
+ example `FORBIDDEN`) and `PolyesterRealtimeError.close_code` (the WebSocket
109
+ close code that ended a stream).
110
+ - Trigger events label standalone trailing-stop activation as `activated`,
111
+ and `trigger_event_type_from_label` accepts `activated` as a filter.
112
+
113
+ ### Fixed
114
+ - `mutation_outcome_unknown()` now returns true for an order or trigger
115
+ create, cancel, modify or control that was sent but not confirmed in time:
116
+ every orders error code ending in `_OUTCOME_UNKNOWN`
117
+ (`ERROR_CODE_ORDER_CREATE_OUTCOME_UNKNOWN`,
118
+ `ERROR_CODE_ORDER_CANCEL_OUTCOME_UNKNOWN`,
119
+ `ERROR_CODE_ORDER_MODIFY_OUTCOME_UNKNOWN`,
120
+ `ERROR_CODE_TRIGGER_CREATE_OUTCOME_UNKNOWN`,
121
+ `ERROR_CODE_TRIGGER_CONTROL_OUTCOME_UNKNOWN`, and codes added later).
122
+ `is_retryable_error()` returns false for them: the change may have been
123
+ applied, so a retry loop that resends it could, for example, place an
124
+ order twice. Read the order or trigger back before sending it again.
125
+ Earlier versions treated these as definite failures.
126
+ - `is_retryable_error()` returns true for `AUTH_TEMPORARILY_UNAVAILABLE`
127
+ (exported as a constant): the request changed nothing, so retry it as is.
128
+ - `POLYESTER_TESTNET_ENVIRONMENT` and `environment_from_name("testnet")` now
129
+ use `https://api.testnet.polyester.com` and `wss://api.testnet.polyester.com`.
130
+ Earlier versions pointed at `api-testnet.polyester.com`, which does not
131
+ exist, so every testnet call failed with a DNS error. The devnet preset and
132
+ the client defaults now use the documented `api.devnet.polyester.com` host.
133
+ - A stop-loss or take-profit market child now carries its
134
+ `max_slippage_ticks` or `max_slippage_bps` cap. Earlier versions dropped
135
+ the cap silently, so the pair's default market slippage applied instead.
136
+ - Trigger reads (`triggers.get`, `triggers.list` and the trigger stream)
137
+ show a stop-loss or take-profit market child's cap as
138
+ `Trigger.max_slippage` (ticks, as a price delta) or
139
+ `Trigger.max_slippage_bps`; earlier versions decoded every market child
140
+ the same way, cap or not.
141
+ - Integer tick counts (`max_slippage_ticks`, `trailing_distance_ticks`,
142
+ attached-risk `*_ticks` fields) above the 64-bit range raise
143
+ `PolyesterValidationError` before sending instead of a raw `ValueError`.
144
+ - Order reads no longer report an attached-risk leg whose state is
145
+ `not_configured`; the server sends that state for a leg the order does
146
+ not have.
147
+ - An error code this SDK version does not know yet no longer crashes error
148
+ handling with `ValueError`. Orders, auth, withdraw and transfer errors
149
+ raise the usual `PolyesterApiError` with `code` set to
150
+ `UNKNOWN_ERROR_CODE(<number>)`; an orders error that carries rate-limit
151
+ details is still a `PolyesterRateLimitError`.
152
+ - With `wire_format="json"`, responses that contain fields or enum names
153
+ this SDK version does not know yet decode instead of failing. Unknown enum
154
+ names read as the unspecified value.
4
155
 
5
156
  ## 0.1.0a55
6
157
 
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: polyester-sdk
3
- Version: 0.1.0a55
3
+ Version: 0.2.0
4
4
  Summary: Official Python SDK for Polyester APIs.
5
5
  Project-URL: Homepage, https://github.com/Fabric-Labs/polyester-sdk-python
6
- Project-URL: Documentation, https://polyester.ai/docs/sdk/python/get-started/overview
6
+ Project-URL: Documentation, https://polyester.com/docs/sdk/python/get-started/overview
7
7
  Project-URL: Repository, https://github.com/Fabric-Labs/polyester-sdk-python
8
8
  Project-URL: Issues, https://github.com/Fabric-Labs/polyester-sdk-python/issues
9
9
  Author: Fabric Blockchain Labs Inc.
@@ -48,7 +48,8 @@ Description-Content-Type: text/markdown
48
48
  Official Python SDK for Polyester APIs, built for trading bots, backend jobs,
49
49
  research notebooks, and automation.
50
50
 
51
- **Status:** Alpha (`0.1.0a55`). Proprietary license (not open source).
51
+ **Status:** `0.2.0`, pre-1.0: a minor release may include breaking changes (see
52
+ [CHANGELOG.md](CHANGELOG.md)). Proprietary license (not open source).
52
53
  API-key only; no browser login or JWT flows.
53
54
 
54
55
  Requires **Python 3.11+**.
@@ -98,7 +99,7 @@ Rows marked **No** are intentional for API-key SDKs (use the TypeScript
98
99
  browser client for wallet login and session MFA).
99
100
 
100
101
  Full cross-language comparison:
101
- [SDK capability matrix](https://polyester.ai/docs/developer-docs/getting-started/sdk-capability-matrix).
102
+ [SDK capability matrix](https://polyester.com/docs/developer-docs/getting-started/sdk-capability-matrix).
102
103
  <!-- sdk-capabilities:end -->
103
104
 
104
105
  Rows marked **Yes** mean that an SDK wrapper exists; deployment authorization
@@ -114,7 +115,7 @@ API-key policy before retrying.
114
115
  PyPI: https://pypi.org/project/polyester-sdk/
115
116
 
116
117
  ```bash
117
- pip install "polyester-sdk==0.1.0a55"
118
+ pip install "polyester-sdk==0.2.0"
118
119
  ```
119
120
 
120
121
  Realtime (Centrifugo) and on-chain Funding helpers are included by default.
@@ -184,7 +185,7 @@ asyncio.run(main())
184
185
 
185
186
  Pass an `environment` preset so API, websocket, RPC, and contract pins stay
186
187
  together. `POLYESTER_DEVNET_ENVIRONMENT` is the constructor default.
187
- `POLYESTER_TESTNET_ENVIRONMENT` targets public testnet (`api-testnet.polyester.com`,
188
+ `POLYESTER_TESTNET_ENVIRONMENT` targets public testnet (`api.testnet.polyester.com`,
188
189
  chain `888169`). Custom / VPC endpoints use `create_polyester_environment` or
189
190
  `environment.with_urls(...)`. `api_url` / `ws_url` remain as transport overrides.
190
191
 
@@ -303,7 +304,7 @@ response as an admission acknowledgement and reconcile with `list_open` before
303
304
  releasing local state.
304
305
 
305
306
  Attached take-profit / stop-loss use the same friendly keys as the read
306
- model (`trigger_price`, `order_type`, `limit_price`). Child execution is
307
+ model (`trigger_price`, `trigger_price_source`, `order_type`, `limit_price`). Child execution is
307
308
  `market` (default) or `limit`, not `limit_ioc` / `limit_fok`, and not a
308
309
  nested `child.execution` wrapper.
309
310
 
@@ -360,7 +361,7 @@ host, so handle an unimplemented/not-found response and do not make Preview a
360
361
  prerequisite for order submission.
361
362
 
362
363
  Market orders are IOC and enforce a slippage-derived execution boundary. See
363
- [Market Order Price Protection](https://polyester.ai/developer-docs/shared-concepts/market-order-price-protection)
364
+ [Market Order Price Protection](https://polyester.com/docs/developer-docs/shared-concepts/market-order-price-protection)
364
365
  before overriding pair defaults. Set at most one of `max_slippage_bps`
365
366
  (1–10000) or `max_slippage_ticks`. Omit both to keep the pair default. The
366
367
  fields are rejected on limit orders and if both are supplied.
@@ -382,7 +383,7 @@ fails closed on encoding unless the request's `amount_scale` /
382
383
 
383
384
  Use **decimal strings** or `Decimal` for human-facing `qty` / `price` inputs.
384
385
  Do **not** pass floats. `ticks` on `Price` means Polyester protocol price units
385
- (fixed 1e6), not market tick-size alignment (server validates tick size).
386
+ (fixed 1e9), not market tick-size alignment (server validates tick size).
386
387
  Catalog hydration resolves `symbol` → `symbol_id` and quantity scales for
387
388
  encoding; pair admission (tick/step/min qty/notional) stays on the API.
388
389
  `orders.preview_order(...)` remains the authority for balances, reservations,
@@ -401,7 +402,7 @@ result = await client.orders.create(
401
402
  order_type="limit",
402
403
  tif="gtc",
403
404
  qty=Quantity.from_scaled(1_000_000, scale=8), # already wire units
404
- price=Price.from_ticks(100_000_000), # 100.000000 at 1e6
405
+ price=Price.from_ticks(100_000_000_000), # 100.000000000 at 1e9
405
406
  post_only=True,
406
407
  )
407
408
  # Reads expose the same types: order.price.ticks, order.orig_qty.scaled
@@ -418,6 +419,15 @@ and per-item phases by polling `get_batch_replace_status`. Use
418
419
  to `working`, `rejected`, or `terminal`, not as a finality signal. Retry an
419
420
  ambiguous batch request with the same `request_id`.
420
421
 
422
+ `cancel_all(...)` requests cancellation of every matching order. The result
423
+ lists up to 200 of them, oldest first, in `cancelled_orders` (each with
424
+ `order_id` and `client_order_id`); `total_cancelled` counts all of them and
425
+ `truncated` is true when the list is shorter. Each order's final state comes
426
+ from the order stream and reads. A dry run lists none. Retrying with the same
427
+ `request_id` within 120 seconds returns the original counts with an empty
428
+ `cancelled_orders` and `listing_status="not_retained_read_open_orders"`; the
429
+ empty list does not mean nothing was cancelled, so read open orders instead.
430
+
421
431
 
422
432
  Your API key needs a policy that allows trading. Spot orders spend **trading**
423
433
  balance (see below).
@@ -515,6 +525,66 @@ armed/terminal timestamps, `trigger_id`, and `child_order_id`; absent policy
515
525
  fields remain unset. `Order` also exposes `post_only`. Create/modify accept the
516
526
  same policy shape as a dict or `AttachedRisk`.
517
527
 
528
+ A stop-loss or take-profit with `order_type="market"` takes an optional
529
+ slippage cap, `max_slippage_ticks` (Q9 ticks) or `max_slippage_bps`, at most
530
+ one; without one the pair's default market slippage applies. A limit child
531
+ takes no cap (its limit price bounds it). Either side may use either child.
532
+ Trigger reads show the cap as `max_slippage` (ticks, as a price delta) or
533
+ `max_slippage_bps`; both unset means the pair default.
534
+
535
+ ```python
536
+ await client.triggers.create(
537
+ symbol="BTC-USDT",
538
+ trigger_type="stop_loss",
539
+ side="sell",
540
+ qty="0.01",
541
+ trigger_price="83000",
542
+ order_type="market",
543
+ max_slippage_bps=50,
544
+ )
545
+ ```
546
+
547
+ A standalone trailing stop may sell or buy. A buy trailing stop tracks the
548
+ lowest price and fires when the price rises the trailing distance from it.
549
+ It requires `limit_price`, its maximum price: the most its child pays per
550
+ unit (a 9-decimal string or `Decimal`, or `Price.from_ticks` for ticks),
551
+ fixed at create. A sell trailing stop takes no `limit_price`.
552
+
553
+ ```python
554
+ await client.triggers.create(
555
+ symbol="BTC-USDT",
556
+ trigger_type="trailing_stop",
557
+ side="buy",
558
+ qty="0.01",
559
+ trailing_distance_bps=100,
560
+ limit_price="85000",
561
+ )
562
+ ```
563
+
564
+ Trigger reads show a buy trailing stop with `side="buy"`,
565
+ `order_type="limit"`, `time_in_force="ioc"` and its maximum price as
566
+ `limit_price`; `details.trailing.trough_price` is the lowest price tracked so
567
+ far (`peak_price` for a sell).
568
+
569
+ Stop-loss, take-profit and trailing-stop triggers, standalone or attached to
570
+ an order, watch the last trade price unless `trigger_price_source` names
571
+ another: `"last"`, `"index"` or `"mark"`. Reads report the same label
572
+ (`Trigger.trigger_price_source`, `RiskLeg.trigger_price_source`,
573
+ `TrailingStop.trigger_price_source`), so a leg read from an order can be
574
+ passed back to create or modify unchanged. The API rejects a source the pair
575
+ does not support.
576
+
577
+ ```python
578
+ await client.triggers.create(
579
+ symbol="BTC-USDT",
580
+ trigger_type="stop_loss",
581
+ side="sell",
582
+ qty="0.01",
583
+ trigger_price="83000",
584
+ trigger_price_source="index",
585
+ )
586
+ ```
587
+
518
588
  When modifying a trigger, omit `activation_price` / `max_slippage_ticks` /
519
589
  `max_slippage_bps` to preserve the current values. Send an explicit zero
520
590
  (`Price.from_ticks(0)` or `0`) to clear an existing activation price or
@@ -632,6 +702,29 @@ default applies; allowed ranges are enforced by each API, not a global SDK cap.
632
702
  Response fields named `ts_ns` are treated as epoch nanoseconds per the API
633
703
  contract.
634
704
 
705
+ `get_trades()` lists trades newest first. Narrow it with `start_time` /
706
+ `end_time` (inclusive), `side` (`"buy"` or `"sell"` aggressor), and page with
707
+ `page_token=result.next_page_token`.
708
+
709
+ To backfill trades a live stream missed, walk by trade ID instead: oldest
710
+ first and gap-free. Start from `after_trade_id=0` (or the last trade ID you
711
+ hold) and pass each result's `next_after_trade_id` to the next call. Every
712
+ trade up to `complete_through_trade_id` is returned, across trade-ID epoch
713
+ ends (`epoch_ends`). When `next_after_trade_id` equals the ID you sent,
714
+ nothing newer is available yet; retry later with backoff. `after_trade_id`
715
+ cannot be combined with the time range, side or page token.
716
+
717
+ ```python
718
+ after = 0
719
+ while True:
720
+ page = await client.market_data.get_trades(symbol="BTC-USDT", after_trade_id=after, limit=1000)
721
+ for trade in page.trades:
722
+ handle(trade)
723
+ if page.next_after_trade_id == after:
724
+ break # caught up; resume later from `after`
725
+ after = page.next_after_trade_id
726
+ ```
727
+
635
728
  `get_candles()` returns row-oriented candles newest-first (an incomplete open
636
729
  candle, when requested, is prepended). `get_candles_columns()` normalizes its
637
730
  column response oldest-first. Sort explicitly by `ts_sec` before feeding a
@@ -654,7 +747,8 @@ async with sub:
654
747
 
655
748
  - Realtime is binary-only. The client negotiates the `centrifuge-protobuf`
656
749
  WebSocket subprotocol and consumes protobuf publications from `:proto`
657
- channels. ConnectRPC's optional JSON wire mode does not apply to realtime.
750
+ channels; live orders use the private WebSocket (see Live orders below).
751
+ ConnectRPC's optional JSON wire mode does not apply to realtime.
658
752
  Inbound WebSocket messages are capped at 4 MiB.
659
753
  - Subscription queues are bounded. If the consumer falls behind, the SDK raises
660
754
  `PolyesterRealtimeOverflowError` and faults the subscription; it does **not**
@@ -675,6 +769,78 @@ async with sub:
675
769
  `client.catalogs.base_quantity_scale_for_symbol_id(order.symbol_id)` (or by
676
770
  symbol), then call `quantity.format(scale)`. Never guess or inject scale 8.
677
771
 
772
+ ### Live orders
773
+
774
+ `client.orders.subscribe()` streams an account's orders over the private
775
+ WebSocket (`/v1/ws/private`, binary protobuf, subprotocol
776
+ `polyester.v1.proto`). It authenticates with the same realtime tokens as the
777
+ other private streams. One connection carries every account, and each account
778
+ has one server subscription shared by all of its consumers.
779
+
780
+ ```python
781
+ from polyester.models import (
782
+ PrivateOrdersConnected,
783
+ PrivateOrdersDisconnected,
784
+ PrivateOrdersError,
785
+ PrivateOrdersReady,
786
+ PrivateOrdersSnapshot,
787
+ PrivateOrdersStale,
788
+ PrivateOrdersUnit,
789
+ )
790
+
791
+ orders = {order.order_id: order for order in (await client.orders.list_open()).orders}
792
+ subscription = await client.orders.subscribe() # default_account_id, or account_id=...
793
+ async with subscription:
794
+ async for event in subscription:
795
+ if isinstance(event, PrivateOrdersReady):
796
+ # The stream now reflects every order read made before the subscribe.
797
+ print("ready")
798
+ elif isinstance(event, PrivateOrdersSnapshot):
799
+ # The full live view: replace local state.
800
+ orders = {order.order_id: order for order in event.orders}
801
+ elif isinstance(event, PrivateOrdersUnit):
802
+ for order in event.orders:
803
+ orders[order.order_id] = order # keep the higher version
804
+ for order_id in event.removed_order_ids:
805
+ orders.pop(order_id, None) # left the live view; not a cancel
806
+ for change in event.events:
807
+ print(change) # PrivateOrderEvent or PrivateOrderCommandOutcome
808
+ elif isinstance(event, PrivateOrdersStale):
809
+ print("stale" if event.stale else "caught up")
810
+ elif isinstance(event, PrivateOrdersError):
811
+ print(f"recovering from {event.kind}: {event.error}")
812
+ ```
813
+
814
+ - `subscribe()` returns once the server confirmed the subscription; the first
815
+ event is `PrivateOrdersConnected`. A failure before that raises (for
816
+ example `PolyesterAuthError` for a refused token, or
817
+ `PolyesterRealtimeError` with `code == "FORBIDDEN"`).
818
+ - Orders are the same `Order` model the order reads return. Two copies with
819
+ the same `version` are identical, and a higher `version` is newer. To merge
820
+ with a read: read `list_open()`, subscribe, wait for `PrivateOrdersReady`,
821
+ and keep the higher version of each order.
822
+ - `PrivateOrdersReady` means the subscription reached the account's read
823
+ boundary, sampled when the server received the subscribe: from then on it
824
+ reflects every acknowledgement given before the subscribe. Wait for it
825
+ before relying on the stream. It comes once per server subscription, so
826
+ again after a resubscribe or reconnect, and a consumer that joins an
827
+ account that is already ready gets it right after its catch-up snapshot.
828
+ - A sequence gap, an expired token or a dropped connection resumes from the
829
+ last applied position. Consumers see `PrivateOrdersDisconnected` and then
830
+ `PrivateOrdersConnected`; a position the server can no longer resume is
831
+ answered with a fresh `PrivateOrdersSnapshot` that replaces local state.
832
+ Outcomes between the two states are not replayed; fills stay readable from
833
+ trade history.
834
+ - `PrivateOrdersStale(stale=True)` means the account's live view is
835
+ temporarily behind; it recovers by itself.
836
+ - Recoverable failures arrive as `PrivateOrdersError` events and through
837
+ `set_on_error(...)`. A failure that ends the stream (a refused token, a
838
+ revoked permission, close code 4400 or 4403) is raised from iteration, with
839
+ `PolyesterRealtimeError.code` or `.close_code` set.
840
+ - Batch-replace progress has no stream: poll
841
+ `client.orders.get_batch_replace_status(...)` and watch each order's
842
+ revisions on this stream.
843
+
678
844
  ## Sync client
679
845
 
680
846
  The sync `Polyester` client exposes the same service tree and constructor