Skip to content

Commit 0506e9a

Browse files
committed
no sim for delisted market
1 parent 6ec2109 commit 0506e9a

File tree

2 files changed

+20
-5
lines changed

2 files changed

+20
-5
lines changed

src/swift_server.rs

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ use crate::{
1212
types::{
1313
messages::{
1414
DepositAndPlaceRequest, IncomingSignedMessage, OrderMetadataAndMessage,
15-
ProcessOrderResponse, PROCESS_ORDER_RESPONSE_ERROR_MSG_DELIVERY_FAILED,
15+
ProcessOrderResponse, PROCESS_ORDER_RESPONSE_ERROR_MSG_DELISTED_MARKET,
16+
PROCESS_ORDER_RESPONSE_ERROR_MSG_DELIVERY_FAILED,
1617
PROCESS_ORDER_RESPONSE_ERROR_MSG_INVALID_ORDER,
1718
PROCESS_ORDER_RESPONSE_ERROR_MSG_INVALID_ORDER_AMOUNT,
1819
PROCESS_ORDER_RESPONSE_ERROR_MSG_ORDER_SLOT_TOO_OLD,
@@ -45,9 +46,9 @@ use drift_rs::{
4546
types::{
4647
accounts::{HighLeverageModeConfig, User},
4748
errors::ErrorCode,
48-
CommitmentConfig, MarketId, MarketType, OrderParams, OrderType, PositionDirection,
49-
ProgramError, SdkError, SdkResult, SignedMsgTriggerOrderParams, VersionedMessage,
50-
VersionedTransaction,
49+
CommitmentConfig, MarketId, MarketStatus, MarketType, OrderParams, OrderType,
50+
PositionDirection, ProgramError, SdkError, SdkResult, SignedMsgTriggerOrderParams,
51+
VersionedMessage, VersionedTransaction,
5152
},
5253
Context, DriftClient, RpcClient, TransactionBuilder, Wallet,
5354
};
@@ -260,6 +261,20 @@ pub async fn process_order(
260261
let market = server_params
261262
.drift
262263
.try_get_perp_market_account(order_params.market_index);
264+
265+
if market
266+
.as_ref()
267+
.is_ok_and(|m| m.status == MarketStatus::Delisted)
268+
{
269+
return Err((
270+
axum::http::StatusCode::BAD_REQUEST,
271+
ProcessOrderResponse {
272+
message: PROCESS_ORDER_RESPONSE_ERROR_MSG_DELISTED_MARKET,
273+
error: format!("market {} delisted", order_params.market_index).into(),
274+
},
275+
));
276+
}
277+
263278
if let Err(err) = validate_signed_order_params(
264279
&order_params,
265280
market.map(|m| m.amm.min_order_size).unwrap_or(0),
@@ -623,7 +638,6 @@ pub async fn health_check(
623638

624639
pub async fn start_server() {
625640
// Start server
626-
627641
dotenv().ok();
628642

629643
let use_kafka: bool = env::var("USE_KAFKA").unwrap_or_else(|_| "false".to_string()) == "true";

src/types/messages.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,7 @@ pub const PROCESS_ORDER_RESPONSE_ERROR_MSG_VERIFY_SIGNATURE: &str =
201201
"Error verifying signed message";
202202
pub const PROCESS_ORDER_RESPONSE_ERROR_MSG_ORDER_SLOT_TOO_OLD: &str = "Order slot too old";
203203
pub const PROCESS_ORDER_RESPONSE_ERROR_MSG_INVALID_ORDER: &str = "Invalid order";
204+
pub const PROCESS_ORDER_RESPONSE_ERROR_MSG_DELISTED_MARKET: &str = "Delisted market";
204205
pub const PROCESS_ORDER_RESPONSE_ERROR_MSG_INVALID_ORDER_AMOUNT: &str =
205206
"Invalid base_asset_amount in tp/sl";
206207
pub const PROCESS_ORDER_RESPONSE_ERROR_MSG_DELIVERY_FAILED: &str = "Failed to deliver message";

0 commit comments

Comments
 (0)