1use bytemuck::{Pod, Zeroable};
2use shank::ShankAccount;
3use solana_program::pubkey::Pubkey;
4
5use crate::{
6 impl_account_from_bytes, impl_to_bytes,
7 state::Hash,
8 utils::{AccountDiscriminator, Discriminator},
9};
10
11#[repr(C)]
14#[derive(Clone, Copy, Debug, PartialEq, Pod, ShankAccount, Zeroable)]
15pub struct Proof {
16 pub authority: Pubkey,
18
19 pub claimable_rewards: u64,
21
22 pub hash: Hash,
24
25 pub total_hashes: u64,
27
28 pub total_rewards: u64,
30}
31
32impl Discriminator for Proof {
33 fn discriminator() -> AccountDiscriminator {
34 AccountDiscriminator::Proof
35 }
36}
37
38impl_to_bytes!(Proof);
39impl_account_from_bytes!(Proof);