Perp pegged orders: Add stub max oracle staleness arg
This commit is contained in:
parent
9757f7a509
commit
512eef96ea
|
@ -614,8 +614,14 @@ pub mod mango_v4 {
|
||||||
// Use this to limit compute used during order matching.
|
// Use this to limit compute used during order matching.
|
||||||
// When the limit is reached, processing stops and the instruction succeeds.
|
// When the limit is reached, processing stops and the instruction succeeds.
|
||||||
limit: u8,
|
limit: u8,
|
||||||
|
|
||||||
|
// Oracle staleness limit, in slots. Set to -1 to disable.
|
||||||
|
//
|
||||||
|
// WARNING: Not currently implemented.
|
||||||
|
max_oracle_staleness_slots: i32,
|
||||||
) -> Result<()> {
|
) -> Result<()> {
|
||||||
require_gte!(peg_limit, -1);
|
require_gte!(peg_limit, -1);
|
||||||
|
require_eq!(max_oracle_staleness_slots, -1); // unimplemented
|
||||||
|
|
||||||
use crate::state::{Order, OrderParams};
|
use crate::state::{Order, OrderParams};
|
||||||
let time_in_force = match Order::tif_from_expiry(expiry_timestamp) {
|
let time_in_force = match Order::tif_from_expiry(expiry_timestamp) {
|
||||||
|
@ -636,6 +642,7 @@ pub mod mango_v4 {
|
||||||
price_offset_lots,
|
price_offset_lots,
|
||||||
order_type: order_type.to_post_order_type()?,
|
order_type: order_type.to_post_order_type()?,
|
||||||
peg_limit,
|
peg_limit,
|
||||||
|
max_oracle_staleness_slots,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
instructions::perp_place_order(ctx, order, limit)
|
instructions::perp_place_order(ctx, order, limit)
|
||||||
|
|
|
@ -39,7 +39,7 @@ pub enum OrderParams {
|
||||||
price_offset_lots: i64,
|
price_offset_lots: i64,
|
||||||
order_type: PostOrderType,
|
order_type: PostOrderType,
|
||||||
peg_limit: i64,
|
peg_limit: i64,
|
||||||
// TODO: oracle_staleness
|
max_oracle_staleness_slots: i32,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2739,6 +2739,7 @@ impl ClientInstruction for PerpPlaceOrderPeggedInstruction {
|
||||||
reduce_only: false,
|
reduce_only: false,
|
||||||
expiry_timestamp: 0,
|
expiry_timestamp: 0,
|
||||||
limit: 10,
|
limit: 10,
|
||||||
|
max_oracle_staleness_slots: -1,
|
||||||
};
|
};
|
||||||
|
|
||||||
let perp_market: PerpMarket = account_loader.load(&self.perp_market).await.unwrap();
|
let perp_market: PerpMarket = account_loader.load(&self.perp_market).await.unwrap();
|
||||||
|
|
|
@ -1757,6 +1757,7 @@ export class MangoClient {
|
||||||
reduceOnly ? reduceOnly : false,
|
reduceOnly ? reduceOnly : false,
|
||||||
new BN(expiryTimestamp ? expiryTimestamp : 0),
|
new BN(expiryTimestamp ? expiryTimestamp : 0),
|
||||||
limit ? limit : 10,
|
limit ? limit : 10,
|
||||||
|
-1,
|
||||||
)
|
)
|
||||||
.accounts({
|
.accounts({
|
||||||
group: group.publicKey,
|
group: group.publicKey,
|
||||||
|
|
|
@ -2860,6 +2860,10 @@ export type MangoV4 = {
|
||||||
{
|
{
|
||||||
"name": "limit",
|
"name": "limit",
|
||||||
"type": "u8"
|
"type": "u8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "maxOracleStalenessSlots",
|
||||||
|
"type": "i32"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -4917,19 +4921,14 @@ export type MangoV4 = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "padding2",
|
"name": "settlePnlLimitSettledInCurrentWindowNative",
|
||||||
"docs": [
|
"type": "i64"
|
||||||
"Tracks what the position is to calculate average entry & break even price"
|
|
||||||
],
|
|
||||||
"type": {
|
|
||||||
"array": [
|
|
||||||
"u8",
|
|
||||||
8
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "quoteRunningNative",
|
"name": "quoteRunningNative",
|
||||||
|
"docs": [
|
||||||
|
"Tracks what the position is to calculate average entry & break even price"
|
||||||
|
],
|
||||||
"type": "i64"
|
"type": "i64"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -4999,11 +4998,9 @@ export type MangoV4 = {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "realizedPnlNative",
|
"name": "realizedPnlNative",
|
||||||
"type": "i64"
|
"type": {
|
||||||
},
|
"defined": "I80F48"
|
||||||
{
|
}
|
||||||
"name": "settlePnlLimitSettledInCurrentWindowNative",
|
|
||||||
"type": "i64"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -6041,6 +6038,10 @@ export type MangoV4 = {
|
||||||
{
|
{
|
||||||
"name": "peg_limit",
|
"name": "peg_limit",
|
||||||
"type": "i64"
|
"type": "i64"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "max_oracle_staleness_slots",
|
||||||
|
"type": "i32"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -10058,6 +10059,10 @@ export const IDL: MangoV4 = {
|
||||||
{
|
{
|
||||||
"name": "limit",
|
"name": "limit",
|
||||||
"type": "u8"
|
"type": "u8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "maxOracleStalenessSlots",
|
||||||
|
"type": "i32"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -12115,19 +12120,14 @@ export const IDL: MangoV4 = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "padding2",
|
"name": "settlePnlLimitSettledInCurrentWindowNative",
|
||||||
"docs": [
|
"type": "i64"
|
||||||
"Tracks what the position is to calculate average entry & break even price"
|
|
||||||
],
|
|
||||||
"type": {
|
|
||||||
"array": [
|
|
||||||
"u8",
|
|
||||||
8
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "quoteRunningNative",
|
"name": "quoteRunningNative",
|
||||||
|
"docs": [
|
||||||
|
"Tracks what the position is to calculate average entry & break even price"
|
||||||
|
],
|
||||||
"type": "i64"
|
"type": "i64"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -12197,11 +12197,9 @@ export const IDL: MangoV4 = {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "realizedPnlNative",
|
"name": "realizedPnlNative",
|
||||||
"type": "i64"
|
"type": {
|
||||||
},
|
"defined": "I80F48"
|
||||||
{
|
}
|
||||||
"name": "settlePnlLimitSettledInCurrentWindowNative",
|
|
||||||
"type": "i64"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -13239,6 +13237,10 @@ export const IDL: MangoV4 = {
|
||||||
{
|
{
|
||||||
"name": "peg_limit",
|
"name": "peg_limit",
|
||||||
"type": "i64"
|
"type": "i64"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "max_oracle_staleness_slots",
|
||||||
|
"type": "i32"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue