Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
"dependencies": {
"@coral-xyz/anchor": "0.29.0",
"@inquirer/prompts": "^7.3.3",
"@metadaoproject/futarchy": "0.5.0-alpha.1",
"@metadaoproject/futarchy": "0.5.0-alpha.2",
"@metaplex-foundation/mpl-token-metadata": "^3.2.0",
"@metaplex-foundation/umi": "^0.9.1",
"@metaplex-foundation/umi-bundle-defaults": "^0.9.1",
Expand Down
4 changes: 2 additions & 2 deletions programs/autocrat/src/events.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ impl CommonFields {
pub struct InitializeDaoEvent {
pub common: CommonFields,
pub dao: Pubkey,
pub token_mint: Pubkey,
pub usdc_mint: Pubkey,
pub base_mint: Pubkey,
pub quote_mint: Pubkey,
pub treasury: Pubkey,
pub pass_threshold_bps: u16,
pub slots_per_proposal: u64,
Expand Down
12 changes: 6 additions & 6 deletions programs/autocrat/src/instructions/initialize_dao.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ pub struct InitializeDao<'info> {
#[account(mut)]
pub payer: Signer<'info>,
pub system_program: Program<'info, System>,
pub token_mint: Account<'info, Mint>,
pub base_mint: Account<'info, Mint>,
// todo: statically check that this is USDC given a feature flag
#[account(mint::decimals = 6)]
pub usdc_mint: Account<'info, Mint>,
pub quote_mint: Account<'info, Mint>,
}

impl InitializeDao<'_> {
Expand Down Expand Up @@ -54,8 +54,8 @@ impl InitializeDao<'_> {
);

dao.set_inner(Dao {
token_mint: ctx.accounts.token_mint.key(),
usdc_mint: ctx.accounts.usdc_mint.key(),
base_mint: ctx.accounts.base_mint.key(),
quote_mint: ctx.accounts.quote_mint.key(),
treasury_pda_bump,
treasury,
proposal_count: 0,
Expand All @@ -73,8 +73,8 @@ impl InitializeDao<'_> {
emit_cpi!(InitializeDaoEvent {
common: CommonFields::new(&clock),
dao: dao.key(),
token_mint: ctx.accounts.token_mint.key(),
usdc_mint: ctx.accounts.usdc_mint.key(),
base_mint: ctx.accounts.base_mint.key(),
quote_mint: ctx.accounts.quote_mint.key(),
treasury,
pass_threshold_bps: dao.pass_threshold_bps,
slots_per_proposal: dao.slots_per_proposal,
Expand Down
4 changes: 2 additions & 2 deletions programs/autocrat/src/instructions/initialize_proposal.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,12 @@ pub struct InitializeProposal<'info> {
)]
pub question: Box<Account<'info, Question>>,
#[account(
constraint = quote_vault.underlying_token_mint == dao.usdc_mint,
constraint = quote_vault.underlying_token_mint == dao.quote_mint,
has_one = question,
)]
pub quote_vault: Account<'info, ConditionalVaultAccount>,
#[account(
constraint = base_vault.underlying_token_mint == dao.token_mint,
constraint = base_vault.underlying_token_mint == dao.base_mint,
has_one = question,
)]
pub base_vault: Account<'info, ConditionalVaultAccount>,
Expand Down
4 changes: 2 additions & 2 deletions programs/autocrat/src/state/dao.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ pub use super::*;
pub struct Dao {
pub treasury_pda_bump: u8,
pub treasury: Pubkey,
pub token_mint: Pubkey,
pub usdc_mint: Pubkey,
pub base_mint: Pubkey,
pub quote_mint: Pubkey,
pub proposal_count: u32,
// the percentage, in basis points, the pass price needs to be above the
// fail price in order for the proposal to pass
Expand Down
4 changes: 2 additions & 2 deletions programs/launchpad/src/events.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ pub struct LaunchInitializedEvent {
pub launch_signer_pda_bump: u8,
pub launch_usdc_vault: Pubkey,
pub launch_token_vault: Pubkey,
pub token_mint: Pubkey,
pub usdc_mint: Pubkey,
pub base_mint: Pubkey,
pub quote_mint: Pubkey,
pub pda_bump: u8,
pub seconds_for_launch: u32,
}
Expand Down
12 changes: 6 additions & 6 deletions programs/launchpad/src/instructions/claim.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ pub struct Claim<'info> {
#[account(
mut,
has_one = launch_signer,
has_one = token_mint,
has_one = launch_token_vault,
has_one = base_mint,
has_one = launch_base_vault,
)]
pub launch: Account<'info, Launch>,

Expand All @@ -30,10 +30,10 @@ pub struct Claim<'info> {
pub launch_signer: UncheckedAccount<'info>,

#[account(mut)]
pub token_mint: Account<'info, Mint>,
pub base_mint: Account<'info, Mint>,

#[account(mut)]
pub launch_token_vault: Account<'info, TokenAccount>,
pub launch_base_vault: Account<'info, TokenAccount>,

