Terminology (#4995)
* update exchange program: tradeOrder->Order, tradeRequest->OrderRequest, tradeCancel->OrderCancel * Update bench-exchange: tradeOrder -> Order * update bench exchange Readme
This commit is contained in:
@@ -7,7 +7,7 @@ use solana_sdk::instruction::{AccountMeta, Instruction};
|
||||
use solana_sdk::pubkey::Pubkey;
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq, Clone)]
|
||||
pub struct TradeRequestInfo {
|
||||
pub struct OrderRequestInfo {
|
||||
/// Direction of trade
|
||||
pub direction: Direction,
|
||||
|
||||
@@ -35,16 +35,16 @@ pub enum ExchangeInstruction {
|
||||
/// the exchange has a limitless number of tokens it can transfer.
|
||||
TransferRequest(Token, u64),
|
||||
|
||||
/// Trade request
|
||||
/// Order request
|
||||
/// key 0 - Signer
|
||||
/// key 1 - Account in which to record the trade order
|
||||
/// key 2 - Token account to source tokens from
|
||||
TradeRequest(TradeRequestInfo),
|
||||
OrderRequest(OrderRequestInfo),
|
||||
|
||||
/// Trade cancellation
|
||||
/// Order cancellation
|
||||
/// key 0 - Signer
|
||||
/// key 1 - Trade order to cancel
|
||||
TradeCancellation,
|
||||
/// key 1 - Order to cancel
|
||||
OrderCancellation,
|
||||
|
||||
/// Trade swap request
|
||||
/// key 0 - Signer
|
||||
@@ -97,7 +97,7 @@ pub fn trade_request(
|
||||
];
|
||||
Instruction::new(
|
||||
id(),
|
||||
&ExchangeInstruction::TradeRequest(TradeRequestInfo {
|
||||
&ExchangeInstruction::OrderRequest(OrderRequestInfo {
|
||||
direction,
|
||||
pair,
|
||||
tokens,
|
||||
@@ -107,12 +107,12 @@ pub fn trade_request(
|
||||
)
|
||||
}
|
||||
|
||||
pub fn trade_cancellation(owner: &Pubkey, trade: &Pubkey) -> Instruction {
|
||||
pub fn order_cancellation(owner: &Pubkey, order: &Pubkey) -> Instruction {
|
||||
let account_metas = vec![
|
||||
AccountMeta::new(*owner, true),
|
||||
AccountMeta::new(*trade, false),
|
||||
AccountMeta::new(*order, false),
|
||||
];
|
||||
Instruction::new(id(), &ExchangeInstruction::TradeCancellation, account_metas)
|
||||
Instruction::new(id(), &ExchangeInstruction::OrderCancellation, account_metas)
|
||||
}
|
||||
|
||||
pub fn swap_request(
|
||||
|
@@ -39,7 +39,7 @@ impl ExchangeProcessor {
|
||||
}
|
||||
}
|
||||
|
||||
fn deserialize_trade(data: &[u8]) -> Result<TradeOrderInfo, InstructionError> {
|
||||
fn deserialize_trade(data: &[u8]) -> Result<OrderInfo, InstructionError> {
|
||||
let state: ExchangeState = bincode::deserialize(data).map_err(Self::map_to_invalid_arg)?;
|
||||
if let ExchangeState::Trade(info) = state {
|
||||
Ok(info)
|
||||
@@ -60,7 +60,7 @@ impl ExchangeProcessor {
|
||||
}
|
||||
}
|
||||
|
||||
fn trade_to_token_account(trade: &TradeOrderInfo) -> TokenAccountInfo {
|
||||
fn trade_to_token_account(trade: &OrderInfo) -> TokenAccountInfo {
|
||||
// Turn trade order into token account
|
||||
|
||||
let token = match trade.direction {
|
||||
@@ -75,8 +75,8 @@ impl ExchangeProcessor {
|
||||
|
||||
fn calculate_swap(
|
||||
scaler: u64,
|
||||
to_trade: &mut TradeOrderInfo,
|
||||
from_trade: &mut TradeOrderInfo,
|
||||
to_trade: &mut OrderInfo,
|
||||
from_trade: &mut OrderInfo,
|
||||
profit_account: &mut TokenAccountInfo,
|
||||
) -> Result<(), InstructionError> {
|
||||
if to_trade.tokens == 0 || from_trade.tokens == 0 {
|
||||
@@ -261,7 +261,7 @@ impl ExchangeProcessor {
|
||||
|
||||
fn do_trade_request(
|
||||
keyed_accounts: &mut [KeyedAccount],
|
||||
info: &TradeRequestInfo,
|
||||
info: &OrderRequestInfo,
|
||||
) -> Result<(), InstructionError> {
|
||||
const OWNER_INDEX: usize = 0;
|
||||
const TRADE_INDEX: usize = 1;
|
||||
@@ -299,7 +299,7 @@ impl ExchangeProcessor {
|
||||
inc_new_counter_info!("exchange_processor-trades", 1, 1000, 1000);
|
||||
|
||||
Self::serialize(
|
||||
&ExchangeState::Trade(TradeOrderInfo {
|
||||
&ExchangeState::Trade(OrderInfo {
|
||||
owner: *keyed_accounts[OWNER_INDEX].unsigned_key(),
|
||||
direction: info.direction,
|
||||
pair: info.pair,
|
||||
@@ -315,7 +315,7 @@ impl ExchangeProcessor {
|
||||
)
|
||||
}
|
||||
|
||||
fn do_trade_cancellation(keyed_accounts: &mut [KeyedAccount]) -> Result<(), InstructionError> {
|
||||
fn do_order_cancellation(keyed_accounts: &mut [KeyedAccount]) -> Result<(), InstructionError> {
|
||||
const OWNER_INDEX: usize = 0;
|
||||
const TRADE_INDEX: usize = 1;
|
||||
|
||||
@@ -446,11 +446,11 @@ pub fn process_instruction(
|
||||
ExchangeInstruction::TransferRequest(token, tokens) => {
|
||||
ExchangeProcessor::do_transfer_request(keyed_accounts, token, tokens)
|
||||
}
|
||||
ExchangeInstruction::TradeRequest(info) => {
|
||||
ExchangeInstruction::OrderRequest(info) => {
|
||||
ExchangeProcessor::do_trade_request(keyed_accounts, &info)
|
||||
}
|
||||
ExchangeInstruction::TradeCancellation => {
|
||||
ExchangeProcessor::do_trade_cancellation(keyed_accounts)
|
||||
ExchangeInstruction::OrderCancellation => {
|
||||
ExchangeProcessor::do_order_cancellation(keyed_accounts)
|
||||
}
|
||||
ExchangeInstruction::SwapRequest => ExchangeProcessor::do_swap_request(keyed_accounts),
|
||||
}
|
||||
@@ -487,8 +487,8 @@ mod test {
|
||||
secondary_tokens,
|
||||
secondary_price,
|
||||
);
|
||||
let mut to_trade = TradeOrderInfo::default();
|
||||
let mut from_trade = TradeOrderInfo::default().direction(Direction::From);
|
||||
let mut to_trade = OrderInfo::default();
|
||||
let mut from_trade = OrderInfo::default().direction(Direction::From);
|
||||
let mut profit_account = TokenAccountInfo::default();
|
||||
|
||||
to_trade.tokens = primary_tokens;
|
||||
@@ -714,7 +714,7 @@ mod test {
|
||||
// check results
|
||||
|
||||
assert_eq!(
|
||||
TradeOrderInfo {
|
||||
OrderInfo {
|
||||
owner: owner.pubkey(),
|
||||
direction: Direction::To,
|
||||
pair: TokenPair::AB,
|
||||
@@ -773,7 +773,7 @@ mod test {
|
||||
// check results
|
||||
|
||||
assert_eq!(
|
||||
TradeOrderInfo {
|
||||
OrderInfo {
|
||||
owner: owner.pubkey(),
|
||||
direction: Direction::To,
|
||||
pair: TokenPair::AB,
|
||||
|
@@ -150,7 +150,7 @@ impl fmt::Display for Direction {
|
||||
|
||||
/// Trade accounts are populated with this structure
|
||||
#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
|
||||
pub struct TradeOrderInfo {
|
||||
pub struct OrderInfo {
|
||||
/// Owner of the trade order
|
||||
pub owner: Pubkey,
|
||||
/// Direction of the exchange
|
||||
@@ -167,7 +167,7 @@ pub struct TradeOrderInfo {
|
||||
/// token account by the owner.
|
||||
pub tokens_settled: u64,
|
||||
}
|
||||
impl Default for TradeOrderInfo {
|
||||
impl Default for OrderInfo {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
owner: Pubkey::default(),
|
||||
@@ -179,7 +179,7 @@ impl Default for TradeOrderInfo {
|
||||
}
|
||||
}
|
||||
}
|
||||
impl TradeOrderInfo {
|
||||
impl OrderInfo {
|
||||
pub fn pair(mut self, pair: TokenPair) -> Self {
|
||||
self.pair = pair;
|
||||
self
|
||||
@@ -228,7 +228,7 @@ pub enum ExchangeState {
|
||||
// Token account
|
||||
Account(TokenAccountInfo),
|
||||
// Trade order account
|
||||
Trade(TradeOrderInfo),
|
||||
Trade(OrderInfo),
|
||||
Invalid,
|
||||
}
|
||||
impl Default for ExchangeState {
|
||||
|
Reference in New Issue
Block a user