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],
]

Deposits and withdrawals happen in token accounts owned by the MergeMiner. These accounts do not need to be ATAs; however, ATAs make the accounts easier to locate on the frontend.

The accounts serve as intermediate staging accounts for the merge miner: they are not staked and only exist to facilitate the merge miner’s operations.

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.

Stakes all available primary tokens owned by the MergeMiner into the primary miner. Returns the number of tokens deposited.

Mints the maximum number of replica tokens for the crate::MergeMiner, staking them into a quarry_mine::Miner.

Unstakes from the primary miner.

Unstake tokens from a replica quarry_mine::Miner and burns the replica tokens.

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 were to implement this trait, it should be 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.

Deserializes this instance from a given slice of bytes. Updates the buffer to point at the remaining bytes. Read more

Deserialize this instance from a slice of bytes.

Serialize this instance into a vector of bytes.

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The alignment of pointer.

The type for initializers.

Initializes a with the given initializer. Read more

Dereferences the given pointer. Read more

Mutably dereferences the given pointer. Read more

Drops the object pointed to by the given pointer. Read more

Should always be Self

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.