pub struct VoterWeightRecord {
pub account_discriminator: [u8; 8],
pub realm: Pubkey,
pub governing_token_mint: Pubkey,
pub governing_token_owner: Pubkey,
pub voter_weight: u64,
pub voter_weight_expiry: Option<Slot>,
pub weight_action: Option<VoterWeightAction>,
pub weight_action_target: Option<Pubkey>,
pub reserved: [u8; 8],
}
Expand description
VoterWeightRecord account The account is used as an api interface to provide voting power to the governance program from external addin contracts
Fields§
§account_discriminator: [u8; 8]
VoterWeightRecord discriminator sha256(“account:VoterWeightRecord”)[..8] Note: The discriminator size must match the addin implementing program discriminator size to ensure it’s stored in the private space of the account data and it’s unique
realm: Pubkey
The Realm the VoterWeightRecord belongs to
governing_token_mint: Pubkey
Governing Token Mint the VoterWeightRecord is associated with Note: The addin can take deposits of any tokens and is not restricted to the community or council tokens only
governing_token_owner: Pubkey
The owner of the governing token and voter This is the actual owner (voter) and corresponds to TokenOwnerRecord.governing_token_owner
voter_weight: u64
Voter’s weight The weight of the voter provided by the addin for the given realm, governing_token_mint and governing_token_owner (voter)
voter_weight_expiry: Option<Slot>
The slot when the voting weight expires It should be set to None if the weight never expires If the voter weight decays with time, for example for time locked based weights, then the expiry must be set. As a common pattern Revise instruction to update the weight should be invoked before governance instruction within the same transaction and the expiry set to the current slot to provide up to date weight
weight_action: Option<VoterWeightAction>
The governance action the voter’s weight pertains to It allows to provided voter’s weight specific to the particular action the weight is evaluated for. When the action is provided then the governance program asserts the executing action is the same as specified by the addin
weight_action_target: Option<Pubkey>
The target the voter’s weight action pertains to It allows to provided voter’s weight specific to the target the weight is evaluated for. For example when addin supplies weight to vote on a particular proposal then it must specify the proposal as the action target. When the target is provided then the governance program asserts the target is the same as specified by the addin
reserved: [u8; 8]
Reserved space for future versions
Implementations§
source§impl VoterWeightRecord
impl VoterWeightRecord
sourcepub const ACCOUNT_DISCRIMINATOR: [u8; 8] = _
pub const ACCOUNT_DISCRIMINATOR: [u8; 8] = _
sha256(“account:VoterWeightRecord”)[..8]
Trait Implementations§
source§impl AccountMaxSize for VoterWeightRecord
impl AccountMaxSize for VoterWeightRecord
source§fn get_max_size(&self) -> Option<usize>
fn get_max_size(&self) -> Option<usize>
source§impl BorshDeserialize for VoterWeightRecordwhere
[u8; 8]: BorshDeserialize,
Pubkey: BorshDeserialize,
u64: BorshDeserialize,
Option<Slot>: BorshDeserialize,
Option<VoterWeightAction>: BorshDeserialize,
Option<Pubkey>: BorshDeserialize,
impl BorshDeserialize for VoterWeightRecordwhere
[u8; 8]: BorshDeserialize,
Pubkey: BorshDeserialize,
u64: BorshDeserialize,
Option<Slot>: BorshDeserialize,
Option<VoterWeightAction>: BorshDeserialize,
Option<Pubkey>: BorshDeserialize,
fn deserialize_reader<R: Read>(reader: &mut R) -> Result<Self, Error>
source§fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
source§fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_reader<R>(reader: &mut R) -> Result<Self, Error>where
R: Read,
source§impl BorshSchema for VoterWeightRecordwhere
[u8; 8]: BorshSchema,
Pubkey: BorshSchema,
u64: BorshSchema,
Option<Slot>: BorshSchema,
Option<VoterWeightAction>: BorshSchema,
Option<Pubkey>: BorshSchema,
impl BorshSchema for VoterWeightRecordwhere
[u8; 8]: BorshSchema,
Pubkey: BorshSchema,
u64: BorshSchema,
Option<Slot>: BorshSchema,
Option<VoterWeightAction>: BorshSchema,
Option<Pubkey>: BorshSchema,
source§fn declaration() -> Declaration
fn declaration() -> Declaration
source§fn add_definitions_recursively(
definitions: &mut HashMap<Declaration, Definition>
)
fn add_definitions_recursively( definitions: &mut HashMap<Declaration, Definition> )
source§fn add_definition(
declaration: String,
definition: Definition,
definitions: &mut HashMap<String, Definition>
)
fn add_definition( declaration: String, definition: Definition, definitions: &mut HashMap<String, Definition> )
fn schema_container() -> BorshSchemaContainer
source§impl BorshSerialize for VoterWeightRecordwhere
[u8; 8]: BorshSerialize,
Pubkey: BorshSerialize,
u64: BorshSerialize,
Option<Slot>: BorshSerialize,
Option<VoterWeightAction>: BorshSerialize,
Option<Pubkey>: BorshSerialize,
impl BorshSerialize for VoterWeightRecordwhere
[u8; 8]: BorshSerialize,
Pubkey: BorshSerialize,
u64: BorshSerialize,
Option<Slot>: BorshSerialize,
Option<VoterWeightAction>: BorshSerialize,
Option<Pubkey>: BorshSerialize,
source§impl Clone for VoterWeightRecord
impl Clone for VoterWeightRecord
source§fn clone(&self) -> VoterWeightRecord
fn clone(&self) -> VoterWeightRecord
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for VoterWeightRecord
impl Debug for VoterWeightRecord
source§impl IsInitialized for VoterWeightRecord
impl IsInitialized for VoterWeightRecord
source§fn is_initialized(&self) -> bool
fn is_initialized(&self) -> bool
source§impl PartialEq for VoterWeightRecord
impl PartialEq for VoterWeightRecord
source§fn eq(&self, other: &VoterWeightRecord) -> bool
fn eq(&self, other: &VoterWeightRecord) -> bool
self
and other
values to be equal, and is used
by ==
.