pyaver.data_classes

  1from dataclasses import dataclass
  2from solana.publickey import PublicKey
  3from .enums import MarketStatus, FeeTier
  4
  5@dataclass
  6class MarketState():
  7    """
  8    Market State Object
  9    
 10    Holds particular data for a market
 11    """
 12    market_status: MarketStatus
 13    market_store: PublicKey
 14    market_authority: PublicKey
 15    quote_token_mint: PublicKey
 16    quote_vault: PublicKey
 17    vault_authority: PublicKey
 18    number_of_outcomes: int
 19    number_of_winners: int
 20    decimals: int 
 21    cranker_reward: int 
 22    matched_count: int
 23    prize_balance: int
 24    withdrawable_quote_token_balance: int
 25    winning_outcome: int
 26    permissioned_market_flag: bool
 27    going_in_play_flag: bool
 28    max_quote_tokens_in: int
 29    max_quote_tokens_in_permission_capped: str
 30    outcome_names: list[str]
 31    version: float
 32    number_of_umas: int
 33    vault_bump: int
 34    trading_cease_time: int
 35    aver_accumulated_fees: int
 36    third_party_accumulated_fees: int
 37    open_interest: int
 38    oracle_feed: PublicKey
 39    fee_tier_collection_bps_rates: list[int]
 40    inplay_start_time: int = None
 41   
 42   
 43
 44@dataclass
 45class OrderbookAccountsState():
 46    """
 47    Orderbook Accounts State Object.
 48
 49    Contains public keys for asks, bids, event queue and orderbook
 50    """
 51    asks: PublicKey
 52    bids: PublicKey
 53    event_queue: PublicKey
 54    orderbook: PublicKey
 55
 56
 57@dataclass
 58class MarketStoreState():
 59    """
 60    Market store state object
 61
 62    Does not exist for markets that have a market status of closed, voided or resolved
 63    """
 64    market: PublicKey
 65    orderbook_accounts: list[OrderbookAccountsState]
 66    number_of_outcomes: int
 67    min_orderbook_base_size: int
 68    min_new_order_base_size: int
 69    min_new_order_quote_size: int
 70    version: float
 71    init_counter: float
 72
 73@dataclass
 74class Price():
 75    price: float
 76    size: float
 77
 78@dataclass
 79class OutcomePosition():
 80    free: int
 81    locked: int
 82
 83@dataclass
 84class UmaOrder():
 85    order_id: int
 86    outcome_id: int
 87    base_qty: int
 88
 89@dataclass
 90class UserMarketState():
 91    """
 92    User market state object
 93
 94    Holds data on a particular user for a particular market
 95    """
 96    market: PublicKey
 97    user: PublicKey
 98    number_of_outcomes: int
 99    number_of_orders: int
100    max_number_of_orders: int
101    net_quote_tokens_in: int
102    accumulated_maker_quote_volume: int
103    accumulated_maker_base_volume: int
104    accumulated_taker_quote_volume: int
105    accumulated_taker_base_volume: int
106    outcome_positions: list[OutcomePosition]
107    orders: list[UmaOrder]
108    version: int
109    user_verification_account: PublicKey or None
110    user_host_lifetime: PublicKey
111
112@dataclass
113class ReferrerState():
114    """
115    Referrer state object
116
117    Holds data on a particular referrer
118    """
119    version: int
120    owner: PublicKey
121    host: PublicKey
122    creation_date: int
123    last_balance_update: int
124    last_withdrawal: int
125    last_referral: int
126    number_users_referred: int
127    referrer_revenue_share_collected: int
128    referrer_fee_rate_bps: int
129
130
131@dataclass
132class HostState():
133    """
134    Host state object
135
136    Holds data on a particular host
137    """
138    version: int
139    owner: PublicKey
140    creation_date: int
141    last_withdrawal: int
142    last_balance_update: int
143    host_revenue_share_uncollected: int
144    host_revenue_share_collected: int
145    host_fee_rate_bps: int
146    referrer_fee_rate_offered_bps: int
147    last_referrer_terms_change: int
148
149@dataclass
150class UserHostLifetimeState(): 
151    """
152    User host lifetime state object
153
154    Holds data on a particular user across all markets (for 1 specific host)
155    """
156    version: int
157    user: PublicKey
158    host: PublicKey
159    user_quote_token_ata: PublicKey
160    referrer: PublicKey or None
161    referrer_revenue_share_uncollected: int
162    referral_revenue_share_total_generated: int
163    referrer_fee_rate_bps: int
164    last_fee_tier_check: FeeTier
165    is_self_excluded_until: bool or None
166    creation_date: int
167    last_balance_update: int
168    total_markets_traded: int
169    total_quote_volume_traded: int
170    total_base_volume_traded: int
171    total_fees_paid: int
172    cumulative_pnl: int
173    cumulative_invest: int
174    display_name: str or None
175    nft_pfp: PublicKey or None
176
177@dataclass
178class SlabOrder(): 
179  id: bytes
180  price: int
181  price_ui: float
182  base_quantity: int
183  base_quantity_ui: float
184  user_market: PublicKey
185  fee_tier: int
186
187@dataclass
188class UserBalanceState():
189    lamport_balance: int
190    token_balance: int
@dataclass
class MarketState:
 6@dataclass
 7class MarketState():
 8    """
 9    Market State Object
10    
11    Holds particular data for a market
12    """
13    market_status: MarketStatus
14    market_store: PublicKey
15    market_authority: PublicKey
16    quote_token_mint: PublicKey
17    quote_vault: PublicKey
18    vault_authority: PublicKey
19    number_of_outcomes: int
20    number_of_winners: int
21    decimals: int 
22    cranker_reward: int 
23    matched_count: int
24    prize_balance: int
25    withdrawable_quote_token_balance: int
26    winning_outcome: int
27    permissioned_market_flag: bool
28    going_in_play_flag: bool
29    max_quote_tokens_in: int
30    max_quote_tokens_in_permission_capped: str
31    outcome_names: list[str]
32    version: float
33    number_of_umas: int
34    vault_bump: int
35    trading_cease_time: int
36    aver_accumulated_fees: int
37    third_party_accumulated_fees: int
38    open_interest: int
39    oracle_feed: PublicKey
40    fee_tier_collection_bps_rates: list[int]
41    inplay_start_time: int = None

