more
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
This commit is contained in:
parent
f895467bf5
commit
0e953f5e80
|
@ -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(),
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue