Skip to content

Commit ff0d66e

Browse files
jordy255190xbigz
authored andcommitted
fix comments (#1844)
1 parent 311b051 commit ff0d66e

File tree

1 file changed

+41
-14
lines changed

1 file changed

+41
-14
lines changed

sdk/src/swift/swiftOrderSubscriber.ts

Lines changed: 41 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,35 @@ export type SwiftOrderSubscriberConfig = {
4141
keypair: Keypair;
4242
};
4343

44+
/**
45+
* Swift order message received from WebSocket
46+
*/
47+
export interface SwiftOrderMessage {
48+
/** Hex string of the order message */
49+
order_message: string;
50+
/** Base58 string of taker authority */
51+
taker_authority: string;
52+
/** Base58 string of signing authority */
53+
signing_authority: string;
54+
/** Base64 string containing the order signature */
55+
order_signature: string;
56+
/** Swift order UUID */
57+
uuid: string;
58+
/** Whether the order auction params are likely to be sanitized on submission to program */
59+
will_sanitize?: boolean;
60+
/** Base64 string of a prerequisite deposit tx. The swift order_message should be bundled
61+
* after the deposit when present */
62+
depositTx?: string;
63+
}
64+
4465
export class SwiftOrderSubscriber {
4566
private heartbeatTimeout: ReturnType<typeof setTimeout> | null = null;
4667
private readonly heartbeatIntervalMs = 60000;
4768
private ws: WebSocket | null = null;
4869
private driftClient: DriftClient;
4970
public userAccountGetter?: AccountGetter; // In practice, this for now is just an OrderSubscriber or a UserMap
5071
public onOrder: (
51-
orderMessageRaw: any,
72+
orderMessageRaw: SwiftOrderMessage,
5273
signedMessage:
5374
| SignedMsgOrderParamsMessage
5475
| SignedMsgOrderParamsDelegateMessage,
@@ -120,13 +141,14 @@ export class SwiftOrderSubscriber {
120141

121142
async subscribe(
122143
onOrder: (
123-
orderMessageRaw: any,
144+
orderMessageRaw: SwiftOrderMessage,
124145
signedMessage:
125146
| SignedMsgOrderParamsMessage
126147
| SignedMsgOrderParamsDelegateMessage,
127148
isDelegateSigner?: boolean
128149
) => Promise<void>,
129-
acceptSanitized = false
150+
acceptSanitized = false,
151+
acceptDepositTrade = false
130152
): Promise<void> {
131153
this.onOrder = onOrder;
132154

@@ -150,13 +172,20 @@ export class SwiftOrderSubscriber {
150172
}
151173

152174
if (message['order']) {
153-
const order = message['order'];
175+
const order = message['order'] as SwiftOrderMessage;
154176
// ignore likely sanitized orders by default
155-
if (order['will_sanitize'] === true && !acceptSanitized) {
177+
if (order.will_sanitize === true && !acceptSanitized) {
156178
return;
157179
}
180+
// order has a prerequisite deposit tx attached
181+
if (message['deposit']) {
182+
order.depositTx = message['deposit'];
183+
if (!acceptDepositTrade) {
184+
return;
185+
}
186+
}
158187
const signedMsgOrderParamsBuf = Buffer.from(
159-
order['order_message'],
188+
order.order_message,
160189
'hex'
161190
);
162191
const isDelegateSigner = signedMsgOrderParamsBuf
@@ -224,7 +253,7 @@ export class SwiftOrderSubscriber {
224253
}
225254

226255
async getPlaceAndMakeSignedMsgOrderIxs(
227-
orderMessageRaw: any,
256+
orderMessageRaw: SwiftOrderMessage,
228257
signedMsgOrderParamsMessage:
229258
| SignedMsgOrderParamsMessage
230259
| SignedMsgOrderParamsDelegateMessage,
@@ -235,7 +264,7 @@ export class SwiftOrderSubscriber {
235264
}
236265

237266
const signedMsgOrderParamsBuf = Buffer.from(
238-
orderMessageRaw['order_message'],
267+
orderMessageRaw.order_message,
239268
'hex'
240269
);
241270

@@ -256,10 +285,8 @@ export class SwiftOrderSubscriber {
256285
isDelegateSigner
257286
);
258287

259-
const takerAuthority = new PublicKey(orderMessageRaw['taker_authority']);
260-
const signingAuthority = new PublicKey(
261-
orderMessageRaw['signing_authority']
262-
);
288+
const takerAuthority = new PublicKey(orderMessageRaw.taker_authority);
289+
const signingAuthority = new PublicKey(orderMessageRaw.signing_authority);
263290
const takerUserPubkey = isDelegateSigner
264291
? (signedMessage as SignedMsgOrderParamsDelegateMessage).takerPubkey
265292
: await getUserAccountPublicKey(
@@ -273,9 +300,9 @@ export class SwiftOrderSubscriber {
273300
const ixs = await this.driftClient.getPlaceAndMakeSignedMsgPerpOrderIxs(
274301
{
275302
orderParams: signedMsgOrderParamsBuf,
276-
signature: Buffer.from(orderMessageRaw['order_signature'], 'base64'),
303+
signature: Buffer.from(orderMessageRaw.order_signature, 'base64'),
277304
},
278-
decodeUTF8(orderMessageRaw['uuid']),
305+
decodeUTF8(orderMessageRaw.uuid),
279306
{
280307
taker: takerUserPubkey,
281308
takerUserAccount,

0 commit comments

Comments
 (0)