Skip to content

Commit e83382f

Browse files
authored
feat: Add TWAP types for v4-client-js (#477)
Tested it locally, and it _looks_ like its working
1 parent 597df76 commit e83382f

File tree

5 files changed

+37
-8
lines changed

5 files changed

+37
-8
lines changed

v4-client-js/__native__/__ios__/v4-native-client.js

Lines changed: 19 additions & 6 deletions
Large diffs are not rendered by default.

v4-client-js/src/clients/constants.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,8 @@ export enum OrderType {
144144
TAKE_PROFIT_LIMIT = 'TAKE_PROFIT',
145145
STOP_MARKET = 'STOP_MARKET',
146146
TAKE_PROFIT_MARKET = 'TAKE_PROFIT_MARKET',
147+
TWAP = 'TWAP',
148+
TWAP_SUBORDER = 'TWAP_SUBORDER',
147149
}
148150

149151
// ------------ Order Side ------------

v4-client-js/src/clients/helpers/chain-helpers.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,10 @@ export function calculateTimeInForce(
133133
throw new Error('Unexpected code path: timeInForce');
134134
}
135135

136+
case OrderType.TWAP:
137+
case OrderType.TWAP_SUBORDER:
138+
return Order_TimeInForce.TIME_IN_FORCE_UNSPECIFIED;
139+
136140
default:
137141
throw new Error('Unexpected code path: timeInForce');
138142
}
@@ -159,6 +163,12 @@ export function calculateOrderFlags(type: OrderType, timeInForce?: OrderTimeInFo
159163
case OrderType.TAKE_PROFIT_MARKET:
160164
return OrderFlags.CONDITIONAL;
161165

166+
case OrderType.TWAP:
167+
return OrderFlags.TWAP;
168+
169+
case OrderType.TWAP_SUBORDER:
170+
return OrderFlags.TWAP_SUBORDER;
171+
162172
default:
163173
throw new Error('Unexpected code path: orderFlags');
164174
}

v4-client-js/src/clients/types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ export enum OrderFlags {
3939
SHORT_TERM = 0,
4040
LONG_TERM = 64,
4141
CONDITIONAL = 32,
42+
TWAP = 128,
43+
TWAP_SUBORDER = 256,
4244
}
4345

4446
// TWAP order parameters

v4-client-js/src/lib/validation.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,12 +173,14 @@ export function verifyOrderFlags(orderFlags: OrderFlags): boolean {
173173
return (
174174
orderFlags === OrderFlags.SHORT_TERM ||
175175
orderFlags === OrderFlags.LONG_TERM ||
176-
orderFlags === OrderFlags.CONDITIONAL
176+
orderFlags === OrderFlags.CONDITIONAL ||
177+
orderFlags === OrderFlags.TWAP ||
178+
orderFlags === OrderFlags.TWAP_SUBORDER
177179
);
178180
}
179181

180182
export function isStatefulOrder(orderFlags: OrderFlags): boolean {
181-
return orderFlags === OrderFlags.LONG_TERM || orderFlags === OrderFlags.CONDITIONAL;
183+
return orderFlags === OrderFlags.LONG_TERM || orderFlags === OrderFlags.CONDITIONAL || orderFlags === OrderFlags.TWAP || orderFlags === OrderFlags.TWAP_SUBORDER;
182184
}
183185

184186
function verifyIsBech32(address: string): Error | undefined {

0 commit comments

Comments
 (0)