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.
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/.env.example +2 -2
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/CHANGELOG.md +152 -1
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/PKG-INFO +177 -11
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/README.md +175 -9
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/pyproject.toml +2 -2
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/__init__.py +2 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/_version.py +1 -1
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/_wire.py +5 -4
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/catalogs/__init__.py +54 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/lifecycle.py +2 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/market_data.py +85 -8
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/market_overview.py +14 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/orders.py +56 -1
- polyester_sdk-0.2.0/src/polyester/codecs/decode/private_orders.py +72 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/triggers.py +28 -4
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/orders.py +25 -28
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/proto_helpers.py +9 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/realtime_decode.py +2 -8
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/scalars.py +23 -2
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/triggers.py +80 -17
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/wire_decode.py +0 -13
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/environment.py +4 -4
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/errors.py +65 -8
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/api_keys_pb2.py +32 -31
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/api_keys_pb2.pyi +1 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/auth_pb2.py +4 -4
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/auth_pb2.pyi +4 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/policies_pb2.py +4 -4
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/policies_pb2.pyi +6 -0
- polyester_sdk-0.2.0/src/polyester/gen/auth/v1/social_verification_pb2.py +82 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/social_verification_pb2.pyi +5 -2
- polyester_sdk-0.2.0/src/polyester/gen/auth/v1/subaccounts_pb2.py +286 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/subaccounts_pb2.pyi +7 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/lifecycle/v1/lifecycle_read_pb2.py +28 -28
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/lifecycle/v1/lifecycle_read_pb2.pyi +12 -6
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/lifecycle/v1/types_pb2.py +10 -10
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/lifecycle/v1/types_pb2.pyi +4 -0
- polyester_sdk-0.2.0/src/polyester/gen/chain/withdraw/v1/auto_withdraw_connect.py +326 -0
- polyester_sdk-0.2.0/src/polyester/gen/chain/withdraw/v1/auto_withdraw_pb2.py +113 -0
- polyester_sdk-0.2.0/src/polyester/gen/chain/withdraw/v1/auto_withdraw_pb2.pyi +250 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/withdraw/v1/withdraw_pb2.py +8 -8
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/withdraw/v1/withdraw_pb2.pyi +4 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/zipper/v1/reason_pb2.py +2 -2
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/zipper/v1/reason_pb2.pyi +4 -0
- polyester_sdk-0.2.0/src/polyester/gen/checkpoints/v1/checkpoints_connect.py +135 -0
- polyester_sdk-0.2.0/src/polyester/gen/checkpoints/v1/checkpoints_pb2.py +119 -0
- polyester_sdk-0.2.0/src/polyester/gen/checkpoints/v1/checkpoints_pb2.pyi +352 -0
- polyester_sdk-0.2.0/src/polyester/gen/claims/v1/claims_pb2.py +71 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/claims/v1/claims_pb2.pyi +25 -6
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/ledger/read/v1/ledger_read_pb2.py +24 -22
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/ledger/read/v1/ledger_read_pb2.pyi +10 -2
- polyester_sdk-0.2.0/src/polyester/gen/marketdata/v1/marketdata_pb2.py +122 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/marketdata/v1/marketdata_pb2.pyi +60 -12
- polyester_sdk-0.2.0/src/polyester/gen/orders/v1/orders_pb2.py +342 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/orders/v1/orders_pb2.pyi +290 -16
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/orders/v1/orders_read_pb2.py +38 -36
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/orders/v1/orders_read_pb2.pyi +14 -4
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/polyester/api/options_pb2.py +2 -2
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/polyester/api/options_pb2.pyi +2 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/polyester/api/validation/v1/predefined_string_rules_pb2.py +3 -1
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/polyester/api/validation/v1/predefined_string_rules_pb2.pyi +2 -0
- polyester_sdk-0.2.0/src/polyester/gen/privatews/v1/private_ws_pb2.py +118 -0
- polyester_sdk-0.2.0/src/polyester/gen/privatews/v1/private_ws_pb2.pyi +407 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/ratelimit/v1/ratelimit_connect.py +8 -4
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/ratelimit/v1/ratelimit_pb2.py +3 -3
- polyester_sdk-0.2.0/src/polyester/gen/rewards/v1/rewards_connect.py +196 -0
- polyester_sdk-0.2.0/src/polyester/gen/rewards/v1/rewards_pb2.py +72 -0
- polyester_sdk-0.2.0/src/polyester/gen/rewards/v1/rewards_pb2.pyi +101 -0
- polyester_sdk-0.2.0/src/polyester/gen/swap/quickswap/v1/__init__.py +0 -0
- polyester_sdk-0.2.0/src/polyester/gen/swap/quickswap/v1/quickswap_broker_connect.py +1366 -0
- polyester_sdk-0.2.0/src/polyester/gen/swap/quickswap/v1/quickswap_broker_pb2.py +294 -0
- polyester_sdk-0.2.0/src/polyester/gen/swap/quickswap/v1/quickswap_broker_pb2.pyi +569 -0
- polyester_sdk-0.2.0/src/polyester/gen/swap/quickswap/v1/quickswap_connect.py +261 -0
- polyester_sdk-0.2.0/src/polyester/gen/swap/quickswap/v1/quickswap_pb2.py +173 -0
- polyester_sdk-0.2.0/src/polyester/gen/swap/quickswap/v1/quickswap_pb2.pyi +593 -0
- polyester_sdk-0.2.0/src/polyester/gen/swap/v1/__init__.py +0 -0
- polyester_sdk-0.2.0/src/polyester/gen/swap/v1/swap_connect.py +261 -0
- polyester_sdk-0.2.0/src/polyester/gen/swap/v1/swap_pb2.py +110 -0
- polyester_sdk-0.2.0/src/polyester/gen/swap/v1/swap_pb2.pyi +268 -0
- polyester_sdk-0.2.0/src/polyester/gen/tradews/__init__.py +0 -0
- polyester_sdk-0.2.0/src/polyester/gen/tradews/v1/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/tradews/v1/trade_ws_pb2.py +16 -16
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/tradews/v1/trade_ws_pb2.pyi +16 -4
- polyester_sdk-0.2.0/src/polyester/gen/transfer/__init__.py +0 -0
- polyester_sdk-0.2.0/src/polyester/gen/transfer/v1/__init__.py +0 -0
- polyester_sdk-0.2.0/src/polyester/gen/triggers/__init__.py +0 -0
- polyester_sdk-0.2.0/src/polyester/gen/triggers/v1/__init__.py +0 -0
- polyester_sdk-0.2.0/src/polyester/gen/triggers/v1/triggers_pb2.py +267 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/triggers/v1/triggers_pb2.pyi +150 -8
- polyester_sdk-0.2.0/src/polyester/gen/vip/__init__.py +0 -0
- polyester_sdk-0.2.0/src/polyester/gen/vip/v1/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/vip/v1/vip_connect.py +8 -4
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/vip/v1/vip_pb2.py +16 -8
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/vip/v1/vip_pb2.pyi +26 -2
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/__init__.py +28 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/market.py +26 -1
- polyester_sdk-0.2.0/src/polyester/models/private_orders.py +159 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/trading.py +73 -2
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/realtime/client.py +48 -2
- polyester_sdk-0.2.0/src/polyester/realtime/private_orders.py +776 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/market_data.py +98 -6
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/orders.py +22 -13
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/triggers.py +16 -2
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/transport.py +23 -2
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/types/money.py +1 -1
- polyester_sdk-0.1.0a55/src/polyester/gen/auth/v1/social_verification_pb2.py +0 -81
- polyester_sdk-0.1.0a55/src/polyester/gen/auth/v1/subaccounts_pb2.py +0 -285
- polyester_sdk-0.1.0a55/src/polyester/gen/claims/v1/claims_pb2.py +0 -68
- polyester_sdk-0.1.0a55/src/polyester/gen/marketdata/v1/marketdata_pb2.py +0 -118
- polyester_sdk-0.1.0a55/src/polyester/gen/orders/v1/orders_pb2.py +0 -324
- polyester_sdk-0.1.0a55/src/polyester/gen/triggers/v1/triggers_pb2.py +0 -255
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/.gitignore +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/LICENSE +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/SECURITY.md +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/examples/basic_bot.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/auth.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/auth_interceptor.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/catalogs/zipper.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/catalogs/zipper_supply.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/chain/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/chain/_deps.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/chain/calldata.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/chain/destination.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/chain/environment.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/chain/fees.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/chain/rpc.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/chain/safe.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/chain/userop.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/client.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/address_book.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/bps.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/correlation_id.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/address_book.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/api_keys.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/auth.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/balances.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/common.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/deposit.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/fees.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/guard_signer.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/heatmap.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/internal_transfers.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/invariants.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/orderbook.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/policies.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/ratelimit.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/resolve.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/sub_accounts.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/trading_rate_limits.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/transfers.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/vip.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/withdraw.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/decode/zipper.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/enums.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/guard_signer.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/heatmap.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/ledger.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/ledger_amounts.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/orderbook.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/proto_build.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/sub_accounts.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/codecs/withdraw.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/address_book_connect.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/address_book_pb2.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/address_book_pb2.pyi +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/api_keys_connect.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/auth_connect.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/mfa_connect.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/mfa_pb2.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/mfa_pb2.pyi +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/policies_connect.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/profile_connect.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/profile_pb2.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/profile_pb2.pyi +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/resolve_connect.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/resolve_pb2.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/resolve_pb2.pyi +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/social_verification_connect.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/auth/v1/subaccounts_connect.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/buf/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/buf/validate/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/buf/validate/validate_pb2.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/buf/validate/validate_pb2.pyi +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/analytics/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/analytics/v1/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/analytics/v1/analytics_read_connect.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/analytics/v1/analytics_read_pb2.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/analytics/v1/analytics_read_pb2.pyi +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/deposit/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/deposit/v1/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/deposit/v1/deposit_connect.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/deposit/v1/deposit_pb2.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/deposit/v1/deposit_pb2.pyi +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/guard/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/guard/v1/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/guard/v1/guard_signer_connect.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/guard/v1/guard_signer_pb2.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/guard/v1/guard_signer_pb2.pyi +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/lifecycle/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/lifecycle/v1/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/lifecycle/v1/lifecycle_read_connect.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/withdraw/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/withdraw/v1/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/withdraw/v1/withdraw_connect.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/zipper/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/zipper/v1/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/zipper/v1/zipper_connect.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/zipper/v1/zipper_pb2.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/chain/zipper/v1/zipper_pb2.pyi +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/claims → polyester_sdk-0.2.0/src/polyester/gen/checkpoints}/__init__.py +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/claims → polyester_sdk-0.2.0/src/polyester/gen/checkpoints}/v1/__init__.py +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/collab → polyester_sdk-0.2.0/src/polyester/gen/claims}/__init__.py +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/collab → polyester_sdk-0.2.0/src/polyester/gen/claims}/v1/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/claims/v1/claims_connect.py +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/fees → polyester_sdk-0.2.0/src/polyester/gen/collab}/__init__.py +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/fees → polyester_sdk-0.2.0/src/polyester/gen/collab}/v1/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/collab/v1/whiteboard_connect.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/collab/v1/whiteboard_pb2.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/collab/v1/whiteboard_pb2.pyi +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/gnostic → polyester_sdk-0.2.0/src/polyester/gen/fees}/__init__.py +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/gnostic/openapi → polyester_sdk-0.2.0/src/polyester/gen/fees/v1}/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/fees/v1/fees_connect.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/fees/v1/fees_pb2.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/fees/v1/fees_pb2.pyi +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/gnostic/openapi/v3 → polyester_sdk-0.2.0/src/polyester/gen/gnostic}/__init__.py +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/google → polyester_sdk-0.2.0/src/polyester/gen/gnostic/openapi}/__init__.py +0 -0
- {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
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/gnostic/openapi/v3/annotations_pb2.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/gnostic/openapi/v3/annotations_pb2.pyi +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/gnostic/openapi/v3/openapiv3_pb2.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/gnostic/openapi/v3/openapiv3_pb2.pyi +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/layout → polyester_sdk-0.2.0/src/polyester/gen/google}/__init__.py +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/layout/v1 → polyester_sdk-0.2.0/src/polyester/gen/google/api}/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/google/api/annotations_pb2.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/google/api/annotations_pb2.pyi +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/google/api/field_behavior_pb2.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/google/api/field_behavior_pb2.pyi +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/google/api/http_pb2.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/google/api/http_pb2.pyi +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/ledger → polyester_sdk-0.2.0/src/polyester/gen/layout}/__init__.py +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/ledger/read → polyester_sdk-0.2.0/src/polyester/gen/layout/v1}/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/layout/v1/layout_connect.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/layout/v1/layout_pb2.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/layout/v1/layout_pb2.pyi +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/ledger/read/v1 → polyester_sdk-0.2.0/src/polyester/gen/ledger}/__init__.py +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/ledger/v1 → polyester_sdk-0.2.0/src/polyester/gen/ledger/read}/__init__.py +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/marketdata → polyester_sdk-0.2.0/src/polyester/gen/ledger/read/v1}/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/ledger/read/v1/ledger_read_connect.py +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/marketdata → polyester_sdk-0.2.0/src/polyester/gen/ledger}/v1/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/ledger/v1/catalog_pb2.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/ledger/v1/catalog_pb2.pyi +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/marketoverview → polyester_sdk-0.2.0/src/polyester/gen/marketdata}/__init__.py +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/marketoverview → polyester_sdk-0.2.0/src/polyester/gen/marketdata}/v1/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/marketdata/v1/heatmap_connect.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/marketdata/v1/heatmap_pb2.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/marketdata/v1/heatmap_pb2.pyi +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/marketdata/v1/marketdata_connect.py +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/orderbook → polyester_sdk-0.2.0/src/polyester/gen/marketoverview}/__init__.py +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/orderbook → polyester_sdk-0.2.0/src/polyester/gen/marketoverview}/v1/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/marketoverview/v1/marketoverview_connect.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/marketoverview/v1/marketoverview_pb2.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/marketoverview/v1/marketoverview_pb2.pyi +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/orders → polyester_sdk-0.2.0/src/polyester/gen/orderbook}/__init__.py +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/orders → polyester_sdk-0.2.0/src/polyester/gen/orderbook}/v1/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/orderbook/v1/orderbook_connect.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/orderbook/v1/orderbook_pb2.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/orderbook/v1/orderbook_pb2.pyi +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/polychart → polyester_sdk-0.2.0/src/polyester/gen/orders}/__init__.py +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/polychart/events → polyester_sdk-0.2.0/src/polyester/gen/orders/v1}/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/orders/v1/orders_connect.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/orders/v1/orders_read_connect.py +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/polychart/events/v1 → polyester_sdk-0.2.0/src/polyester/gen/polychart}/__init__.py +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/polychart/v1 → polyester_sdk-0.2.0/src/polyester/gen/polychart/events}/__init__.py +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/polyester → polyester_sdk-0.2.0/src/polyester/gen/polychart/events/v1}/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/polychart/events/v1/polychart_events_pb2.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/polychart/events/v1/polychart_events_pb2.pyi +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/polyester/api → polyester_sdk-0.2.0/src/polyester/gen/polychart/v1}/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/polychart/v1/polychart_connect.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/polychart/v1/polychart_pb2.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/polychart/v1/polychart_pb2.pyi +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/polyester/api/validation → polyester_sdk-0.2.0/src/polyester/gen/polyester}/__init__.py +0 -0
- {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
- {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
- {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
- {polyester_sdk-0.1.0a55/src/polyester/gen/polyester/type → polyester_sdk-0.2.0/src/polyester/gen/polyester/ratelimit}/__init__.py +0 -0
- {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
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/polyester/ratelimit/v1/types_pb2.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/polyester/ratelimit/v1/types_pb2.pyi +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/ratelimit → polyester_sdk-0.2.0/src/polyester/gen/polyester/type}/__init__.py +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/ratelimit → polyester_sdk-0.2.0/src/polyester/gen/polyester/type}/v1/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/polyester/type/v1/u128_pb2.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/polyester/type/v1/u128_pb2.pyi +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/tradews → polyester_sdk-0.2.0/src/polyester/gen/privatews}/__init__.py +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/tradews → polyester_sdk-0.2.0/src/polyester/gen/privatews}/v1/__init__.py +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/transfer → polyester_sdk-0.2.0/src/polyester/gen/ratelimit}/__init__.py +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/transfer → polyester_sdk-0.2.0/src/polyester/gen/ratelimit}/v1/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/ratelimit/v1/ratelimit_pb2.pyi +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/triggers → polyester_sdk-0.2.0/src/polyester/gen/rewards}/__init__.py +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/triggers → polyester_sdk-0.2.0/src/polyester/gen/rewards}/v1/__init__.py +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/vip → polyester_sdk-0.2.0/src/polyester/gen/swap}/__init__.py +0 -0
- {polyester_sdk-0.1.0a55/src/polyester/gen/vip/v1 → polyester_sdk-0.2.0/src/polyester/gen/swap/quickswap}/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/transfer/v1/internal_transfer_connect.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/transfer/v1/internal_transfer_pb2.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/transfer/v1/internal_transfer_pb2.pyi +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/gen/triggers/v1/triggers_connect.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/market_overview/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/market_overview/subscription.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/address_book.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/auth.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/common.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/fees.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/guard_signer.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/order_key.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/policies.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/ratelimit.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/realtime.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/sub_accounts.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/trading_rate_limits.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/vip.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/models/zipper.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/orderbook/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/orderbook/local_book.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/orderbook/subscription.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/patch.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/py.typed +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/realtime/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/realtime/auth.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/realtime/protocol.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/realtime/snapshot_then_stream.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/__init__.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/_base.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/_generated.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/_realtime_subscribe.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/_scope.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/_symbols.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/_validation.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/address_book.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/api_keys.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/auth.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/balances.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/chain_analytics.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/deposit.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/fees.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/guard_signer.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/heatmap.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/internal_transfers.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/layout.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/lifecycle.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/market_overview.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/orderbook.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/policies.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/polychart.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/profile.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/rate_limits.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/social_verification.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/sub_accounts.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/trades.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/transfers.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/vip.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/whiteboard.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/withdraw.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/services/zipper.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/sync_subscribe.py +0 -0
- {polyester_sdk-0.1.0a55 → polyester_sdk-0.2.0}/src/polyester/types/__init__.py +0 -0
- {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
|
|
40
|
-
# POLYESTER_WS_URL=wss://api
|
|
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
|
-
##
|
|
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.
|
|
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.
|
|
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:**
|
|
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.
|
|
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.
|
|
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
|
|
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.
|
|
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
|
|
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(
|
|
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
|
|
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
|