Expand description

Liquidity mining rewards distribution program.

The program consists of three types of accounts:

  • Rewarder, which controls token rewards distribution
  • Quarry, which receive rewards, and
  • Miner, which stake tokens into Quarrys to receive rewards.

This program is modeled after Synthetix’s StakingRewards.sol.

Modules

Validations for various accounts.

An Anchor generated module, providing a set of structs mirroring the structs deriving Accounts, where each field is a Pubkey. This is useful for specifying accounts for a client.

Contains addresses used for the Quarry program. These addresses are updated via program upgrades.

An Anchor generated module containing the program’s set of instructions, where each method handler in the #[program] mod is associated with a struct defining the input arguments to the method. These should be used directly, when one wants to serialize Anchor instruction data, for example, when speciying instructions on a client.

Calculates token distribution rates.

Quarry-related math and helpers.

Rewarder utilities.

Macros

Generates the signer seeds for a crate::Rewarder.

Structs

Emitted when reward tokens are claimed.

ClaimRewards accounts

An account that has staked tokens into a Quarry.

Triggered when a new miner is created.

Mutable Rewarder that requires the authority to be a signer.

A pool which distributes tokens to its Miners.

Triggered when a new quarry is created.

Triggered when a quarry’s reward share is updated.

Read-only Rewarder that requires the authority to be a signer.

Controls token rewards distribution to all Quarrys. The Rewarder is also the quarry_mint_wrapper::Minter registered to the quarry_mint_wrapper::MintWrapper.

Triggered when the daily rewards rate is updated.

Emitted when tokens are staked into a Quarry.

Claim accounts

Staking accounts

Emitted when tokens are withdrawn from a Quarry.

Enums

Constants

The fees of new Rewarders: 1,000 milliBPS = 1 BP or 0.01%. This may be changed by governance in the future via program upgrade.

Maximum number of tokens that can be rewarded by a Rewarder per year.

The maximum number of basis points possible.

Statics

The static program ID

Functions

Confirms that a given pubkey is equivalent to the program ID

The Anchor codegen exposes a programming model where a user defines a set of methods inside of a #[program] module in a way similar to writing RPC request handlers. The macro then generates a bunch of code wrapping these user defined methods into something that can be executed on Solana.

Returns the program ID

Type Definitions

Anchor generated Result to be used as the return type for the program.