use anchor_lang::solana_program::pubkey::PUBKEY_BYTES;
use crate::*;
#[account(zero_copy)]
#[derive(Debug, PartialEq, Eq)]
pub struct LockerHistory {
pub locker: Pubkey,
pub era: u16,
pub bump: u8,
pub _padding: [u8; 5],
pub ve_balances: [u64; 256],
pub ve_counts: [u64; 256],
}
impl Default for LockerHistory {
fn default() -> Self {
Self {
locker: Default::default(),
era: Default::default(),
bump: Default::default(),
_padding: Default::default(),
ve_balances: [0; ERA_NUM_PERIODS],
ve_counts: [0; ERA_NUM_PERIODS],
}
}
}
impl LockerHistory {
pub const LEN: usize = PUBKEY_BYTES + 2 + 1 + 5 + 8 * 256 + 8 * 256;
}
#[account(zero_copy)]
#[derive(Debug, PartialEq, Eq)]
pub struct EscrowHistory {
pub escrow: Pubkey,
pub era: u16,
pub bump: u8,
pub _padding: [u8; 5],
pub ve_balances: [u64; 256],
}
impl Default for EscrowHistory {
fn default() -> Self {
Self {
escrow: Default::default(),
era: Default::default(),
bump: Default::default(),
_padding: Default::default(),
ve_balances: [0; ERA_NUM_PERIODS],
}
}
}
impl EscrowHistory {
pub const LEN: usize = PUBKEY_BYTES + 2 + 1 + 5 + 8 * 256;
}
#[cfg(test)]
mod tests {
use super::*;
use std::mem::size_of;
#[test]
fn test_locker_history_len() {
assert_eq!(size_of::<LockerHistory>(), LockerHistory::LEN);
}
#[test]
fn test_escrow_history_len() {
assert_eq!(size_of::<EscrowHistory>(), EscrowHistory::LEN);
}
}