@kamino-finance/klend-sdk 5.7.0 → 5.9.0

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.
@@ -0,0 +1,1324 @@
1
+ {
2
+ "version": "0.1.0",
3
+ "name": "perpetuals",
4
+ "instructions": [
5
+ {
6
+ "name": "init",
7
+ "accounts": [
8
+ { "name": "upgradeAuthority", "isMut": true, "isSigner": true },
9
+ { "name": "admin", "isMut": false, "isSigner": false },
10
+ { "name": "transferAuthority", "isMut": true, "isSigner": false },
11
+ { "name": "perpetuals", "isMut": true, "isSigner": false },
12
+ { "name": "perpetualsProgram", "isMut": false, "isSigner": false },
13
+ { "name": "perpetualsProgramData", "isMut": false, "isSigner": false },
14
+ { "name": "systemProgram", "isMut": false, "isSigner": false },
15
+ { "name": "tokenProgram", "isMut": false, "isSigner": false }
16
+ ],
17
+ "args": [{ "name": "params", "type": { "defined": "InitParams" } }]
18
+ },
19
+ {
20
+ "name": "addPool",
21
+ "accounts": [
22
+ { "name": "admin", "isMut": true, "isSigner": true },
23
+ { "name": "transferAuthority", "isMut": false, "isSigner": false },
24
+ { "name": "perpetuals", "isMut": true, "isSigner": false },
25
+ { "name": "pool", "isMut": true, "isSigner": false },
26
+ { "name": "lpTokenMint", "isMut": true, "isSigner": false },
27
+ { "name": "systemProgram", "isMut": false, "isSigner": false },
28
+ { "name": "tokenProgram", "isMut": false, "isSigner": false },
29
+ { "name": "rent", "isMut": false, "isSigner": false }
30
+ ],
31
+ "args": [{ "name": "params", "type": { "defined": "AddPoolParams" } }]
32
+ },
33
+ {
34
+ "name": "addCustody",
35
+ "accounts": [
36
+ { "name": "admin", "isMut": true, "isSigner": true },
37
+ { "name": "transferAuthority", "isMut": false, "isSigner": false },
38
+ { "name": "perpetuals", "isMut": false, "isSigner": false },
39
+ { "name": "pool", "isMut": true, "isSigner": false },
40
+ { "name": "custody", "isMut": true, "isSigner": false },
41
+ { "name": "custodyTokenAccount", "isMut": true, "isSigner": false },
42
+ { "name": "custodyTokenMint", "isMut": false, "isSigner": false },
43
+ { "name": "systemProgram", "isMut": false, "isSigner": false },
44
+ { "name": "tokenProgram", "isMut": false, "isSigner": false },
45
+ { "name": "rent", "isMut": false, "isSigner": false }
46
+ ],
47
+ "args": [{ "name": "params", "type": { "defined": "AddCustodyParams" } }]
48
+ },
49
+ {
50
+ "name": "setCustodyConfig",
51
+ "accounts": [
52
+ { "name": "admin", "isMut": true, "isSigner": true },
53
+ { "name": "perpetuals", "isMut": false, "isSigner": false },
54
+ { "name": "custody", "isMut": true, "isSigner": false }
55
+ ],
56
+ "args": [{ "name": "params", "type": { "defined": "SetCustodyConfigParams" } }]
57
+ },
58
+ {
59
+ "name": "setCustodyGlobalLimit",
60
+ "accounts": [
61
+ { "name": "keeper", "isMut": false, "isSigner": true },
62
+ { "name": "custody", "isMut": true, "isSigner": false }
63
+ ],
64
+ "args": [{ "name": "params", "type": { "defined": "SetCustodyGlobalLimitParams" } }]
65
+ },
66
+ {
67
+ "name": "setPoolConfig",
68
+ "accounts": [
69
+ { "name": "admin", "isMut": false, "isSigner": true },
70
+ { "name": "perpetuals", "isMut": false, "isSigner": false },
71
+ { "name": "pool", "isMut": true, "isSigner": false }
72
+ ],
73
+ "args": [{ "name": "params", "type": { "defined": "SetPoolConfigParams" } }]
74
+ },
75
+ {
76
+ "name": "setPerpetualsConfig",
77
+ "accounts": [
78
+ { "name": "admin", "isMut": false, "isSigner": true },
79
+ { "name": "perpetuals", "isMut": true, "isSigner": false }
80
+ ],
81
+ "args": [{ "name": "params", "type": { "defined": "SetPerpetualsConfigParams" } }]
82
+ },
83
+ {
84
+ "name": "transferAdmin",
85
+ "accounts": [
86
+ { "name": "admin", "isMut": true, "isSigner": true },
87
+ { "name": "newAdmin", "isMut": false, "isSigner": false },
88
+ { "name": "perpetuals", "isMut": true, "isSigner": false }
89
+ ],
90
+ "args": [{ "name": "params", "type": { "defined": "TransferAdminParams" } }]
91
+ },
92
+ {
93
+ "name": "withdrawFees",
94
+ "accounts": [
95
+ { "name": "keeper", "isMut": false, "isSigner": true },
96
+ { "name": "transferAuthority", "isMut": false, "isSigner": false },
97
+ { "name": "perpetuals", "isMut": false, "isSigner": false },
98
+ { "name": "pool", "isMut": true, "isSigner": false },
99
+ { "name": "custody", "isMut": true, "isSigner": false },
100
+ { "name": "custodyTokenAccount", "isMut": true, "isSigner": false },
101
+ { "name": "custodyOracleAccount", "isMut": false, "isSigner": false },
102
+ { "name": "receivingTokenAccount", "isMut": true, "isSigner": false },
103
+ { "name": "tokenProgram", "isMut": false, "isSigner": false }
104
+ ],
105
+ "args": [{ "name": "params", "type": { "defined": "WithdrawFeesParams" } }]
106
+ },
107
+ {
108
+ "name": "testInit",
109
+ "accounts": [
110
+ { "name": "upgradeAuthority", "isMut": true, "isSigner": true },
111
+ { "name": "admin", "isMut": false, "isSigner": false },
112
+ { "name": "transferAuthority", "isMut": true, "isSigner": false },
113
+ { "name": "perpetuals", "isMut": true, "isSigner": false },
114
+ { "name": "systemProgram", "isMut": false, "isSigner": false },
115
+ { "name": "tokenProgram", "isMut": false, "isSigner": false }
116
+ ],
117
+ "args": [{ "name": "params", "type": { "defined": "TestInitParams" } }]
118
+ },
119
+ {
120
+ "name": "setTestOraclePrice",
121
+ "accounts": [
122
+ { "name": "admin", "isMut": true, "isSigner": true },
123
+ { "name": "perpetuals", "isMut": false, "isSigner": false },
124
+ { "name": "pool", "isMut": false, "isSigner": false },
125
+ { "name": "custody", "isMut": false, "isSigner": false },
126
+ { "name": "oracleAccount", "isMut": true, "isSigner": false },
127
+ { "name": "systemProgram", "isMut": false, "isSigner": false }
128
+ ],
129
+ "args": [{ "name": "params", "type": { "defined": "SetTestOraclePriceParams" } }]
130
+ },
131
+ {
132
+ "name": "setTestTime",
133
+ "accounts": [
134
+ { "name": "admin", "isMut": false, "isSigner": true },
135
+ { "name": "perpetuals", "isMut": true, "isSigner": false }
136
+ ],
137
+ "args": [{ "name": "params", "type": { "defined": "SetTestTimeParams" } }]
138
+ },
139
+ {
140
+ "name": "swap",
141
+ "accounts": [
142
+ { "name": "owner", "isMut": true, "isSigner": true },
143
+ { "name": "fundingAccount", "isMut": true, "isSigner": false },
144
+ { "name": "receivingAccount", "isMut": true, "isSigner": false },
145
+ { "name": "transferAuthority", "isMut": false, "isSigner": false },
146
+ { "name": "perpetuals", "isMut": false, "isSigner": false },
147
+ { "name": "pool", "isMut": true, "isSigner": false },
148
+ { "name": "receivingCustody", "isMut": true, "isSigner": false },
149
+ { "name": "receivingCustodyOracleAccount", "isMut": false, "isSigner": false },
150
+ { "name": "receivingCustodyTokenAccount", "isMut": true, "isSigner": false },
151
+ { "name": "dispensingCustody", "isMut": true, "isSigner": false },
152
+ { "name": "dispensingCustodyOracleAccount", "isMut": false, "isSigner": false },
153
+ { "name": "dispensingCustodyTokenAccount", "isMut": true, "isSigner": false },
154
+ { "name": "tokenProgram", "isMut": false, "isSigner": false },
155
+ { "name": "eventAuthority", "isMut": false, "isSigner": false },
156
+ { "name": "program", "isMut": false, "isSigner": false }
157
+ ],
158
+ "args": [{ "name": "params", "type": { "defined": "SwapParams" } }]
159
+ },
160
+ {
161
+ "name": "swapExactOut",
162
+ "accounts": [
163
+ { "name": "owner", "isMut": true, "isSigner": true },
164
+ { "name": "fundingAccount", "isMut": true, "isSigner": false },
165
+ { "name": "receivingAccount", "isMut": true, "isSigner": false },
166
+ { "name": "transferAuthority", "isMut": false, "isSigner": false },
167
+ { "name": "perpetuals", "isMut": false, "isSigner": false },
168
+ { "name": "pool", "isMut": true, "isSigner": false },
169
+ { "name": "receivingCustody", "isMut": true, "isSigner": false },
170
+ { "name": "receivingCustodyOracleAccount", "isMut": false, "isSigner": false },
171
+ { "name": "receivingCustodyTokenAccount", "isMut": true, "isSigner": false },
172
+ { "name": "dispensingCustody", "isMut": true, "isSigner": false },
173
+ { "name": "dispensingCustodyOracleAccount", "isMut": false, "isSigner": false },
174
+ { "name": "dispensingCustodyTokenAccount", "isMut": true, "isSigner": false },
175
+ { "name": "tokenProgram", "isMut": false, "isSigner": false },
176
+ { "name": "eventAuthority", "isMut": false, "isSigner": false },
177
+ { "name": "program", "isMut": false, "isSigner": false }
178
+ ],
179
+ "args": [{ "name": "params", "type": { "defined": "SwapExactOutParams" } }]
180
+ },
181
+ {
182
+ "name": "addLiquidity",
183
+ "accounts": [
184
+ { "name": "owner", "isMut": true, "isSigner": true },
185
+ { "name": "fundingAccount", "isMut": true, "isSigner": false },
186
+ { "name": "lpTokenAccount", "isMut": true, "isSigner": false },
187
+ { "name": "transferAuthority", "isMut": false, "isSigner": false },
188
+ { "name": "perpetuals", "isMut": false, "isSigner": false },
189
+ { "name": "pool", "isMut": true, "isSigner": false },
190
+ { "name": "custody", "isMut": true, "isSigner": false },
191
+ { "name": "custodyOracleAccount", "isMut": false, "isSigner": false },
192
+ { "name": "custodyTokenAccount", "isMut": true, "isSigner": false },
193
+ { "name": "lpTokenMint", "isMut": true, "isSigner": false },
194
+ { "name": "tokenProgram", "isMut": false, "isSigner": false },
195
+ { "name": "eventAuthority", "isMut": false, "isSigner": false },
196
+ { "name": "program", "isMut": false, "isSigner": false }
197
+ ],
198
+ "args": [{ "name": "params", "type": { "defined": "AddLiquidityParams" } }]
199
+ },
200
+ {
201
+ "name": "removeLiquidity",
202
+ "accounts": [
203
+ { "name": "owner", "isMut": true, "isSigner": true },
204
+ { "name": "receivingAccount", "isMut": true, "isSigner": false },
205
+ { "name": "lpTokenAccount", "isMut": true, "isSigner": false },
206
+ { "name": "transferAuthority", "isMut": false, "isSigner": false },
207
+ { "name": "perpetuals", "isMut": false, "isSigner": false },
208
+ { "name": "pool", "isMut": true, "isSigner": false },
209
+ { "name": "custody", "isMut": true, "isSigner": false },
210
+ { "name": "custodyOracleAccount", "isMut": false, "isSigner": false },
211
+ { "name": "custodyTokenAccount", "isMut": true, "isSigner": false },
212
+ { "name": "lpTokenMint", "isMut": true, "isSigner": false },
213
+ { "name": "tokenProgram", "isMut": false, "isSigner": false },
214
+ { "name": "eventAuthority", "isMut": false, "isSigner": false },
215
+ { "name": "program", "isMut": false, "isSigner": false }
216
+ ],
217
+ "args": [{ "name": "params", "type": { "defined": "RemoveLiquidityParams" } }]
218
+ },
219
+ {
220
+ "name": "createIncreasePositionRequest",
221
+ "accounts": [
222
+ { "name": "owner", "isMut": true, "isSigner": true },
223
+ { "name": "fundingAccount", "isMut": true, "isSigner": false },
224
+ { "name": "perpetuals", "isMut": false, "isSigner": false },
225
+ { "name": "pool", "isMut": false, "isSigner": false },
226
+ { "name": "position", "isMut": true, "isSigner": false },
227
+ { "name": "positionRequest", "isMut": true, "isSigner": false },
228
+ { "name": "positionRequestAta", "isMut": true, "isSigner": false },
229
+ { "name": "custody", "isMut": false, "isSigner": false },
230
+ { "name": "custodyOracleAccount", "isMut": false, "isSigner": false },
231
+ { "name": "collateralCustody", "isMut": false, "isSigner": false },
232
+ { "name": "inputMint", "isMut": false, "isSigner": false },
233
+ { "name": "referral", "isMut": false, "isSigner": false, "isOptional": true },
234
+ { "name": "tokenProgram", "isMut": false, "isSigner": false },
235
+ { "name": "associatedTokenProgram", "isMut": false, "isSigner": false },
236
+ { "name": "systemProgram", "isMut": false, "isSigner": false },
237
+ { "name": "eventAuthority", "isMut": false, "isSigner": false },
238
+ { "name": "program", "isMut": false, "isSigner": false }
239
+ ],
240
+ "args": [{ "name": "params", "type": { "defined": "CreateIncreasePositionRequestParams" } }]
241
+ },
242
+ {
243
+ "name": "updateIncreasePositionRequest",
244
+ "accounts": [
245
+ { "name": "owner", "isMut": true, "isSigner": true },
246
+ { "name": "perpetuals", "isMut": false, "isSigner": false },
247
+ { "name": "pool", "isMut": false, "isSigner": false },
248
+ { "name": "position", "isMut": false, "isSigner": false },
249
+ { "name": "positionRequest", "isMut": true, "isSigner": false },
250
+ { "name": "custody", "isMut": false, "isSigner": false },
251
+ { "name": "custodyOracleAccount", "isMut": false, "isSigner": false }
252
+ ],
253
+ "args": [{ "name": "params", "type": { "defined": "UpdateIncreasePositionRequestParams" } }]
254
+ },
255
+ {
256
+ "name": "createDecreasePositionRequest",
257
+ "accounts": [
258
+ { "name": "owner", "isMut": true, "isSigner": true },
259
+ { "name": "receivingAccount", "isMut": true, "isSigner": false },
260
+ { "name": "perpetuals", "isMut": false, "isSigner": false },
261
+ { "name": "pool", "isMut": true, "isSigner": false },
262
+ { "name": "position", "isMut": false, "isSigner": false },
263
+ { "name": "positionRequest", "isMut": true, "isSigner": false },
264
+ { "name": "positionRequestAta", "isMut": true, "isSigner": false },
265
+ { "name": "custody", "isMut": false, "isSigner": false },
266
+ { "name": "custodyOracleAccount", "isMut": false, "isSigner": false },
267
+ { "name": "collateralCustody", "isMut": false, "isSigner": false },
268
+ { "name": "desiredMint", "isMut": false, "isSigner": false },
269
+ { "name": "referral", "isMut": false, "isSigner": false, "isOptional": true },
270
+ { "name": "tokenProgram", "isMut": false, "isSigner": false },
271
+ { "name": "associatedTokenProgram", "isMut": false, "isSigner": false },
272
+ { "name": "systemProgram", "isMut": false, "isSigner": false },
273
+ { "name": "eventAuthority", "isMut": false, "isSigner": false },
274
+ { "name": "program", "isMut": false, "isSigner": false }
275
+ ],
276
+ "args": [{ "name": "params", "type": { "defined": "CreateDecreasePositionRequestParams" } }]
277
+ },
278
+ {
279
+ "name": "updateDecreasePositionRequest",
280
+ "accounts": [
281
+ { "name": "owner", "isMut": true, "isSigner": true },
282
+ { "name": "perpetuals", "isMut": false, "isSigner": false },
283
+ { "name": "pool", "isMut": false, "isSigner": false },
284
+ { "name": "position", "isMut": false, "isSigner": false },
285
+ { "name": "positionRequest", "isMut": true, "isSigner": false },
286
+ { "name": "custody", "isMut": false, "isSigner": false },
287
+ { "name": "custodyOracleAccount", "isMut": false, "isSigner": false }
288
+ ],
289
+ "args": [{ "name": "params", "type": { "defined": "UpdateDecreasePositionRequestParams" } }]
290
+ },
291
+ {
292
+ "name": "closePositionRequest",
293
+ "accounts": [
294
+ { "name": "keeper", "isMut": false, "isSigner": true, "isOptional": true },
295
+ { "name": "owner", "isMut": true, "isSigner": false },
296
+ { "name": "ownerAta", "isMut": true, "isSigner": false, "isOptional": true },
297
+ { "name": "pool", "isMut": true, "isSigner": false },
298
+ { "name": "positionRequest", "isMut": true, "isSigner": false },
299
+ { "name": "positionRequestAta", "isMut": true, "isSigner": false },
300
+ { "name": "position", "isMut": false, "isSigner": false },
301
+ { "name": "tokenProgram", "isMut": false, "isSigner": false },
302
+ { "name": "eventAuthority", "isMut": false, "isSigner": false },
303
+ { "name": "program", "isMut": false, "isSigner": false }
304
+ ],
305
+ "args": [{ "name": "params", "type": { "defined": "ClosePositionRequestParams" } }]
306
+ },
307
+ {
308
+ "name": "increasePosition",
309
+ "accounts": [
310
+ { "name": "keeper", "isMut": false, "isSigner": true },
311
+ { "name": "perpetuals", "isMut": false, "isSigner": false },
312
+ { "name": "pool", "isMut": true, "isSigner": false },
313
+ { "name": "positionRequest", "isMut": true, "isSigner": false },
314
+ { "name": "positionRequestAta", "isMut": true, "isSigner": false },
315
+ { "name": "position", "isMut": true, "isSigner": false },
316
+ { "name": "custody", "isMut": true, "isSigner": false },
317
+ { "name": "custodyOracleAccount", "isMut": false, "isSigner": false },
318
+ { "name": "collateralCustody", "isMut": true, "isSigner": false },
319
+ { "name": "collateralCustodyOracleAccount", "isMut": false, "isSigner": false },
320
+ { "name": "collateralCustodyTokenAccount", "isMut": true, "isSigner": false },
321
+ { "name": "tokenProgram", "isMut": false, "isSigner": false },
322
+ { "name": "eventAuthority", "isMut": false, "isSigner": false },
323
+ { "name": "program", "isMut": false, "isSigner": false }
324
+ ],
325
+ "args": [{ "name": "params", "type": { "defined": "IncreasePositionParams" } }]
326
+ },
327
+ {
328
+ "name": "increasePositionPreSwap",
329
+ "accounts": [
330
+ { "name": "keeper", "isMut": false, "isSigner": true },
331
+ { "name": "keeperAta", "isMut": true, "isSigner": false },
332
+ { "name": "positionRequest", "isMut": true, "isSigner": false },
333
+ { "name": "positionRequestAta", "isMut": true, "isSigner": false },
334
+ { "name": "position", "isMut": false, "isSigner": false },
335
+ { "name": "collateralCustody", "isMut": false, "isSigner": false },
336
+ { "name": "collateralCustodyTokenAccount", "isMut": false, "isSigner": false },
337
+ { "name": "instruction", "isMut": false, "isSigner": false },
338
+ { "name": "tokenProgram", "isMut": false, "isSigner": false },
339
+ { "name": "eventAuthority", "isMut": false, "isSigner": false },
340
+ { "name": "program", "isMut": false, "isSigner": false }
341
+ ],
342
+ "args": [{ "name": "params", "type": { "defined": "IncreasePositionPreSwapParams" } }]
343
+ },
344
+ {
345
+ "name": "decreasePosition",
346
+ "accounts": [
347
+ { "name": "keeper", "isMut": false, "isSigner": true },
348
+ { "name": "keeperAta", "isMut": true, "isSigner": false, "isOptional": true },
349
+ { "name": "owner", "isMut": true, "isSigner": false },
350
+ { "name": "transferAuthority", "isMut": false, "isSigner": false },
351
+ { "name": "perpetuals", "isMut": false, "isSigner": false },
352
+ { "name": "pool", "isMut": true, "isSigner": false },
353
+ { "name": "positionRequest", "isMut": true, "isSigner": false },
354
+ { "name": "positionRequestAta", "isMut": true, "isSigner": false },
355
+ { "name": "position", "isMut": true, "isSigner": false },
356
+ { "name": "custody", "isMut": true, "isSigner": false },
357
+ { "name": "custodyOracleAccount", "isMut": false, "isSigner": false },
358
+ { "name": "collateralCustody", "isMut": true, "isSigner": false },
359
+ { "name": "collateralCustodyOracleAccount", "isMut": false, "isSigner": false },
360
+ { "name": "collateralCustodyTokenAccount", "isMut": true, "isSigner": false },
361
+ { "name": "instruction", "isMut": false, "isSigner": false },
362
+ { "name": "tokenProgram", "isMut": false, "isSigner": false },
363
+ { "name": "eventAuthority", "isMut": false, "isSigner": false },
364
+ { "name": "program", "isMut": false, "isSigner": false }
365
+ ],
366
+ "args": [{ "name": "params", "type": { "defined": "DecreasePositionParams" } }]
367
+ },
368
+ {
369
+ "name": "decreasePositionPostSwap",
370
+ "accounts": [
371
+ { "name": "keeper", "isMut": false, "isSigner": true },
372
+ { "name": "positionRequest", "isMut": false, "isSigner": false },
373
+ { "name": "positionRequestAta", "isMut": false, "isSigner": false },
374
+ { "name": "eventAuthority", "isMut": false, "isSigner": false },
375
+ { "name": "program", "isMut": false, "isSigner": false }
376
+ ],
377
+ "args": [{ "name": "params", "type": { "defined": "DecreasePositionPostSwapParams" } }]
378
+ },
379
+ {
380
+ "name": "liquidatePosition",
381
+ "accounts": [
382
+ { "name": "signer", "isMut": true, "isSigner": true },
383
+ { "name": "receivingAccount", "isMut": true, "isSigner": false },
384
+ { "name": "rewardReceivingAccount", "isMut": true, "isSigner": false },
385
+ { "name": "transferAuthority", "isMut": false, "isSigner": false },
386
+ { "name": "perpetuals", "isMut": false, "isSigner": false },
387
+ { "name": "pool", "isMut": true, "isSigner": false },
388
+ { "name": "position", "isMut": true, "isSigner": false },
389
+ { "name": "custody", "isMut": true, "isSigner": false },
390
+ { "name": "custodyOracleAccount", "isMut": false, "isSigner": false },
391
+ { "name": "collateralCustody", "isMut": true, "isSigner": false },
392
+ { "name": "collateralCustodyOracleAccount", "isMut": false, "isSigner": false },
393
+ { "name": "collateralCustodyTokenAccount", "isMut": true, "isSigner": false },
394
+ { "name": "tokenProgram", "isMut": false, "isSigner": false },
395
+ { "name": "eventAuthority", "isMut": false, "isSigner": false },
396
+ { "name": "program", "isMut": false, "isSigner": false }
397
+ ],
398
+ "args": [{ "name": "params", "type": { "defined": "LiquidatePositionParams" } }]
399
+ },
400
+ {
401
+ "name": "getAddLiquidityAmountAndFee",
402
+ "accounts": [
403
+ { "name": "perpetuals", "isMut": false, "isSigner": false },
404
+ { "name": "pool", "isMut": false, "isSigner": false },
405
+ { "name": "custody", "isMut": false, "isSigner": false },
406
+ { "name": "custodyOracleAccount", "isMut": false, "isSigner": false },
407
+ { "name": "lpTokenMint", "isMut": false, "isSigner": false }
408
+ ],
409
+ "args": [{ "name": "params", "type": { "defined": "GetAddLiquidityAmountAndFeeParams" } }],
410
+ "returns": { "defined": "AmountAndFee" }
411
+ },
412
+ {
413
+ "name": "getRemoveLiquidityAmountAndFee",
414
+ "accounts": [
415
+ { "name": "perpetuals", "isMut": false, "isSigner": false },
416
+ { "name": "pool", "isMut": false, "isSigner": false },
417
+ { "name": "custody", "isMut": false, "isSigner": false },
418
+ { "name": "custodyOracleAccount", "isMut": false, "isSigner": false },
419
+ { "name": "lpTokenMint", "isMut": false, "isSigner": false }
420
+ ],
421
+ "args": [{ "name": "params", "type": { "defined": "GetRemoveLiquidityAmountAndFeeParams" } }],
422
+ "returns": { "defined": "AmountAndFee" }
423
+ },
424
+ {
425
+ "name": "getIncreasePosition",
426
+ "accounts": [
427
+ { "name": "perpetuals", "isMut": false, "isSigner": false },
428
+ { "name": "pool", "isMut": false, "isSigner": false },
429
+ { "name": "position", "isMut": false, "isSigner": false, "isOptional": true },
430
+ { "name": "custody", "isMut": false, "isSigner": false },
431
+ { "name": "custodyOracleAccount", "isMut": false, "isSigner": false },
432
+ { "name": "collateralCustody", "isMut": false, "isSigner": false },
433
+ { "name": "collateralCustodyOracleAccount", "isMut": false, "isSigner": false }
434
+ ],
435
+ "args": [{ "name": "params", "type": { "defined": "GetIncreasePositionParams" } }],
436
+ "returns": { "defined": "IncreasePositionInfo" }
437
+ },
438
+ {
439
+ "name": "getDecreasePosition",
440
+ "accounts": [
441
+ { "name": "perpetuals", "isMut": false, "isSigner": false },
442
+ { "name": "pool", "isMut": false, "isSigner": false },
443
+ { "name": "position", "isMut": false, "isSigner": false },
444
+ { "name": "custody", "isMut": false, "isSigner": false },
445
+ { "name": "custodyOracleAccount", "isMut": false, "isSigner": false },
446
+ { "name": "collateralCustody", "isMut": false, "isSigner": false },
447
+ { "name": "collateralCustodyOracleAccount", "isMut": false, "isSigner": false }
448
+ ],
449
+ "args": [{ "name": "params", "type": { "defined": "GetDecreasePositionParams" } }],
450
+ "returns": { "defined": "DecreasePositionInfo" }
451
+ },
452
+ {
453
+ "name": "getPnl",
454
+ "accounts": [
455
+ { "name": "perpetuals", "isMut": false, "isSigner": false },
456
+ { "name": "pool", "isMut": false, "isSigner": false },
457
+ { "name": "position", "isMut": false, "isSigner": false },
458
+ { "name": "custody", "isMut": false, "isSigner": false },
459
+ { "name": "custodyOracleAccount", "isMut": false, "isSigner": false },
460
+ { "name": "collateralCustody", "isMut": false, "isSigner": false }
461
+ ],
462
+ "args": [{ "name": "params", "type": { "defined": "GetPnlAndFeeParams" } }],
463
+ "returns": { "defined": "PnlAndFee" }
464
+ },
465
+ {
466
+ "name": "getLiquidationState",
467
+ "accounts": [
468
+ { "name": "perpetuals", "isMut": false, "isSigner": false },
469
+ { "name": "pool", "isMut": false, "isSigner": false },
470
+ { "name": "position", "isMut": false, "isSigner": false },
471
+ { "name": "custody", "isMut": false, "isSigner": false },
472
+ { "name": "custodyOracleAccount", "isMut": false, "isSigner": false },
473
+ { "name": "collateralCustody", "isMut": false, "isSigner": false }
474
+ ],
475
+ "args": [{ "name": "params", "type": { "defined": "GetLiquidationStateParams" } }],
476
+ "returns": "bool"
477
+ },
478
+ {
479
+ "name": "getOraclePrice",
480
+ "accounts": [
481
+ { "name": "perpetuals", "isMut": false, "isSigner": false },
482
+ { "name": "pool", "isMut": false, "isSigner": false },
483
+ { "name": "custody", "isMut": false, "isSigner": false },
484
+ { "name": "custodyOracleAccount", "isMut": false, "isSigner": false }
485
+ ],
486
+ "args": [],
487
+ "returns": { "defined": "OraclePriceInfo" }
488
+ },
489
+ {
490
+ "name": "getSwapAmountAndFees",
491
+ "accounts": [
492
+ { "name": "perpetuals", "isMut": false, "isSigner": false },
493
+ { "name": "pool", "isMut": false, "isSigner": false },
494
+ { "name": "receivingCustody", "isMut": false, "isSigner": false },
495
+ { "name": "receivingCustodyOracleAccount", "isMut": false, "isSigner": false },
496
+ { "name": "dispensingCustody", "isMut": false, "isSigner": false },
497
+ { "name": "dispensingCustodyOracleAccount", "isMut": false, "isSigner": false }
498
+ ],
499
+ "args": [{ "name": "params", "type": { "defined": "GetSwapAmountAndFeesParams" } }],
500
+ "returns": { "defined": "SwapAmountAndFees" }
501
+ },
502
+ {
503
+ "name": "getExactOutSwapAmountAndFees",
504
+ "accounts": [
505
+ { "name": "perpetuals", "isMut": false, "isSigner": false },
506
+ { "name": "pool", "isMut": false, "isSigner": false },
507
+ { "name": "receivingCustody", "isMut": false, "isSigner": false },
508
+ { "name": "receivingCustodyOracleAccount", "isMut": false, "isSigner": false },
509
+ { "name": "dispensingCustody", "isMut": false, "isSigner": false },
510
+ { "name": "dispensingCustodyOracleAccount", "isMut": false, "isSigner": false }
511
+ ],
512
+ "args": [{ "name": "params", "type": { "defined": "GetExactOutSwapAmountAndFeesParams" } }],
513
+ "returns": { "defined": "SwapAmountAndFees" }
514
+ }
515
+ ],
516
+ "accounts": [
517
+ {
518
+ "name": "Custody",
519
+ "type": {
520
+ "kind": "struct",
521
+ "fields": [
522
+ { "name": "pool", "type": "publicKey" },
523
+ { "name": "mint", "type": "publicKey" },
524
+ { "name": "tokenAccount", "type": "publicKey" },
525
+ { "name": "decimals", "type": "u8" },
526
+ { "name": "isStable", "type": "bool" },
527
+ { "name": "oracle", "type": { "defined": "OracleParams" } },
528
+ { "name": "pricing", "type": { "defined": "PricingParams" } },
529
+ { "name": "permissions", "type": { "defined": "Permissions" } },
530
+ { "name": "targetRatioBps", "type": "u64" },
531
+ { "name": "assets", "type": { "defined": "Assets" } },
532
+ { "name": "fundingRateState", "type": { "defined": "FundingRateState" } },
533
+ { "name": "bump", "type": "u8" },
534
+ { "name": "tokenAccountBump", "type": "u8" }
535
+ ]
536
+ }
537
+ },
538
+ {
539
+ "name": "TestOracle",
540
+ "type": {
541
+ "kind": "struct",
542
+ "fields": [
543
+ { "name": "price", "type": "u64" },
544
+ { "name": "expo", "type": "i32" },
545
+ { "name": "conf", "type": "u64" },
546
+ { "name": "publishTime", "type": "i64" }
547
+ ]
548
+ }
549
+ },
550
+ {
551
+ "name": "Perpetuals",
552
+ "type": {
553
+ "kind": "struct",
554
+ "fields": [
555
+ { "name": "permissions", "type": { "defined": "Permissions" } },
556
+ { "name": "pools", "type": { "vec": "publicKey" } },
557
+ { "name": "admin", "type": "publicKey" },
558
+ { "name": "transferAuthorityBump", "type": "u8" },
559
+ { "name": "perpetualsBump", "type": "u8" },
560
+ { "name": "inceptionTime", "type": "i64" }
561
+ ]
562
+ }
563
+ },
564
+ {
565
+ "name": "Pool",
566
+ "type": {
567
+ "kind": "struct",
568
+ "fields": [
569
+ { "name": "name", "type": "string" },
570
+ { "name": "custodies", "type": { "vec": "publicKey" } },
571
+ { "name": "aumUsd", "type": "u128" },
572
+ { "name": "limit", "type": { "defined": "Limit" } },
573
+ { "name": "fees", "type": { "defined": "Fees" } },
574
+ { "name": "poolApr", "type": { "defined": "PoolApr" } },
575
+ { "name": "maxRequestExecutionSec", "type": "i64" },
576
+ { "name": "bump", "type": "u8" },
577
+ { "name": "lpTokenBump", "type": "u8" },
578
+ { "name": "inceptionTime", "type": "i64" }
579
+ ]
580
+ }
581
+ },
582
+ {
583
+ "name": "PositionRequest",
584
+ "type": {
585
+ "kind": "struct",
586
+ "fields": [
587
+ { "name": "owner", "type": "publicKey" },
588
+ { "name": "pool", "type": "publicKey" },
589
+ { "name": "custody", "type": "publicKey" },
590
+ { "name": "position", "type": "publicKey" },
591
+ { "name": "mint", "type": "publicKey" },
592
+ { "name": "openTime", "type": "i64" },
593
+ { "name": "updateTime", "type": "i64" },
594
+ { "name": "sizeUsdDelta", "type": "u64" },
595
+ { "name": "collateralDelta", "type": "u64" },
596
+ { "name": "requestChange", "type": { "defined": "RequestChange" } },
597
+ { "name": "requestType", "type": { "defined": "RequestType" } },
598
+ { "name": "side", "type": { "defined": "Side" } },
599
+ { "name": "priceSlippage", "type": { "option": "u64" } },
600
+ { "name": "jupiterMinimumOut", "type": { "option": "u64" } },
601
+ { "name": "preSwapAmount", "type": { "option": "u64" } },
602
+ { "name": "triggerPrice", "type": { "option": "u64" } },
603
+ { "name": "triggerAboveThreshold", "type": { "option": "bool" } },
604
+ { "name": "entirePosition", "type": { "option": "bool" } },
605
+ { "name": "executed", "type": "bool" },
606
+ { "name": "counter", "type": "u64" },
607
+ { "name": "bump", "type": "u8" },
608
+ { "name": "referral", "type": { "option": "publicKey" } }
609
+ ]
610
+ }
611
+ },
612
+ {
613
+ "name": "Position",
614
+ "type": {
615
+ "kind": "struct",
616
+ "fields": [
617
+ { "name": "owner", "type": "publicKey" },
618
+ { "name": "pool", "type": "publicKey" },
619
+ { "name": "custody", "type": "publicKey" },
620
+ { "name": "collateralCustody", "type": "publicKey" },
621
+ { "name": "openTime", "type": "i64" },
622
+ { "name": "updateTime", "type": "i64" },
623
+ { "name": "side", "type": { "defined": "Side" } },
624
+ { "name": "price", "type": "u64" },
625
+ { "name": "sizeUsd", "type": "u64" },
626
+ { "name": "collateralUsd", "type": "u64" },
627
+ { "name": "realisedPnlUsd", "type": "i64" },
628
+ { "name": "cumulativeInterestSnapshot", "type": "u128" },
629
+ { "name": "lockedAmount", "type": "u64" },
630
+ { "name": "bump", "type": "u8" }
631
+ ]
632
+ }
633
+ }
634
+ ],
635
+ "types": [
636
+ {
637
+ "name": "AddCustodyParams",
638
+ "type": {
639
+ "kind": "struct",
640
+ "fields": [
641
+ { "name": "isStable", "type": "bool" },
642
+ { "name": "oracle", "type": { "defined": "OracleParams" } },
643
+ { "name": "pricing", "type": { "defined": "PricingParams" } },
644
+ { "name": "permissions", "type": { "defined": "Permissions" } },
645
+ { "name": "hourlyFundingBps", "type": "u64" },
646
+ { "name": "targetRatioBps", "type": "u64" }
647
+ ]
648
+ }
649
+ },
650
+ {
651
+ "name": "AddLiquidityParams",
652
+ "type": {
653
+ "kind": "struct",
654
+ "fields": [
655
+ { "name": "tokenAmountIn", "type": "u64" },
656
+ { "name": "minLpAmountOut", "type": "u64" },
657
+ { "name": "tokenAmountPreSwap", "type": { "option": "u64" } }
658
+ ]
659
+ }
660
+ },
661
+ {
662
+ "name": "AddPoolParams",
663
+ "type": {
664
+ "kind": "struct",
665
+ "fields": [
666
+ { "name": "name", "type": "string" },
667
+ { "name": "limit", "type": { "defined": "Limit" } },
668
+ { "name": "fees", "type": { "defined": "Fees" } },
669
+ { "name": "maxRequestExecutionSec", "type": "i64" }
670
+ ]
671
+ }
672
+ },
673
+ { "name": "ClosePositionRequestParams", "type": { "kind": "struct", "fields": [] } },
674
+ {
675
+ "name": "CreateDecreasePositionRequestParams",
676
+ "type": {
677
+ "kind": "struct",
678
+ "fields": [
679
+ { "name": "collateralUsdDelta", "type": "u64" },
680
+ { "name": "sizeUsdDelta", "type": "u64" },
681
+ { "name": "requestType", "type": { "defined": "RequestType" } },
682
+ { "name": "priceSlippage", "type": { "option": "u64" } },
683
+ { "name": "jupiterMinimumOut", "type": { "option": "u64" } },
684
+ { "name": "triggerPrice", "type": { "option": "u64" } },
685
+ { "name": "triggerAboveThreshold", "type": { "option": "bool" } },
686
+ { "name": "entirePosition", "type": { "option": "bool" } },
687
+ { "name": "counter", "type": "u64" }
688
+ ]
689
+ }
690
+ },
691
+ {
692
+ "name": "CreateIncreasePositionRequestParams",
693
+ "type": {
694
+ "kind": "struct",
695
+ "fields": [
696
+ { "name": "sizeUsdDelta", "type": "u64" },
697
+ { "name": "collateralTokenDelta", "type": "u64" },
698
+ { "name": "side", "type": { "defined": "Side" } },
699
+ { "name": "requestType", "type": { "defined": "RequestType" } },
700
+ { "name": "priceSlippage", "type": { "option": "u64" } },
701
+ { "name": "jupiterMinimumOut", "type": { "option": "u64" } },
702
+ { "name": "triggerPrice", "type": { "option": "u64" } },
703
+ { "name": "triggerAboveThreshold", "type": { "option": "bool" } },
704
+ { "name": "counter", "type": "u64" }
705
+ ]
706
+ }
707
+ },
708
+ { "name": "DecreasePositionPostSwapParams", "type": { "kind": "struct", "fields": [] } },
709
+ { "name": "DecreasePositionParams", "type": { "kind": "struct", "fields": [] } },
710
+ {
711
+ "name": "GetAddLiquidityAmountAndFeeParams",
712
+ "type": { "kind": "struct", "fields": [{ "name": "tokenAmountIn", "type": "u64" }] }
713
+ },
714
+ {
715
+ "name": "GetDecreasePositionParams",
716
+ "type": {
717
+ "kind": "struct",
718
+ "fields": [
719
+ { "name": "collateralUsdDelta", "type": "u64" },
720
+ { "name": "sizeUsdDelta", "type": "u64" }
721
+ ]
722
+ }
723
+ },
724
+ {
725
+ "name": "GetExactOutSwapAmountAndFeesParams",
726
+ "type": { "kind": "struct", "fields": [{ "name": "amountOut", "type": "u64" }] }
727
+ },
728
+ {
729
+ "name": "GetIncreasePositionParams",
730
+ "type": {
731
+ "kind": "struct",
732
+ "fields": [
733
+ { "name": "collateralTokenDelta", "type": "u64" },
734
+ { "name": "sizeUsdDelta", "type": "u64" },
735
+ { "name": "side", "type": { "defined": "Side" } }
736
+ ]
737
+ }
738
+ },
739
+ { "name": "GetLiquidationStateParams", "type": { "kind": "struct", "fields": [] } },
740
+ { "name": "GetPnlAndFeeParams", "type": { "kind": "struct", "fields": [] } },
741
+ {
742
+ "name": "GetRemoveLiquidityAmountAndFeeParams",
743
+ "type": { "kind": "struct", "fields": [{ "name": "lpAmountIn", "type": "u64" }] }
744
+ },
745
+ {
746
+ "name": "GetSwapAmountAndFeesParams",
747
+ "type": { "kind": "struct", "fields": [{ "name": "amountIn", "type": "u64" }] }
748
+ },
749
+ { "name": "IncreasePositionPreSwapParams", "type": { "kind": "struct", "fields": [] } },
750
+ { "name": "IncreasePositionParams", "type": { "kind": "struct", "fields": [] } },
751
+ {
752
+ "name": "InitParams",
753
+ "type": {
754
+ "kind": "struct",
755
+ "fields": [
756
+ { "name": "allowSwap", "type": "bool" },
757
+ { "name": "allowAddLiquidity", "type": "bool" },
758
+ { "name": "allowRemoveLiquidity", "type": "bool" },
759
+ { "name": "allowIncreasePosition", "type": "bool" },
760
+ { "name": "allowDecreasePosition", "type": "bool" },
761
+ { "name": "allowCollateralWithdrawal", "type": "bool" },
762
+ { "name": "allowLiquidatePosition", "type": "bool" }
763
+ ]
764
+ }
765
+ },
766
+ { "name": "LiquidatePositionParams", "type": { "kind": "struct", "fields": [] } },
767
+ {
768
+ "name": "RemoveLiquidityParams",
769
+ "type": {
770
+ "kind": "struct",
771
+ "fields": [
772
+ { "name": "lpAmountIn", "type": "u64" },
773
+ { "name": "minAmountOut", "type": "u64" }
774
+ ]
775
+ }
776
+ },
777
+ {
778
+ "name": "SetCustodyConfigParams",
779
+ "type": {
780
+ "kind": "struct",
781
+ "fields": [
782
+ { "name": "oracle", "type": { "defined": "OracleParams" } },
783
+ { "name": "pricing", "type": { "defined": "PricingParams" } },
784
+ { "name": "permissions", "type": { "defined": "Permissions" } },
785
+ { "name": "hourlyFundingBps", "type": "u64" },
786
+ { "name": "targetRatioBps", "type": "u64" }
787
+ ]
788
+ }
789
+ },
790
+ {
791
+ "name": "SetCustodyGlobalLimitParams",
792
+ "type": {
793
+ "kind": "struct",
794
+ "fields": [
795
+ { "name": "maxGlobalLongSizes", "type": "u64" },
796
+ { "name": "maxGlobalShortSizes", "type": "u64" }
797
+ ]
798
+ }
799
+ },
800
+ {
801
+ "name": "SetPerpetualsConfigParams",
802
+ "type": { "kind": "struct", "fields": [{ "name": "permissions", "type": { "defined": "Permissions" } }] }
803
+ },
804
+ {
805
+ "name": "SetPoolConfigParams",
806
+ "type": {
807
+ "kind": "struct",
808
+ "fields": [
809
+ { "name": "fees", "type": { "defined": "Fees" } },
810
+ { "name": "limit", "type": { "defined": "Limit" } },
811
+ { "name": "maxRequestExecutionSec", "type": "i64" }
812
+ ]
813
+ }
814
+ },
815
+ {
816
+ "name": "SetTestOraclePriceParams",
817
+ "type": {
818
+ "kind": "struct",
819
+ "fields": [
820
+ { "name": "price", "type": "u64" },
821
+ { "name": "expo", "type": "i32" },
822
+ { "name": "conf", "type": "u64" },
823
+ { "name": "publishTime", "type": "i64" }
824
+ ]
825
+ }
826
+ },
827
+ { "name": "SetTestTimeParams", "type": { "kind": "struct", "fields": [{ "name": "time", "type": "i64" }] } },
828
+ {
829
+ "name": "SwapExactOutParams",
830
+ "type": {
831
+ "kind": "struct",
832
+ "fields": [
833
+ { "name": "amountOut", "type": "u64" },
834
+ { "name": "maxAmountIn", "type": "u64" }
835
+ ]
836
+ }
837
+ },
838
+ {
839
+ "name": "SwapParams",
840
+ "type": {
841
+ "kind": "struct",
842
+ "fields": [
843
+ { "name": "amountIn", "type": "u64" },
844
+ { "name": "minAmountOut", "type": "u64" }
845
+ ]
846
+ }
847
+ },
848
+ {
849
+ "name": "TestInitParams",
850
+ "type": {
851
+ "kind": "struct",
852
+ "fields": [
853
+ { "name": "allowSwap", "type": "bool" },
854
+ { "name": "allowAddLiquidity", "type": "bool" },
855
+ { "name": "allowRemoveLiquidity", "type": "bool" },
856
+ { "name": "allowIncreasePosition", "type": "bool" },
857
+ { "name": "allowDecreasePosition", "type": "bool" },
858
+ { "name": "allowCollateralWithdrawal", "type": "bool" },
859
+ { "name": "allowLiquidatePosition", "type": "bool" }
860
+ ]
861
+ }
862
+ },
863
+ { "name": "TransferAdminParams", "type": { "kind": "struct", "fields": [] } },
864
+ {
865
+ "name": "UpdateDecreasePositionRequestParams",
866
+ "type": {
867
+ "kind": "struct",
868
+ "fields": [
869
+ { "name": "sizeUsdDelta", "type": "u64" },
870
+ { "name": "triggerPrice", "type": "u64" }
871
+ ]
872
+ }
873
+ },
874
+ {
875
+ "name": "UpdateIncreasePositionRequestParams",
876
+ "type": {
877
+ "kind": "struct",
878
+ "fields": [
879
+ { "name": "sizeUsdDelta", "type": "u64" },
880
+ { "name": "triggerPrice", "type": "u64" }
881
+ ]
882
+ }
883
+ },
884
+ { "name": "WithdrawFeesParams", "type": { "kind": "struct", "fields": [] } },
885
+ {
886
+ "name": "Assets",
887
+ "type": {
888
+ "kind": "struct",
889
+ "fields": [
890
+ { "name": "feesReserves", "type": "u64" },
891
+ { "name": "owned", "type": "u64" },
892
+ { "name": "locked", "type": "u64" },
893
+ { "name": "guaranteedUsd", "type": "u64" },
894
+ { "name": "globalShortSizes", "type": "u64" },
895
+ { "name": "globalShortAveragePrices", "type": "u64" }
896
+ ]
897
+ }
898
+ },
899
+ {
900
+ "name": "PricingParams",
901
+ "type": {
902
+ "kind": "struct",
903
+ "fields": [
904
+ { "name": "tradeSpreadLong", "type": "u64" },
905
+ { "name": "tradeSpreadShort", "type": "u64" },
906
+ { "name": "swapSpread", "type": "u64" },
907
+ { "name": "maxLeverage", "type": "u64" },
908
+ { "name": "maxGlobalLongSizes", "type": "u64" },
909
+ { "name": "maxGlobalShortSizes", "type": "u64" }
910
+ ]
911
+ }
912
+ },
913
+ {
914
+ "name": "FundingRateState",
915
+ "type": {
916
+ "kind": "struct",
917
+ "fields": [
918
+ { "name": "cumulativeInterestRate", "type": "u128" },
919
+ { "name": "lastUpdate", "type": "i64" },
920
+ { "name": "hourlyFundingBps", "type": "u64" }
921
+ ]
922
+ }
923
+ },
924
+ {
925
+ "name": "OraclePrice",
926
+ "type": {
927
+ "kind": "struct",
928
+ "fields": [
929
+ { "name": "price", "type": "u64" },
930
+ { "name": "exponent", "type": "i32" }
931
+ ]
932
+ }
933
+ },
934
+ {
935
+ "name": "OracleParams",
936
+ "type": {
937
+ "kind": "struct",
938
+ "fields": [
939
+ { "name": "oracleAccount", "type": "publicKey" },
940
+ { "name": "oracleType", "type": { "defined": "OracleType" } },
941
+ { "name": "maxPriceError", "type": "u64" },
942
+ { "name": "maxPriceAgeSec", "type": "u32" }
943
+ ]
944
+ }
945
+ },
946
+ {
947
+ "name": "AmountAndFee",
948
+ "type": {
949
+ "kind": "struct",
950
+ "fields": [
951
+ { "name": "amount", "type": "u64" },
952
+ { "name": "fee", "type": "u64" },
953
+ { "name": "feeBps", "type": "u64" }
954
+ ]
955
+ }
956
+ },
957
+ {
958
+ "name": "IncreasePositionInfo",
959
+ "type": {
960
+ "kind": "struct",
961
+ "fields": [
962
+ { "name": "price", "type": "u64" },
963
+ { "name": "liquidationPrice", "type": "u64" },
964
+ { "name": "feeUsd", "type": "u64" },
965
+ { "name": "collateralUsd", "type": "u64" }
966
+ ]
967
+ }
968
+ },
969
+ {
970
+ "name": "DecreasePositionInfo",
971
+ "type": {
972
+ "kind": "struct",
973
+ "fields": [
974
+ { "name": "price", "type": "u64" },
975
+ { "name": "liquidationPrice", "type": "u64" },
976
+ { "name": "feeUsd", "type": "u64" },
977
+ { "name": "collateralUsd", "type": "u64" },
978
+ { "name": "hasProfit", "type": "bool" },
979
+ { "name": "pnlDelta", "type": "u64" },
980
+ { "name": "transferAmountUsd", "type": "u64" },
981
+ { "name": "transferToken", "type": "u64" }
982
+ ]
983
+ }
984
+ },
985
+ {
986
+ "name": "SwapAmountAndFees",
987
+ "type": {
988
+ "kind": "struct",
989
+ "fields": [
990
+ { "name": "amountIn", "type": "u64" },
991
+ { "name": "amountOut", "type": "u64" },
992
+ { "name": "feeBps", "type": "u64" },
993
+ { "name": "feeToken", "type": "u64" }
994
+ ]
995
+ }
996
+ },
997
+ {
998
+ "name": "PnlAndFee",
999
+ "type": {
1000
+ "kind": "struct",
1001
+ "fields": [
1002
+ { "name": "hasProfit", "type": "bool" },
1003
+ { "name": "pnlDelta", "type": "u64" },
1004
+ { "name": "openPositionFeeUsd", "type": "u64" },
1005
+ { "name": "closePositionFeeUsd", "type": "u64" },
1006
+ { "name": "fundingFeeUsd", "type": "u64" },
1007
+ { "name": "liquidationPrice", "type": "u64" }
1008
+ ]
1009
+ }
1010
+ },
1011
+ {
1012
+ "name": "OraclePriceInfo",
1013
+ "type": {
1014
+ "kind": "struct",
1015
+ "fields": [
1016
+ { "name": "increaseLong", "type": "u64" },
1017
+ { "name": "increaseShort", "type": "u64" },
1018
+ { "name": "decreaseLong", "type": "u64" },
1019
+ { "name": "decreaseShort", "type": "u64" },
1020
+ { "name": "buyLp", "type": "u64" },
1021
+ { "name": "sellLp", "type": "u64" }
1022
+ ]
1023
+ }
1024
+ },
1025
+ {
1026
+ "name": "Permissions",
1027
+ "type": {
1028
+ "kind": "struct",
1029
+ "fields": [
1030
+ { "name": "allowSwap", "type": "bool" },
1031
+ { "name": "allowAddLiquidity", "type": "bool" },
1032
+ { "name": "allowRemoveLiquidity", "type": "bool" },
1033
+ { "name": "allowIncreasePosition", "type": "bool" },
1034
+ { "name": "allowDecreasePosition", "type": "bool" },
1035
+ { "name": "allowCollateralWithdrawal", "type": "bool" },
1036
+ { "name": "allowLiquidatePosition", "type": "bool" }
1037
+ ]
1038
+ }
1039
+ },
1040
+ {
1041
+ "name": "Fees",
1042
+ "type": {
1043
+ "kind": "struct",
1044
+ "fields": [
1045
+ { "name": "increasePositionBps", "type": "u64" },
1046
+ { "name": "decreasePositionBps", "type": "u64" },
1047
+ { "name": "addRemoveLiquidityBps", "type": "u64" },
1048
+ { "name": "swapBps", "type": "u64" },
1049
+ { "name": "taxBps", "type": "u64" },
1050
+ { "name": "stableSwapBps", "type": "u64" },
1051
+ { "name": "stableSwapTaxBps", "type": "u64" },
1052
+ { "name": "liquidationRewardBps", "type": "u64" },
1053
+ { "name": "protocolShareBps", "type": "u64" }
1054
+ ]
1055
+ }
1056
+ },
1057
+ {
1058
+ "name": "PoolApr",
1059
+ "type": {
1060
+ "kind": "struct",
1061
+ "fields": [
1062
+ { "name": "lastUpdated", "type": "i64" },
1063
+ { "name": "feeAprBps", "type": "u64" },
1064
+ { "name": "realizedFeeUsd", "type": "u64" }
1065
+ ]
1066
+ }
1067
+ },
1068
+ {
1069
+ "name": "Limit",
1070
+ "type": {
1071
+ "kind": "struct",
1072
+ "fields": [
1073
+ { "name": "maxAumUsd", "type": "u128" },
1074
+ { "name": "maxIndividualLpToken", "type": "u128" },
1075
+ { "name": "maxPositionUsd", "type": "u64" }
1076
+ ]
1077
+ }
1078
+ },
1079
+ {
1080
+ "name": "OracleType",
1081
+ "type": { "kind": "enum", "variants": [{ "name": "None" }, { "name": "Test" }, { "name": "Pyth" }] }
1082
+ },
1083
+ {
1084
+ "name": "PriceCalcMode",
1085
+ "type": { "kind": "enum", "variants": [{ "name": "Min" }, { "name": "Max" }, { "name": "Ignore" }] }
1086
+ },
1087
+ { "name": "RequestType", "type": { "kind": "enum", "variants": [{ "name": "Market" }, { "name": "Trigger" }] } },
1088
+ {
1089
+ "name": "RequestChange",
1090
+ "type": { "kind": "enum", "variants": [{ "name": "None" }, { "name": "Increase" }, { "name": "Decrease" }] }
1091
+ },
1092
+ {
1093
+ "name": "Side",
1094
+ "type": { "kind": "enum", "variants": [{ "name": "None" }, { "name": "Long" }, { "name": "Short" }] }
1095
+ }
1096
+ ],
1097
+ "events": [
1098
+ {
1099
+ "name": "CreatePositionRequestEvent",
1100
+ "fields": [
1101
+ { "name": "owner", "type": "publicKey", "index": false },
1102
+ { "name": "pool", "type": "publicKey", "index": false },
1103
+ { "name": "positionKey", "type": "publicKey", "index": false },
1104
+ { "name": "positionSide", "type": "u8", "index": false },
1105
+ { "name": "positionMint", "type": "publicKey", "index": false },
1106
+ { "name": "positionCustody", "type": "publicKey", "index": false },
1107
+ { "name": "positionCollateralMint", "type": "publicKey", "index": false },
1108
+ { "name": "positionCollateralCustody", "type": "publicKey", "index": false },
1109
+ { "name": "positionRequestKey", "type": "publicKey", "index": false },
1110
+ { "name": "positionRequestMint", "type": "publicKey", "index": false },
1111
+ { "name": "sizeUsdDelta", "type": "u64", "index": false },
1112
+ { "name": "collateralDelta", "type": "u64", "index": false },
1113
+ { "name": "priceSlippage", "type": { "option": "u64" }, "index": false },
1114
+ { "name": "jupiterMinimumOut", "type": { "option": "u64" }, "index": false },
1115
+ { "name": "preSwapAmount", "type": { "option": "u64" }, "index": false },
1116
+ { "name": "requestChange", "type": "u8", "index": false },
1117
+ { "name": "openTime", "type": "i64", "index": false },
1118
+ { "name": "referral", "type": { "option": "publicKey" }, "index": false }
1119
+ ]
1120
+ },
1121
+ {
1122
+ "name": "ClosePositionRequestEvent",
1123
+ "fields": [
1124
+ { "name": "positionRequestKey", "type": "publicKey", "index": false },
1125
+ { "name": "owner", "type": "publicKey", "index": false },
1126
+ { "name": "mint", "type": "publicKey", "index": false },
1127
+ { "name": "amount", "type": "u64", "index": false }
1128
+ ]
1129
+ },
1130
+ {
1131
+ "name": "IncreasePositionEvent",
1132
+ "fields": [
1133
+ { "name": "positionKey", "type": "publicKey", "index": false },
1134
+ { "name": "positionSide", "type": "u8", "index": false },
1135
+ { "name": "positionCustody", "type": "publicKey", "index": false },
1136
+ { "name": "positionCollateralCustody", "type": "publicKey", "index": false },
1137
+ { "name": "positionSizeUsd", "type": "u64", "index": false },
1138
+ { "name": "positionMint", "type": "publicKey", "index": false },
1139
+ { "name": "positionRequestKey", "type": "publicKey", "index": false },
1140
+ { "name": "positionRequestMint", "type": "publicKey", "index": false },
1141
+ { "name": "positionRequestChange", "type": "u8", "index": false },
1142
+ { "name": "positionRequestType", "type": "u8", "index": false },
1143
+ { "name": "positionRequestCollateralDelta", "type": "u64", "index": false },
1144
+ { "name": "owner", "type": "publicKey", "index": false },
1145
+ { "name": "pool", "type": "publicKey", "index": false },
1146
+ { "name": "sizeUsdDelta", "type": "u64", "index": false },
1147
+ { "name": "collateralUsdDelta", "type": "u64", "index": false },
1148
+ { "name": "collateralTokenDelta", "type": "u64", "index": false },
1149
+ { "name": "price", "type": "u64", "index": false },
1150
+ { "name": "priceSlippage", "type": { "option": "u64" }, "index": false },
1151
+ { "name": "feeToken", "type": "u64", "index": false },
1152
+ { "name": "feeUsd", "type": "u64", "index": false },
1153
+ { "name": "openTime", "type": "i64", "index": false },
1154
+ { "name": "referral", "type": { "option": "publicKey" }, "index": false }
1155
+ ]
1156
+ },
1157
+ {
1158
+ "name": "IncreasePositionPreSwapEvent",
1159
+ "fields": [
1160
+ { "name": "positionRequestKey", "type": "publicKey", "index": false },
1161
+ { "name": "transferAmount", "type": "u64", "index": false },
1162
+ { "name": "collateralCustodyPreSwapAmount", "type": "u64", "index": false }
1163
+ ]
1164
+ },
1165
+ {
1166
+ "name": "DecreasePositionEvent",
1167
+ "fields": [
1168
+ { "name": "positionKey", "type": "publicKey", "index": false },
1169
+ { "name": "positionSide", "type": "u8", "index": false },
1170
+ { "name": "positionCustody", "type": "publicKey", "index": false },
1171
+ { "name": "positionCollateralCustody", "type": "publicKey", "index": false },
1172
+ { "name": "positionSizeUsd", "type": "u64", "index": false },
1173
+ { "name": "positionMint", "type": "publicKey", "index": false },
1174
+ { "name": "positionRequestKey", "type": "publicKey", "index": false },
1175
+ { "name": "positionRequestMint", "type": "publicKey", "index": false },
1176
+ { "name": "positionRequestChange", "type": "u8", "index": false },
1177
+ { "name": "positionRequestType", "type": "u8", "index": false },
1178
+ { "name": "hasProfit", "type": "bool", "index": false },
1179
+ { "name": "pnlDelta", "type": "u64", "index": false },
1180
+ { "name": "owner", "type": "publicKey", "index": false },
1181
+ { "name": "pool", "type": "publicKey", "index": false },
1182
+ { "name": "sizeUsdDelta", "type": "u64", "index": false },
1183
+ { "name": "transferAmountUsd", "type": "u64", "index": false },
1184
+ { "name": "transferToken", "type": { "option": "u64" }, "index": false },
1185
+ { "name": "price", "type": "u64", "index": false },
1186
+ { "name": "priceSlippage", "type": { "option": "u64" }, "index": false },
1187
+ { "name": "feeUsd", "type": "u64", "index": false },
1188
+ { "name": "openTime", "type": "i64", "index": false },
1189
+ { "name": "referral", "type": { "option": "publicKey" }, "index": false }
1190
+ ]
1191
+ },
1192
+ {
1193
+ "name": "DecreasePositionPostSwapEvent",
1194
+ "fields": [
1195
+ { "name": "positionRequestKey", "type": "publicKey", "index": false },
1196
+ { "name": "swapAmount", "type": "u64", "index": false },
1197
+ { "name": "jupiterMinimumOut", "type": { "option": "u64" }, "index": false }
1198
+ ]
1199
+ },
1200
+ {
1201
+ "name": "LiquidatePositionEvent",
1202
+ "fields": [
1203
+ { "name": "positionKey", "type": "publicKey", "index": false },
1204
+ { "name": "positionSide", "type": "u8", "index": false },
1205
+ { "name": "positionCustody", "type": "publicKey", "index": false },
1206
+ { "name": "positionCollateralCustody", "type": "publicKey", "index": false },
1207
+ { "name": "positionCollateralMint", "type": "publicKey", "index": false },
1208
+ { "name": "positionMint", "type": "publicKey", "index": false },
1209
+ { "name": "positionSizeUsd", "type": "u64", "index": false },
1210
+ { "name": "hasProfit", "type": "bool", "index": false },
1211
+ { "name": "pnlDelta", "type": "u64", "index": false },
1212
+ { "name": "owner", "type": "publicKey", "index": false },
1213
+ { "name": "pool", "type": "publicKey", "index": false },
1214
+ { "name": "transferAmountUsd", "type": "u64", "index": false },
1215
+ { "name": "transferToken", "type": "u64", "index": false },
1216
+ { "name": "price", "type": "u64", "index": false },
1217
+ { "name": "feeUsd", "type": "u64", "index": false },
1218
+ { "name": "openTime", "type": "i64", "index": false }
1219
+ ]
1220
+ },
1221
+ {
1222
+ "name": "PoolSwapEvent",
1223
+ "fields": [
1224
+ { "name": "receivingCustodyKey", "type": "publicKey", "index": false },
1225
+ { "name": "dispensingCustodyKey", "type": "publicKey", "index": false },
1226
+ { "name": "poolKey", "type": "publicKey", "index": false },
1227
+ { "name": "amountIn", "type": "u64", "index": false },
1228
+ { "name": "amountOut", "type": "u64", "index": false },
1229
+ { "name": "swapUsdAmount", "type": "u64", "index": false },
1230
+ { "name": "amountOutAfterFees", "type": "u64", "index": false },
1231
+ { "name": "feeBps", "type": "u64", "index": false },
1232
+ { "name": "ownerKey", "type": "publicKey", "index": false },
1233
+ { "name": "receivingAccountKey", "type": "publicKey", "index": false }
1234
+ ]
1235
+ },
1236
+ {
1237
+ "name": "PoolSwapExactOutEvent",
1238
+ "fields": [
1239
+ { "name": "receivingCustodyKey", "type": "publicKey", "index": false },
1240
+ { "name": "dispensingCustodyKey", "type": "publicKey", "index": false },
1241
+ { "name": "poolKey", "type": "publicKey", "index": false },
1242
+ { "name": "amountIn", "type": "u64", "index": false },
1243
+ { "name": "amountInAfterFees", "type": "u64", "index": false },
1244
+ { "name": "amountOut", "type": "u64", "index": false },
1245
+ { "name": "swapUsdAmount", "type": "u64", "index": false },
1246
+ { "name": "feeBps", "type": "u64", "index": false },
1247
+ { "name": "ownerKey", "type": "publicKey", "index": false },
1248
+ { "name": "receivingAccountKey", "type": "publicKey", "index": false }
1249
+ ]
1250
+ },
1251
+ {
1252
+ "name": "AddLiquidityEvent",
1253
+ "fields": [
1254
+ { "name": "custodyKey", "type": "publicKey", "index": false },
1255
+ { "name": "poolKey", "type": "publicKey", "index": false },
1256
+ { "name": "tokenAmountIn", "type": "u64", "index": false },
1257
+ { "name": "prePoolAmountUsd", "type": "u128", "index": false },
1258
+ { "name": "tokenAmountUsd", "type": "u64", "index": false },
1259
+ { "name": "feeBps", "type": "u64", "index": false },
1260
+ { "name": "tokenAmountAfterFee", "type": "u64", "index": false },
1261
+ { "name": "mintAmountUsd", "type": "u64", "index": false },
1262
+ { "name": "lpAmount", "type": "u64", "index": false },
1263
+ { "name": "postPoolAmountUsd", "type": "u128", "index": false }
1264
+ ]
1265
+ },
1266
+ {
1267
+ "name": "RemoveLiquidityEvent",
1268
+ "fields": [
1269
+ { "name": "custodyKey", "type": "publicKey", "index": false },
1270
+ { "name": "poolKey", "type": "publicKey", "index": false },
1271
+ { "name": "lpAmountIn", "type": "u64", "index": false },
1272
+ { "name": "removeAmountUsd", "type": "u64", "index": false },
1273
+ { "name": "feeBps", "type": "u64", "index": false },
1274
+ { "name": "removeTokenAmount", "type": "u64", "index": false },
1275
+ { "name": "tokenAmountAfterFee", "type": "u64", "index": false },
1276
+ { "name": "postPoolAmountUsd", "type": "u128", "index": false }
1277
+ ]
1278
+ }
1279
+ ],
1280
+ "errors": [
1281
+ { "code": 6000, "name": "MathOverflow", "msg": "Overflow in arithmetic operation" },
1282
+ { "code": 6001, "name": "UnsupportedOracle", "msg": "Unsupported price oracle" },
1283
+ { "code": 6002, "name": "InvalidOracleAccount", "msg": "Invalid oracle account" },
1284
+ { "code": 6003, "name": "StaleOraclePrice", "msg": "Stale oracle price" },
1285
+ { "code": 6004, "name": "InvalidOraclePrice", "msg": "Invalid oracle price" },
1286
+ { "code": 6005, "name": "InvalidEnvironment", "msg": "Instruction is not allowed in production" },
1287
+ { "code": 6006, "name": "InvalidCollateralAccount", "msg": "Invalid collateral account" },
1288
+ { "code": 6007, "name": "InvalidCollateralAmount", "msg": "Invalid collateral amount" },
1289
+ { "code": 6008, "name": "CollateralSlippage", "msg": "Collateral slippage" },
1290
+ { "code": 6009, "name": "InvalidPositionState", "msg": "Invalid position state" },
1291
+ { "code": 6010, "name": "InvalidPerpetualsConfig", "msg": "Invalid perpetuals config" },
1292
+ { "code": 6011, "name": "InvalidPoolConfig", "msg": "Invalid pool config" },
1293
+ { "code": 6012, "name": "InvalidInstruction", "msg": "Invalid instruction" },
1294
+ { "code": 6013, "name": "InvalidCustodyConfig", "msg": "Invalid custody config" },
1295
+ { "code": 6014, "name": "InvalidCustodyBalance", "msg": "Invalid custody balance" },
1296
+ { "code": 6015, "name": "InvalidArgument", "msg": "Invalid argument" },
1297
+ { "code": 6016, "name": "InvalidPositionRequest", "msg": "Invalid position request" },
1298
+ { "code": 6017, "name": "InvalidPositionRequestInputAta", "msg": "Invalid position request input ata" },
1299
+ { "code": 6018, "name": "InvalidMint", "msg": "Invalid mint" },
1300
+ { "code": 6019, "name": "InsufficientTokenAmount", "msg": "Insufficient token amount" },
1301
+ { "code": 6020, "name": "InsufficientAmountReturned", "msg": "Insufficient token amount returned" },
1302
+ { "code": 6021, "name": "MaxPriceSlippage", "msg": "Price slippage limit exceeded" },
1303
+ { "code": 6022, "name": "MaxLeverage", "msg": "Position leverage limit exceeded" },
1304
+ { "code": 6023, "name": "CustodyAmountLimit", "msg": "Custody amount limit exceeded" },
1305
+ { "code": 6024, "name": "PoolAmountLimit", "msg": "Pool amount limit exceeded" },
1306
+ { "code": 6025, "name": "PersonalPoolAmountLimit", "msg": "Personal pool amount limit exceeded" },
1307
+ { "code": 6026, "name": "UnsupportedToken", "msg": "Token is not supported" },
1308
+ { "code": 6027, "name": "InstructionNotAllowed", "msg": "Instruction is not allowed at this time" },
1309
+ { "code": 6028, "name": "JupiterProgramMismatch", "msg": "Jupiter Program ID mismatch" },
1310
+ { "code": 6029, "name": "ProgramMismatch", "msg": "Program ID mismatch" },
1311
+ { "code": 6030, "name": "AddressMismatch", "msg": "Address mismatch" },
1312
+ { "code": 6031, "name": "KeeperATAMissing", "msg": "Missing keeper ATA" },
1313
+ { "code": 6032, "name": "SwapAmountMismatch", "msg": "Swap amount mismatch" },
1314
+ { "code": 6033, "name": "CPINotAllowed", "msg": "CPI not allowed" },
1315
+ { "code": 6034, "name": "InvalidKeeper", "msg": "Invalid Keeper" },
1316
+ { "code": 6035, "name": "ExceedExecutionPeriod", "msg": "Exceed execution period" },
1317
+ { "code": 6036, "name": "InvalidRequestType", "msg": "Invalid Request Type" },
1318
+ { "code": 6037, "name": "InvalidTriggerPrice", "msg": "Invalid Trigger Price" },
1319
+ { "code": 6038, "name": "TriggerPriceSlippage", "msg": "Trigger Price Slippage" },
1320
+ { "code": 6039, "name": "MissingTriggerPrice", "msg": "Missing Trigger Price" },
1321
+ { "code": 6040, "name": "MissingPriceSlippage", "msg": "Missing Price Slippage" },
1322
+ { "code": 6041, "name": "InvalidPriceCalcMode", "msg": "Invalid price calc mode" }
1323
+ ]
1324
+ }