Market State Object

Holds particular data for a market

MarketState( market_status: pyaver.enums.MarketStatus, market_store: solana.publickey.PublicKey, market_authority: solana.publickey.PublicKey, quote_token_mint: solana.publickey.PublicKey, quote_vault: solana.publickey.PublicKey, vault_authority: solana.publickey.PublicKey, number_of_outcomes: int, number_of_winners: int, decimals: int, cranker_reward: int, matched_count: int, prize_balance: int, withdrawable_quote_token_balance: int, winning_outcome: int, permissioned_market_flag: bool, going_in_play_flag: bool, max_quote_tokens_in: int, max_quote_tokens_in_permission_capped: str, outcome_names: list[str], version: float, number_of_umas: int, vault_bump: int, trading_cease_time: int, aver_accumulated_fees: int, third_party_accumulated_fees: int, open_interest: int, oracle_feed: solana.publickey.PublicKey, fee_tier_collection_bps_rates: list[int], inplay_start_time: int = None)
inplay_start_time: int = None
@dataclass
class OrderbookAccountsState:
45@dataclass
46class OrderbookAccountsState():
47    """
48    Orderbook Accounts State Object.
49
50    Contains public keys for asks, bids, event queue and orderbook
51    """
52    asks: PublicKey
53    bids: PublicKey
54    event_queue: PublicKey
55    orderbook: PublicKey

Orderbook Accounts State Object.

Contains public keys for asks, bids, event queue and orderbook

OrderbookAccountsState( asks: solana.publickey.PublicKey, bids: solana.publickey.PublicKey, event_queue: solana.publickey.PublicKey, orderbook: solana.publickey.PublicKey)
@dataclass
class MarketStoreState:
58@dataclass
59class MarketStoreState():
60    """
61    Market store state object
62
63    Does not exist for markets that have a market status of closed, voided or resolved
64    """
65    market: PublicKey
66    orderbook_accounts: list[OrderbookAccountsState]
67    number_of_outcomes: int
68    min_orderbook_base_size: int
69    min_new_order_base_size: int
70    min_new_order_quote_size: int
71    version: float
72    init_counter: float

Market store state object

Does not exist for markets that have a market status of closed, voided or resolved

MarketStoreState( market: solana.publickey.PublicKey, orderbook_accounts: list[pyaver.data_classes.OrderbookAccountsState], number_of_outcomes: int, min_orderbook_base_size: int, min_new_order_base_size: int, min_new_order_quote_size: int, version: float, init_counter: float)
@dataclass
class Price:
74@dataclass
75class Price():
76    price: float
77    size: float

Price(price: float, size: float)

Price(price: float, size: float)
@dataclass
class OutcomePosition:
79@dataclass
80class OutcomePosition():
81    free: int
82    locked: int

OutcomePosition(free: int, locked: int)

OutcomePosition(free: int, locked: int)
@dataclass
class UmaOrder:
84@dataclass
85class UmaOrder():
86    order_id: int
87    outcome_id: int
88    base_qty: int

UmaOrder(order_id: int, outcome_id: int, base_qty: int)

UmaOrder(order_id: int, outcome_id: int, base_qty: int)
@dataclass
class UserMarketState:
 90@dataclass
 91class UserMarketState():
 92    """
 93    User market state object
 94
 95    Holds data on a particular user for a particular market
 96    """
 97    market: PublicKey
 98    user: PublicKey
 99    number_of_outcomes: int
100    number_of_orders: int
101    max_number_of_orders: int
102    net_quote_tokens_in: int
103    accumulated_maker_quote_volume: int
104    accumulated_maker_base_volume: int
105    accumulated_taker_quote_volume: int
106    accumulated_taker_base_volume: int
107    outcome_positions: list[OutcomePosition]
108    orders: list[UmaOrder]
109    version: int
110    user_verification_account: PublicKey or None
111    user_host_lifetime: PublicKey

