Skip to content

Commit 70c0de3

Browse files
committed
Make taker fees configurable
1 parent 4652e7e commit 70c0de3

1 file changed

Lines changed: 13 additions & 3 deletions

File tree

  • programs/autocrat_v0/src

programs/autocrat_v0/src/lib.rs

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ pub struct DAO {
5454
pub base_burn_lamports: u64,
5555
pub burn_decay_per_slot_lamports: u64,
5656
pub slots_per_proposal: u64,
57+
pub market_taker_fee: i64,
5758
// treasury needed even though DAO is PDA for this reason: https://solana.stackexchange.com/questions/7667/a-peculiar-problem-with-cpis
5859
pub treasury_pda_bump: u8,
5960
pub treasury: Pubkey,
@@ -112,6 +113,7 @@ pub mod autocrat_v0 {
112113
dao.base_burn_lamports = DEFAULT_BASE_BURN_LAMPORTS;
113114
dao.burn_decay_per_slot_lamports = DEFAULT_BURN_DECAY_PER_SLOT_LAMPORTS;
114115
dao.slots_per_proposal = THREE_DAYS_IN_SLOTS;
116+
dao.market_taker_fee = 0;
115117

116118
let (treasury_pubkey, treasury_bump) =
117119
Pubkey::find_program_address(&[dao.key().as_ref()], ctx.program_id);
@@ -128,6 +130,7 @@ pub mod autocrat_v0 {
128130
) -> Result<()> {
129131
let openbook_pass_market = ctx.accounts.openbook_pass_market.load()?;
130132
let openbook_fail_market = ctx.accounts.openbook_fail_market.load()?;
133+
let dao = &mut ctx.accounts.dao;
131134

132135
require!(
133136
openbook_pass_market.base_mint
@@ -151,7 +154,7 @@ pub mod autocrat_v0 {
151154
AutocratError::InvalidMarket
152155
);
153156
require!(
154-
openbook_pass_market.taker_fee == 0,
157+
openbook_pass_market.taker_fee == dao.market_taker_fee,
155158
AutocratError::InvalidMarket
156159
);
157160
require!(
@@ -186,7 +189,7 @@ pub mod autocrat_v0 {
186189
AutocratError::InvalidMarket
187190
);
188191
require!(
189-
openbook_fail_market.taker_fee == 0,
192+
openbook_fail_market.taker_fee == dao.market_taker_fee,
190193
AutocratError::InvalidMarket
191194
);
192195
require!(
@@ -223,7 +226,6 @@ pub mod autocrat_v0 {
223226
AutocratError::TWAPMarketInvalidExpectedValue
224227
);
225228

226-
let dao = &mut ctx.accounts.dao;
227229
let proposal = &mut ctx.accounts.proposal;
228230

229231
proposal.number = dao.proposal_count;
@@ -409,6 +411,14 @@ pub mod autocrat_v0 {
409411

410412
Ok(())
411413
}
414+
415+
pub fn set_market_taker_fee(ctx: Context<Auth>, market_taker_fee: i64) -> Result<()> {
416+
let dao = &mut ctx.accounts.dao;
417+
418+
dao.market_taker_fee = market_taker_fee;
419+
420+
Ok(())
421+
}
412422
}
413423

414424
#[derive(Accounts)]

0 commit comments

Comments
 (0)