/// CHECK: not used, just for constraints
pub funder: UncheckedAccount<'info>,
Expand All @@ -43,7 +43,7 @@ pub struct Claim<'info> {

#[account(
mut,
associated_token::mint = token_mint,
associated_token::mint = base_mint,
associated_token::authority = funder
)]
pub funder_token_account: Account<'info, TokenAccount>,
Expand Down Expand Up @@ -86,7 +86,7 @@ impl Claim<'_> {
CpiContext::new_with_signer(
ctx.accounts.token_program.to_account_info(),
Transfer {
from: ctx.accounts.launch_token_vault.to_account_info(),
from: ctx.accounts.launch_base_vault.to_account_info(),
to: ctx.accounts.funder_token_account.to_account_info(),
authority: ctx.accounts.launch_signer.to_account_info(),
},
Expand Down
62 changes: 31 additions & 31 deletions programs/launchpad/src/instructions/complete_launch.rs
Original file line number Diff line number Diff line change
Expand Up @@ -39,18 +39,18 @@ pub const PRICE_SCALE: u128 = 1_000_000_000_000;
pub struct CompleteLaunch<'info> {
#[account(
mut,
has_one = launch_usdc_vault,
has_one = launch_token_vault,
has_one = launch_quote_vault,
has_one = launch_base_vault,
has_one = launch_signer,
has_one = token_mint,
has_one = usdc_mint,
has_one = base_mint,
has_one = quote_mint,
)]
pub launch: Box<Account<'info, Launch>>,

/// CHECK: Token metadata
#[account(
mut,
seeds = [b"metadata", MPL_TOKEN_METADATA_PROGRAM_ID.as_ref(), token_mint.key().as_ref()],
seeds = [b"metadata", MPL_TOKEN_METADATA_PROGRAM_ID.as_ref(), base_mint.key().as_ref()],
seeds::program = MPL_TOKEN_METADATA_PROGRAM_ID,
bump
)]
Expand All @@ -75,24 +75,24 @@ pub struct CompleteLaunch<'info> {

#[account(
mut,
associated_token::mint = usdc_mint,
associated_token::mint = quote_mint,
associated_token::authority = launch_signer,
)]
pub launch_usdc_vault: Box<Account<'info, TokenAccount>>,
pub launch_quote_vault: Box<Account<'info, TokenAccount>>,

#[account(
mut,
associated_token::mint = token_mint,
associated_token::mint = base_mint,
associated_token::authority = launch_signer,
)]
pub launch_token_vault: Box<Account<'info, TokenAccount>>,
pub launch_base_vault: Box<Account<'info, TokenAccount>>,

#[account(
mut,
associated_token::mint = usdc_mint,
associated_token::mint = quote_mint,
associated_token::authority = dao_treasury,
)]
pub treasury_usdc_account: Box<Account<'info, TokenAccount>>,
pub treasury_quote_account: Box<Account<'info, TokenAccount>>,

/// CHECK: pool lp mint not created yet so we can't initialize it before
#[account(
Expand Down Expand Up @@ -128,9 +128,9 @@ pub struct CompleteLaunch<'info> {
pub pool_state: UncheckedAccount<'info>,

#[account(mut)]
pub token_mint: Box<Account<'info, Mint>>,
pub base_mint: Box<Account<'info, Mint>>,

pub usdc_mint: Box<Account<'info, Mint>>,
pub quote_mint: Box<Account<'info, Mint>>,

