Skip to content

Commit 8d21ab1

Browse files
committed
add checks for creating and locking pool
1 parent 941d025 commit 8d21ab1

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

programs/pump-science/src/errors.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,4 +83,7 @@ pub enum ContractError {
8383

8484
#[msg("Invalid Fee Receiver")]
8585
InvalidFeeReceiver,
86+
87+
#[msg("Invalid Migration Authority")]
88+
InvalidMigrationAuthority,
8689
}

programs/pump-science/src/instructions/migration/create_pool.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,7 @@ pub struct InitializePoolWithConfig<'info> {
105105
/// CHECK: Protocol fee token b accounts
106106
pub protocol_token_b_fee: UncheckedAccount<'info>,
107107

108-
#[account(mut)]
109-
/// CHECK: Admin account
108+
#[account(mut, constraint = payer.key() == global.migration_authority @ ContractError::InvalidMigrationAuthority)]
110109
pub payer: Signer<'info>,
111110

112111
#[account(mut)]

programs/pump-science/src/instructions/migration/lock_pool.rs

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,21 @@ use anchor_lang::prelude::*;
22
use anchor_lang::solana_program::{instruction::Instruction, program::invoke_signed};
33
use anchor_spl::associated_token;
44
use crate::constants::{VAULT_SEED, METEORA_PROGRAM_KEY};
5+
use crate::errors::ContractError;
6+
use crate::Global;
57
use std::str::FromStr;
68
use crate::state::meteora::{get_function_hash, get_lock_lp_ix_data};
79

8-
910
#[derive(Accounts)]
1011
pub struct LockPool<'info> {
11-
12+
#[account(
13+
mut,
14+
seeds = [Global::SEED_PREFIX.as_bytes()],
15+
constraint = global.initialized == true @ ContractError::NotInitialized,
16+
bump,
17+
)]
18+
global: Box<Account<'info, Global>>,
19+
1220
#[account(
1321
seeds = [VAULT_SEED],
1422
bump
@@ -55,8 +63,7 @@ pub struct LockPool<'info> {
5563
/// CHECK: Accounts to bootstrap the pool with initial liquidity
5664
pub payer_pool_lp: UncheckedAccount<'info>,
5765

58-
#[account(mut)]
59-
/// CHECK: Admin account
66+
#[account(mut, constraint = payer.key() == global.migration_authority @ ContractError::InvalidMigrationAuthority)]
6067
pub payer: Signer<'info>,
6168

6269
/// CHECK: Token program account

0 commit comments

Comments
 (0)