diff --git a/programs/amm/src/instructions/create_amm.rs b/programs/amm/src/instructions/create_amm.rs index ca99c8319..7e4208ce6 100644 --- a/programs/amm/src/instructions/create_amm.rs +++ b/programs/amm/src/instructions/create_amm.rs @@ -23,7 +23,7 @@ pub struct CreateAmm<'info> { #[account( init, payer = user, - space = 8 + std::mem::size_of::(), + space = 8 + Amm::INIT_SPACE, seeds = [ AMM_SEED_PREFIX, base_mint.key().as_ref(), diff --git a/programs/amm/src/state/amm.rs b/programs/amm/src/state/amm.rs index 2955db869..a7305992c 100644 --- a/programs/amm/src/state/amm.rs +++ b/programs/amm/src/state/amm.rs @@ -13,7 +13,7 @@ pub enum SwapType { Sell, } -#[derive(Default, Clone, Copy, Debug, AnchorDeserialize, AnchorSerialize)] +#[derive(Default, Clone, Copy, Debug, AnchorDeserialize, AnchorSerialize, InitSpace)] pub struct TwapOracle { pub last_updated_slot: u64, /// A price is the number of quote units per base unit multiplied by 1e12. @@ -68,7 +68,7 @@ impl TwapOracle { } #[account] -#[derive(Default)] +#[derive(Default, InitSpace)] pub struct Amm { pub bump: u8, diff --git a/programs/autocrat/src/instructions/initialize_dao.rs b/programs/autocrat/src/instructions/initialize_dao.rs index d7452ff63..ae741733f 100644 --- a/programs/autocrat/src/instructions/initialize_dao.rs +++ b/programs/autocrat/src/instructions/initialize_dao.rs @@ -17,7 +17,7 @@ pub struct InitializeDao<'info> { #[account( init, payer = payer, - space = 8 + std::mem::size_of::() + space = 8 + Dao::INIT_SPACE, )] pub dao: Account<'info, Dao>, #[account(mut)] diff --git a/programs/autocrat/src/state/dao.rs b/programs/autocrat/src/state/dao.rs index 48e745995..6879867d2 100644 --- a/programs/autocrat/src/state/dao.rs +++ b/programs/autocrat/src/state/dao.rs @@ -1,6 +1,7 @@ pub use super::*; #[account] +#[derive(InitSpace)] pub struct Dao { pub treasury_pda_bump: u8, pub treasury: Pubkey, @@ -38,4 +39,4 @@ pub struct Dao { pub min_quote_futarchic_liquidity: u64, pub min_base_futarchic_liquidity: u64, pub seq_num: u64, -} +} \ No newline at end of file diff --git a/programs/conditional_vault/src/instructions/initialize_conditional_vault.rs b/programs/conditional_vault/src/instructions/initialize_conditional_vault.rs index 325ba5b6b..526ed0b6b 100644 --- a/programs/conditional_vault/src/instructions/initialize_conditional_vault.rs +++ b/programs/conditional_vault/src/instructions/initialize_conditional_vault.rs @@ -9,7 +9,7 @@ pub struct InitializeConditionalVault<'info> { #[account( init, payer = payer, - space = 8 + std::mem::size_of::() + (32 * question.num_outcomes()), + space = 8 + ConditionalVault::INIT_SPACE + (32 * question.num_outcomes()), seeds = [ b"conditional_vault", question.key().as_ref(), diff --git a/programs/conditional_vault/src/instructions/initialize_question.rs b/programs/conditional_vault/src/instructions/initialize_question.rs index 43cc23a1c..8331f7e2b 100644 --- a/programs/conditional_vault/src/instructions/initialize_question.rs +++ b/programs/conditional_vault/src/instructions/initialize_question.rs @@ -14,7 +14,7 @@ pub struct InitializeQuestion<'info> { #[account( init, payer = payer, - space = 8 + 32 + 32 + 1 + 4 + (args.num_outcomes as usize * 4) + 4, + space = 8 + Question::INIT_SPACE + (args.num_outcomes as usize * 4), seeds = [ b"question", args.question_id.as_ref(), diff --git a/programs/conditional_vault/src/state/conditional_vault.rs b/programs/conditional_vault/src/state/conditional_vault.rs index 5f6811b49..33396d4e0 100644 --- a/programs/conditional_vault/src/state/conditional_vault.rs +++ b/programs/conditional_vault/src/state/conditional_vault.rs @@ -8,10 +8,12 @@ pub enum VaultStatus { } #[account] +#[derive(InitSpace)] pub struct ConditionalVault { pub question: Pubkey, pub underlying_token_mint: Pubkey, pub underlying_token_account: Pubkey, + #[max_len(0)] pub conditional_token_mints: Vec, pub pda_bump: u8, pub decimals: u8, diff --git a/programs/conditional_vault/src/state/question.rs b/programs/conditional_vault/src/state/question.rs index c5d681735..9f46ed50b 100644 --- a/programs/conditional_vault/src/state/question.rs +++ b/programs/conditional_vault/src/state/question.rs @@ -21,9 +21,11 @@ use super::*; /// /// Once resolved, the sum of all outcome resolutions is exactly 1. #[account] +#[derive(InitSpace)] pub struct Question { pub question_id: [u8; 32], pub oracle: Pubkey, + #[max_len(0)] pub payout_numerators: Vec, pub payout_denominator: u32, } diff --git a/programs/launchpad/src/instructions/fund.rs b/programs/launchpad/src/instructions/fund.rs index 9276417ed..e6a9c190c 100644 --- a/programs/launchpad/src/instructions/fund.rs +++ b/programs/launchpad/src/instructions/fund.rs @@ -18,7 +18,7 @@ pub struct Fund<'info> { #[account( init_if_needed, payer = payer, - space = 8 + std::mem::size_of::(), + space = 8 + FundingRecord::INIT_SPACE, seeds = [b"funding_record", launch.key().as_ref(), funder.key().as_ref()], bump )] diff --git a/programs/launchpad/src/instructions/initialize_launch.rs b/programs/launchpad/src/instructions/initialize_launch.rs index cbdc3f523..9fcede394 100644 --- a/programs/launchpad/src/instructions/initialize_launch.rs +++ b/programs/launchpad/src/instructions/initialize_launch.rs @@ -27,7 +27,7 @@ pub struct InitializeLaunch<'info> { #[account( init, payer = payer, - space = 8 + std::mem::size_of::(), + space = 8 + Launch::INIT_SPACE, seeds = [b"launch", token_mint.key().as_ref()], bump )] diff --git a/programs/launchpad/src/state/funding_record.rs b/programs/launchpad/src/state/funding_record.rs index fdb727ef3..bd6a45c33 100644 --- a/programs/launchpad/src/state/funding_record.rs +++ b/programs/launchpad/src/state/funding_record.rs @@ -1,6 +1,7 @@ use anchor_lang::prelude::*; #[account] +#[derive(InitSpace)] pub struct FundingRecord { /// The PDA bump. pub pda_bump: u8, diff --git a/programs/launchpad/src/state/launch.rs b/programs/launchpad/src/state/launch.rs index 5867417f6..19b214d59 100644 --- a/programs/launchpad/src/state/launch.rs +++ b/programs/launchpad/src/state/launch.rs @@ -1,6 +1,6 @@ use anchor_lang::prelude::*; -#[derive(AnchorSerialize, AnchorDeserialize, Clone, Copy, PartialEq, Eq)] +#[derive(AnchorSerialize, AnchorDeserialize, Clone, Copy, PartialEq, Eq, InitSpace)] pub enum LaunchState { Initialized, Live, @@ -9,6 +9,7 @@ pub enum LaunchState { } #[account] +#[derive(InitSpace)] pub struct Launch { /// The PDA bump. pub pda_bump: u8,