-
Notifications
You must be signed in to change notification settings - Fork 5
/
schemas.py
58 lines (49 loc) · 1.11 KB
/
schemas.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# schemas.py
from pydantic import BaseModel
from typing import Optional
from enum import Enum
class TokenBase(BaseModel):
asset_id: str
pair_id: str
name: str
short_name: str
image_url: Optional[str] = None
verified: bool
class Token(TokenBase):
class Config:
orm_mode = True
class PairBase(BaseModel):
launcher_id: str
asset_id: str
liquidity_asset_id: str
xch_reserve: int
token_reserve: int
liquidity: int
last_coin_id_on_chain: str
class Pair(PairBase):
class Config:
orm_mode = True
class RouterBase(BaseModel):
launcher_id: str
current_id: str
network: str
class Router(RouterBase):
class Config:
orm_mode = True
class Quote(BaseModel):
amount_in: int
amount_out: int
price_warning: bool
price_impact: float
fee: Optional[int]
asset_id: str
input_reserve: int
output_reserve: int
class OfferResponse(BaseModel):
success: bool
message: str
offer_id: str
class ActionType(Enum):
SWAP = "SWAP"
ADD_LIQUIDITY = "ADD_LIQUIDITY"
REMOVE_LIQUIDITY = "REMOVE_LIQUIDITY"