User market state object

Holds data on a particular user for a particular market

UserMarketState( market: solana.publickey.PublicKey, user: solana.publickey.PublicKey, number_of_outcomes: int, number_of_orders: int, max_number_of_orders: int, net_quote_tokens_in: int, accumulated_maker_quote_volume: int, accumulated_maker_base_volume: int, accumulated_taker_quote_volume: int, accumulated_taker_base_volume: int, outcome_positions: list[pyaver.data_classes.OutcomePosition], orders: list[pyaver.data_classes.UmaOrder], version: int, user_verification_account: solana.publickey.PublicKey, user_host_lifetime: solana.publickey.PublicKey)
@dataclass
class ReferrerState:
113@dataclass
114class ReferrerState():
115    """
116    Referrer state object
117
118    Holds data on a particular referrer
119    """
120    version: int
121    owner: PublicKey
122    host: PublicKey
123    creation_date: int
124    last_balance_update: int
125    last_withdrawal: int
126    last_referral: int
127    number_users_referred: int
128    referrer_revenue_share_collected: int
129    referrer_fee_rate_bps: int

Referrer state object

Holds data on a particular referrer

ReferrerState( version: int, owner: solana.publickey.PublicKey, host: solana.publickey.PublicKey, creation_date: int, last_balance_update: int, last_withdrawal: int, last_referral: int, number_users_referred: int, referrer_revenue_share_collected: int, referrer_fee_rate_bps: int)
@dataclass
class HostState:
132@dataclass
133class HostState():
134    """
135    Host state object
136
137    Holds data on a particular host
138    """
139    version: int
140    owner: PublicKey
141    creation_date: int
142    last_withdrawal: int
143    last_balance_update: int
144    host_revenue_share_uncollected: int
145    host_revenue_share_collected: int
146    host_fee_rate_bps: int
147    referrer_fee_rate_offered_bps: int
148    last_referrer_terms_change: int

Host state object

Holds data on a particular host

HostState( version: int, owner: solana.publickey.PublicKey, creation_date: int, last_withdrawal: int, last_balance_update: int, host_revenue_share_uncollected: int, host_revenue_share_collected: int, host_fee_rate_bps: int, referrer_fee_rate_offered_bps: int, last_referrer_terms_change: int)
@dataclass
class UserHostLifetimeState:
150@dataclass
151class UserHostLifetimeState(): 
152    """
153    User host lifetime state object
154
155    Holds data on a particular user across all markets (for 1 specific host)
156    """
157    version: int
158    user: PublicKey
159    host: PublicKey
160    user_quote_token_ata: PublicKey
161    referrer: PublicKey or None
162    referrer_revenue_share_uncollected: int
163    referral_revenue_share_total_generated: int
164    referrer_fee_rate_bps: int
165    last_fee_tier_check: FeeTier
166    is_self_excluded_until: bool or None
167    creation_date: int
168    last_balance_update: int
169    total_markets_traded: int
170    total_quote_volume_traded: int
171    total_base_volume_traded: int
172    total_fees_paid: int
173    cumulative_pnl: int
174    cumulative_invest: int
175    display_name: str or None
176    nft_pfp: PublicKey or None

User host lifetime state object

Holds data on a particular user across all markets (for 1 specific host)

UserHostLifetimeState( version: int, user: solana.publickey.PublicKey, host: solana.publickey.PublicKey, user_quote_token_ata: solana.publickey.PublicKey, referrer: solana.publickey.PublicKey, referrer_revenue_share_uncollected: int, referral_revenue_share_total_generated: int, referrer_fee_rate_bps: int, last_fee_tier_check: pyaver.enums.FeeTier, is_self_excluded_until: bool, creation_date: int, last_balance_update: int, total_markets_traded: int, total_quote_volume_traded: int, total_base_volume_traded: int, total_fees_paid: int, cumulative_pnl: int, cumulative_invest: int, display_name: str, nft_pfp: solana.publickey.PublicKey)
@dataclass
class SlabOrder:
178@dataclass
179class SlabOrder(): 
180  id: bytes
181  price: int
182  price_ui: float
183  base_quantity: int
184  base_quantity_ui: float
185  user_market: PublicKey
186  fee_tier: int

SlabOrder(id: bytes, price: int, price_ui: float, base_quantity: int, base_quantity_ui: float, user_market: solana.publickey.PublicKey, fee_tier: int)

SlabOrder( id: bytes, price: int, price_ui: float, base_quantity: int, base_quantity_ui: float, user_market: solana.publickey.PublicKey, fee_tier: int)
@dataclass
class UserBalanceState:
188@dataclass
189class UserBalanceState():
190    lamport_balance: int
191    token_balance: int

UserBalanceState(lamport_balance: int, token_balance: int)

UserBalanceState(lamport_balance: int, token_balance: int)