simple_voter/
state.rs

1use anchor_lang::{prelude::*, solana_program::pubkey::PUBKEY_BYTES};
2
3#[account]
4#[derive(Copy, Debug, Default)]
5pub struct Electorate {
6    /// TODO(michael): Docs
7    pub bump: u8,
8    /// TODO(michael): Docs
9    pub base: Pubkey,
10    /// TODO(michael): Docs
11    pub governor: Pubkey,
12    /// TODO(michael): Docs
13    pub gov_token_mint: Pubkey,
14    /// The number of votes required in order for a voter to activate a proposal
15    pub proposal_threshold: u64,
16}
17
18impl Electorate {
19    pub const LEN: usize = 1 + PUBKEY_BYTES * 3 + 8;
20}
21
22#[account]
23#[derive(Copy, Debug, Default)]
24pub struct TokenRecord {
25    /// TODO(michael): Docs
26    pub bump: u8,
27    /// TODO(michael): Docs
28    pub authority: Pubkey,
29    /// TODO(michael): Docs
30    pub electorate: Pubkey,
31    /// TODO(michael): Docs
32    pub token_vault_key: Pubkey,
33    /// TODO(michael): Docs
34    pub balance: u64,
35    /// TODO(michael): Docs
36    pub unfinalized_votes: u64,
37}
38
39impl TokenRecord {
40    pub const LEN: usize = 1 + PUBKEY_BYTES * 3 + 8 + 8;
41}