pub struct ThreadConfig {
pub version: u64,
pub bump: u8,
pub admin: Pubkey,
pub paused: bool,
pub commission_fee: u64,
pub executor_fee_bps: u64,
pub core_team_bps: u64,
pub grace_period_seconds: i64,
pub fee_decay_seconds: i64,
}Expand description
Global configuration for the thread program
Fields§
§version: u64Version for future upgrades
bump: u8Bump seed for PDA
admin: PubkeyAdmin who can update configuration
paused: boolGlobal pause flag for all threads
commission_fee: u64Base commission fee in lamports (when executed on time)
executor_fee_bps: u64Fee percentage for executor (9000 = 90%)
core_team_bps: u64Core team fee percentage (1000 = 10%)
grace_period_seconds: i64Grace period in seconds where full commission applies
fee_decay_seconds: i64Decay period in seconds after grace (commission decays to 0)
Implementations§
Trait Implementations§
Source§impl AccountDeserialize for ThreadConfig
impl AccountDeserialize for ThreadConfig
Source§fn try_deserialize(buf: &mut &[u8]) -> Result<Self>
fn try_deserialize(buf: &mut &[u8]) -> Result<Self>
Deserializes previously initialized account data. Should fail for all
uninitialized accounts, where the bytes are zeroed. Implementations
should be unique to a particular account type so that one can never
successfully deserialize the data of one account type into another.
For example, if the SPL token program were to implement this trait,
it should be impossible to deserialize a
Mint account into a token
Account.Source§fn try_deserialize_unchecked(buf: &mut &[u8]) -> Result<Self>
fn try_deserialize_unchecked(buf: &mut &[u8]) -> Result<Self>
Deserializes account data without checking the account discriminator.
This should only be used on account initialization, when the bytes of
the account are zeroed.
Source§impl AccountSerialize for ThreadConfig
impl AccountSerialize for ThreadConfig
Source§impl BorshDeserialize for ThreadConfig
impl BorshDeserialize for ThreadConfig
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>
Deserializes this instance from a given slice of bytes.
Updates the buffer to point at the remaining bytes.
Source§fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_slice(v: &[u8]) -> Result<Self, Error>
Deserialize this instance from a slice of bytes.
fn try_from_reader<R>(reader: &mut R) -> Result<Self, Error>where
R: Read,
Source§impl BorshSerialize for ThreadConfig
impl BorshSerialize for ThreadConfig
Source§impl Clone for ThreadConfig
impl Clone for ThreadConfig
Source§fn clone(&self) -> ThreadConfig
fn clone(&self) -> ThreadConfig
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl CommissionCalculator for ThreadConfig
impl CommissionCalculator for ThreadConfig
fn calculate_commission_multiplier(&self, time_since_ready: i64) -> f64
fn calculate_effective_commission(&self, time_since_ready: i64) -> u64
fn calculate_executor_fee(&self, effective_commission: u64) -> u64
fn calculate_core_team_fee(&self, effective_commission: u64) -> u64
Source§impl Debug for ThreadConfig
impl Debug for ThreadConfig
Source§impl Discriminator for ThreadConfig
impl Discriminator for ThreadConfig
Source§const DISCRIMINATOR: &'static [u8]
const DISCRIMINATOR: &'static [u8]
Discriminator slice. Read more
Source§impl PaymentProcessor for ThreadConfig
impl PaymentProcessor for ThreadConfig
fn calculate_payments( &self, time_since_ready: i64, balance_change: i64, forgo_commission: bool, ) -> PaymentDetails
fn should_pay(&self, balance_change: i64) -> bool
fn calculate_reimbursement(&self, balance_change: i64) -> u64
Source§impl Space for ThreadConfig
impl Space for ThreadConfig
const INIT_SPACE: usize
Auto Trait Implementations§
impl Freeze for ThreadConfig
impl RefUnwindSafe for ThreadConfig
impl Send for ThreadConfig
impl Sync for ThreadConfig
impl Unpin for ThreadConfig
impl UnsafeUnpin for ThreadConfig
impl UnwindSafe for ThreadConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more