Rename PerpOpenOrders -> PerpOpenOrder, since it's a single one

This commit is contained in:
Christian Kamm 2022-08-24 15:22:55 +02:00
parent 4bad1b9b1a
commit 38b349a401
3 changed files with 29 additions and 23 deletions

View File

@ -17,7 +17,7 @@ use super::FillEvent;
use super::LeafNode;
use super::PerpMarket;
use super::PerpMarketIndex;
use super::PerpOpenOrders;
use super::PerpOpenOrder;
use super::Serum3MarketIndex;
use super::Side;
use super::TokenIndex;
@ -99,7 +99,7 @@ pub struct MangoAccount {
pub padding6: u32,
pub perps: Vec<PerpPosition>,
pub padding7: u32,
pub perp_open_orders: Vec<PerpOpenOrders>,
pub perp_open_orders: Vec<PerpOpenOrder>,
}
impl Default for MangoAccount {
@ -127,7 +127,7 @@ impl Default for MangoAccount {
padding6: Default::default(),
perps: vec![PerpPosition::default(); 2],
padding7: Default::default(),
perp_open_orders: vec![PerpOpenOrders::default(); 2],
perp_open_orders: vec![PerpOpenOrder::default(); 2],
}
}
}
@ -178,7 +178,7 @@ impl MangoAccount {
perp_oo_count: u8,
) -> usize {
Self::dynamic_perp_oo_vec_offset(token_count, serum3_count, perp_count)
+ (BORSH_VEC_SIZE_BYTES + size_of::<PerpOpenOrders>() * usize::from(perp_oo_count))
+ (BORSH_VEC_SIZE_BYTES + size_of::<PerpOpenOrder>() * usize::from(perp_oo_count))
}
}
@ -201,9 +201,7 @@ fn test_serialization_match() {
account.serum3.resize(8, Serum3Orders::default());
account.perps.resize(8, PerpPosition::default());
account.perps[0].market_index = 9;
account
.perp_open_orders
.resize(8, PerpOpenOrders::default());
account.perp_open_orders.resize(8, PerpOpenOrder::default());
let account_bytes = AnchorSerialize::try_to_vec(&account).unwrap();
assert_eq!(
@ -403,7 +401,7 @@ impl MangoAccountDynamicHeader {
self.serum3_count,
self.perp_count,
) + BORSH_VEC_SIZE_BYTES
+ raw_index * size_of::<PerpOpenOrders>()
+ raw_index * size_of::<PerpOpenOrder>()
}
pub fn token_count(&self) -> usize {
@ -546,11 +544,11 @@ impl<
.filter(|p| p.is_active())
}
pub fn perp_orders_by_raw_index(&self, raw_index: usize) -> &PerpOpenOrders {
pub fn perp_orders_by_raw_index(&self, raw_index: usize) -> &PerpOpenOrder {
get_helper(self.dynamic(), self.header().perp_oo_offset(raw_index))
}
pub fn all_perp_orders(&self) -> impl Iterator<Item = &PerpOpenOrders> {
pub fn all_perp_orders(&self) -> impl Iterator<Item = &PerpOpenOrder> {
(0..self.header().perp_oo_count()).map(|i| self.perp_orders_by_raw_index(i))
}
@ -739,7 +737,7 @@ impl<
get_helper_mut(self.dynamic_mut(), offset)
}
pub fn perp_orders_mut_by_raw_index(&mut self, raw_index: usize) -> &mut PerpOpenOrders {
pub fn perp_orders_mut_by_raw_index(&mut self, raw_index: usize) -> &mut PerpOpenOrder {
let offset = self.header().perp_oo_offset(raw_index);
get_helper_mut(self.dynamic_mut(), offset)
}
@ -963,12 +961,12 @@ impl<
sol_memmove(
&mut dynamic[new_header.perp_oo_offset(0)],
&mut dynamic[old_header.perp_oo_offset(0)],
size_of::<PerpOpenOrders>() * old_header.perp_oo_count(),
size_of::<PerpOpenOrder>() * old_header.perp_oo_count(),
);
}
for i in old_header.perp_oo_count..new_perp_oo_count {
*get_helper_mut(dynamic, new_header.perp_oo_offset(i.into())) =
PerpOpenOrders::default();
PerpOpenOrder::default();
}
}

View File

@ -321,7 +321,7 @@ impl PerpPosition {
#[zero_copy]
#[derive(AnchorSerialize, AnchorDeserialize, Debug)]
pub struct PerpOpenOrders {
pub struct PerpOpenOrder {
pub order_side: Side, // TODO: storing enums isn't POD
pub padding1: [u8; 1],
pub order_market: PerpMarketIndex,
@ -331,7 +331,7 @@ pub struct PerpOpenOrders {
pub reserved: [u8; 64],
}
impl Default for PerpOpenOrders {
impl Default for PerpOpenOrder {
fn default() -> Self {
Self {
order_side: Side::Bid,
@ -345,11 +345,11 @@ impl Default for PerpOpenOrders {
}
}
unsafe impl bytemuck::Pod for PerpOpenOrders {}
unsafe impl bytemuck::Zeroable for PerpOpenOrders {}
unsafe impl bytemuck::Pod for PerpOpenOrder {}
unsafe impl bytemuck::Zeroable for PerpOpenOrder {}
const_assert_eq!(size_of::<PerpOpenOrders>(), 1 + 1 + 2 + 4 + 8 + 16 + 64);
const_assert_eq!(size_of::<PerpOpenOrders>() % 8, 0);
const_assert_eq!(size_of::<PerpOpenOrder>(), 1 + 1 + 2 + 4 + 8 + 16 + 64);
const_assert_eq!(size_of::<PerpOpenOrder>() % 8, 0);
#[macro_export]
macro_rules! account_seeds {

View File

@ -3151,7 +3151,7 @@ export type MangoV4 = {
"name": "perpOpenOrders",
"type": {
"vec": {
"defined": "PerpOpenOrders"
"defined": "PerpOpenOrder"
}
}
}
@ -3845,6 +3845,10 @@ export type MangoV4 = {
{
"name": "quoteIndex",
"type": "u64"
},
{
"name": "marketIndex",
"type": "u16"
}
]
}
@ -4133,7 +4137,7 @@ export type MangoV4 = {
}
},
{
"name": "PerpOpenOrders",
"name": "PerpOpenOrder",
"type": {
"kind": "struct",
"fields": [
@ -8401,7 +8405,7 @@ export const IDL: MangoV4 = {
"name": "perpOpenOrders",
"type": {
"vec": {
"defined": "PerpOpenOrders"
"defined": "PerpOpenOrder"
}
}
}
@ -9095,6 +9099,10 @@ export const IDL: MangoV4 = {
{
"name": "quoteIndex",
"type": "u64"
},
{
"name": "marketIndex",
"type": "u16"
}
]
}
@ -9383,7 +9391,7 @@ export const IDL: MangoV4 = {
}
},
{
"name": "PerpOpenOrders",
"name": "PerpOpenOrder",
"type": {
"kind": "struct",
"fields": [