Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
This commit is contained in:
microwavedcola1 2022-03-24 19:15:46 +01:00
parent f895467bf5
commit 0e953f5e80
4 changed files with 25 additions and 20 deletions

View File

@ -3,7 +3,6 @@ use fixed::types::I80F48;
use crate::error::MangoError;
use crate::state::*;
use crate::util::get_leverage_weights;
#[derive(Accounts)]
#[instruction(perp_market_index: PerpMarketIndex)]
@ -48,17 +47,14 @@ pub fn create_perp_market(
quote_token_index: TokenIndex,
quote_lot_size: i64,
base_lot_size: i64,
maint_leverage: f32,
init_leverage: f32,
maint_asset_weight: f32,
init_asset_weight: f32,
maint_liab_weight: f32,
init_liab_weight: f32,
liquidation_fee: f32,
maker_fee: f32,
taker_fee: f32,
) -> Result<()> {
let (maint_asset_weight, maint_liab_weight) =
get_leverage_weights(I80F48::from_num(maint_leverage));
let (init_asset_weight, init_liab_weight) =
get_leverage_weights(I80F48::from_num(init_leverage));
let mut perp_market = ctx.accounts.perp_market.load_init()?;
*perp_market = PerpMarket {
group: ctx.accounts.group.key(),

View File

@ -133,8 +133,10 @@ pub mod mango_v4 {
quote_token_index: TokenIndex,
quote_lot_size: i64,
base_lot_size: i64,
maint_leverage: f32,
init_leverage: f32,
maint_asset_weight: f32,
init_asset_weight: f32,
maint_liab_weight: f32,
init_liab_weight: f32,
liquidation_fee: f32,
maker_fee: f32,
taker_fee: f32,
@ -146,8 +148,10 @@ pub mod mango_v4 {
quote_token_index,
quote_lot_size,
base_lot_size,
maint_leverage,
init_leverage,
maint_asset_weight,
init_asset_weight,
maint_liab_weight,
init_liab_weight,
liquidation_fee,
maker_fee,
taker_fee,

View File

@ -1093,8 +1093,10 @@ pub struct CreatePerpMarketInstruction<'keypair> {
pub quote_token_index: TokenIndex,
pub quote_lot_size: i64,
pub base_lot_size: i64,
pub maint_leverage: f32,
pub init_leverage: f32,
pub maint_asset_weight: f32,
pub init_asset_weight: f32,
pub maint_liab_weight: f32,
pub init_liab_weight: f32,
pub liquidation_fee: f32,
pub maker_fee: f32,
pub taker_fee: f32,
@ -1114,8 +1116,10 @@ impl<'keypair> ClientInstruction for CreatePerpMarketInstruction<'keypair> {
quote_token_index: self.quote_token_index,
quote_lot_size: self.quote_lot_size,
base_lot_size: self.base_lot_size,
maint_leverage: self.maint_leverage,
init_leverage: self.init_leverage,
maint_asset_weight: self.maint_asset_weight,
init_asset_weight: self.init_asset_weight,
maint_liab_weight: self.maint_liab_weight,
init_liab_weight: self.init_liab_weight,
liquidation_fee: self.liquidation_fee,
maker_fee: self.maker_fee,
taker_fee: self.taker_fee,

View File

@ -108,14 +108,15 @@ async fn test_perp() -> Result<(), TransportError> {
perp_market_index: 0,
base_token_index: tokens[0].index,
quote_token_index: tokens[1].index,
// e.g. BTC mango-v3 mainnet.1
quote_lot_size: 10,
base_lot_size: 100,
maint_leverage: 0.975,
init_leverage: 0.95,
init_asset_weight: 0.95,
maint_asset_weight: 0.975,
init_liab_weight: 1.05,
maint_liab_weight: 1.025,
liquidation_fee: 0.012,
maker_fee: 0.0002,
taker_fee: 0.0004,
taker_fee: 0.000,
},
)
.await