Skip to content

Commit 0bdd4c0

Browse files
committed
revert to single sdk decode function
1 parent aaa3479 commit 0bdd4c0

File tree

5 files changed

+17
-170
lines changed

5 files changed

+17
-170
lines changed

programs/drift/src/state/order_params.rs

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -856,9 +856,6 @@ impl OrderParams {
856856
}
857857
}
858858

859-
/// Original swift message, new fields will never be added to this struct in order
860-
/// to maintain backwards compatibility. Additional fields will be appended to
861-
/// [`SignedMsgOrderParamsMessageExtended`]
862859
#[derive(AnchorSerialize, AnchorDeserialize, Clone, Default, Eq, PartialEq, Debug)]
863860
pub struct SignedMsgOrderParamsMessage {
864861
pub signed_msg_order_params: OrderParams,
@@ -867,22 +864,9 @@ pub struct SignedMsgOrderParamsMessage {
867864
pub uuid: [u8; 8],
868865
pub take_profit_order_params: Option<SignedMsgTriggerOrderParams>,
869866
pub stop_loss_order_params: Option<SignedMsgTriggerOrderParams>,
870-
}
871-
872-
#[derive(AnchorSerialize, AnchorDeserialize, Clone, Default, Eq, PartialEq, Debug)]
873-
pub struct SignedMsgOrderParamsMessageExtended {
874-
pub signed_msg_order_params: OrderParams,
875-
pub sub_account_id: u16,
876-
pub slot: u64,
877-
pub uuid: [u8; 8],
878-
pub take_profit_order_params: Option<SignedMsgTriggerOrderParams>,
879-
pub stop_loss_order_params: Option<SignedMsgTriggerOrderParams>,
880867
pub max_margin_ratio: Option<u16>,
881868
}
882869

883-
/// Original swift message, new fields will never be added to this struct in order
884-
/// to maintain backwards compatibility. Additional fields will be appended to
885-
/// [`SignedMsgOrderParamsDelegateMessageExtended`]
886870
#[derive(AnchorSerialize, AnchorDeserialize, Clone, Default, Eq, PartialEq, Debug)]
887871
pub struct SignedMsgOrderParamsDelegateMessage {
888872
pub signed_msg_order_params: OrderParams,
@@ -891,16 +875,6 @@ pub struct SignedMsgOrderParamsDelegateMessage {
891875
pub uuid: [u8; 8],
892876
pub take_profit_order_params: Option<SignedMsgTriggerOrderParams>,
893877
pub stop_loss_order_params: Option<SignedMsgTriggerOrderParams>,
894-
}
895-
896-
#[derive(AnchorSerialize, AnchorDeserialize, Clone, Default, Eq, PartialEq, Debug)]
897-
pub struct SignedMsgOrderParamsDelegateMessageExtended {
898-
pub signed_msg_order_params: OrderParams,
899-
pub taker_pubkey: Pubkey,
900-
pub slot: u64,
901-
pub uuid: [u8; 8],
902-
pub take_profit_order_params: Option<SignedMsgTriggerOrderParams>,
903-
pub stop_loss_order_params: Option<SignedMsgTriggerOrderParams>,
904878
pub max_margin_ratio: Option<u16>,
905879
}
906880

programs/drift/src/validation/sig_verification.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use crate::error::ErrorCode;
22
use crate::state::order_params::{
3-
OrderParams, SignedMsgOrderParamsMessageExtended,
4-
SignedMsgTriggerOrderParams, SignedMsgOrderParamsDelegateMessageExtended,
3+
OrderParams, SignedMsgOrderParamsMessage,
4+
SignedMsgTriggerOrderParams, SignedMsgOrderParamsDelegateMessage,
55
};
66
use anchor_lang::prelude::*;
77
use bytemuck::try_cast_slice;
@@ -74,12 +74,12 @@ pub fn deserialize_into_verified_message(
7474
if payload.len() < 8 {
7575
return Err(SignatureVerificationError::InvalidMessageDataSize.into());
7676
}
77-
let min_len: usize = std::mem::size_of::<SignedMsgOrderParamsDelegateMessageExtended>();
77+
let min_len: usize = std::mem::size_of::<SignedMsgOrderParamsDelegateMessage>();
7878
let mut owned = payload;
7979
if owned.len() < min_len {
8080
owned.resize(min_len, 0);
8181
}
82-
let deserialized = SignedMsgOrderParamsDelegateMessageExtended::deserialize(
82+
let deserialized = SignedMsgOrderParamsDelegateMessage::deserialize(
8383
&mut &owned[8..], // 8 byte manual discriminator
8484
)
8585
.map_err(|_| {
@@ -102,12 +102,12 @@ pub fn deserialize_into_verified_message(
102102
if payload.len() < 8 {
103103
return Err(SignatureVerificationError::InvalidMessageDataSize.into());
104104
}
105-
let min_len: usize = std::mem::size_of::<SignedMsgOrderParamsMessageExtended>();
105+
let min_len: usize = std::mem::size_of::<SignedMsgOrderParamsMessage>();
106106
let mut owned = payload;
107107
if owned.len() < min_len {
108108
owned.resize(min_len, 0);
109109
}
110-
let deserialized = SignedMsgOrderParamsMessageExtended::deserialize(
110+
let deserialized = SignedMsgOrderParamsMessage::deserialize(
111111
&mut &owned[8..], // 8 byte manual discriminator
112112
)
113113
.map_err(|_| {

sdk/src/driftClient.ts

Lines changed: 10 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -6547,36 +6547,36 @@ export class DriftClient {
65476547

65486548
// we encode to the Extended versions of the messages to avoid padding errors
65496549
const anchorIxName = delegateSigner
6550-
? 'global' + ':' + 'SignedMsgOrderParamsDelegateMessageExtended'
6551-
: 'global' + ':' + 'SignedMsgOrderParamsMessageExtended';
6550+
? 'global' + ':' + 'SignedMsgOrderParamsDelegateMessage'
6551+
: 'global' + ':' + 'SignedMsgOrderParamsMessage';
65526552
const prefix = Buffer.from(sha256(anchorIxName).slice(0, 8));
65536553
const buf = Buffer.concat([
65546554
prefix,
65556555
delegateSigner
65566556
? this.program.coder.types.encode(
6557-
'SignedMsgOrderParamsDelegateMessageExtended',
6557+
'SignedMsgOrderParamsDelegateMessage',
65586558
orderParamsMessage as SignedMsgOrderParamsDelegateMessage
65596559
)
65606560
: this.program.coder.types.encode(
6561-
'SignedMsgOrderParamsMessageExtended',
6561+
'SignedMsgOrderParamsMessage',
65626562
orderParamsMessage as SignedMsgOrderParamsMessage
65636563
),
65646564
]);
65656565
return buf;
65666566
}
65676567

65686568
/*
6569-
* Decode signedMsg taker order params from borsh buffer. Zero padding failed deserializations until
6569+
* Decode signedMsg taker order params from borsh buffer. Zero pads the message on failed deserializations until
65706570
* the message is successfuly decoded, or we've hit max iterations. This is necessary if the client
6571-
* is decoding a message created by another client with an outdated IDL.
6571+
* decodes a message encoded by an outdated IDL.
65726572
*/
6573-
public decodeSignedMsgOrderParamsMessageExtended(
6573+
public decodeSignedMsgOrderParamsMessage(
65746574
encodedMessage: Buffer,
65756575
delegateSigner?: boolean
65766576
): SignedMsgOrderParamsMessage | SignedMsgOrderParamsDelegateMessage {
65776577
const decodeStr = delegateSigner
6578-
? 'SignedMsgOrderParamsDelegateMessageExtended'
6579-
: 'SignedMsgOrderParamsMessageExtended';
6578+
? 'SignedMsgOrderParamsDelegateMessage'
6579+
: 'SignedMsgOrderParamsMessage';
65806580
let decodeAttempts = 0;
65816581
do {
65826582
try {
@@ -6596,23 +6596,7 @@ export class DriftClient {
65966596
} while (decodeAttempts < 100);
65976597

65986598
throw new Error(
6599-
`Failed to decode SignedMsgOrderParamsMessageExtended after ${decodeAttempts} attempts`
6600-
);
6601-
}
6602-
6603-
/*
6604-
* Decode signedMsg taker order params from borsh buffer
6605-
*/
6606-
public decodeSignedMsgOrderParamsMessage(
6607-
encodedMessage: Buffer,
6608-
delegateSigner?: boolean
6609-
): SignedMsgOrderParamsMessage | SignedMsgOrderParamsDelegateMessage {
6610-
const decodeStr = delegateSigner
6611-
? 'SignedMsgOrderParamsDelegateMessage'
6612-
: 'SignedMsgOrderParamsMessage';
6613-
return this.program.coder.types.decode(
6614-
decodeStr,
6615-
encodedMessage.slice(8) // assumes discriminator
6599+
`Failed to decode SignedMsgOrderParamsMessage after ${decodeAttempts} attempts`
66166600
);
66176601
}
66186602

sdk/src/idl/drift.json

Lines changed: 1 addition & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -10098,58 +10098,6 @@
1009810098
},
1009910099
{
1010010100
"name": "SignedMsgOrderParamsMessage",
10101-
"docs": [
10102-
"Original swift message, new fields will never be added to this struct in order",
10103-
"to maintain backwards compatibility. Additional fields will be appended to",
10104-
"[`SignedMsgOrderParamsMessageExtended`]"
10105-
],
10106-
"type": {
10107-
"kind": "struct",
10108-
"fields": [
10109-
{
10110-
"name": "signedMsgOrderParams",
10111-
"type": {
10112-
"defined": "OrderParams"
10113-
}
10114-
},
10115-
{
10116-
"name": "subAccountId",
10117-
"type": "u16"
10118-
},
10119-
{
10120-
"name": "slot",
10121-
"type": "u64"
10122-
},
10123-
{
10124-
"name": "uuid",
10125-
"type": {
10126-
"array": [
10127-
"u8",
10128-
8
10129-
]
10130-
}
10131-
},
10132-
{
10133-
"name": "takeProfitOrderParams",
10134-
"type": {
10135-
"option": {
10136-
"defined": "SignedMsgTriggerOrderParams"
10137-
}
10138-
}
10139-
},
10140-
{
10141-
"name": "stopLossOrderParams",
10142-
"type": {
10143-
"option": {
10144-
"defined": "SignedMsgTriggerOrderParams"
10145-
}
10146-
}
10147-
}
10148-
]
10149-
}
10150-
},
10151-
{
10152-
"name": "SignedMsgOrderParamsMessageExtended",
1015310101
"type": {
1015410102
"kind": "struct",
1015510103
"fields": [
@@ -10203,58 +10151,6 @@
1020310151
},
1020410152
{
1020510153
"name": "SignedMsgOrderParamsDelegateMessage",
10206-
"docs": [
10207-
"Original swift message, new fields will never be added to this struct in order",
10208-
"to maintain backwards compatibility. Additional fields will be appended to",
10209-
"[`SignedMsgOrderParamsDelegateMessageExtended`]"
10210-
],
10211-
"type": {
10212-
"kind": "struct",
10213-
"fields": [
10214-
{
10215-
"name": "signedMsgOrderParams",
10216-
"type": {
10217-
"defined": "OrderParams"
10218-
}
10219-
},
10220-
{
10221-
"name": "takerPubkey",
10222-
"type": "publicKey"
10223-
},
10224-
{
10225-
"name": "slot",
10226-
"type": "u64"
10227-
},
10228-
{
10229-
"name": "uuid",
10230-
"type": {
10231-
"array": [
10232-
"u8",
10233-
8
10234-
]
10235-
}
10236-
},
10237-
{
10238-
"name": "takeProfitOrderParams",
10239-
"type": {
10240-
"option": {
10241-
"defined": "SignedMsgTriggerOrderParams"
10242-
}
10243-
}
10244-
},
10245-
{
10246-
"name": "stopLossOrderParams",
10247-
"type": {
10248-
"option": {
10249-
"defined": "SignedMsgTriggerOrderParams"
10250-
}
10251-
}
10252-
}
10253-
]
10254-
}
10255-
},
10256-
{
10257-
"name": "SignedMsgOrderParamsDelegateMessageExtended",
1025810154
"type": {
1025910155
"kind": "struct",
1026010156
"fields": [
@@ -16078,8 +15974,5 @@
1607815974
"name": "InvalidIfRebalanceSwap",
1607915975
"msg": "Invalid If Rebalance Swap"
1608015976
}
16081-
],
16082-
"metadata": {
16083-
"address": "dRiftyHA39MWEi3m9aunc5MzRF1JYuBsbn6VPcn33UH"
16084-
}
15977+
]
1608515978
}

sdk/src/types.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1240,27 +1240,23 @@ export const DefaultOrderParams: OrderParams = {
12401240
auctionEndPrice: null,
12411241
};
12421242

1243-
// this matches [`SignedMsgOrderParamsMessageExtended`] on the program
12441243
export type SignedMsgOrderParamsMessage = {
12451244
signedMsgOrderParams: OrderParams;
12461245
subAccountId: number;
12471246
slot: BN;
12481247
uuid: Uint8Array;
12491248
takeProfitOrderParams: SignedMsgTriggerOrderParams | null;
12501249
stopLossOrderParams: SignedMsgTriggerOrderParams | null;
1251-
// extended fields below
12521250
maxMarginRatio?: number | null;
12531251
};
12541252

1255-
// this matches [`SignedMsgOrderParamsDelegateMessageExtended`] on the program
12561253
export type SignedMsgOrderParamsDelegateMessage = {
12571254
signedMsgOrderParams: OrderParams;
12581255
slot: BN;
12591256
uuid: Uint8Array;
12601257
takerPubkey: PublicKey;
12611258
takeProfitOrderParams: SignedMsgTriggerOrderParams | null;
12621259
stopLossOrderParams: SignedMsgTriggerOrderParams | null;
1263-
// extended fields below
12641260
maxMarginRatio?: number | null;
12651261
};
12661262

0 commit comments

Comments
 (0)