2022-02-10 01:04:47 -08:00
|
|
|
use anchor_lang::prelude::*;
|
2022-03-31 05:37:05 -07:00
|
|
|
use static_assertions::const_assert_eq;
|
|
|
|
use std::mem::size_of;
|
2022-02-10 01:04:47 -08:00
|
|
|
|
2022-02-22 00:32:21 -08:00
|
|
|
// TODO: Assuming we allow up to 65536 different tokens
|
|
|
|
pub type TokenIndex = u16;
|
|
|
|
|
2022-03-07 07:16:34 -08:00
|
|
|
// TODO: Should we call this `Group` instead of `Group`? And `Account` instead of `MangoAccount`?
|
2022-02-22 00:32:21 -08:00
|
|
|
#[account(zero_copy)]
|
2022-03-07 07:16:34 -08:00
|
|
|
pub struct Group {
|
2022-02-22 00:32:21 -08:00
|
|
|
// Relying on Anchor's discriminator be sufficient for our versioning needs?
|
|
|
|
// pub meta_data: MetaData,
|
2022-02-23 01:19:54 -08:00
|
|
|
pub admin: Pubkey,
|
2022-02-22 00:32:21 -08:00
|
|
|
|
2022-02-25 06:14:15 -08:00
|
|
|
pub bump: u8,
|
2022-03-31 05:37:05 -07:00
|
|
|
pub reserved: [u8; 7],
|
2022-02-10 00:07:34 -08:00
|
|
|
}
|
2022-03-31 05:37:05 -07:00
|
|
|
const_assert_eq!(size_of::<Group>(), 40);
|
|
|
|
const_assert_eq!(size_of::<Group>() % 8, 0);
|
2022-02-25 06:14:15 -08:00
|
|
|
|
|
|
|
#[macro_export]
|
|
|
|
macro_rules! group_seeds {
|
|
|
|
( $group:expr ) => {
|
2022-03-14 05:39:54 -07:00
|
|
|
&[b"Group".as_ref(), $group.admin.as_ref(), &[$group.bump]]
|
2022-02-25 06:14:15 -08:00
|
|
|
};
|
|
|
|
}
|
2022-02-28 02:18:35 -08:00
|
|
|
|
|
|
|
pub use group_seeds;
|