Expand description
Epoch rewards for current epoch
The epoch rewards sysvar provides access to the EpochRewards
type,
which tracks whether the rewards period (including calculation and
distribution) is in progress, as well as the details needed to resume
distribution when starting from a snapshot during the rewards period. The
sysvar is repopulated at the start of the first block of each epoch.
Therefore, the sysvar contains data about the current epoch until a new
epoch begins. Fields in the sysvar include:
- distribution starting block height
- the number of partitions in the distribution
- the parent-blockhash seed used to generate the partition hasher
- the total rewards points calculated for the epoch
- total rewards for epoch, in lamports
- rewards for the epoch distributed so far, in lamports
- whether the rewards period is active
EpochRewards
implements Sysvar::get
and can be loaded efficiently without
passing the sysvar account ID to the program.
See also the Solana documentation on the epoch rewards sysvar.
§Examples
Accessing via on-chain program directly:
fn process_instruction(
program_id: &Pubkey,
accounts: &[AccountInfo],
instruction_data: &[u8],
) -> ProgramResult {
let epoch_rewards = EpochRewards::get()?;
msg!("epoch_rewards: {:#?}", epoch_rewards);
Ok(())
}
Accessing via on-chain program’s account parameters:
fn process_instruction(
program_id: &Pubkey,
accounts: &[AccountInfo],
instruction_data: &[u8],
) -> ProgramResult {
let account_info_iter = &mut accounts.iter();
let epoch_rewards_account_info = next_account_info(account_info_iter)?;
assert!(epoch_rewards::check_id(epoch_rewards_account_info.key));
let epoch_rewards = EpochRewards::from_account_info(epoch_rewards_account_info)?;
msg!("epoch_rewards: {:#?}", epoch_rewards);
Ok(())
}
Accessing via the RPC client:
fn print_sysvar_epoch_rewards(client: &RpcClient) -> Result<()> {
let epoch_rewards = client.get_account(&epoch_rewards::ID)?;
let data: EpochRewards = bincode::deserialize(&epoch_rewards.data)?;
Ok(())
}
Structs§
Constants§
- The const program ID.
Functions§
- Returns
true
if given pubkey is the program ID. - Returns the program ID.