Struct quarry_merge_mine::state::MergeMiner [−][src]
pub struct MergeMiner {
pub pool: Pubkey,
pub owner: Pubkey,
pub bump: u8,
pub index: u64,
pub primary_balance: u64,
pub replica_balance: u64,
}
Expand description
Enables mining multiple quarry_mine::Quarrys simultaneously with only one deposit.
To derive the address, use the following code:
&[
b"MergeMiner" as &[u8],
&$mm.pool.key().to_bytes(),
&$mm.owner.to_bytes(),
&[$mm.bump],
]
Fields
pool: Pubkey
MergePool to mint against.
owner: Pubkey
Owner of the MergeMiner.
bump: u8
Bump seed.
index: u64
The index of the MergeMiner within the MergePool.
primary_balance: u64
Amount of tokens staked into the primary quarry.
replica_balance: u64
Amount of replica tokens that have been issued to this MergeMiner. Primary tokens may only be withdrawn if MergeMiner::primary_balance == 0 and MergeMiner::replica_balance == 0.
Implementations
Initializes a quarry_mine::Miner for the MergeMiner.
pub fn stake_max_primary_miner(
&self,
stake: &QuarryStakePrimary<'_>
) -> Result<u64, ProgramError>
pub fn stake_max_primary_miner(
&self,
stake: &QuarryStakePrimary<'_>
) -> Result<u64, ProgramError>
Stakes all available primary tokens owned by the MergeMiner into the primary miner. Returns the number of tokens deposited.
pub fn stake_max_replica_miner(
&self,
stake: &QuarryStakeReplica<'_>
) -> Result<u64, ProgramError>
pub fn stake_max_replica_miner(
&self,
stake: &QuarryStakeReplica<'_>
) -> Result<u64, ProgramError>
Mints the maximum number of replica tokens for the crate::MergeMiner, staking them into a quarry_mine::Miner.
pub fn unstake_primary_miner(
&self,
stake: &QuarryStakePrimary<'_>,
amount: u64
) -> ProgramResult
pub fn unstake_primary_miner(
&self,
stake: &QuarryStakePrimary<'_>,
amount: u64
) -> ProgramResult
Unstakes from the primary miner.
pub fn unstake_all_and_burn_replica_miner(
&self,
stake: &QuarryStakeReplica<'_>
) -> Result<u64, ProgramError>
pub fn unstake_all_and_burn_replica_miner(
&self,
stake: &QuarryStakeReplica<'_>
) -> Result<u64, ProgramError>
Unstake tokens from a replica quarry_mine::Miner and burns the replica tokens.
pub fn withdraw_tokens(
&self,
withdraw: &WithdrawTokens<'_>
) -> Result<WithdrawTokensEvent, ProgramError>
pub fn withdraw_tokens(
&self,
withdraw: &WithdrawTokens<'_>
) -> Result<WithdrawTokensEvent, ProgramError>
Withdraws tokens from the MergeMiner.
Claims quarry_mine rewards as the MergeMiner.
Trait Implementations
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 where to implement this trait,
it should impossible to deserialize a Mint
account into a token
Account
. Read more
Deserializes account data without checking the account discriminator. This should only be used on account initialization, when the bytes of the account are zeroed. Read more
Serializes the account data into writer
.
Returns the “default value” for a type. Read more
Auto Trait Implementations
impl RefUnwindSafe for MergeMiner
impl Send for MergeMiner
impl Sync for MergeMiner
impl Unpin for MergeMiner
impl UnwindSafe for MergeMiner
Blanket Implementations
pub default fn example() -> T
Mutably borrows from an owned value. Read more