done
This commit is contained in:
+41
-1
@@ -9,6 +9,10 @@ class PriceImpact(BaseModel):
|
||||
m15: float
|
||||
m1h: float
|
||||
price_at_post: float
|
||||
# None = outcome window not yet reached or no price data; True/False = signal direction matched actual move
|
||||
correct_m5: Optional[bool] = None
|
||||
correct_m15: Optional[bool] = None
|
||||
correct_m1h: Optional[bool] = None
|
||||
|
||||
|
||||
class TrumpPost(BaseModel):
|
||||
@@ -20,6 +24,8 @@ class TrumpPost(BaseModel):
|
||||
signal: Optional[str] = None # buy | sell | short | hold
|
||||
ai_confidence: int
|
||||
ai_reasoning: Optional[str] = None
|
||||
prefilter_reason: Optional[str] = None # rt_only | url_only | empty | parse_error | api_error | null
|
||||
analysis_version: Optional[str] = None
|
||||
relevant: bool
|
||||
price_impact: Optional[PriceImpact] = None
|
||||
|
||||
@@ -59,19 +65,53 @@ class BotPerformance(BaseModel):
|
||||
max_drawdown_pct: float
|
||||
|
||||
|
||||
class SubscribeRequest(BaseModel):
|
||||
class SignedEnvelope(BaseModel):
|
||||
"""Every write request carries this envelope.
|
||||
|
||||
Client builds a canonical message (see app.services.signed_request.build_message)
|
||||
and signs it via EIP-191 personal_sign. Server re-builds the message from
|
||||
{action, wallet, timestamp, sha256(body)} and recovers the signer.
|
||||
"""
|
||||
wallet: str
|
||||
timestamp: int # milliseconds since epoch
|
||||
signature: str
|
||||
|
||||
|
||||
class SubscribeRequest(SignedEnvelope):
|
||||
pass
|
||||
|
||||
|
||||
class SubscribeResponse(BaseModel):
|
||||
status: str
|
||||
wallet: str
|
||||
|
||||
|
||||
class SetApiKeyRequest(SignedEnvelope):
|
||||
api_key: str # Hyperliquid API wallet private key (0x...)
|
||||
|
||||
|
||||
class SetApiKeyResponse(BaseModel):
|
||||
status: str
|
||||
masked_key: str # last 6 chars only, e.g. "...a1b2c3"
|
||||
|
||||
|
||||
class UserSettings(BaseModel):
|
||||
leverage: int
|
||||
position_size_usd: float
|
||||
take_profit_pct: Optional[float] = None
|
||||
stop_loss_pct: Optional[float] = None
|
||||
min_confidence: int
|
||||
|
||||
|
||||
class SetSettingsRequest(SignedEnvelope):
|
||||
settings: UserSettings
|
||||
|
||||
|
||||
class UserResponse(BaseModel):
|
||||
wallet_address: str
|
||||
active: bool
|
||||
subscribed_at: Optional[str] = None
|
||||
hl_api_key_set: bool
|
||||
hl_api_key_masked: Optional[str] = None
|
||||
trades: list[BotTrade]
|
||||
settings: UserSettings
|
||||
|
||||
Reference in New Issue
Block a user