Struct quarry_mine::Miner
source · [−]pub struct Miner {
pub quarry_key: Pubkey,
pub authority: Pubkey,
pub bump: u8,
pub token_vault_key: Pubkey,
pub rewards_earned: u64,
pub rewards_per_token_paid: u128,
pub balance: u64,
pub index: u64,
}
Expand description
An account that has staked tokens into a Quarry.
Fields
quarry_key: Pubkey
Authority who manages this Miner. All withdrawals of tokens must accrue to TokenAccounts owned by this account.
bump: u8
Bump.
token_vault_key: Pubkey
TokenAccount to hold the Miner’s staked LP tokens.
rewards_earned: u64
Stores the amount of tokens that the Miner may claim. Whenever the Miner claims tokens, this is reset to 0.
rewards_per_token_paid: u128
A checkpoint of the Quarry’s reward tokens paid per staked token.
When the Miner is initialized, this number starts at 0. On the first quarry_mine::stake_tokens, the Quarry#update_rewards_and_miner method is called, which updates this checkpoint to the current quarry value.
On a quarry_mine::claim_rewards, the difference in checkpoints is used to calculate the amount of tokens owed.
balance: u64
Number of tokens the Miner holds.
index: u64
Index of the Miner.
Implementations
Trait Implementations
sourceimpl AccountDeserialize for Miner
impl AccountDeserialize for Miner
sourcefn 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
. Read more
sourceimpl AccountSerialize for Miner
impl AccountSerialize for Miner
sourceimpl BorshDeserialize for Miner where
Pubkey: BorshDeserialize,
Pubkey: BorshDeserialize,
u8: BorshDeserialize,
Pubkey: BorshDeserialize,
u64: BorshDeserialize,
u128: BorshDeserialize,
u64: BorshDeserialize,
u64: BorshDeserialize,
impl BorshDeserialize for Miner where
Pubkey: BorshDeserialize,
Pubkey: BorshDeserialize,
u8: BorshDeserialize,
Pubkey: BorshDeserialize,
u64: BorshDeserialize,
u128: BorshDeserialize,
u64: BorshDeserialize,
u64: BorshDeserialize,
sourceimpl BorshSerialize for Miner where
Pubkey: BorshSerialize,
Pubkey: BorshSerialize,
u8: BorshSerialize,
Pubkey: BorshSerialize,
u64: BorshSerialize,
u128: BorshSerialize,
u64: BorshSerialize,
u64: BorshSerialize,
impl BorshSerialize for Miner where
Pubkey: BorshSerialize,
Pubkey: BorshSerialize,
u8: BorshSerialize,
Pubkey: BorshSerialize,
u64: BorshSerialize,
u128: BorshSerialize,
u64: BorshSerialize,
u64: BorshSerialize,
sourceimpl Discriminator for Miner
impl Discriminator for Miner
fn discriminator() -> [u8; 8]
impl Copy for Miner
Auto Trait Implementations
impl RefUnwindSafe for Miner
impl Send for Miner
impl Sync for Miner
impl Unpin for Miner
impl UnwindSafe for Miner
Blanket Implementations
impl<T> AbiExample for T
impl<T> AbiExample for T
default fn example() -> T
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more