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.
Validations for various accounts.
An Anchor generated module, providing a set of structs
mirroring the structs deriving
Accounts, where each field is
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.
Module representing the program.
Quarry-related math and helpers.
Emitted when reward tokens are claimed.
Triggered when a new miner is created.
Emitted when a new quarry is created.
Emitted when a quarry’s reward rate is updated.
Emitted when the daily rewards rate is updated.
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.
The maximum number of basis points possible.
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