@strkfarm/sdk 1.2.0 → 2.0.0-dev-strategy2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.browser.global.js +76556 -66640
- package/dist/index.browser.mjs +34235 -24392
- package/dist/index.d.ts +2372 -793
- package/dist/index.js +31967 -22084
- package/dist/index.mjs +25545 -15719
- package/package.json +86 -76
- package/readme.md +56 -1
- package/src/data/extended-deposit.abi.json +3613 -0
- package/src/data/universal-vault.abi.json +135 -20
- package/src/dataTypes/_bignumber.ts +11 -0
- package/src/dataTypes/address.ts +7 -0
- package/src/global.ts +240 -193
- package/src/interfaces/common.tsx +26 -2
- package/src/modules/ExtendedWrapperSDk/index.ts +62 -0
- package/src/modules/ExtendedWrapperSDk/types.ts +311 -0
- package/src/modules/ExtendedWrapperSDk/wrapper.ts +448 -0
- package/src/modules/avnu.ts +17 -4
- package/src/modules/ekubo-quoter.ts +89 -10
- package/src/modules/erc20.ts +67 -21
- package/src/modules/harvests.ts +29 -43
- package/src/modules/index.ts +5 -1
- package/src/modules/lst-apr.ts +36 -0
- package/src/modules/midas.ts +159 -0
- package/src/modules/pricer-from-api.ts +2 -2
- package/src/modules/pricer-lst.ts +1 -1
- package/src/modules/pricer.ts +3 -38
- package/src/modules/token-market-data.ts +202 -0
- package/src/node/deployer.ts +1 -36
- package/src/strategies/autoCompounderStrk.ts +1 -1
- package/src/strategies/base-strategy.ts +20 -3
- package/src/strategies/btc-vesu-extended-strategy/core-strategy.tsx +1486 -0
- package/src/strategies/btc-vesu-extended-strategy/services/operationService.ts +32 -0
- package/src/strategies/btc-vesu-extended-strategy/utils/constants.ts +3 -0
- package/src/strategies/btc-vesu-extended-strategy/utils/helper.ts +396 -0
- package/src/strategies/btc-vesu-extended-strategy/utils/types.ts +5 -0
- package/src/strategies/ekubo-cl-vault.tsx +123 -306
- package/src/strategies/index.ts +7 -1
- package/src/strategies/svk-strategy.ts +247 -0
- package/src/strategies/universal-adapters/adapter-optimizer.ts +65 -0
- package/src/strategies/universal-adapters/adapter-utils.ts +5 -1
- package/src/strategies/universal-adapters/avnu-adapter.ts +432 -0
- package/src/strategies/universal-adapters/baseAdapter.ts +181 -153
- package/src/strategies/universal-adapters/common-adapter.ts +98 -77
- package/src/strategies/universal-adapters/extended-adapter.ts +976 -0
- package/src/strategies/universal-adapters/index.ts +7 -1
- package/src/strategies/universal-adapters/unused-balance-adapter.ts +109 -0
- package/src/strategies/universal-adapters/vesu-adapter.ts +230 -230
- package/src/strategies/universal-adapters/vesu-borrow-adapter.ts +1247 -0
- package/src/strategies/universal-adapters/vesu-multiply-adapter.ts +1306 -0
- package/src/strategies/universal-adapters/vesu-supply-only-adapter.ts +58 -51
- package/src/strategies/universal-lst-muliplier-strategy.tsx +716 -844
- package/src/strategies/universal-strategy.tsx +1103 -1181
- package/src/strategies/vesu-extended-strategy/services/operationService.ts +34 -0
- package/src/strategies/vesu-extended-strategy/types/transaction-metadata.ts +25 -0
- package/src/strategies/vesu-extended-strategy/utils/config.runtime.ts +77 -0
- package/src/strategies/vesu-extended-strategy/utils/constants.ts +50 -0
- package/src/strategies/vesu-extended-strategy/utils/helper.ts +367 -0
- package/src/strategies/vesu-extended-strategy/vesu-extended-strategy.tsx +1420 -0
- package/src/strategies/vesu-rebalance.tsx +16 -20
- package/src/utils/health-factor-math.ts +11 -5
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript type definitions for Extended Exchange API
|
|
3
|
+
* Based on Python SDK models from x10.perpetual
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
// Enums
|
|
7
|
+
export enum OrderSide {
|
|
8
|
+
BUY = "BUY",
|
|
9
|
+
SELL = "SELL",
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export enum TimeInForce {
|
|
13
|
+
GTT = "GTT",
|
|
14
|
+
IOC = "IOC",
|
|
15
|
+
FOK = "FOK",
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export enum OrderType {
|
|
19
|
+
LIMIT = "LIMIT",
|
|
20
|
+
CONDITIONAL = "CONDITIONAL",
|
|
21
|
+
MARKET = "MARKET",
|
|
22
|
+
TPSL = "TPSL",
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export enum OrderStatus {
|
|
26
|
+
UNKNOWN = "UNKNOWN",
|
|
27
|
+
NEW = "NEW",
|
|
28
|
+
UNTRIGGERED = "UNTRIGGERED",
|
|
29
|
+
PARTIALLY_FILLED = "PARTIALLY_FILLED",
|
|
30
|
+
FILLED = "FILLED",
|
|
31
|
+
CANCELLED = "CANCELLED",
|
|
32
|
+
EXPIRED = "EXPIRED",
|
|
33
|
+
REJECTED = "REJECTED",
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export enum OrderStatusReason {
|
|
37
|
+
UNKNOWN = "UNKNOWN",
|
|
38
|
+
NONE = "NONE",
|
|
39
|
+
UNKNOWN_MARKET = "UNKNOWN_MARKET",
|
|
40
|
+
DISABLED_MARKET = "DISABLED_MARKET",
|
|
41
|
+
NOT_ENOUGH_FUNDS = "NOT_ENOUGH_FUNDS",
|
|
42
|
+
NO_LIQUIDITY = "NO_LIQUIDITY",
|
|
43
|
+
INVALID_FEE = "INVALID_FEE",
|
|
44
|
+
INVALID_QTY = "INVALID_QTY",
|
|
45
|
+
INVALID_PRICE = "INVALID_PRICE",
|
|
46
|
+
INVALID_VALUE = "INVALID_VALUE",
|
|
47
|
+
UNKNOWN_ACCOUNT = "UNKNOWN_ACCOUNT",
|
|
48
|
+
SELF_TRADE_PROTECTION = "SELF_TRADE_PROTECTION",
|
|
49
|
+
POST_ONLY_FAILED = "POST_ONLY_FAILED",
|
|
50
|
+
REDUCE_ONLY_FAILED = "REDUCE_ONLY_FAILED",
|
|
51
|
+
INVALID_EXPIRE_TIME = "INVALID_EXPIRE_TIME",
|
|
52
|
+
POSITION_TPSL_CONFLICT = "POSITION_TPSL_CONFLICT",
|
|
53
|
+
INVALID_LEVERAGE = "INVALID_LEVERAGE",
|
|
54
|
+
PREV_ORDER_NOT_FOUND = "PREV_ORDER_NOT_FOUND",
|
|
55
|
+
PREV_ORDER_TRIGGERED = "PREV_ORDER_TRIGGERED",
|
|
56
|
+
TPSL_OTHER_SIDE_FILLED = "TPSL_OTHER_SIDE_FILLED",
|
|
57
|
+
PREV_ORDER_CONFLICT = "PREV_ORDER_CONFLICT",
|
|
58
|
+
ORDER_REPLACED = "ORDER_REPLACED",
|
|
59
|
+
POST_ONLY_MODE = "POST_ONLY_MODE",
|
|
60
|
+
REDUCE_ONLY_MODE = "REDUCE_ONLY_MODE",
|
|
61
|
+
TRADING_OFF_MODE = "TRADING_OFF_MODE",
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export enum PositionSide {
|
|
65
|
+
LONG = "LONG",
|
|
66
|
+
SHORT = "SHORT",
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export enum ExitType {
|
|
70
|
+
TRADE = "TRADE",
|
|
71
|
+
LIQUIDATION = "LIQUIDATION",
|
|
72
|
+
ADL = "ADL",
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export enum AssetOperationType {
|
|
76
|
+
DEPOSIT = "DEPOSIT",
|
|
77
|
+
WITHDRAWAL = "WITHDRAWAL",
|
|
78
|
+
TRANSFER = "TRANSFER",
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export enum AssetOperationStatus {
|
|
82
|
+
PENDING = "PENDING",
|
|
83
|
+
COMPLETED = "COMPLETED",
|
|
84
|
+
FAILED = "FAILED",
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// Base types
|
|
88
|
+
export interface SettlementSignature {
|
|
89
|
+
r: string;
|
|
90
|
+
s: string;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export interface StarkSettlement {
|
|
94
|
+
signature: SettlementSignature;
|
|
95
|
+
stark_key: string;
|
|
96
|
+
collateral_position: string;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export interface StarkDebuggingOrderAmounts {
|
|
100
|
+
collateral_amount: string;
|
|
101
|
+
fee_amount: string;
|
|
102
|
+
synthetic_amount: string;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// Order types
|
|
106
|
+
export interface PlacedOrder {
|
|
107
|
+
id: number;
|
|
108
|
+
external_id: string;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export interface OpenOrder {
|
|
112
|
+
id: number;
|
|
113
|
+
account_id: number;
|
|
114
|
+
external_id: string;
|
|
115
|
+
market: string;
|
|
116
|
+
type: OrderType;
|
|
117
|
+
side: OrderSide;
|
|
118
|
+
status: OrderStatus;
|
|
119
|
+
status_reason?: OrderStatusReason;
|
|
120
|
+
price: string;
|
|
121
|
+
average_price?: string;
|
|
122
|
+
qty: string;
|
|
123
|
+
filled_qty?: string;
|
|
124
|
+
reduce_only: boolean;
|
|
125
|
+
post_only: boolean;
|
|
126
|
+
payed_fee?: string;
|
|
127
|
+
created_time: number;
|
|
128
|
+
updated_time: number;
|
|
129
|
+
expiry_time?: number;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// Position types
|
|
133
|
+
export interface Position {
|
|
134
|
+
id: number;
|
|
135
|
+
accountId: number;
|
|
136
|
+
market: string;
|
|
137
|
+
side: PositionSide;
|
|
138
|
+
leverage: string;
|
|
139
|
+
size: string;
|
|
140
|
+
value: string;
|
|
141
|
+
openPrice: string;
|
|
142
|
+
markPrice: string;
|
|
143
|
+
liquidationPrice?: string;
|
|
144
|
+
unrealisedPnl: string;
|
|
145
|
+
realisedPnl: string;
|
|
146
|
+
tpPrice?: string;
|
|
147
|
+
slPrice?: string;
|
|
148
|
+
adl?: number;
|
|
149
|
+
createdAt: number;
|
|
150
|
+
updatedAt: number;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
export interface PositionHistory {
|
|
154
|
+
id: number;
|
|
155
|
+
account_id: number;
|
|
156
|
+
market: string;
|
|
157
|
+
side: PositionSide;
|
|
158
|
+
leverage: string;
|
|
159
|
+
size: string;
|
|
160
|
+
open_price: string;
|
|
161
|
+
exit_type?: ExitType;
|
|
162
|
+
exit_price?: string;
|
|
163
|
+
realised_pnl: string;
|
|
164
|
+
created_time: number;
|
|
165
|
+
closed_time?: number;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
// Balance types
|
|
169
|
+
export interface Balance {
|
|
170
|
+
collateral_name: string;
|
|
171
|
+
balance: string;
|
|
172
|
+
equity: string;
|
|
173
|
+
availableForTrade: string;
|
|
174
|
+
availableForWithdrawal: string;
|
|
175
|
+
unrealisedPnl: string;
|
|
176
|
+
initialMargin: string;
|
|
177
|
+
marginRatio: string;
|
|
178
|
+
updatedTime: number;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
// Market types
|
|
182
|
+
export interface RiskFactorConfig {
|
|
183
|
+
upper_bound: string;
|
|
184
|
+
risk_factor: string;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
export interface MarketStats {
|
|
188
|
+
daily_volume: string;
|
|
189
|
+
daily_volume_base: string;
|
|
190
|
+
daily_price_change: string;
|
|
191
|
+
daily_low: string;
|
|
192
|
+
daily_high: string;
|
|
193
|
+
last_price: string;
|
|
194
|
+
ask_price: string;
|
|
195
|
+
bid_price: string;
|
|
196
|
+
mark_price: string;
|
|
197
|
+
index_price: string;
|
|
198
|
+
funding_rate: string;
|
|
199
|
+
next_funding_rate: number;
|
|
200
|
+
open_interest: string;
|
|
201
|
+
open_interest_base: string;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
export interface TradingConfig {
|
|
205
|
+
min_order_size: string;
|
|
206
|
+
min_order_size_change: string;
|
|
207
|
+
min_price_change: string;
|
|
208
|
+
max_market_order_value: string;
|
|
209
|
+
max_limit_order_value: string;
|
|
210
|
+
max_position_value: string;
|
|
211
|
+
max_leverage: string;
|
|
212
|
+
max_num_orders: number;
|
|
213
|
+
limit_price_cap: string;
|
|
214
|
+
limit_price_floor: string;
|
|
215
|
+
risk_factor_config: RiskFactorConfig[];
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
export interface L2Config {
|
|
219
|
+
type: string;
|
|
220
|
+
collateral_id: string;
|
|
221
|
+
collateral_resolution: number;
|
|
222
|
+
synthetic_id: string;
|
|
223
|
+
synthetic_resolution: number;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
export interface Market {
|
|
227
|
+
name: string;
|
|
228
|
+
asset_name: string;
|
|
229
|
+
asset_precision: number;
|
|
230
|
+
collateral_asset_name: string;
|
|
231
|
+
collateral_asset_precision: number;
|
|
232
|
+
active: boolean;
|
|
233
|
+
market_stats: MarketStats;
|
|
234
|
+
trading_config: TradingConfig;
|
|
235
|
+
l2_config: L2Config;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
// Asset operation types
|
|
239
|
+
export interface AssetOperation {
|
|
240
|
+
id: string;
|
|
241
|
+
type: AssetOperationType;
|
|
242
|
+
status: AssetOperationStatus;
|
|
243
|
+
amount: string;
|
|
244
|
+
asset: string;
|
|
245
|
+
created_time: number;
|
|
246
|
+
updated_time: number;
|
|
247
|
+
description?: string;
|
|
248
|
+
transactionHash?:string;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
// Request types
|
|
252
|
+
export interface CreateOrderRequest {
|
|
253
|
+
market_name: string;
|
|
254
|
+
amount: string;
|
|
255
|
+
price: string;
|
|
256
|
+
side: OrderSide;
|
|
257
|
+
post_only?: boolean;
|
|
258
|
+
previous_order_id?: number;
|
|
259
|
+
external_id?: string;
|
|
260
|
+
time_in_force?: TimeInForce;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
export interface WithdrawRequest {
|
|
264
|
+
amount: string;
|
|
265
|
+
asset?: string;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
export interface SignedWithdrawRequest {
|
|
269
|
+
recipient: string;
|
|
270
|
+
position_id: number;
|
|
271
|
+
amount: number;
|
|
272
|
+
expiration: number;
|
|
273
|
+
salt: number;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
export interface CancelOrderRequest {
|
|
277
|
+
order_id: number;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
// Response wrapper type
|
|
281
|
+
export interface ApiResponse<T> {
|
|
282
|
+
success: boolean;
|
|
283
|
+
message: string;
|
|
284
|
+
data: T;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
// Extended API response wrapper (matches Python WrappedApiResponse)
|
|
288
|
+
export interface ExtendedApiResponse<T> {
|
|
289
|
+
status: 'OK' | 'ERROR';
|
|
290
|
+
message: string;
|
|
291
|
+
data: T;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
// Configuration types
|
|
295
|
+
export interface ExtendedWrapperConfig {
|
|
296
|
+
baseUrl: string;
|
|
297
|
+
apiKey?: string;
|
|
298
|
+
timeout?: number;
|
|
299
|
+
retries?: number;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
export interface UpdateLeverageRequest {
|
|
303
|
+
leverage: string;
|
|
304
|
+
market: string;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
export interface FundingRate {
|
|
308
|
+
m: string;
|
|
309
|
+
f:string;
|
|
310
|
+
t:number;
|
|
311
|
+
}
|