پرش به محتویات

پیکربندی

هر تنظیم یک مقدار پیش‌فرض از سرور بیت‌پین دارد و همه را می‌توانید تغییر دهید.

from bitpin_sdk import Bitpin, Config, RateLimit

config = Config(
    api_key="...",
    secret_key="...",
    domain="org",             # "org" (پیش‌فرض)، "ir" یا "market"
    timeout=10,               # ثانیه برای هر درخواست
    max_retries=3,            # فقط برای درخواست‌های تکرارپذیر
    enable_rate_limit=True,   # محدودکنندهٔ سمت کلاینت
    rate_limits={"orderbook": "10800/min", "order_create": RateLimit(180_000, "hour")},
    rest_url=None,            # پیش‌فرض: آدرس REST همان دامنه
    ws_url=None,              # پیش‌فرض: آدرس وب‌سوکت همان دامنه
    user_agent=None,          # پیش‌فرض: bitpin-sdk-python/<version>
    token_store=None,         # پیش‌فرض: در حافظه؛ احراز هویت را ببینید
)
client = Bitpin(config)

دامنه‌ها

بیت‌پین همان API را روی سه دامنه ارائه می‌دهد. با domain یکی را انتخاب کنید؛ آدرس REST و وب‌سوکت با هم عوض می‌شوند:

domain REST وب‌سوکت
org (پیش‌فرض) https://api.bitpin.org wss://centrifugo.bitpin.org/connection/websocket
ir https://api.bitpin.ir wss://centrifugo.bitpin.ir/connection/websocket
market https://api.bitpin.market wss://centrifugo.bitpin.market/connection/websocket

اگر rest_url و ws_url را خودتان بدهید (مثلاً برای پروکسی)، همان‌ها به کار می‌روند. متغیر محیطی BITPIN_DOMAIN هم با Config.from_env() کار می‌کند.

چهار روش ساختن پیکربندی

Config(api_key="...", secret_key="...")                     # در کد
Config.from_env(timeout=5)                                  # BITPIN_API_KEY، BITPIN_SECRET_KEY و BITPIN_DOMAIN
Config.from_file("bitpin.toml")                             # TOML، پایین را ببینید
Bitpin({"apiKey": "...", "secret": "...", "timeout": 5000}) # دیکشنری به سبک ccxt (timeout به میلی‌ثانیه)

bitpin.toml:

[bitpin]
api_key = "..."
secret_key = "..."
domain = "ir"
timeout = 10

[bitpin.rate_limits]
orderbook = "10800/min"
fills = "600/min"

کلیدهای ناشناخته و نام‌های ناشناختهٔ باکت محدودیت نرخ خطای ValueError می‌دهند تا اشتباه تایپی بی‌صدا نادیده گرفته نشود.

client.describe() آدرس‌ها، قابلیت‌ها، بازه‌های زمانی و محدودیت‌های نرخ مؤثر را نشان می‌دهد.