/// CHECK: pool lp mint, init by cp-swap
#[account(
Expand All @@ -154,7 +154,7 @@ pub struct CompleteLaunch<'info> {
seeds = [
POOL_VAULT_SEED.as_bytes(),
pool_state.key().as_ref(),
token_mint.key().as_ref()
base_mint.key().as_ref()
],
seeds::program = cp_swap_program,
bump,
Expand All @@ -167,7 +167,7 @@ pub struct CompleteLaunch<'info> {
seeds = [
POOL_VAULT_SEED.as_bytes(),
pool_state.key().as_ref(),
usdc_mint.key().as_ref()
quote_mint.key().as_ref()
],
seeds::program = cp_swap_program,
bump,
Expand Down Expand Up @@ -275,8 +275,8 @@ impl CompleteLaunch<'_> {
dao: ctx.accounts.dao.to_account_info(),
payer: ctx.accounts.payer.to_account_info(),
system_program: ctx.accounts.system_program.to_account_info(),
token_mint: ctx.accounts.token_mint.to_account_info(),
usdc_mint: ctx.accounts.usdc_mint.to_account_info(),
base_mint: ctx.accounts.base_mint.to_account_info(),
quote_mint: ctx.accounts.quote_mint.to_account_info(),
event_authority: ctx.accounts.autocrat_event_authority.to_account_info(),
program: ctx.accounts.autocrat_program.to_account_info(),
},
Expand Down Expand Up @@ -310,8 +310,8 @@ impl CompleteLaunch<'_> {
CpiContext::new_with_signer(
ctx.accounts.token_program.to_account_info(),
MintTo {
mint: ctx.accounts.token_mint.to_account_info(),
to: ctx.accounts.launch_token_vault.to_account_info(),
mint: ctx.accounts.base_mint.to_account_info(),
to: ctx.accounts.launch_base_vault.to_account_info(),
authority: ctx.accounts.launch_signer.to_account_info(),
},
launch_signer,
Expand All @@ -323,7 +323,7 @@ impl CompleteLaunch<'_> {
CpiContext::new_with_signer(
ctx.accounts.token_program.to_account_info(),
SetAuthority {
account_or_mint: ctx.accounts.token_mint.to_account_info(),
account_or_mint: ctx.accounts.base_mint.to_account_info(),
current_authority: ctx.accounts.launch_signer.to_account_info(),
},
launch_signer,
Expand Down Expand Up @@ -355,25 +355,25 @@ impl CompleteLaunch<'_> {
creator_token_1,
init_amount_0,
init_amount_1,
) = if ctx.accounts.token_mint.key() < ctx.accounts.usdc_mint.key() {
) = if ctx.accounts.base_mint.key() < ctx.accounts.quote_mint.key() {
(
ctx.accounts.token_mint.to_account_info(),
ctx.accounts.usdc_mint.to_account_info(),
ctx.accounts.base_mint.to_account_info(),
ctx.accounts.quote_mint.to_account_info(),
ctx.accounts.pool_token_vault.to_account_info(),
ctx.accounts.pool_usdc_vault.to_account_info(),
ctx.accounts.launch_token_vault.to_account_info(),
ctx.accounts.launch_usdc_vault.to_account_info(),
ctx.accounts.launch_base_vault.to_account_info(),
ctx.accounts.launch_quote_vault.to_account_info(),
token_to_lp,
usdc_to_lp,
)
} else {
(
ctx.accounts.usdc_mint.to_account_info(),
ctx.accounts.token_mint.to_account_info(),
ctx.accounts.quote_mint.to_account_info(),
ctx.accounts.base_mint.to_account_info(),
ctx.accounts.pool_usdc_vault.to_account_info(),
ctx.accounts.pool_token_vault.to_account_info(),
ctx.accounts.launch_usdc_vault.to_account_info(),
ctx.accounts.launch_token_vault.to_account_info(),
ctx.accounts.launch_quote_vault.to_account_info(),
ctx.accounts.launch_base_vault.to_account_info(),
usdc_to_lp,
token_to_lp,
)
Expand Down Expand Up @@ -444,8 +444,8 @@ impl CompleteLaunch<'_> {
CpiContext::new_with_signer(
ctx.accounts.token_program.to_account_info(),
Transfer {
from: ctx.accounts.launch_usdc_vault.to_account_info(),
to: ctx.accounts.treasury_usdc_account.to_account_info(),
from: ctx.accounts.launch_quote_vault.to_account_info(),
to: ctx.accounts.treasury_quote_account.to_account_info(),
authority: ctx.accounts.launch_signer.to_account_info(),
},
launch_signer,
Expand Down
16 changes: 8 additions & 8 deletions programs/launchpad/src/instructions/fund.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ pub struct Fund<'info> {
#[account(
mut,
has_one = launch_signer,
has_one = launch_usdc_vault,
has_one = launch_quote_vault,
)]
pub launch: Account<'info, Launch>,

Expand All @@ -28,18 +28,18 @@ pub struct Fund<'info> {
pub launch_signer: UncheckedAccount<'info>,

#[account(mut)]
pub launch_usdc_vault: Account<'info, TokenAccount>,
pub launch_quote_vault: Account<'info, TokenAccount>,

pub funder: Signer<'info>,
#[account(mut)]
pub payer: Signer<'info>,

#[account(
mut,
token::mint = launch.usdc_mint,
token::mint = launch.quote_mint,
token::authority = funder
)]
pub funder_usdc_account: Account<'info, TokenAccount>,
pub funder_quote_account: Account<'info, TokenAccount>,

pub token_program: Program<'info, Token>,
pub system_program: Program<'info, System>,
Expand All @@ -50,7 +50,7 @@ impl Fund<'_> {
require!(amount > 0, LaunchpadError::InvalidAmount);

require_gte!(
self.funder_usdc_account.amount,
self.funder_quote_account.amount,
amount,
LaunchpadError::InsufficientFunds
);
Expand All @@ -72,13 +72,13 @@ impl Fund<'_> {
}

pub fn handle(ctx: Context<Self>, amount: u64) -> Result<()> {
// Transfer USDC from funder to vault
// Transfer quote tokens from funder to vault
token::transfer(
CpiContext::new(
ctx.accounts.token_program.to_account_info(),
Transfer {
from: ctx.accounts.funder_usdc_account.to_account_info(),
to: ctx.accounts.launch_usdc_vault.to_account_info(),
from: ctx.accounts.funder_quote_account.to_account_info(),
to: ctx.accounts.launch_quote_vault.to_account_info(),
authority: ctx.accounts.funder.to_account_info(),
},
),
Expand Down
Loading
Loading