use privora_sdk_program::prelude::*;
use borsh::{BorshSerialize, BorshDeserialize};
#[derive(BorshSerialize, BorshDeserialize)]
pub enum OrderSide { Buy, Sell }
#[derive(BorshSerialize, BorshDeserialize)]
pub enum OrderStatus { Open, Matched, Cancelled }
#[derive(BorshSerialize, BorshDeserialize)]
pub struct Order {
pub owner: Pubkey,
pub price_ref: EncryptedRef<u8>, // 32 bytes
pub qty_ref: EncryptedRef<u8>, // 32 bytes
pub side: OrderSide,
pub status: OrderStatus,
pub order_id: u64,
}
#[derive(BorshSerialize, BorshDeserialize)]
pub struct MatchResult {
pub buy_order_id: u64,
pub sell_order_id: u64,
pub fill_price_ref: EncryptedRef<u8>,
pub fill_qty_ref: EncryptedRef<u8>,
}