@glamsystems/glam-sdk 1.1.0-alpha.5 → 1.1.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.
Files changed (137) hide show
  1. package/LICENSE +201 -0
  2. package/buffer-layout.d.ts +88 -0
  3. package/index.cjs.d.ts +1 -0
  4. package/index.cjs.js +1 -92594
  5. package/index.esm.d.ts +1 -0
  6. package/index.esm.js +1 -92146
  7. package/package.json +29 -17
  8. package/src/assets.d.ts +39 -0
  9. package/src/client/access.d.ts +57 -0
  10. package/src/client/base.d.ts +234 -0
  11. package/src/client/bridge.d.ts +205 -0
  12. package/src/client/bridgeRegistry.d.ts +32 -0
  13. package/src/client/cctp.d.ts +164 -0
  14. package/src/client/epi.d.ts +228 -0
  15. package/src/client/fees.d.ts +33 -0
  16. package/src/client/invest.d.ts +37 -0
  17. package/src/client/jupiter-lend/borrow.d.ts +92 -0
  18. package/src/client/jupiter-lend/earn.d.ts +64 -0
  19. package/src/client/jupiter-lend/index.d.ts +3 -0
  20. package/src/client/jupiter-lend/shared.d.ts +129 -0
  21. package/src/client/jupiter.d.ts +53 -0
  22. package/src/client/kamino/farm.d.ts +39 -0
  23. package/src/client/kamino/index.d.ts +4 -0
  24. package/src/client/kamino/lending.d.ts +94 -0
  25. package/src/client/kamino/types.d.ts +56 -0
  26. package/src/client/kamino/vaults.d.ts +39 -0
  27. package/src/client/loopscale/borrow.d.ts +118 -0
  28. package/src/client/loopscale/core.d.ts +604 -0
  29. package/src/client/loopscale/index.d.ts +5 -0
  30. package/src/client/loopscale/lend.d.ts +123 -0
  31. package/src/client/loopscale/vault.d.ts +43 -0
  32. package/src/client/marinade.d.ts +42 -0
  33. package/src/client/mint.d.ts +143 -0
  34. package/src/client/orca.d.ts +255 -0
  35. package/src/client/phoenix.d.ts +214 -0
  36. package/src/client/price.d.ts +182 -0
  37. package/src/client/stake-pool.d.ts +39 -0
  38. package/src/client/stake.d.ts +34 -0
  39. package/src/client/state.d.ts +56 -0
  40. package/src/client/timelock.d.ts +31 -0
  41. package/src/client/vault.d.ts +98 -0
  42. package/src/client.d.ts +82 -0
  43. package/src/clientConfig.d.ts +32 -0
  44. package/src/constants.d.ts +111 -0
  45. package/src/deser/base.d.ts +18 -0
  46. package/src/deser/index.d.ts +4 -0
  47. package/src/deser/integrationPolicies.d.ts +195 -0
  48. package/src/deser/kaminoLayouts.d.ts +264 -0
  49. package/src/deser/loopscaleLayouts.d.ts +157 -0
  50. package/src/deser/tokenAclLayouts.d.ts +67 -0
  51. package/src/error.d.ts +29 -0
  52. package/src/glamExports.d.ts +6260 -0
  53. package/src/globalConfig.d.ts +27 -0
  54. package/src/index.d.ts +24 -0
  55. package/src/models/acl.d.ts +43 -0
  56. package/src/models/index.d.ts +8 -0
  57. package/src/models/mint.d.ts +57 -0
  58. package/src/models/state.d.ts +94 -0
  59. package/src/models/types.d.ts +28 -0
  60. package/src/protocols.d.ts +29 -0
  61. package/src/utils/accounts.d.ts +71 -0
  62. package/src/utils/bitmask.d.ts +53 -0
  63. package/src/utils/blockhash.d.ts +11 -0
  64. package/src/utils/common.d.ts +73 -0
  65. package/src/utils/computeBudget.d.ts +15 -0
  66. package/src/utils/evm.d.ts +10 -0
  67. package/src/utils/fraction.d.ts +29 -0
  68. package/src/utils/glamPDAs.d.ts +15 -0
  69. package/src/utils/helius.d.ts +66 -0
  70. package/src/utils/index.d.ts +17 -0
  71. package/src/utils/jupiterApi.d.ts +95 -0
  72. package/src/utils/lookupTables.d.ts +83 -0
  73. package/src/utils/phoenixApi.d.ts +146 -0
  74. package/src/utils/pkmap.d.ts +87 -0
  75. package/src/utils/pkset.d.ts +73 -0
  76. package/src/utils/positionCategorizer.d.ts +38 -0
  77. package/src/utils/rpc.d.ts +18 -0
  78. package/src/utils/timelock.d.ts +52 -0
  79. package/src/utils/transaction.d.ts +13 -0
  80. package/target/idl/ext_bridge-staging.json +2379 -0
  81. package/target/idl/ext_bridge.json +2379 -0
  82. package/target/idl/ext_drift.json +5464 -0
  83. package/target/idl/ext_epi-staging.json +2862 -0
  84. package/target/idl/ext_epi.json +2862 -0
  85. package/target/idl/ext_loopscale-staging.json +4708 -0
  86. package/target/idl/ext_loopscale.json +4708 -0
  87. package/target/idl/ext_marinade-staging.json +1587 -0
  88. package/target/idl/ext_phoenix-staging.json +3525 -0
  89. package/target/idl/ext_phoenix.json +3525 -0
  90. package/target/idl/mock_layerzero_endpoint.json +144 -0
  91. package/target/idl/mock_layerzero_oft.json +155 -0
  92. package/target/idl/mock_wormhole_verify_vaa_shim.json +58 -0
  93. package/target/types/ext_bridge-staging.d.ts +2385 -0
  94. package/target/types/ext_bridge-staging.ts +2385 -0
  95. package/target/types/ext_bridge.d.ts +2385 -0
  96. package/target/types/ext_bridge.ts +2385 -0
  97. package/target/types/ext_cctp-staging.d.ts +1268 -0
  98. package/target/types/ext_cctp.d.ts +1268 -0
  99. package/target/types/ext_drift.d.ts +5470 -0
  100. package/target/types/ext_drift.ts +5470 -0
  101. package/target/types/ext_epi-staging.d.ts +2868 -0
  102. package/target/types/ext_epi-staging.ts +2868 -0
  103. package/target/types/ext_epi.d.ts +2868 -0
  104. package/target/types/ext_epi.ts +2868 -0
  105. package/target/types/ext_jupiter-staging.d.ts +1966 -0
  106. package/target/types/ext_jupiter.d.ts +1966 -0
  107. package/target/types/ext_kamino-staging.d.ts +3433 -0
  108. package/target/types/ext_kamino.d.ts +3433 -0
  109. package/target/types/ext_loopscale-staging.d.ts +4714 -0
  110. package/target/types/ext_loopscale-staging.ts +4714 -0
  111. package/target/types/ext_loopscale.d.ts +4714 -0
  112. package/target/types/ext_loopscale.ts +4714 -0
  113. package/target/types/ext_marinade-staging.d.ts +1593 -0
  114. package/target/types/ext_marinade-staging.ts +1593 -0
  115. package/target/types/ext_marinade.d.ts +1593 -0
  116. package/target/types/ext_orca-staging.d.ts +2829 -0
  117. package/target/types/ext_orca.d.ts +2829 -0
  118. package/target/types/ext_phoenix-staging.d.ts +3531 -0
  119. package/target/types/ext_phoenix-staging.ts +3531 -0
  120. package/target/types/ext_phoenix.d.ts +3531 -0
  121. package/target/types/ext_phoenix.ts +3531 -0
  122. package/target/types/ext_spl-staging.d.ts +1274 -0
  123. package/target/types/ext_spl.d.ts +1274 -0
  124. package/target/types/ext_stake_pool-staging.d.ts +1622 -0
  125. package/target/types/ext_stake_pool.d.ts +1622 -0
  126. package/target/types/glam_config.d.ts +755 -0
  127. package/target/types/glam_mint-staging.d.ts +8802 -0
  128. package/target/types/glam_mint.d.ts +6349 -0
  129. package/target/types/glam_policies.d.ts +477 -0
  130. package/target/types/glam_protocol-staging.d.ts +3362 -0
  131. package/target/types/glam_protocol.d.ts +2783 -0
  132. package/target/types/mock_layerzero_endpoint.d.ts +150 -0
  133. package/target/types/mock_layerzero_endpoint.ts +150 -0
  134. package/target/types/mock_layerzero_oft.d.ts +161 -0
  135. package/target/types/mock_layerzero_oft.ts +161 -0
  136. package/target/types/mock_wormhole_verify_vaa_shim.d.ts +64 -0
  137. package/target/types/mock_wormhole_verify_vaa_shim.ts +64 -0
@@ -0,0 +1,4714 @@
1
+ /**
2
+ * Program IDL in camelCase format in order to be used in JS/TS.
3
+ *
4
+ * Note that this is only a type helper and is not the actual IDL. The original
5
+ * IDL can be found at `target/idl/ext_loopscale.json`.
6
+ */
7
+ export type ExtLoopscale = {
8
+ "address": "G1NTLoPS5orMCxgFjzNDE5H6c3AbxiU1DgqCJBaJ1pfM";
9
+ "metadata": {
10
+ "name": "extLoopscale";
11
+ "version": "0.1.0";
12
+ "spec": "0.1.0";
13
+ "description": "Loopscale integration for GLAM Protocol";
14
+ };
15
+ "instructions": [
16
+ {
17
+ "name": "borrowPrincipal";
18
+ "docs": [
19
+ "Borrow principal against a locked loan.",
20
+ "",
21
+ "- Permission: `BorrowPermissions::BorrowPrincipal`.",
22
+ "- Policy:",
23
+ "- `principal_mint` must be present in `BorrowPolicy::principal_allowlist`.",
24
+ "- If `market_information` has a `BorrowPolicy::market_policies` entry,",
25
+ "advanced per-market borrow limits are enforced."
26
+ ];
27
+ "discriminator": [
28
+ 106,
29
+ 10,
30
+ 38,
31
+ 204,
32
+ 139,
33
+ 188,
34
+ 124,
35
+ 50
36
+ ];
37
+ "accounts": [
38
+ {
39
+ "name": "glamState";
40
+ "writable": true;
41
+ },
42
+ {
43
+ "name": "glamVault";
44
+ "writable": true;
45
+ "pda": {
46
+ "seeds": [
47
+ {
48
+ "kind": "const";
49
+ "value": [
50
+ 118,
51
+ 97,
52
+ 117,
53
+ 108,
54
+ 116
55
+ ];
56
+ },
57
+ {
58
+ "kind": "account";
59
+ "path": "glamState";
60
+ }
61
+ ];
62
+ "program": {
63
+ "kind": "account";
64
+ "path": "glamProtocolProgram";
65
+ };
66
+ };
67
+ },
68
+ {
69
+ "name": "glamSigner";
70
+ "writable": true;
71
+ "signer": true;
72
+ },
73
+ {
74
+ "name": "integrationAuthority";
75
+ "pda": {
76
+ "seeds": [
77
+ {
78
+ "kind": "const";
79
+ "value": [
80
+ 105,
81
+ 110,
82
+ 116,
83
+ 101,
84
+ 103,
85
+ 114,
86
+ 97,
87
+ 116,
88
+ 105,
89
+ 111,
90
+ 110,
91
+ 45,
92
+ 97,
93
+ 117,
94
+ 116,
95
+ 104,
96
+ 111,
97
+ 114,
98
+ 105,
99
+ 116,
100
+ 121
101
+ ];
102
+ }
103
+ ];
104
+ };
105
+ },
106
+ {
107
+ "name": "cpiProgram";
108
+ "address": "1oopBoJG58DgkUVKkEzKgyG9dvRmpgeEm1AVjoHkF78";
109
+ },
110
+ {
111
+ "name": "glamProtocolProgram";
112
+ "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz";
113
+ },
114
+ {
115
+ "name": "systemProgram";
116
+ "address": "11111111111111111111111111111111";
117
+ },
118
+ {
119
+ "name": "bsAuth";
120
+ "signer": true;
121
+ },
122
+ {
123
+ "name": "loan";
124
+ "writable": true;
125
+ },
126
+ {
127
+ "name": "strategy";
128
+ "writable": true;
129
+ },
130
+ {
131
+ "name": "marketInformation";
132
+ "writable": true;
133
+ },
134
+ {
135
+ "name": "principalMint";
136
+ },
137
+ {
138
+ "name": "borrowerTa";
139
+ "writable": true;
140
+ },
141
+ {
142
+ "name": "strategyTa";
143
+ "writable": true;
144
+ },
145
+ {
146
+ "name": "associatedTokenProgram";
147
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL";
148
+ },
149
+ {
150
+ "name": "tokenProgram";
151
+ },
152
+ {
153
+ "name": "protocolAdminState";
154
+ },
155
+ {
156
+ "name": "eventAuthority";
157
+ }
158
+ ];
159
+ "args": [
160
+ {
161
+ "name": "params";
162
+ "type": {
163
+ "defined": {
164
+ "name": "borrowPrincipalParams";
165
+ };
166
+ };
167
+ }
168
+ ];
169
+ },
170
+ {
171
+ "name": "claimVaultRewards";
172
+ "docs": [
173
+ "Claim rewards accrued by a Loopscale VaultStake account.",
174
+ "",
175
+ "- Permission: `VaultPermissions::ClaimVaultRewards`.",
176
+ "- Policy: `vault` must be present in `VaultPolicy::vault_allowlist`."
177
+ ];
178
+ "discriminator": [
179
+ 0,
180
+ 152,
181
+ 75,
182
+ 29,
183
+ 195,
184
+ 223,
185
+ 12,
186
+ 101
187
+ ];
188
+ "accounts": [
189
+ {
190
+ "name": "glamState";
191
+ "writable": true;
192
+ },
193
+ {
194
+ "name": "glamVault";
195
+ "writable": true;
196
+ "pda": {
197
+ "seeds": [
198
+ {
199
+ "kind": "const";
200
+ "value": [
201
+ 118,
202
+ 97,
203
+ 117,
204
+ 108,
205
+ 116
206
+ ];
207
+ },
208
+ {
209
+ "kind": "account";
210
+ "path": "glamState";
211
+ }
212
+ ];
213
+ "program": {
214
+ "kind": "account";
215
+ "path": "glamProtocolProgram";
216
+ };
217
+ };
218
+ },
219
+ {
220
+ "name": "glamSigner";
221
+ "writable": true;
222
+ "signer": true;
223
+ },
224
+ {
225
+ "name": "integrationAuthority";
226
+ "pda": {
227
+ "seeds": [
228
+ {
229
+ "kind": "const";
230
+ "value": [
231
+ 105,
232
+ 110,
233
+ 116,
234
+ 101,
235
+ 103,
236
+ 114,
237
+ 97,
238
+ 116,
239
+ 105,
240
+ 111,
241
+ 110,
242
+ 45,
243
+ 97,
244
+ 117,
245
+ 116,
246
+ 104,
247
+ 111,
248
+ 114,
249
+ 105,
250
+ 116,
251
+ 121
252
+ ];
253
+ }
254
+ ];
255
+ };
256
+ },
257
+ {
258
+ "name": "cpiProgram";
259
+ "address": "1oopBoJG58DgkUVKkEzKgyG9dvRmpgeEm1AVjoHkF78";
260
+ },
261
+ {
262
+ "name": "glamProtocolProgram";
263
+ "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz";
264
+ },
265
+ {
266
+ "name": "systemProgram";
267
+ "address": "11111111111111111111111111111111";
268
+ },
269
+ {
270
+ "name": "bsAuth";
271
+ "signer": true;
272
+ },
273
+ {
274
+ "name": "vault";
275
+ },
276
+ {
277
+ "name": "vaultRewardsInfo";
278
+ "writable": true;
279
+ },
280
+ {
281
+ "name": "userRewardsInfo";
282
+ "writable": true;
283
+ },
284
+ {
285
+ "name": "stakeAccount";
286
+ "writable": true;
287
+ },
288
+ {
289
+ "name": "associatedTokenProgram";
290
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL";
291
+ },
292
+ {
293
+ "name": "protocolAdminState";
294
+ },
295
+ {
296
+ "name": "eventAuthority";
297
+ }
298
+ ];
299
+ "args": [
300
+ {
301
+ "name": "mints";
302
+ "type": {
303
+ "vec": "pubkey";
304
+ };
305
+ }
306
+ ];
307
+ },
308
+ {
309
+ "name": "closeLoan";
310
+ "docs": [
311
+ "Close an existing Loopscale loan PDA.",
312
+ "",
313
+ "- Permission: `BorrowPermissions::CloseLoan`."
314
+ ];
315
+ "discriminator": [
316
+ 96,
317
+ 114,
318
+ 111,
319
+ 204,
320
+ 149,
321
+ 228,
322
+ 235,
323
+ 124
324
+ ];
325
+ "accounts": [
326
+ {
327
+ "name": "glamState";
328
+ "writable": true;
329
+ },
330
+ {
331
+ "name": "glamVault";
332
+ "writable": true;
333
+ "pda": {
334
+ "seeds": [
335
+ {
336
+ "kind": "const";
337
+ "value": [
338
+ 118,
339
+ 97,
340
+ 117,
341
+ 108,
342
+ 116
343
+ ];
344
+ },
345
+ {
346
+ "kind": "account";
347
+ "path": "glamState";
348
+ }
349
+ ];
350
+ "program": {
351
+ "kind": "account";
352
+ "path": "glamProtocolProgram";
353
+ };
354
+ };
355
+ },
356
+ {
357
+ "name": "glamSigner";
358
+ "writable": true;
359
+ "signer": true;
360
+ },
361
+ {
362
+ "name": "integrationAuthority";
363
+ "pda": {
364
+ "seeds": [
365
+ {
366
+ "kind": "const";
367
+ "value": [
368
+ 105,
369
+ 110,
370
+ 116,
371
+ 101,
372
+ 103,
373
+ 114,
374
+ 97,
375
+ 116,
376
+ 105,
377
+ 111,
378
+ 110,
379
+ 45,
380
+ 97,
381
+ 117,
382
+ 116,
383
+ 104,
384
+ 111,
385
+ 114,
386
+ 105,
387
+ 116,
388
+ 121
389
+ ];
390
+ }
391
+ ];
392
+ };
393
+ },
394
+ {
395
+ "name": "cpiProgram";
396
+ "address": "1oopBoJG58DgkUVKkEzKgyG9dvRmpgeEm1AVjoHkF78";
397
+ },
398
+ {
399
+ "name": "glamProtocolProgram";
400
+ "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz";
401
+ },
402
+ {
403
+ "name": "systemProgram";
404
+ "address": "11111111111111111111111111111111";
405
+ },
406
+ {
407
+ "name": "bsAuth";
408
+ "signer": true;
409
+ },
410
+ {
411
+ "name": "loan";
412
+ "writable": true;
413
+ },
414
+ {
415
+ "name": "protocolAdminState";
416
+ },
417
+ {
418
+ "name": "eventAuthority";
419
+ }
420
+ ];
421
+ "args": [];
422
+ },
423
+ {
424
+ "name": "closeStrategy";
425
+ "docs": [
426
+ "Close a Loopscale lender strategy account.",
427
+ "",
428
+ "- Permission: `LendingPermissions::CloseStrategy`."
429
+ ];
430
+ "discriminator": [
431
+ 56,
432
+ 247,
433
+ 170,
434
+ 246,
435
+ 89,
436
+ 221,
437
+ 134,
438
+ 200
439
+ ];
440
+ "accounts": [
441
+ {
442
+ "name": "glamState";
443
+ "writable": true;
444
+ },
445
+ {
446
+ "name": "glamVault";
447
+ "writable": true;
448
+ "pda": {
449
+ "seeds": [
450
+ {
451
+ "kind": "const";
452
+ "value": [
453
+ 118,
454
+ 97,
455
+ 117,
456
+ 108,
457
+ 116
458
+ ];
459
+ },
460
+ {
461
+ "kind": "account";
462
+ "path": "glamState";
463
+ }
464
+ ];
465
+ "program": {
466
+ "kind": "account";
467
+ "path": "glamProtocolProgram";
468
+ };
469
+ };
470
+ },
471
+ {
472
+ "name": "glamSigner";
473
+ "writable": true;
474
+ "signer": true;
475
+ },
476
+ {
477
+ "name": "integrationAuthority";
478
+ "pda": {
479
+ "seeds": [
480
+ {
481
+ "kind": "const";
482
+ "value": [
483
+ 105,
484
+ 110,
485
+ 116,
486
+ 101,
487
+ 103,
488
+ 114,
489
+ 97,
490
+ 116,
491
+ 105,
492
+ 111,
493
+ 110,
494
+ 45,
495
+ 97,
496
+ 117,
497
+ 116,
498
+ 104,
499
+ 111,
500
+ 114,
501
+ 105,
502
+ 116,
503
+ 121
504
+ ];
505
+ }
506
+ ];
507
+ };
508
+ },
509
+ {
510
+ "name": "cpiProgram";
511
+ "address": "1oopBoJG58DgkUVKkEzKgyG9dvRmpgeEm1AVjoHkF78";
512
+ },
513
+ {
514
+ "name": "glamProtocolProgram";
515
+ "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz";
516
+ },
517
+ {
518
+ "name": "systemProgram";
519
+ "address": "11111111111111111111111111111111";
520
+ },
521
+ {
522
+ "name": "bsAuth";
523
+ "signer": true;
524
+ },
525
+ {
526
+ "name": "strategy";
527
+ "writable": true;
528
+ },
529
+ {
530
+ "name": "principalMint";
531
+ },
532
+ {
533
+ "name": "tokenProgram";
534
+ },
535
+ {
536
+ "name": "associatedTokenProgram";
537
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL";
538
+ },
539
+ {
540
+ "name": "protocolAdminState";
541
+ },
542
+ {
543
+ "name": "eventAuthority";
544
+ }
545
+ ];
546
+ "args": [];
547
+ },
548
+ {
549
+ "name": "createLoan";
550
+ "docs": [
551
+ "Create a new Loopscale loan PDA owned by the GLAM vault.",
552
+ "",
553
+ "- Permission: `BorrowPermissions::CreateLoan`."
554
+ ];
555
+ "discriminator": [
556
+ 166,
557
+ 131,
558
+ 118,
559
+ 219,
560
+ 138,
561
+ 218,
562
+ 206,
563
+ 140
564
+ ];
565
+ "accounts": [
566
+ {
567
+ "name": "glamState";
568
+ "writable": true;
569
+ },
570
+ {
571
+ "name": "glamVault";
572
+ "writable": true;
573
+ "pda": {
574
+ "seeds": [
575
+ {
576
+ "kind": "const";
577
+ "value": [
578
+ 118,
579
+ 97,
580
+ 117,
581
+ 108,
582
+ 116
583
+ ];
584
+ },
585
+ {
586
+ "kind": "account";
587
+ "path": "glamState";
588
+ }
589
+ ];
590
+ "program": {
591
+ "kind": "account";
592
+ "path": "glamProtocolProgram";
593
+ };
594
+ };
595
+ },
596
+ {
597
+ "name": "glamSigner";
598
+ "writable": true;
599
+ "signer": true;
600
+ },
601
+ {
602
+ "name": "integrationAuthority";
603
+ "pda": {
604
+ "seeds": [
605
+ {
606
+ "kind": "const";
607
+ "value": [
608
+ 105,
609
+ 110,
610
+ 116,
611
+ 101,
612
+ 103,
613
+ 114,
614
+ 97,
615
+ 116,
616
+ 105,
617
+ 111,
618
+ 110,
619
+ 45,
620
+ 97,
621
+ 117,
622
+ 116,
623
+ 104,
624
+ 111,
625
+ 114,
626
+ 105,
627
+ 116,
628
+ 121
629
+ ];
630
+ }
631
+ ];
632
+ };
633
+ },
634
+ {
635
+ "name": "cpiProgram";
636
+ "address": "1oopBoJG58DgkUVKkEzKgyG9dvRmpgeEm1AVjoHkF78";
637
+ },
638
+ {
639
+ "name": "glamProtocolProgram";
640
+ "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz";
641
+ },
642
+ {
643
+ "name": "systemProgram";
644
+ "address": "11111111111111111111111111111111";
645
+ },
646
+ {
647
+ "name": "bsAuth";
648
+ "signer": true;
649
+ },
650
+ {
651
+ "name": "loan";
652
+ "writable": true;
653
+ },
654
+ {
655
+ "name": "protocolAdminState";
656
+ },
657
+ {
658
+ "name": "eventAuthority";
659
+ }
660
+ ];
661
+ "args": [
662
+ {
663
+ "name": "params";
664
+ "type": {
665
+ "defined": {
666
+ "name": "createLoanParams";
667
+ };
668
+ };
669
+ }
670
+ ];
671
+ },
672
+ {
673
+ "name": "createStrategy";
674
+ "docs": [
675
+ "Create a new Loopscale lender strategy owned by the GLAM vault.",
676
+ "",
677
+ "- Permission: `LendingPermissions::CreateStrategy`.",
678
+ "- Policy:",
679
+ "- `principal_mint` must be present in `LendingPolicy::principal_allowlist`.",
680
+ "- If `market_information` has a `LendingPolicy::market_policies` entry,",
681
+ "advanced per-market lending limits are enforced.",
682
+ "- `params.lender` must equal the GLAM vault."
683
+ ];
684
+ "discriminator": [
685
+ 152,
686
+ 160,
687
+ 107,
688
+ 148,
689
+ 245,
690
+ 190,
691
+ 127,
692
+ 224
693
+ ];
694
+ "accounts": [
695
+ {
696
+ "name": "glamState";
697
+ "writable": true;
698
+ },
699
+ {
700
+ "name": "glamVault";
701
+ "writable": true;
702
+ "pda": {
703
+ "seeds": [
704
+ {
705
+ "kind": "const";
706
+ "value": [
707
+ 118,
708
+ 97,
709
+ 117,
710
+ 108,
711
+ 116
712
+ ];
713
+ },
714
+ {
715
+ "kind": "account";
716
+ "path": "glamState";
717
+ }
718
+ ];
719
+ "program": {
720
+ "kind": "account";
721
+ "path": "glamProtocolProgram";
722
+ };
723
+ };
724
+ },
725
+ {
726
+ "name": "glamSigner";
727
+ "writable": true;
728
+ "signer": true;
729
+ },
730
+ {
731
+ "name": "integrationAuthority";
732
+ "pda": {
733
+ "seeds": [
734
+ {
735
+ "kind": "const";
736
+ "value": [
737
+ 105,
738
+ 110,
739
+ 116,
740
+ 101,
741
+ 103,
742
+ 114,
743
+ 97,
744
+ 116,
745
+ 105,
746
+ 111,
747
+ 110,
748
+ 45,
749
+ 97,
750
+ 117,
751
+ 116,
752
+ 104,
753
+ 111,
754
+ 114,
755
+ 105,
756
+ 116,
757
+ 121
758
+ ];
759
+ }
760
+ ];
761
+ };
762
+ },
763
+ {
764
+ "name": "cpiProgram";
765
+ "address": "1oopBoJG58DgkUVKkEzKgyG9dvRmpgeEm1AVjoHkF78";
766
+ },
767
+ {
768
+ "name": "glamProtocolProgram";
769
+ "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz";
770
+ },
771
+ {
772
+ "name": "systemProgram";
773
+ "address": "11111111111111111111111111111111";
774
+ },
775
+ {
776
+ "name": "bsAuth";
777
+ "signer": true;
778
+ },
779
+ {
780
+ "name": "nonce";
781
+ "signer": true;
782
+ },
783
+ {
784
+ "name": "strategy";
785
+ "writable": true;
786
+ },
787
+ {
788
+ "name": "marketInformation";
789
+ },
790
+ {
791
+ "name": "principalMint";
792
+ },
793
+ {
794
+ "name": "protocolAdminState";
795
+ },
796
+ {
797
+ "name": "eventAuthority";
798
+ }
799
+ ];
800
+ "args": [
801
+ {
802
+ "name": "params";
803
+ "type": {
804
+ "defined": {
805
+ "name": "createStrategyParams";
806
+ };
807
+ };
808
+ }
809
+ ];
810
+ },
811
+ {
812
+ "name": "depositCollateral";
813
+ "docs": [
814
+ "Deposit collateral into a Loopscale loan.",
815
+ "",
816
+ "- Permission: `BorrowPermissions::DepositCollateral`.",
817
+ "- Policy:",
818
+ "- `deposit_mint` must be present in `BorrowPolicy::collateral_allowlist`."
819
+ ];
820
+ "discriminator": [
821
+ 156,
822
+ 131,
823
+ 142,
824
+ 116,
825
+ 146,
826
+ 247,
827
+ 162,
828
+ 120
829
+ ];
830
+ "accounts": [
831
+ {
832
+ "name": "glamState";
833
+ "writable": true;
834
+ },
835
+ {
836
+ "name": "glamVault";
837
+ "writable": true;
838
+ "pda": {
839
+ "seeds": [
840
+ {
841
+ "kind": "const";
842
+ "value": [
843
+ 118,
844
+ 97,
845
+ 117,
846
+ 108,
847
+ 116
848
+ ];
849
+ },
850
+ {
851
+ "kind": "account";
852
+ "path": "glamState";
853
+ }
854
+ ];
855
+ "program": {
856
+ "kind": "account";
857
+ "path": "glamProtocolProgram";
858
+ };
859
+ };
860
+ },
861
+ {
862
+ "name": "glamSigner";
863
+ "writable": true;
864
+ "signer": true;
865
+ },
866
+ {
867
+ "name": "integrationAuthority";
868
+ "pda": {
869
+ "seeds": [
870
+ {
871
+ "kind": "const";
872
+ "value": [
873
+ 105,
874
+ 110,
875
+ 116,
876
+ 101,
877
+ 103,
878
+ 114,
879
+ 97,
880
+ 116,
881
+ 105,
882
+ 111,
883
+ 110,
884
+ 45,
885
+ 97,
886
+ 117,
887
+ 116,
888
+ 104,
889
+ 111,
890
+ 114,
891
+ 105,
892
+ 116,
893
+ 121
894
+ ];
895
+ }
896
+ ];
897
+ };
898
+ },
899
+ {
900
+ "name": "cpiProgram";
901
+ "address": "1oopBoJG58DgkUVKkEzKgyG9dvRmpgeEm1AVjoHkF78";
902
+ },
903
+ {
904
+ "name": "glamProtocolProgram";
905
+ "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz";
906
+ },
907
+ {
908
+ "name": "systemProgram";
909
+ "address": "11111111111111111111111111111111";
910
+ },
911
+ {
912
+ "name": "bsAuth";
913
+ "signer": true;
914
+ },
915
+ {
916
+ "name": "loan";
917
+ "writable": true;
918
+ },
919
+ {
920
+ "name": "borrowerCollateralTa";
921
+ "writable": true;
922
+ },
923
+ {
924
+ "name": "loanCollateralTa";
925
+ "writable": true;
926
+ },
927
+ {
928
+ "name": "depositMint";
929
+ },
930
+ {
931
+ "name": "assetIdentifier";
932
+ },
933
+ {
934
+ "name": "tokenProgram";
935
+ },
936
+ {
937
+ "name": "associatedTokenProgram";
938
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL";
939
+ },
940
+ {
941
+ "name": "protocolAdminState";
942
+ },
943
+ {
944
+ "name": "eventAuthority";
945
+ }
946
+ ];
947
+ "args": [
948
+ {
949
+ "name": "params";
950
+ "type": {
951
+ "defined": {
952
+ "name": "depositCollateralParams";
953
+ };
954
+ };
955
+ }
956
+ ];
957
+ },
958
+ {
959
+ "name": "depositStrategy";
960
+ "docs": [
961
+ "Deposit principal liquidity into a Loopscale lender strategy.",
962
+ "",
963
+ "- Permission: `LendingPermissions::DepositStrategy`.",
964
+ "- Policy:",
965
+ "- `principal_mint` must be present in `LendingPolicy::principal_allowlist`.",
966
+ "- If `market_information` has a `LendingPolicy::market_policies` entry,",
967
+ "advanced per-market lending limits are enforced."
968
+ ];
969
+ "discriminator": [
970
+ 246,
971
+ 82,
972
+ 57,
973
+ 226,
974
+ 131,
975
+ 222,
976
+ 253,
977
+ 249
978
+ ];
979
+ "accounts": [
980
+ {
981
+ "name": "glamState";
982
+ "writable": true;
983
+ },
984
+ {
985
+ "name": "glamVault";
986
+ "writable": true;
987
+ "pda": {
988
+ "seeds": [
989
+ {
990
+ "kind": "const";
991
+ "value": [
992
+ 118,
993
+ 97,
994
+ 117,
995
+ 108,
996
+ 116
997
+ ];
998
+ },
999
+ {
1000
+ "kind": "account";
1001
+ "path": "glamState";
1002
+ }
1003
+ ];
1004
+ "program": {
1005
+ "kind": "account";
1006
+ "path": "glamProtocolProgram";
1007
+ };
1008
+ };
1009
+ },
1010
+ {
1011
+ "name": "glamSigner";
1012
+ "writable": true;
1013
+ "signer": true;
1014
+ },
1015
+ {
1016
+ "name": "integrationAuthority";
1017
+ "pda": {
1018
+ "seeds": [
1019
+ {
1020
+ "kind": "const";
1021
+ "value": [
1022
+ 105,
1023
+ 110,
1024
+ 116,
1025
+ 101,
1026
+ 103,
1027
+ 114,
1028
+ 97,
1029
+ 116,
1030
+ 105,
1031
+ 111,
1032
+ 110,
1033
+ 45,
1034
+ 97,
1035
+ 117,
1036
+ 116,
1037
+ 104,
1038
+ 111,
1039
+ 114,
1040
+ 105,
1041
+ 116,
1042
+ 121
1043
+ ];
1044
+ }
1045
+ ];
1046
+ };
1047
+ },
1048
+ {
1049
+ "name": "cpiProgram";
1050
+ "address": "1oopBoJG58DgkUVKkEzKgyG9dvRmpgeEm1AVjoHkF78";
1051
+ },
1052
+ {
1053
+ "name": "glamProtocolProgram";
1054
+ "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz";
1055
+ },
1056
+ {
1057
+ "name": "systemProgram";
1058
+ "address": "11111111111111111111111111111111";
1059
+ },
1060
+ {
1061
+ "name": "bsAuth";
1062
+ "signer": true;
1063
+ },
1064
+ {
1065
+ "name": "strategy";
1066
+ "writable": true;
1067
+ },
1068
+ {
1069
+ "name": "principalMint";
1070
+ },
1071
+ {
1072
+ "name": "marketInformation";
1073
+ },
1074
+ {
1075
+ "name": "lenderTa";
1076
+ "writable": true;
1077
+ },
1078
+ {
1079
+ "name": "strategyTa";
1080
+ "writable": true;
1081
+ },
1082
+ {
1083
+ "name": "tokenProgram";
1084
+ },
1085
+ {
1086
+ "name": "associatedTokenProgram";
1087
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL";
1088
+ },
1089
+ {
1090
+ "name": "protocolAdminState";
1091
+ },
1092
+ {
1093
+ "name": "eventAuthority";
1094
+ }
1095
+ ];
1096
+ "args": [
1097
+ {
1098
+ "name": "amount";
1099
+ "type": "u64";
1100
+ }
1101
+ ];
1102
+ },
1103
+ {
1104
+ "name": "depositUserVault";
1105
+ "docs": [
1106
+ "Deposit principal into a Loopscale user vault and receive Token-2022 LP tokens.",
1107
+ "",
1108
+ "- Permission: `VaultPermissions::DepositUserVault`.",
1109
+ "- Policy: `vault` must be present in `VaultPolicy::vault_allowlist`."
1110
+ ];
1111
+ "discriminator": [
1112
+ 204,
1113
+ 190,
1114
+ 182,
1115
+ 224,
1116
+ 15,
1117
+ 219,
1118
+ 247,
1119
+ 121
1120
+ ];
1121
+ "accounts": [
1122
+ {
1123
+ "name": "glamState";
1124
+ "writable": true;
1125
+ },
1126
+ {
1127
+ "name": "glamVault";
1128
+ "writable": true;
1129
+ "pda": {
1130
+ "seeds": [
1131
+ {
1132
+ "kind": "const";
1133
+ "value": [
1134
+ 118,
1135
+ 97,
1136
+ 117,
1137
+ 108,
1138
+ 116
1139
+ ];
1140
+ },
1141
+ {
1142
+ "kind": "account";
1143
+ "path": "glamState";
1144
+ }
1145
+ ];
1146
+ "program": {
1147
+ "kind": "account";
1148
+ "path": "glamProtocolProgram";
1149
+ };
1150
+ };
1151
+ },
1152
+ {
1153
+ "name": "glamSigner";
1154
+ "writable": true;
1155
+ "signer": true;
1156
+ },
1157
+ {
1158
+ "name": "integrationAuthority";
1159
+ "pda": {
1160
+ "seeds": [
1161
+ {
1162
+ "kind": "const";
1163
+ "value": [
1164
+ 105,
1165
+ 110,
1166
+ 116,
1167
+ 101,
1168
+ 103,
1169
+ 114,
1170
+ 97,
1171
+ 116,
1172
+ 105,
1173
+ 111,
1174
+ 110,
1175
+ 45,
1176
+ 97,
1177
+ 117,
1178
+ 116,
1179
+ 104,
1180
+ 111,
1181
+ 114,
1182
+ 105,
1183
+ 116,
1184
+ 121
1185
+ ];
1186
+ }
1187
+ ];
1188
+ };
1189
+ },
1190
+ {
1191
+ "name": "cpiProgram";
1192
+ "address": "1oopBoJG58DgkUVKkEzKgyG9dvRmpgeEm1AVjoHkF78";
1193
+ },
1194
+ {
1195
+ "name": "glamProtocolProgram";
1196
+ "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz";
1197
+ },
1198
+ {
1199
+ "name": "systemProgram";
1200
+ "address": "11111111111111111111111111111111";
1201
+ },
1202
+ {
1203
+ "name": "bsAuth";
1204
+ "signer": true;
1205
+ },
1206
+ {
1207
+ "name": "vault";
1208
+ "writable": true;
1209
+ },
1210
+ {
1211
+ "name": "strategy";
1212
+ "writable": true;
1213
+ },
1214
+ {
1215
+ "name": "marketInformation";
1216
+ },
1217
+ {
1218
+ "name": "lpMint";
1219
+ "writable": true;
1220
+ },
1221
+ {
1222
+ "name": "userLpTa";
1223
+ "writable": true;
1224
+ },
1225
+ {
1226
+ "name": "userPrincipalTa";
1227
+ "writable": true;
1228
+ },
1229
+ {
1230
+ "name": "strategyPrincipalTa";
1231
+ "writable": true;
1232
+ },
1233
+ {
1234
+ "name": "principalMint";
1235
+ },
1236
+ {
1237
+ "name": "principalTokenProgram";
1238
+ },
1239
+ {
1240
+ "name": "token2022Program";
1241
+ "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb";
1242
+ },
1243
+ {
1244
+ "name": "associatedTokenProgram";
1245
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL";
1246
+ },
1247
+ {
1248
+ "name": "protocolAdminState";
1249
+ },
1250
+ {
1251
+ "name": "eventAuthority";
1252
+ }
1253
+ ];
1254
+ "args": [
1255
+ {
1256
+ "name": "params";
1257
+ "type": {
1258
+ "defined": {
1259
+ "name": "lpParams";
1260
+ };
1261
+ };
1262
+ }
1263
+ ];
1264
+ },
1265
+ {
1266
+ "name": "repayPrincipal";
1267
+ "docs": [
1268
+ "Repay principal on a Loopscale loan.",
1269
+ "",
1270
+ "- Permission: `BorrowPermissions::RepayPrincipal`."
1271
+ ];
1272
+ "discriminator": [
1273
+ 229,
1274
+ 67,
1275
+ 83,
1276
+ 65,
1277
+ 77,
1278
+ 84,
1279
+ 80,
1280
+ 141
1281
+ ];
1282
+ "accounts": [
1283
+ {
1284
+ "name": "glamState";
1285
+ "writable": true;
1286
+ },
1287
+ {
1288
+ "name": "glamVault";
1289
+ "writable": true;
1290
+ "pda": {
1291
+ "seeds": [
1292
+ {
1293
+ "kind": "const";
1294
+ "value": [
1295
+ 118,
1296
+ 97,
1297
+ 117,
1298
+ 108,
1299
+ 116
1300
+ ];
1301
+ },
1302
+ {
1303
+ "kind": "account";
1304
+ "path": "glamState";
1305
+ }
1306
+ ];
1307
+ "program": {
1308
+ "kind": "account";
1309
+ "path": "glamProtocolProgram";
1310
+ };
1311
+ };
1312
+ },
1313
+ {
1314
+ "name": "glamSigner";
1315
+ "writable": true;
1316
+ "signer": true;
1317
+ },
1318
+ {
1319
+ "name": "integrationAuthority";
1320
+ "pda": {
1321
+ "seeds": [
1322
+ {
1323
+ "kind": "const";
1324
+ "value": [
1325
+ 105,
1326
+ 110,
1327
+ 116,
1328
+ 101,
1329
+ 103,
1330
+ 114,
1331
+ 97,
1332
+ 116,
1333
+ 105,
1334
+ 111,
1335
+ 110,
1336
+ 45,
1337
+ 97,
1338
+ 117,
1339
+ 116,
1340
+ 104,
1341
+ 111,
1342
+ 114,
1343
+ 105,
1344
+ 116,
1345
+ 121
1346
+ ];
1347
+ }
1348
+ ];
1349
+ };
1350
+ },
1351
+ {
1352
+ "name": "cpiProgram";
1353
+ "address": "1oopBoJG58DgkUVKkEzKgyG9dvRmpgeEm1AVjoHkF78";
1354
+ },
1355
+ {
1356
+ "name": "glamProtocolProgram";
1357
+ "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz";
1358
+ },
1359
+ {
1360
+ "name": "systemProgram";
1361
+ "address": "11111111111111111111111111111111";
1362
+ },
1363
+ {
1364
+ "name": "bsAuth";
1365
+ "signer": true;
1366
+ },
1367
+ {
1368
+ "name": "loan";
1369
+ "writable": true;
1370
+ },
1371
+ {
1372
+ "name": "strategy";
1373
+ "writable": true;
1374
+ },
1375
+ {
1376
+ "name": "marketInformation";
1377
+ "writable": true;
1378
+ },
1379
+ {
1380
+ "name": "principalMint";
1381
+ },
1382
+ {
1383
+ "name": "borrowerTa";
1384
+ "writable": true;
1385
+ },
1386
+ {
1387
+ "name": "strategyTa";
1388
+ "writable": true;
1389
+ },
1390
+ {
1391
+ "name": "associatedTokenProgram";
1392
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL";
1393
+ },
1394
+ {
1395
+ "name": "tokenProgram";
1396
+ },
1397
+ {
1398
+ "name": "protocolAdminState";
1399
+ },
1400
+ {
1401
+ "name": "eventAuthority";
1402
+ }
1403
+ ];
1404
+ "args": [
1405
+ {
1406
+ "name": "params";
1407
+ "type": {
1408
+ "defined": {
1409
+ "name": "repayPrincipalParams";
1410
+ };
1411
+ };
1412
+ }
1413
+ ];
1414
+ },
1415
+ {
1416
+ "name": "sellLedger";
1417
+ "docs": [
1418
+ "Sell a loan ledger from one strategy to another.",
1419
+ "",
1420
+ "- Permission: `LendingPermissions::SellLedger`.",
1421
+ "- Policy:",
1422
+ "- `principal_mint` must be present in `LendingPolicy::principal_allowlist`.",
1423
+ "- If the new strategy market account has a `LendingPolicy::market_policies` entry,",
1424
+ "advanced exposure limits are enforced."
1425
+ ];
1426
+ "discriminator": [
1427
+ 55,
1428
+ 17,
1429
+ 153,
1430
+ 148,
1431
+ 120,
1432
+ 242,
1433
+ 80,
1434
+ 5
1435
+ ];
1436
+ "accounts": [
1437
+ {
1438
+ "name": "glamState";
1439
+ "writable": true;
1440
+ },
1441
+ {
1442
+ "name": "glamVault";
1443
+ "writable": true;
1444
+ "pda": {
1445
+ "seeds": [
1446
+ {
1447
+ "kind": "const";
1448
+ "value": [
1449
+ 118,
1450
+ 97,
1451
+ 117,
1452
+ 108,
1453
+ 116
1454
+ ];
1455
+ },
1456
+ {
1457
+ "kind": "account";
1458
+ "path": "glamState";
1459
+ }
1460
+ ];
1461
+ "program": {
1462
+ "kind": "account";
1463
+ "path": "glamProtocolProgram";
1464
+ };
1465
+ };
1466
+ },
1467
+ {
1468
+ "name": "glamSigner";
1469
+ "writable": true;
1470
+ "signer": true;
1471
+ },
1472
+ {
1473
+ "name": "integrationAuthority";
1474
+ "pda": {
1475
+ "seeds": [
1476
+ {
1477
+ "kind": "const";
1478
+ "value": [
1479
+ 105,
1480
+ 110,
1481
+ 116,
1482
+ 101,
1483
+ 103,
1484
+ 114,
1485
+ 97,
1486
+ 116,
1487
+ 105,
1488
+ 111,
1489
+ 110,
1490
+ 45,
1491
+ 97,
1492
+ 117,
1493
+ 116,
1494
+ 104,
1495
+ 111,
1496
+ 114,
1497
+ 105,
1498
+ 116,
1499
+ 121
1500
+ ];
1501
+ }
1502
+ ];
1503
+ };
1504
+ },
1505
+ {
1506
+ "name": "cpiProgram";
1507
+ "address": "1oopBoJG58DgkUVKkEzKgyG9dvRmpgeEm1AVjoHkF78";
1508
+ },
1509
+ {
1510
+ "name": "glamProtocolProgram";
1511
+ "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz";
1512
+ },
1513
+ {
1514
+ "name": "systemProgram";
1515
+ "address": "11111111111111111111111111111111";
1516
+ },
1517
+ {
1518
+ "name": "bsAuth";
1519
+ "signer": true;
1520
+ },
1521
+ {
1522
+ "name": "loan";
1523
+ "writable": true;
1524
+ },
1525
+ {
1526
+ "name": "newStrategyTa";
1527
+ "writable": true;
1528
+ },
1529
+ {
1530
+ "name": "lenderAuthTa";
1531
+ "writable": true;
1532
+ },
1533
+ {
1534
+ "name": "oldStrategy";
1535
+ "writable": true;
1536
+ },
1537
+ {
1538
+ "name": "newStrategy";
1539
+ "writable": true;
1540
+ },
1541
+ {
1542
+ "name": "oldStrategyMarketInformation";
1543
+ "writable": true;
1544
+ },
1545
+ {
1546
+ "name": "newStrategyMarketInformation";
1547
+ "writable": true;
1548
+ },
1549
+ {
1550
+ "name": "principalMint";
1551
+ },
1552
+ {
1553
+ "name": "tokenProgram";
1554
+ },
1555
+ {
1556
+ "name": "associatedTokenProgram";
1557
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL";
1558
+ },
1559
+ {
1560
+ "name": "userVault";
1561
+ },
1562
+ {
1563
+ "name": "oldStrategyTa";
1564
+ },
1565
+ {
1566
+ "name": "protocolAdminState";
1567
+ },
1568
+ {
1569
+ "name": "eventAuthority";
1570
+ }
1571
+ ];
1572
+ "args": [
1573
+ {
1574
+ "name": "params";
1575
+ "type": {
1576
+ "defined": {
1577
+ "name": "sellLedgerParams";
1578
+ };
1579
+ };
1580
+ }
1581
+ ];
1582
+ },
1583
+ {
1584
+ "name": "setBorrowPolicy";
1585
+ "docs": [
1586
+ "Set the Loopscale borrow policy (collateral allowlist and market policies).",
1587
+ "",
1588
+ "- Permission: `BorrowPermissions::SetPolicy`."
1589
+ ];
1590
+ "discriminator": [
1591
+ 199,
1592
+ 94,
1593
+ 106,
1594
+ 205,
1595
+ 150,
1596
+ 227,
1597
+ 206,
1598
+ 68
1599
+ ];
1600
+ "accounts": [
1601
+ {
1602
+ "name": "glamState";
1603
+ "writable": true;
1604
+ },
1605
+ {
1606
+ "name": "glamSigner";
1607
+ "writable": true;
1608
+ "signer": true;
1609
+ },
1610
+ {
1611
+ "name": "glamProtocolProgram";
1612
+ "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz";
1613
+ },
1614
+ {
1615
+ "name": "integrationProgram";
1616
+ "address": "G1NTLoPS5orMCxgFjzNDE5H6c3AbxiU1DgqCJBaJ1pfM";
1617
+ },
1618
+ {
1619
+ "name": "integrationAuthority";
1620
+ "pda": {
1621
+ "seeds": [
1622
+ {
1623
+ "kind": "const";
1624
+ "value": [
1625
+ 105,
1626
+ 110,
1627
+ 116,
1628
+ 101,
1629
+ 103,
1630
+ 114,
1631
+ 97,
1632
+ 116,
1633
+ 105,
1634
+ 111,
1635
+ 110,
1636
+ 45,
1637
+ 97,
1638
+ 117,
1639
+ 116,
1640
+ 104,
1641
+ 111,
1642
+ 114,
1643
+ 105,
1644
+ 116,
1645
+ 121
1646
+ ];
1647
+ }
1648
+ ];
1649
+ };
1650
+ }
1651
+ ];
1652
+ "args": [
1653
+ {
1654
+ "name": "policy";
1655
+ "type": {
1656
+ "defined": {
1657
+ "name": "borrowPolicy";
1658
+ };
1659
+ };
1660
+ }
1661
+ ];
1662
+ },
1663
+ {
1664
+ "name": "setLendingPolicy";
1665
+ "docs": [
1666
+ "Set the Loopscale lending policy (allowlists, market policies, and sell-ledger limits).",
1667
+ "",
1668
+ "- Permission: `LendingPermissions::SetPolicy`."
1669
+ ];
1670
+ "discriminator": [
1671
+ 226,
1672
+ 185,
1673
+ 23,
1674
+ 3,
1675
+ 113,
1676
+ 88,
1677
+ 118,
1678
+ 176
1679
+ ];
1680
+ "accounts": [
1681
+ {
1682
+ "name": "glamState";
1683
+ "writable": true;
1684
+ },
1685
+ {
1686
+ "name": "glamSigner";
1687
+ "writable": true;
1688
+ "signer": true;
1689
+ },
1690
+ {
1691
+ "name": "glamProtocolProgram";
1692
+ "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz";
1693
+ },
1694
+ {
1695
+ "name": "integrationProgram";
1696
+ "address": "G1NTLoPS5orMCxgFjzNDE5H6c3AbxiU1DgqCJBaJ1pfM";
1697
+ },
1698
+ {
1699
+ "name": "integrationAuthority";
1700
+ "pda": {
1701
+ "seeds": [
1702
+ {
1703
+ "kind": "const";
1704
+ "value": [
1705
+ 105,
1706
+ 110,
1707
+ 116,
1708
+ 101,
1709
+ 103,
1710
+ 114,
1711
+ 97,
1712
+ 116,
1713
+ 105,
1714
+ 111,
1715
+ 110,
1716
+ 45,
1717
+ 97,
1718
+ 117,
1719
+ 116,
1720
+ 104,
1721
+ 111,
1722
+ 114,
1723
+ 105,
1724
+ 116,
1725
+ 121
1726
+ ];
1727
+ }
1728
+ ];
1729
+ };
1730
+ }
1731
+ ];
1732
+ "args": [
1733
+ {
1734
+ "name": "policy";
1735
+ "type": {
1736
+ "defined": {
1737
+ "name": "lendingPolicy";
1738
+ };
1739
+ };
1740
+ }
1741
+ ];
1742
+ },
1743
+ {
1744
+ "name": "setVaultPolicy";
1745
+ "docs": [
1746
+ "Set the Loopscale vault policy (vault allowlist).",
1747
+ "",
1748
+ "- Permission: `VaultPermissions::SetPolicy`."
1749
+ ];
1750
+ "discriminator": [
1751
+ 184,
1752
+ 31,
1753
+ 142,
1754
+ 18,
1755
+ 106,
1756
+ 143,
1757
+ 184,
1758
+ 158
1759
+ ];
1760
+ "accounts": [
1761
+ {
1762
+ "name": "glamState";
1763
+ "writable": true;
1764
+ },
1765
+ {
1766
+ "name": "glamSigner";
1767
+ "writable": true;
1768
+ "signer": true;
1769
+ },
1770
+ {
1771
+ "name": "glamProtocolProgram";
1772
+ "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz";
1773
+ },
1774
+ {
1775
+ "name": "integrationProgram";
1776
+ "address": "G1NTLoPS5orMCxgFjzNDE5H6c3AbxiU1DgqCJBaJ1pfM";
1777
+ },
1778
+ {
1779
+ "name": "integrationAuthority";
1780
+ "pda": {
1781
+ "seeds": [
1782
+ {
1783
+ "kind": "const";
1784
+ "value": [
1785
+ 105,
1786
+ 110,
1787
+ 116,
1788
+ 101,
1789
+ 103,
1790
+ 114,
1791
+ 97,
1792
+ 116,
1793
+ 105,
1794
+ 111,
1795
+ 110,
1796
+ 45,
1797
+ 97,
1798
+ 117,
1799
+ 116,
1800
+ 104,
1801
+ 111,
1802
+ 114,
1803
+ 105,
1804
+ 116,
1805
+ 121
1806
+ ];
1807
+ }
1808
+ ];
1809
+ };
1810
+ }
1811
+ ];
1812
+ "args": [
1813
+ {
1814
+ "name": "policy";
1815
+ "type": {
1816
+ "defined": {
1817
+ "name": "vaultPolicy";
1818
+ };
1819
+ };
1820
+ }
1821
+ ];
1822
+ },
1823
+ {
1824
+ "name": "stakeUserVaultLp";
1825
+ "docs": [
1826
+ "Stake Loopscale user vault LP tokens into a VaultStake account.",
1827
+ "",
1828
+ "- Permission: `VaultPermissions::StakeUserVaultLp`.",
1829
+ "- Policy: `vault` must be present in `VaultPolicy::vault_allowlist`."
1830
+ ];
1831
+ "discriminator": [
1832
+ 114,
1833
+ 132,
1834
+ 194,
1835
+ 209,
1836
+ 208,
1837
+ 149,
1838
+ 43,
1839
+ 136
1840
+ ];
1841
+ "accounts": [
1842
+ {
1843
+ "name": "glamState";
1844
+ "writable": true;
1845
+ },
1846
+ {
1847
+ "name": "glamVault";
1848
+ "writable": true;
1849
+ "pda": {
1850
+ "seeds": [
1851
+ {
1852
+ "kind": "const";
1853
+ "value": [
1854
+ 118,
1855
+ 97,
1856
+ 117,
1857
+ 108,
1858
+ 116
1859
+ ];
1860
+ },
1861
+ {
1862
+ "kind": "account";
1863
+ "path": "glamState";
1864
+ }
1865
+ ];
1866
+ "program": {
1867
+ "kind": "account";
1868
+ "path": "glamProtocolProgram";
1869
+ };
1870
+ };
1871
+ },
1872
+ {
1873
+ "name": "glamSigner";
1874
+ "writable": true;
1875
+ "signer": true;
1876
+ },
1877
+ {
1878
+ "name": "integrationAuthority";
1879
+ "pda": {
1880
+ "seeds": [
1881
+ {
1882
+ "kind": "const";
1883
+ "value": [
1884
+ 105,
1885
+ 110,
1886
+ 116,
1887
+ 101,
1888
+ 103,
1889
+ 114,
1890
+ 97,
1891
+ 116,
1892
+ 105,
1893
+ 111,
1894
+ 110,
1895
+ 45,
1896
+ 97,
1897
+ 117,
1898
+ 116,
1899
+ 104,
1900
+ 111,
1901
+ 114,
1902
+ 105,
1903
+ 116,
1904
+ 121
1905
+ ];
1906
+ }
1907
+ ];
1908
+ };
1909
+ },
1910
+ {
1911
+ "name": "cpiProgram";
1912
+ "address": "1oopBoJG58DgkUVKkEzKgyG9dvRmpgeEm1AVjoHkF78";
1913
+ },
1914
+ {
1915
+ "name": "glamProtocolProgram";
1916
+ "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz";
1917
+ },
1918
+ {
1919
+ "name": "systemProgram";
1920
+ "address": "11111111111111111111111111111111";
1921
+ },
1922
+ {
1923
+ "name": "bsAuth";
1924
+ "signer": true;
1925
+ },
1926
+ {
1927
+ "name": "nonce";
1928
+ "signer": true;
1929
+ },
1930
+ {
1931
+ "name": "vault";
1932
+ "writable": true;
1933
+ },
1934
+ {
1935
+ "name": "vaultStake";
1936
+ "writable": true;
1937
+ },
1938
+ {
1939
+ "name": "lpMint";
1940
+ },
1941
+ {
1942
+ "name": "userLpTa";
1943
+ "writable": true;
1944
+ },
1945
+ {
1946
+ "name": "vaultStakeLpTa";
1947
+ "writable": true;
1948
+ },
1949
+ {
1950
+ "name": "vaultRewardsInfo";
1951
+ "writable": true;
1952
+ },
1953
+ {
1954
+ "name": "userRewardsInfo";
1955
+ "writable": true;
1956
+ },
1957
+ {
1958
+ "name": "tokenProgram";
1959
+ "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb";
1960
+ },
1961
+ {
1962
+ "name": "associatedTokenProgram";
1963
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL";
1964
+ },
1965
+ {
1966
+ "name": "protocolAdminState";
1967
+ },
1968
+ {
1969
+ "name": "eventAuthority";
1970
+ }
1971
+ ];
1972
+ "args": [
1973
+ {
1974
+ "name": "params";
1975
+ "type": {
1976
+ "defined": {
1977
+ "name": "vaultStakeParams";
1978
+ };
1979
+ };
1980
+ }
1981
+ ];
1982
+ },
1983
+ {
1984
+ "name": "unstakeUserVaultLp";
1985
+ "docs": [
1986
+ "Unstake Loopscale user vault LP tokens from a VaultStake account.",
1987
+ "",
1988
+ "- Permission: `VaultPermissions::UnstakeUserVaultLp`.",
1989
+ "- Policy: `vault` must be present in `VaultPolicy::vault_allowlist`."
1990
+ ];
1991
+ "discriminator": [
1992
+ 83,
1993
+ 78,
1994
+ 230,
1995
+ 123,
1996
+ 226,
1997
+ 40,
1998
+ 158,
1999
+ 97
2000
+ ];
2001
+ "accounts": [
2002
+ {
2003
+ "name": "glamState";
2004
+ "writable": true;
2005
+ },
2006
+ {
2007
+ "name": "glamVault";
2008
+ "writable": true;
2009
+ "pda": {
2010
+ "seeds": [
2011
+ {
2012
+ "kind": "const";
2013
+ "value": [
2014
+ 118,
2015
+ 97,
2016
+ 117,
2017
+ 108,
2018
+ 116
2019
+ ];
2020
+ },
2021
+ {
2022
+ "kind": "account";
2023
+ "path": "glamState";
2024
+ }
2025
+ ];
2026
+ "program": {
2027
+ "kind": "account";
2028
+ "path": "glamProtocolProgram";
2029
+ };
2030
+ };
2031
+ },
2032
+ {
2033
+ "name": "glamSigner";
2034
+ "writable": true;
2035
+ "signer": true;
2036
+ },
2037
+ {
2038
+ "name": "integrationAuthority";
2039
+ "pda": {
2040
+ "seeds": [
2041
+ {
2042
+ "kind": "const";
2043
+ "value": [
2044
+ 105,
2045
+ 110,
2046
+ 116,
2047
+ 101,
2048
+ 103,
2049
+ 114,
2050
+ 97,
2051
+ 116,
2052
+ 105,
2053
+ 111,
2054
+ 110,
2055
+ 45,
2056
+ 97,
2057
+ 117,
2058
+ 116,
2059
+ 104,
2060
+ 111,
2061
+ 114,
2062
+ 105,
2063
+ 116,
2064
+ 121
2065
+ ];
2066
+ }
2067
+ ];
2068
+ };
2069
+ },
2070
+ {
2071
+ "name": "cpiProgram";
2072
+ "address": "1oopBoJG58DgkUVKkEzKgyG9dvRmpgeEm1AVjoHkF78";
2073
+ },
2074
+ {
2075
+ "name": "glamProtocolProgram";
2076
+ "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz";
2077
+ },
2078
+ {
2079
+ "name": "systemProgram";
2080
+ "address": "11111111111111111111111111111111";
2081
+ },
2082
+ {
2083
+ "name": "bsAuth";
2084
+ "signer": true;
2085
+ },
2086
+ {
2087
+ "name": "vault";
2088
+ "writable": true;
2089
+ },
2090
+ {
2091
+ "name": "lpMint";
2092
+ "writable": true;
2093
+ },
2094
+ {
2095
+ "name": "vaultStake";
2096
+ "writable": true;
2097
+ },
2098
+ {
2099
+ "name": "userLpTa";
2100
+ "writable": true;
2101
+ },
2102
+ {
2103
+ "name": "vaultStakeLpTa";
2104
+ "writable": true;
2105
+ },
2106
+ {
2107
+ "name": "vaultRewardsInfo";
2108
+ "writable": true;
2109
+ },
2110
+ {
2111
+ "name": "userRewardsInfo";
2112
+ "writable": true;
2113
+ },
2114
+ {
2115
+ "name": "tokenProgram";
2116
+ "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb";
2117
+ },
2118
+ {
2119
+ "name": "associatedTokenProgram";
2120
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL";
2121
+ },
2122
+ {
2123
+ "name": "protocolAdminState";
2124
+ },
2125
+ {
2126
+ "name": "eventAuthority";
2127
+ }
2128
+ ];
2129
+ "args": [
2130
+ {
2131
+ "name": "params";
2132
+ "type": {
2133
+ "defined": {
2134
+ "name": "vaultUnstakeParams";
2135
+ };
2136
+ };
2137
+ }
2138
+ ];
2139
+ },
2140
+ {
2141
+ "name": "updateStrategy";
2142
+ "docs": [
2143
+ "Update a Loopscale lender strategy's terms, caps, and collateral terms.",
2144
+ "",
2145
+ "- Permission: `LendingPermissions::UpdateStrategy`.",
2146
+ "- Policy:",
2147
+ "- The strategy market account must be passed as the first remaining account.",
2148
+ "- `principal_mint` must be present in `LendingPolicy::principal_allowlist`.",
2149
+ "- Collateral term asset identifiers must be present in",
2150
+ "`LendingPolicy::collateral_allowlist`.",
2151
+ "- If the strategy market account has a `LendingPolicy::market_policies` entry,",
2152
+ "advanced per-market lending limits are enforced."
2153
+ ];
2154
+ "discriminator": [
2155
+ 16,
2156
+ 76,
2157
+ 138,
2158
+ 179,
2159
+ 171,
2160
+ 112,
2161
+ 196,
2162
+ 21
2163
+ ];
2164
+ "accounts": [
2165
+ {
2166
+ "name": "glamState";
2167
+ "writable": true;
2168
+ },
2169
+ {
2170
+ "name": "glamVault";
2171
+ "writable": true;
2172
+ "pda": {
2173
+ "seeds": [
2174
+ {
2175
+ "kind": "const";
2176
+ "value": [
2177
+ 118,
2178
+ 97,
2179
+ 117,
2180
+ 108,
2181
+ 116
2182
+ ];
2183
+ },
2184
+ {
2185
+ "kind": "account";
2186
+ "path": "glamState";
2187
+ }
2188
+ ];
2189
+ "program": {
2190
+ "kind": "account";
2191
+ "path": "glamProtocolProgram";
2192
+ };
2193
+ };
2194
+ },
2195
+ {
2196
+ "name": "glamSigner";
2197
+ "writable": true;
2198
+ "signer": true;
2199
+ },
2200
+ {
2201
+ "name": "integrationAuthority";
2202
+ "pda": {
2203
+ "seeds": [
2204
+ {
2205
+ "kind": "const";
2206
+ "value": [
2207
+ 105,
2208
+ 110,
2209
+ 116,
2210
+ 101,
2211
+ 103,
2212
+ 114,
2213
+ 97,
2214
+ 116,
2215
+ 105,
2216
+ 111,
2217
+ 110,
2218
+ 45,
2219
+ 97,
2220
+ 117,
2221
+ 116,
2222
+ 104,
2223
+ 111,
2224
+ 114,
2225
+ 105,
2226
+ 116,
2227
+ 121
2228
+ ];
2229
+ }
2230
+ ];
2231
+ };
2232
+ },
2233
+ {
2234
+ "name": "cpiProgram";
2235
+ "address": "1oopBoJG58DgkUVKkEzKgyG9dvRmpgeEm1AVjoHkF78";
2236
+ },
2237
+ {
2238
+ "name": "glamProtocolProgram";
2239
+ "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz";
2240
+ },
2241
+ {
2242
+ "name": "systemProgram";
2243
+ "address": "11111111111111111111111111111111";
2244
+ },
2245
+ {
2246
+ "name": "bsAuth";
2247
+ "signer": true;
2248
+ },
2249
+ {
2250
+ "name": "strategy";
2251
+ "writable": true;
2252
+ },
2253
+ {
2254
+ "name": "principalMint";
2255
+ },
2256
+ {
2257
+ "name": "strategyTa";
2258
+ "writable": true;
2259
+ },
2260
+ {
2261
+ "name": "associatedTokenProgram";
2262
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL";
2263
+ },
2264
+ {
2265
+ "name": "tokenProgram";
2266
+ },
2267
+ {
2268
+ "name": "protocolAdminState";
2269
+ },
2270
+ {
2271
+ "name": "eventAuthority";
2272
+ }
2273
+ ];
2274
+ "args": [
2275
+ {
2276
+ "name": "collateralTerms";
2277
+ "type": {
2278
+ "vec": {
2279
+ "defined": {
2280
+ "name": "multiCollateralTermsUpdateParams";
2281
+ };
2282
+ };
2283
+ };
2284
+ },
2285
+ {
2286
+ "name": "params";
2287
+ "type": {
2288
+ "option": {
2289
+ "defined": {
2290
+ "name": "updateStrategyParams";
2291
+ };
2292
+ };
2293
+ };
2294
+ }
2295
+ ];
2296
+ },
2297
+ {
2298
+ "name": "updateWeightMatrix";
2299
+ "docs": [
2300
+ "Update the collateral weight matrix on a loan.",
2301
+ "",
2302
+ "- Permission: `BorrowPermissions::UpdateLoan`."
2303
+ ];
2304
+ "discriminator": [
2305
+ 252,
2306
+ 166,
2307
+ 37,
2308
+ 207,
2309
+ 154,
2310
+ 83,
2311
+ 187,
2312
+ 128
2313
+ ];
2314
+ "accounts": [
2315
+ {
2316
+ "name": "glamState";
2317
+ "writable": true;
2318
+ },
2319
+ {
2320
+ "name": "glamVault";
2321
+ "writable": true;
2322
+ "pda": {
2323
+ "seeds": [
2324
+ {
2325
+ "kind": "const";
2326
+ "value": [
2327
+ 118,
2328
+ 97,
2329
+ 117,
2330
+ 108,
2331
+ 116
2332
+ ];
2333
+ },
2334
+ {
2335
+ "kind": "account";
2336
+ "path": "glamState";
2337
+ }
2338
+ ];
2339
+ "program": {
2340
+ "kind": "account";
2341
+ "path": "glamProtocolProgram";
2342
+ };
2343
+ };
2344
+ },
2345
+ {
2346
+ "name": "glamSigner";
2347
+ "writable": true;
2348
+ "signer": true;
2349
+ },
2350
+ {
2351
+ "name": "integrationAuthority";
2352
+ "pda": {
2353
+ "seeds": [
2354
+ {
2355
+ "kind": "const";
2356
+ "value": [
2357
+ 105,
2358
+ 110,
2359
+ 116,
2360
+ 101,
2361
+ 103,
2362
+ 114,
2363
+ 97,
2364
+ 116,
2365
+ 105,
2366
+ 111,
2367
+ 110,
2368
+ 45,
2369
+ 97,
2370
+ 117,
2371
+ 116,
2372
+ 104,
2373
+ 111,
2374
+ 114,
2375
+ 105,
2376
+ 116,
2377
+ 121
2378
+ ];
2379
+ }
2380
+ ];
2381
+ };
2382
+ },
2383
+ {
2384
+ "name": "cpiProgram";
2385
+ "address": "1oopBoJG58DgkUVKkEzKgyG9dvRmpgeEm1AVjoHkF78";
2386
+ },
2387
+ {
2388
+ "name": "glamProtocolProgram";
2389
+ "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz";
2390
+ },
2391
+ {
2392
+ "name": "systemProgram";
2393
+ "address": "11111111111111111111111111111111";
2394
+ },
2395
+ {
2396
+ "name": "bsAuth";
2397
+ "signer": true;
2398
+ },
2399
+ {
2400
+ "name": "loan";
2401
+ "writable": true;
2402
+ },
2403
+ {
2404
+ "name": "protocolAdminState";
2405
+ }
2406
+ ];
2407
+ "args": [
2408
+ {
2409
+ "name": "params";
2410
+ "type": {
2411
+ "defined": {
2412
+ "name": "updateWeightMatrixParams";
2413
+ };
2414
+ };
2415
+ }
2416
+ ];
2417
+ },
2418
+ {
2419
+ "name": "withdrawCollateral";
2420
+ "docs": [
2421
+ "Withdraw collateral from a Loopscale loan.",
2422
+ "",
2423
+ "- Permission: `BorrowPermissions::WithdrawCollateral`."
2424
+ ];
2425
+ "discriminator": [
2426
+ 115,
2427
+ 135,
2428
+ 168,
2429
+ 106,
2430
+ 139,
2431
+ 214,
2432
+ 138,
2433
+ 150
2434
+ ];
2435
+ "accounts": [
2436
+ {
2437
+ "name": "glamState";
2438
+ "writable": true;
2439
+ },
2440
+ {
2441
+ "name": "glamVault";
2442
+ "writable": true;
2443
+ "pda": {
2444
+ "seeds": [
2445
+ {
2446
+ "kind": "const";
2447
+ "value": [
2448
+ 118,
2449
+ 97,
2450
+ 117,
2451
+ 108,
2452
+ 116
2453
+ ];
2454
+ },
2455
+ {
2456
+ "kind": "account";
2457
+ "path": "glamState";
2458
+ }
2459
+ ];
2460
+ "program": {
2461
+ "kind": "account";
2462
+ "path": "glamProtocolProgram";
2463
+ };
2464
+ };
2465
+ },
2466
+ {
2467
+ "name": "glamSigner";
2468
+ "writable": true;
2469
+ "signer": true;
2470
+ },
2471
+ {
2472
+ "name": "integrationAuthority";
2473
+ "pda": {
2474
+ "seeds": [
2475
+ {
2476
+ "kind": "const";
2477
+ "value": [
2478
+ 105,
2479
+ 110,
2480
+ 116,
2481
+ 101,
2482
+ 103,
2483
+ 114,
2484
+ 97,
2485
+ 116,
2486
+ 105,
2487
+ 111,
2488
+ 110,
2489
+ 45,
2490
+ 97,
2491
+ 117,
2492
+ 116,
2493
+ 104,
2494
+ 111,
2495
+ 114,
2496
+ 105,
2497
+ 116,
2498
+ 121
2499
+ ];
2500
+ }
2501
+ ];
2502
+ };
2503
+ },
2504
+ {
2505
+ "name": "cpiProgram";
2506
+ "address": "1oopBoJG58DgkUVKkEzKgyG9dvRmpgeEm1AVjoHkF78";
2507
+ },
2508
+ {
2509
+ "name": "glamProtocolProgram";
2510
+ "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz";
2511
+ },
2512
+ {
2513
+ "name": "systemProgram";
2514
+ "address": "11111111111111111111111111111111";
2515
+ },
2516
+ {
2517
+ "name": "bsAuth";
2518
+ "signer": true;
2519
+ },
2520
+ {
2521
+ "name": "loan";
2522
+ "writable": true;
2523
+ },
2524
+ {
2525
+ "name": "borrowerTa";
2526
+ "writable": true;
2527
+ },
2528
+ {
2529
+ "name": "loanTa";
2530
+ "writable": true;
2531
+ },
2532
+ {
2533
+ "name": "assetMint";
2534
+ },
2535
+ {
2536
+ "name": "tokenProgram";
2537
+ },
2538
+ {
2539
+ "name": "associatedTokenProgram";
2540
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL";
2541
+ },
2542
+ {
2543
+ "name": "protocolAdminState";
2544
+ },
2545
+ {
2546
+ "name": "eventAuthority";
2547
+ }
2548
+ ];
2549
+ "args": [
2550
+ {
2551
+ "name": "params";
2552
+ "type": {
2553
+ "defined": {
2554
+ "name": "withdrawCollateralParams";
2555
+ };
2556
+ };
2557
+ }
2558
+ ];
2559
+ },
2560
+ {
2561
+ "name": "withdrawStrategy";
2562
+ "docs": [
2563
+ "Withdraw undeployed principal from a Loopscale lender strategy.",
2564
+ "",
2565
+ "- Permission: `LendingPermissions::WithdrawStrategy`."
2566
+ ];
2567
+ "discriminator": [
2568
+ 31,
2569
+ 45,
2570
+ 162,
2571
+ 5,
2572
+ 193,
2573
+ 217,
2574
+ 134,
2575
+ 188
2576
+ ];
2577
+ "accounts": [
2578
+ {
2579
+ "name": "glamState";
2580
+ "writable": true;
2581
+ },
2582
+ {
2583
+ "name": "glamVault";
2584
+ "writable": true;
2585
+ "pda": {
2586
+ "seeds": [
2587
+ {
2588
+ "kind": "const";
2589
+ "value": [
2590
+ 118,
2591
+ 97,
2592
+ 117,
2593
+ 108,
2594
+ 116
2595
+ ];
2596
+ },
2597
+ {
2598
+ "kind": "account";
2599
+ "path": "glamState";
2600
+ }
2601
+ ];
2602
+ "program": {
2603
+ "kind": "account";
2604
+ "path": "glamProtocolProgram";
2605
+ };
2606
+ };
2607
+ },
2608
+ {
2609
+ "name": "glamSigner";
2610
+ "writable": true;
2611
+ "signer": true;
2612
+ },
2613
+ {
2614
+ "name": "integrationAuthority";
2615
+ "pda": {
2616
+ "seeds": [
2617
+ {
2618
+ "kind": "const";
2619
+ "value": [
2620
+ 105,
2621
+ 110,
2622
+ 116,
2623
+ 101,
2624
+ 103,
2625
+ 114,
2626
+ 97,
2627
+ 116,
2628
+ 105,
2629
+ 111,
2630
+ 110,
2631
+ 45,
2632
+ 97,
2633
+ 117,
2634
+ 116,
2635
+ 104,
2636
+ 111,
2637
+ 114,
2638
+ 105,
2639
+ 116,
2640
+ 121
2641
+ ];
2642
+ }
2643
+ ];
2644
+ };
2645
+ },
2646
+ {
2647
+ "name": "cpiProgram";
2648
+ "address": "1oopBoJG58DgkUVKkEzKgyG9dvRmpgeEm1AVjoHkF78";
2649
+ },
2650
+ {
2651
+ "name": "glamProtocolProgram";
2652
+ "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz";
2653
+ },
2654
+ {
2655
+ "name": "systemProgram";
2656
+ "address": "11111111111111111111111111111111";
2657
+ },
2658
+ {
2659
+ "name": "bsAuth";
2660
+ "signer": true;
2661
+ },
2662
+ {
2663
+ "name": "strategy";
2664
+ "writable": true;
2665
+ },
2666
+ {
2667
+ "name": "principalMint";
2668
+ },
2669
+ {
2670
+ "name": "marketInformation";
2671
+ },
2672
+ {
2673
+ "name": "lenderTa";
2674
+ "writable": true;
2675
+ },
2676
+ {
2677
+ "name": "strategyTa";
2678
+ "writable": true;
2679
+ },
2680
+ {
2681
+ "name": "associatedTokenProgram";
2682
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL";
2683
+ },
2684
+ {
2685
+ "name": "tokenProgram";
2686
+ },
2687
+ {
2688
+ "name": "protocolAdminState";
2689
+ },
2690
+ {
2691
+ "name": "eventAuthority";
2692
+ }
2693
+ ];
2694
+ "args": [
2695
+ {
2696
+ "name": "amount";
2697
+ "type": "u64";
2698
+ },
2699
+ {
2700
+ "name": "withdrawAll";
2701
+ "type": "bool";
2702
+ }
2703
+ ];
2704
+ },
2705
+ {
2706
+ "name": "withdrawUserVault";
2707
+ "docs": [
2708
+ "Withdraw principal from a Loopscale user vault by burning Token-2022 LP tokens.",
2709
+ "",
2710
+ "- Permission: `VaultPermissions::WithdrawUserVault`.",
2711
+ "- Policy: `vault` must be present in `VaultPolicy::vault_allowlist`."
2712
+ ];
2713
+ "discriminator": [
2714
+ 9,
2715
+ 80,
2716
+ 134,
2717
+ 138,
2718
+ 212,
2719
+ 20,
2720
+ 61,
2721
+ 42
2722
+ ];
2723
+ "accounts": [
2724
+ {
2725
+ "name": "glamState";
2726
+ "writable": true;
2727
+ },
2728
+ {
2729
+ "name": "glamVault";
2730
+ "writable": true;
2731
+ "pda": {
2732
+ "seeds": [
2733
+ {
2734
+ "kind": "const";
2735
+ "value": [
2736
+ 118,
2737
+ 97,
2738
+ 117,
2739
+ 108,
2740
+ 116
2741
+ ];
2742
+ },
2743
+ {
2744
+ "kind": "account";
2745
+ "path": "glamState";
2746
+ }
2747
+ ];
2748
+ "program": {
2749
+ "kind": "account";
2750
+ "path": "glamProtocolProgram";
2751
+ };
2752
+ };
2753
+ },
2754
+ {
2755
+ "name": "glamSigner";
2756
+ "writable": true;
2757
+ "signer": true;
2758
+ },
2759
+ {
2760
+ "name": "integrationAuthority";
2761
+ "pda": {
2762
+ "seeds": [
2763
+ {
2764
+ "kind": "const";
2765
+ "value": [
2766
+ 105,
2767
+ 110,
2768
+ 116,
2769
+ 101,
2770
+ 103,
2771
+ 114,
2772
+ 97,
2773
+ 116,
2774
+ 105,
2775
+ 111,
2776
+ 110,
2777
+ 45,
2778
+ 97,
2779
+ 117,
2780
+ 116,
2781
+ 104,
2782
+ 111,
2783
+ 114,
2784
+ 105,
2785
+ 116,
2786
+ 121
2787
+ ];
2788
+ }
2789
+ ];
2790
+ };
2791
+ },
2792
+ {
2793
+ "name": "cpiProgram";
2794
+ "address": "1oopBoJG58DgkUVKkEzKgyG9dvRmpgeEm1AVjoHkF78";
2795
+ },
2796
+ {
2797
+ "name": "glamProtocolProgram";
2798
+ "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz";
2799
+ },
2800
+ {
2801
+ "name": "systemProgram";
2802
+ "address": "11111111111111111111111111111111";
2803
+ },
2804
+ {
2805
+ "name": "bsAuth";
2806
+ "signer": true;
2807
+ },
2808
+ {
2809
+ "name": "vault";
2810
+ "writable": true;
2811
+ },
2812
+ {
2813
+ "name": "strategy";
2814
+ "writable": true;
2815
+ },
2816
+ {
2817
+ "name": "marketInformation";
2818
+ },
2819
+ {
2820
+ "name": "lpMint";
2821
+ "writable": true;
2822
+ },
2823
+ {
2824
+ "name": "userLpTa";
2825
+ "writable": true;
2826
+ },
2827
+ {
2828
+ "name": "userPrincipalTa";
2829
+ "writable": true;
2830
+ },
2831
+ {
2832
+ "name": "strategyPrincipalTa";
2833
+ "writable": true;
2834
+ },
2835
+ {
2836
+ "name": "principalMint";
2837
+ },
2838
+ {
2839
+ "name": "principalTokenProgram";
2840
+ },
2841
+ {
2842
+ "name": "token2022Program";
2843
+ "address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb";
2844
+ },
2845
+ {
2846
+ "name": "associatedTokenProgram";
2847
+ "address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL";
2848
+ },
2849
+ {
2850
+ "name": "protocolAdminState";
2851
+ },
2852
+ {
2853
+ "name": "eventAuthority";
2854
+ }
2855
+ ];
2856
+ "args": [
2857
+ {
2858
+ "name": "params";
2859
+ "type": {
2860
+ "defined": {
2861
+ "name": "lpParams";
2862
+ };
2863
+ };
2864
+ }
2865
+ ];
2866
+ }
2867
+ ];
2868
+ "accounts": [
2869
+ {
2870
+ "name": "stateAccount";
2871
+ "discriminator": [
2872
+ 142,
2873
+ 247,
2874
+ 54,
2875
+ 95,
2876
+ 85,
2877
+ 133,
2878
+ 249,
2879
+ 103
2880
+ ];
2881
+ }
2882
+ ];
2883
+ "errors": [
2884
+ {
2885
+ "code": 6000;
2886
+ "name": "autoCloseLoanNotSupported";
2887
+ "msg": "Auto-close loan not supported";
2888
+ },
2889
+ {
2890
+ "code": 6001;
2891
+ "name": "invalidVaultTokenAccount";
2892
+ "msg": "Vault token account must be the GLAM vault ATA for the expected mint";
2893
+ }
2894
+ ];
2895
+ "types": [
2896
+ {
2897
+ "name": "accountType";
2898
+ "type": {
2899
+ "kind": "enum";
2900
+ "variants": [
2901
+ {
2902
+ "name": "vault";
2903
+ },
2904
+ {
2905
+ "name": "tokenizedVault";
2906
+ },
2907
+ {
2908
+ "name": "mint";
2909
+ },
2910
+ {
2911
+ "name": "singleAssetVault";
2912
+ }
2913
+ ];
2914
+ };
2915
+ },
2916
+ {
2917
+ "name": "accruedFees";
2918
+ "type": {
2919
+ "kind": "struct";
2920
+ "fields": [
2921
+ {
2922
+ "name": "vaultSubscriptionFee";
2923
+ "type": "u128";
2924
+ },
2925
+ {
2926
+ "name": "vaultRedemptionFee";
2927
+ "type": "u128";
2928
+ },
2929
+ {
2930
+ "name": "managerSubscriptionFee";
2931
+ "type": "u128";
2932
+ },
2933
+ {
2934
+ "name": "managerRedemptionFee";
2935
+ "type": "u128";
2936
+ },
2937
+ {
2938
+ "name": "managementFee";
2939
+ "type": "u128";
2940
+ },
2941
+ {
2942
+ "name": "performanceFee";
2943
+ "type": "u128";
2944
+ },
2945
+ {
2946
+ "name": "protocolBaseFee";
2947
+ "type": "u128";
2948
+ },
2949
+ {
2950
+ "name": "protocolFlowFee";
2951
+ "type": "u128";
2952
+ }
2953
+ ];
2954
+ };
2955
+ },
2956
+ {
2957
+ "name": "borrowMarketPolicy";
2958
+ "type": {
2959
+ "kind": "struct";
2960
+ "fields": [
2961
+ {
2962
+ "name": "market";
2963
+ "docs": [
2964
+ "Loopscale market information account this policy applies to."
2965
+ ];
2966
+ "type": "pubkey";
2967
+ },
2968
+ {
2969
+ "name": "maxBorrowAmount";
2970
+ "docs": [
2971
+ "Maximum principal amount that may be borrowed in a single instruction.",
2972
+ "A value of zero means no per-instruction borrow is allowed for this market."
2973
+ ];
2974
+ "type": "u64";
2975
+ },
2976
+ {
2977
+ "name": "maxTotalBorrowAmount";
2978
+ "docs": [
2979
+ "Maximum outstanding principal a single loan may owe in this market.",
2980
+ "Enforced per loan (summed over that loan's ledgers in this market), not",
2981
+ "aggregated across all of the vault's loans in this market. A value of zero",
2982
+ "means no outstanding borrow exposure is allowed for this market."
2983
+ ];
2984
+ "type": "u64";
2985
+ },
2986
+ {
2987
+ "name": "maxLtvBps";
2988
+ "docs": [
2989
+ "Maximum expected liquidation LTV threshold, in basis points.",
2990
+ "Borrow enforcement compares this to Loopscale's expected LQT values.",
2991
+ "A value of zero means no expected liquidation LTV is allowed for this market."
2992
+ ];
2993
+ "type": "u16";
2994
+ },
2995
+ {
2996
+ "name": "durationIndexesAllowlist";
2997
+ "docs": [
2998
+ "Duration indexes that may be used when borrowing from this market.",
2999
+ "An empty list denies all borrow durations for this market. Index mapping:",
3000
+ "- 0 = 1 day",
3001
+ "- 1 = 1 week",
3002
+ "- 2 = 1 month",
3003
+ "- 3 = 3 months",
3004
+ "- 4 = 1 year"
3005
+ ];
3006
+ "type": "bytes";
3007
+ }
3008
+ ];
3009
+ };
3010
+ },
3011
+ {
3012
+ "name": "borrowPolicy";
3013
+ "type": {
3014
+ "kind": "struct";
3015
+ "fields": [
3016
+ {
3017
+ "name": "collateralAllowlist";
3018
+ "docs": [
3019
+ "Collateral mints that may be deposited into Loopscale borrow loans."
3020
+ ];
3021
+ "type": {
3022
+ "vec": "pubkey";
3023
+ };
3024
+ },
3025
+ {
3026
+ "name": "principalAllowlist";
3027
+ "docs": [
3028
+ "Principal mints that may be borrowed from Loopscale borrow markets.",
3029
+ "An empty list denies all principal borrows."
3030
+ ];
3031
+ "type": {
3032
+ "vec": "pubkey";
3033
+ };
3034
+ },
3035
+ {
3036
+ "name": "marketPolicies";
3037
+ "docs": [
3038
+ "Optional per-market risk limits for borrow operations.",
3039
+ "If a market is present here, advanced per-market limits are enforced.",
3040
+ "If absent, borrow operations are governed by the top-level allowlists."
3041
+ ];
3042
+ "type": {
3043
+ "vec": {
3044
+ "defined": {
3045
+ "name": "borrowMarketPolicy";
3046
+ };
3047
+ };
3048
+ };
3049
+ }
3050
+ ];
3051
+ };
3052
+ },
3053
+ {
3054
+ "name": "borrowPrincipalParams";
3055
+ "type": {
3056
+ "kind": "struct";
3057
+ "fields": [
3058
+ {
3059
+ "name": "amount";
3060
+ "type": "u64";
3061
+ },
3062
+ {
3063
+ "name": "assetIndexGuidance";
3064
+ "type": "bytes";
3065
+ },
3066
+ {
3067
+ "name": "duration";
3068
+ "type": "u8";
3069
+ },
3070
+ {
3071
+ "name": "expectedLoanValues";
3072
+ "type": {
3073
+ "defined": {
3074
+ "name": "expectedLoanValues";
3075
+ };
3076
+ };
3077
+ },
3078
+ {
3079
+ "name": "skipSolUnwrap";
3080
+ "type": "bool";
3081
+ }
3082
+ ];
3083
+ };
3084
+ },
3085
+ {
3086
+ "name": "collateralTermsIndices";
3087
+ "type": {
3088
+ "kind": "struct";
3089
+ "fields": [
3090
+ {
3091
+ "name": "collateralIndex";
3092
+ "type": "u8";
3093
+ },
3094
+ {
3095
+ "name": "durationIndex";
3096
+ "type": "u8";
3097
+ }
3098
+ ];
3099
+ };
3100
+ },
3101
+ {
3102
+ "name": "createLoanParams";
3103
+ "type": {
3104
+ "kind": "struct";
3105
+ "fields": [
3106
+ {
3107
+ "name": "nonce";
3108
+ "type": "u64";
3109
+ }
3110
+ ];
3111
+ };
3112
+ },
3113
+ {
3114
+ "name": "createStrategyParams";
3115
+ "type": {
3116
+ "kind": "struct";
3117
+ "fields": [
3118
+ {
3119
+ "name": "lender";
3120
+ "type": "pubkey";
3121
+ },
3122
+ {
3123
+ "name": "originationCap";
3124
+ "type": "u64";
3125
+ },
3126
+ {
3127
+ "name": "liquidityBuffer";
3128
+ "type": "u64";
3129
+ },
3130
+ {
3131
+ "name": "interestFee";
3132
+ "type": "u64";
3133
+ },
3134
+ {
3135
+ "name": "originationFee";
3136
+ "type": "u64";
3137
+ },
3138
+ {
3139
+ "name": "principalFee";
3140
+ "type": "u64";
3141
+ },
3142
+ {
3143
+ "name": "originationsEnabled";
3144
+ "type": "bool";
3145
+ },
3146
+ {
3147
+ "name": "externalYieldSourceArgs";
3148
+ "type": {
3149
+ "option": {
3150
+ "defined": {
3151
+ "name": "externalYieldSourceArgs";
3152
+ };
3153
+ };
3154
+ };
3155
+ }
3156
+ ];
3157
+ };
3158
+ },
3159
+ {
3160
+ "name": "createdModel";
3161
+ "type": {
3162
+ "kind": "struct";
3163
+ "fields": [
3164
+ {
3165
+ "name": "key";
3166
+ "type": {
3167
+ "array": [
3168
+ "u8",
3169
+ 8
3170
+ ];
3171
+ };
3172
+ },
3173
+ {
3174
+ "name": "createdBy";
3175
+ "type": "pubkey";
3176
+ },
3177
+ {
3178
+ "name": "createdAt";
3179
+ "type": "i64";
3180
+ }
3181
+ ];
3182
+ };
3183
+ },
3184
+ {
3185
+ "name": "delegateAcl";
3186
+ "type": {
3187
+ "kind": "struct";
3188
+ "fields": [
3189
+ {
3190
+ "name": "pubkey";
3191
+ "type": "pubkey";
3192
+ },
3193
+ {
3194
+ "name": "integrationPermissions";
3195
+ "type": {
3196
+ "vec": {
3197
+ "defined": {
3198
+ "name": "integrationPermissions";
3199
+ };
3200
+ };
3201
+ };
3202
+ },
3203
+ {
3204
+ "name": "expiresAt";
3205
+ "type": "i64";
3206
+ }
3207
+ ];
3208
+ };
3209
+ },
3210
+ {
3211
+ "name": "depositCollateralParams";
3212
+ "type": {
3213
+ "kind": "struct";
3214
+ "fields": [
3215
+ {
3216
+ "name": "amount";
3217
+ "type": "u64";
3218
+ },
3219
+ {
3220
+ "name": "assetType";
3221
+ "type": "u8";
3222
+ },
3223
+ {
3224
+ "name": "assetIdentifier";
3225
+ "type": "pubkey";
3226
+ },
3227
+ {
3228
+ "name": "assetIndexGuidance";
3229
+ "type": "bytes";
3230
+ }
3231
+ ];
3232
+ };
3233
+ },
3234
+ {
3235
+ "name": "engineField";
3236
+ "type": {
3237
+ "kind": "struct";
3238
+ "fields": [
3239
+ {
3240
+ "name": "name";
3241
+ "type": {
3242
+ "defined": {
3243
+ "name": "engineFieldName";
3244
+ };
3245
+ };
3246
+ },
3247
+ {
3248
+ "name": "value";
3249
+ "type": {
3250
+ "defined": {
3251
+ "name": "engineFieldValue";
3252
+ };
3253
+ };
3254
+ }
3255
+ ];
3256
+ };
3257
+ },
3258
+ {
3259
+ "name": "engineFieldName";
3260
+ "type": {
3261
+ "kind": "enum";
3262
+ "variants": [
3263
+ {
3264
+ "name": "owner";
3265
+ },
3266
+ {
3267
+ "name": "portfolioManagerName";
3268
+ },
3269
+ {
3270
+ "name": "name";
3271
+ },
3272
+ {
3273
+ "name": "uri";
3274
+ },
3275
+ {
3276
+ "name": "assets";
3277
+ },
3278
+ {
3279
+ "name": "delegateAcls";
3280
+ },
3281
+ {
3282
+ "name": "integrationAcls";
3283
+ },
3284
+ {
3285
+ "name": "timelockDuration";
3286
+ },
3287
+ {
3288
+ "name": "borrowable";
3289
+ },
3290
+ {
3291
+ "name": "defaultAccountStateFrozen";
3292
+ },
3293
+ {
3294
+ "name": "permanentDelegate";
3295
+ },
3296
+ {
3297
+ "name": "notifyAndSettle";
3298
+ },
3299
+ {
3300
+ "name": "feeStructure";
3301
+ },
3302
+ {
3303
+ "name": "feeParams";
3304
+ },
3305
+ {
3306
+ "name": "claimableFees";
3307
+ },
3308
+ {
3309
+ "name": "claimedFees";
3310
+ },
3311
+ {
3312
+ "name": "oracleConfigs";
3313
+ }
3314
+ ];
3315
+ };
3316
+ },
3317
+ {
3318
+ "name": "engineFieldValue";
3319
+ "type": {
3320
+ "kind": "enum";
3321
+ "variants": [
3322
+ {
3323
+ "name": "boolean";
3324
+ "fields": [
3325
+ {
3326
+ "name": "val";
3327
+ "type": "bool";
3328
+ }
3329
+ ];
3330
+ },
3331
+ {
3332
+ "name": "u8";
3333
+ "fields": [
3334
+ {
3335
+ "name": "val";
3336
+ "type": "u8";
3337
+ }
3338
+ ];
3339
+ },
3340
+ {
3341
+ "name": "u32";
3342
+ "fields": [
3343
+ {
3344
+ "name": "val";
3345
+ "type": "u32";
3346
+ }
3347
+ ];
3348
+ },
3349
+ {
3350
+ "name": "u64";
3351
+ "fields": [
3352
+ {
3353
+ "name": "val";
3354
+ "type": "u64";
3355
+ }
3356
+ ];
3357
+ },
3358
+ {
3359
+ "name": "string";
3360
+ "fields": [
3361
+ {
3362
+ "name": "val";
3363
+ "type": "string";
3364
+ }
3365
+ ];
3366
+ },
3367
+ {
3368
+ "name": "pubkey";
3369
+ "fields": [
3370
+ {
3371
+ "name": "val";
3372
+ "type": "pubkey";
3373
+ }
3374
+ ];
3375
+ },
3376
+ {
3377
+ "name": "vecPubkey";
3378
+ "fields": [
3379
+ {
3380
+ "name": "val";
3381
+ "type": {
3382
+ "vec": "pubkey";
3383
+ };
3384
+ }
3385
+ ];
3386
+ },
3387
+ {
3388
+ "name": "vecU8";
3389
+ "fields": [
3390
+ {
3391
+ "name": "val";
3392
+ "type": "bytes";
3393
+ }
3394
+ ];
3395
+ },
3396
+ {
3397
+ "name": "vecU32";
3398
+ "fields": [
3399
+ {
3400
+ "name": "val";
3401
+ "type": {
3402
+ "vec": "u32";
3403
+ };
3404
+ }
3405
+ ];
3406
+ },
3407
+ {
3408
+ "name": "vecDelegateAcl";
3409
+ "fields": [
3410
+ {
3411
+ "name": "val";
3412
+ "type": {
3413
+ "vec": {
3414
+ "defined": {
3415
+ "name": "delegateAcl";
3416
+ };
3417
+ };
3418
+ };
3419
+ }
3420
+ ];
3421
+ },
3422
+ {
3423
+ "name": "vecIntegrationAcl";
3424
+ "fields": [
3425
+ {
3426
+ "name": "val";
3427
+ "type": {
3428
+ "vec": {
3429
+ "defined": {
3430
+ "name": "integrationAcl";
3431
+ };
3432
+ };
3433
+ };
3434
+ }
3435
+ ];
3436
+ },
3437
+ {
3438
+ "name": "feeStructure";
3439
+ "fields": [
3440
+ {
3441
+ "name": "val";
3442
+ "type": {
3443
+ "defined": {
3444
+ "name": "feeStructure";
3445
+ };
3446
+ };
3447
+ }
3448
+ ];
3449
+ },
3450
+ {
3451
+ "name": "feeParams";
3452
+ "fields": [
3453
+ {
3454
+ "name": "val";
3455
+ "type": {
3456
+ "defined": {
3457
+ "name": "feeParams";
3458
+ };
3459
+ };
3460
+ }
3461
+ ];
3462
+ },
3463
+ {
3464
+ "name": "accruedFees";
3465
+ "fields": [
3466
+ {
3467
+ "name": "val";
3468
+ "type": {
3469
+ "defined": {
3470
+ "name": "accruedFees";
3471
+ };
3472
+ };
3473
+ }
3474
+ ];
3475
+ },
3476
+ {
3477
+ "name": "notifyAndSettle";
3478
+ "fields": [
3479
+ {
3480
+ "name": "val";
3481
+ "type": {
3482
+ "defined": {
3483
+ "name": "notifyAndSettle";
3484
+ };
3485
+ };
3486
+ }
3487
+ ];
3488
+ },
3489
+ {
3490
+ "name": "oracleConfigs";
3491
+ "fields": [
3492
+ {
3493
+ "name": "val";
3494
+ "type": {
3495
+ "defined": {
3496
+ "name": "oracleConfigs";
3497
+ };
3498
+ };
3499
+ }
3500
+ ];
3501
+ }
3502
+ ];
3503
+ };
3504
+ },
3505
+ {
3506
+ "name": "entryExitFees";
3507
+ "type": {
3508
+ "kind": "struct";
3509
+ "fields": [
3510
+ {
3511
+ "name": "subscriptionFeeBps";
3512
+ "type": "u16";
3513
+ },
3514
+ {
3515
+ "name": "redemptionFeeBps";
3516
+ "type": "u16";
3517
+ }
3518
+ ];
3519
+ };
3520
+ },
3521
+ {
3522
+ "name": "exactInParams";
3523
+ "type": {
3524
+ "kind": "struct";
3525
+ "fields": [
3526
+ {
3527
+ "name": "amountIn";
3528
+ "type": "u64";
3529
+ },
3530
+ {
3531
+ "name": "minAmountOut";
3532
+ "type": "u64";
3533
+ }
3534
+ ];
3535
+ };
3536
+ },
3537
+ {
3538
+ "name": "exactOutParams";
3539
+ "type": {
3540
+ "kind": "struct";
3541
+ "fields": [
3542
+ {
3543
+ "name": "amountOut";
3544
+ "type": "u64";
3545
+ },
3546
+ {
3547
+ "name": "maxAmountIn";
3548
+ "type": "u64";
3549
+ }
3550
+ ];
3551
+ };
3552
+ },
3553
+ {
3554
+ "name": "expectedLoanValues";
3555
+ "type": {
3556
+ "kind": "struct";
3557
+ "fields": [
3558
+ {
3559
+ "name": "expectedApy";
3560
+ "type": "u64";
3561
+ },
3562
+ {
3563
+ "name": "expectedLqt";
3564
+ "type": {
3565
+ "array": [
3566
+ "u32",
3567
+ 5
3568
+ ];
3569
+ };
3570
+ }
3571
+ ];
3572
+ };
3573
+ },
3574
+ {
3575
+ "name": "externalYieldSourceArgs";
3576
+ "type": {
3577
+ "kind": "struct";
3578
+ "fields": [
3579
+ {
3580
+ "name": "newExternalYieldSource";
3581
+ "type": "u8";
3582
+ },
3583
+ {
3584
+ "name": "externalYieldVault";
3585
+ "type": "pubkey";
3586
+ }
3587
+ ];
3588
+ };
3589
+ },
3590
+ {
3591
+ "name": "feeParams";
3592
+ "type": {
3593
+ "kind": "struct";
3594
+ "fields": [
3595
+ {
3596
+ "name": "yearInSeconds";
3597
+ "type": "u32";
3598
+ },
3599
+ {
3600
+ "name": "paHighWaterMark";
3601
+ "type": "i128";
3602
+ },
3603
+ {
3604
+ "name": "paLastNav";
3605
+ "type": "i128";
3606
+ },
3607
+ {
3608
+ "name": "lastAum";
3609
+ "type": "i128";
3610
+ },
3611
+ {
3612
+ "name": "lastPerformanceFeeCrystallized";
3613
+ "type": "i64";
3614
+ },
3615
+ {
3616
+ "name": "lastManagementFeeCrystallized";
3617
+ "type": "i64";
3618
+ },
3619
+ {
3620
+ "name": "lastProtocolFeeCrystallized";
3621
+ "type": "i64";
3622
+ }
3623
+ ];
3624
+ };
3625
+ },
3626
+ {
3627
+ "name": "feeStructure";
3628
+ "type": {
3629
+ "kind": "struct";
3630
+ "fields": [
3631
+ {
3632
+ "name": "vault";
3633
+ "type": {
3634
+ "defined": {
3635
+ "name": "entryExitFees";
3636
+ };
3637
+ };
3638
+ },
3639
+ {
3640
+ "name": "manager";
3641
+ "type": {
3642
+ "defined": {
3643
+ "name": "entryExitFees";
3644
+ };
3645
+ };
3646
+ },
3647
+ {
3648
+ "name": "management";
3649
+ "type": {
3650
+ "defined": {
3651
+ "name": "managementFee";
3652
+ };
3653
+ };
3654
+ },
3655
+ {
3656
+ "name": "performance";
3657
+ "type": {
3658
+ "defined": {
3659
+ "name": "performanceFee";
3660
+ };
3661
+ };
3662
+ },
3663
+ {
3664
+ "name": "protocol";
3665
+ "type": {
3666
+ "defined": {
3667
+ "name": "protocolFees";
3668
+ };
3669
+ };
3670
+ }
3671
+ ];
3672
+ };
3673
+ },
3674
+ {
3675
+ "name": "hurdleType";
3676
+ "type": {
3677
+ "kind": "enum";
3678
+ "variants": [
3679
+ {
3680
+ "name": "hard";
3681
+ },
3682
+ {
3683
+ "name": "soft";
3684
+ }
3685
+ ];
3686
+ };
3687
+ },
3688
+ {
3689
+ "name": "integrationAcl";
3690
+ "docs": [
3691
+ "An integration program can have multiple protocols supported.",
3692
+ "Enabled protocols are stored in a bitmask, and each protocol can have its own policy."
3693
+ ];
3694
+ "type": {
3695
+ "kind": "struct";
3696
+ "fields": [
3697
+ {
3698
+ "name": "integrationProgram";
3699
+ "type": "pubkey";
3700
+ },
3701
+ {
3702
+ "name": "protocolsBitmask";
3703
+ "type": "u16";
3704
+ },
3705
+ {
3706
+ "name": "protocolPolicies";
3707
+ "type": {
3708
+ "vec": {
3709
+ "defined": {
3710
+ "name": "protocolPolicy";
3711
+ };
3712
+ };
3713
+ };
3714
+ }
3715
+ ];
3716
+ };
3717
+ },
3718
+ {
3719
+ "name": "integrationPermissions";
3720
+ "docs": [
3721
+ "Stores delegate permissions for an integration program."
3722
+ ];
3723
+ "type": {
3724
+ "kind": "struct";
3725
+ "fields": [
3726
+ {
3727
+ "name": "integrationProgram";
3728
+ "type": "pubkey";
3729
+ },
3730
+ {
3731
+ "name": "protocolPermissions";
3732
+ "type": {
3733
+ "vec": {
3734
+ "defined": {
3735
+ "name": "protocolPermissions";
3736
+ };
3737
+ };
3738
+ };
3739
+ }
3740
+ ];
3741
+ };
3742
+ },
3743
+ {
3744
+ "name": "lendingMarketPolicy";
3745
+ "type": {
3746
+ "kind": "struct";
3747
+ "fields": [
3748
+ {
3749
+ "name": "market";
3750
+ "docs": [
3751
+ "Loopscale market information account this policy applies to."
3752
+ ];
3753
+ "type": "pubkey";
3754
+ },
3755
+ {
3756
+ "name": "maxDepositAmount";
3757
+ "docs": [
3758
+ "Maximum principal amount that may be deposited in a single instruction.",
3759
+ "A value of zero means no per-instruction deposit is allowed for this market."
3760
+ ];
3761
+ "type": "u64";
3762
+ },
3763
+ {
3764
+ "name": "maxTotalDepositAmount";
3765
+ "docs": [
3766
+ "Maximum principal exposure (token balance + deployed amount) a single",
3767
+ "strategy may hold in this market. Enforced per strategy, not aggregated",
3768
+ "across all of the vault's strategies in this market. A value of zero means",
3769
+ "no lending exposure is allowed for this market."
3770
+ ];
3771
+ "type": "u64";
3772
+ },
3773
+ {
3774
+ "name": "minLoanApyCbps";
3775
+ "docs": [
3776
+ "Minimum accepted loan APY, in centibasis points, for strategy terms in this market."
3777
+ ];
3778
+ "type": "u32";
3779
+ },
3780
+ {
3781
+ "name": "maxLtvBps";
3782
+ "docs": [
3783
+ "Maximum accepted borrower loan-to-value, in basis points, for strategy terms in this market.",
3784
+ "A value of zero means no borrower LTV is allowed for this market."
3785
+ ];
3786
+ "type": "u16";
3787
+ },
3788
+ {
3789
+ "name": "durationIndexesAllowlist";
3790
+ "docs": [
3791
+ "Duration indexes that may be offered by vault-owned strategies in this market.",
3792
+ "An empty list denies all lending durations for this market. Index mapping:",
3793
+ "- 0 = 1 day",
3794
+ "- 1 = 1 week",
3795
+ "- 2 = 1 month",
3796
+ "- 3 = 3 months",
3797
+ "- 4 = 1 year"
3798
+ ];
3799
+ "type": "bytes";
3800
+ },
3801
+ {
3802
+ "name": "collateralAssetAllowlist";
3803
+ "docs": [
3804
+ "Collateral asset identifiers that vault-owned strategies may accept in this market.",
3805
+ "An empty list denies all strategy collateral assets for this market."
3806
+ ];
3807
+ "type": {
3808
+ "vec": "pubkey";
3809
+ };
3810
+ }
3811
+ ];
3812
+ };
3813
+ },
3814
+ {
3815
+ "name": "lendingPolicy";
3816
+ "type": {
3817
+ "kind": "struct";
3818
+ "fields": [
3819
+ {
3820
+ "name": "principalAllowlist";
3821
+ "docs": [
3822
+ "Principal mints that may be lent into Loopscale strategies.",
3823
+ "An empty list denies all strategy creation, updates, deposits, and ledger sales."
3824
+ ];
3825
+ "type": {
3826
+ "vec": "pubkey";
3827
+ };
3828
+ },
3829
+ {
3830
+ "name": "collateralAllowlist";
3831
+ "docs": [
3832
+ "Collateral asset identifiers that vault-owned strategies may accept.",
3833
+ "An empty list denies all strategy collateral assets."
3834
+ ];
3835
+ "type": {
3836
+ "vec": "pubkey";
3837
+ };
3838
+ },
3839
+ {
3840
+ "name": "marketPolicies";
3841
+ "docs": [
3842
+ "Optional per-market risk limits for strategy creation, updates, deposits, and ledger sales.",
3843
+ "If a market is present here, advanced per-market limits are enforced.",
3844
+ "If absent, lending operations are governed by top-level allowlists,",
3845
+ "permission checks, and sell-ledger limits."
3846
+ ];
3847
+ "type": {
3848
+ "vec": {
3849
+ "defined": {
3850
+ "name": "lendingMarketPolicy";
3851
+ };
3852
+ };
3853
+ };
3854
+ },
3855
+ {
3856
+ "name": "sellLedgerPolicy";
3857
+ "docs": [
3858
+ "Risk limits for selling Loopscale loan ledgers."
3859
+ ];
3860
+ "type": {
3861
+ "defined": {
3862
+ "name": "sellLedgerPolicy";
3863
+ };
3864
+ };
3865
+ }
3866
+ ];
3867
+ };
3868
+ },
3869
+ {
3870
+ "name": "lpParams";
3871
+ "type": {
3872
+ "kind": "enum";
3873
+ "variants": [
3874
+ {
3875
+ "name": "exactIn";
3876
+ "fields": [
3877
+ {
3878
+ "defined": {
3879
+ "name": "exactInParams";
3880
+ };
3881
+ }
3882
+ ];
3883
+ },
3884
+ {
3885
+ "name": "exactOut";
3886
+ "fields": [
3887
+ {
3888
+ "defined": {
3889
+ "name": "exactOutParams";
3890
+ };
3891
+ }
3892
+ ];
3893
+ }
3894
+ ];
3895
+ };
3896
+ },
3897
+ {
3898
+ "name": "managementFee";
3899
+ "type": {
3900
+ "kind": "struct";
3901
+ "fields": [
3902
+ {
3903
+ "name": "feeBps";
3904
+ "type": "u16";
3905
+ }
3906
+ ];
3907
+ };
3908
+ },
3909
+ {
3910
+ "name": "multiCollateralTermsUpdateParams";
3911
+ "type": {
3912
+ "kind": "struct";
3913
+ "fields": [
3914
+ {
3915
+ "name": "apy";
3916
+ "type": "u64";
3917
+ },
3918
+ {
3919
+ "name": "indices";
3920
+ "type": {
3921
+ "vec": {
3922
+ "defined": {
3923
+ "name": "collateralTermsIndices";
3924
+ };
3925
+ };
3926
+ };
3927
+ }
3928
+ ];
3929
+ };
3930
+ },
3931
+ {
3932
+ "name": "noticePeriodType";
3933
+ "type": {
3934
+ "kind": "enum";
3935
+ "variants": [
3936
+ {
3937
+ "name": "hard";
3938
+ },
3939
+ {
3940
+ "name": "soft";
3941
+ }
3942
+ ];
3943
+ };
3944
+ },
3945
+ {
3946
+ "name": "notifyAndSettle";
3947
+ "type": {
3948
+ "kind": "struct";
3949
+ "fields": [
3950
+ {
3951
+ "name": "model";
3952
+ "type": {
3953
+ "defined": {
3954
+ "name": "valuationModel";
3955
+ };
3956
+ };
3957
+ },
3958
+ {
3959
+ "name": "permissionlessFulfillment";
3960
+ "type": "bool";
3961
+ },
3962
+ {
3963
+ "name": "subscribeNoticePeriodType";
3964
+ "type": {
3965
+ "defined": {
3966
+ "name": "noticePeriodType";
3967
+ };
3968
+ };
3969
+ },
3970
+ {
3971
+ "name": "subscribeNoticePeriod";
3972
+ "type": "u64";
3973
+ },
3974
+ {
3975
+ "name": "subscribeSettlementPeriod";
3976
+ "type": "u64";
3977
+ },
3978
+ {
3979
+ "name": "subscribeCancellationWindow";
3980
+ "type": "u64";
3981
+ },
3982
+ {
3983
+ "name": "redeemNoticePeriodType";
3984
+ "type": {
3985
+ "defined": {
3986
+ "name": "noticePeriodType";
3987
+ };
3988
+ };
3989
+ },
3990
+ {
3991
+ "name": "redeemNoticePeriod";
3992
+ "type": "u64";
3993
+ },
3994
+ {
3995
+ "name": "redeemSettlementPeriod";
3996
+ "type": "u64";
3997
+ },
3998
+ {
3999
+ "name": "redeemCancellationWindow";
4000
+ "type": "u64";
4001
+ },
4002
+ {
4003
+ "name": "timeUnit";
4004
+ "type": {
4005
+ "defined": {
4006
+ "name": "timeUnit";
4007
+ };
4008
+ };
4009
+ },
4010
+ {
4011
+ "name": "padding";
4012
+ "type": {
4013
+ "array": [
4014
+ "u8",
4015
+ 3
4016
+ ];
4017
+ };
4018
+ }
4019
+ ];
4020
+ };
4021
+ },
4022
+ {
4023
+ "name": "oracleConfigs";
4024
+ "docs": [
4025
+ "Vault-specific oracle configs. If available, these configs are preferred over the global config."
4026
+ ];
4027
+ "type": {
4028
+ "kind": "struct";
4029
+ "fields": [
4030
+ {
4031
+ "name": "maxAgesSeconds";
4032
+ "type": {
4033
+ "vec": {
4034
+ "array": [
4035
+ "u16",
4036
+ 2
4037
+ ];
4038
+ };
4039
+ };
4040
+ },
4041
+ {
4042
+ "name": "padding";
4043
+ "type": {
4044
+ "array": [
4045
+ "u8",
4046
+ 12
4047
+ ];
4048
+ };
4049
+ }
4050
+ ];
4051
+ };
4052
+ },
4053
+ {
4054
+ "name": "performanceFee";
4055
+ "type": {
4056
+ "kind": "struct";
4057
+ "fields": [
4058
+ {
4059
+ "name": "feeBps";
4060
+ "type": "u16";
4061
+ },
4062
+ {
4063
+ "name": "hurdleRateBps";
4064
+ "type": "u16";
4065
+ },
4066
+ {
4067
+ "name": "hurdleType";
4068
+ "type": {
4069
+ "defined": {
4070
+ "name": "hurdleType";
4071
+ };
4072
+ };
4073
+ }
4074
+ ];
4075
+ };
4076
+ },
4077
+ {
4078
+ "name": "pricedProtocol";
4079
+ "type": {
4080
+ "kind": "struct";
4081
+ "fields": [
4082
+ {
4083
+ "name": "rent";
4084
+ "type": "u64";
4085
+ },
4086
+ {
4087
+ "name": "amount";
4088
+ "type": "i128";
4089
+ },
4090
+ {
4091
+ "name": "decimals";
4092
+ "type": "u8";
4093
+ },
4094
+ {
4095
+ "name": "lastUpdatedSlot";
4096
+ "type": "u64";
4097
+ },
4098
+ {
4099
+ "name": "integrationProgram";
4100
+ "type": "pubkey";
4101
+ },
4102
+ {
4103
+ "name": "protocolBitflag";
4104
+ "type": "u16";
4105
+ },
4106
+ {
4107
+ "name": "positions";
4108
+ "type": {
4109
+ "vec": "pubkey";
4110
+ };
4111
+ }
4112
+ ];
4113
+ };
4114
+ },
4115
+ {
4116
+ "name": "protocolFees";
4117
+ "type": {
4118
+ "kind": "struct";
4119
+ "fields": [
4120
+ {
4121
+ "name": "baseFeeBps";
4122
+ "type": "u16";
4123
+ },
4124
+ {
4125
+ "name": "flowFeeBps";
4126
+ "type": "u16";
4127
+ }
4128
+ ];
4129
+ };
4130
+ },
4131
+ {
4132
+ "name": "protocolPermissions";
4133
+ "docs": [
4134
+ "Represents a delegate's permissions for a specific protocol"
4135
+ ];
4136
+ "type": {
4137
+ "kind": "struct";
4138
+ "fields": [
4139
+ {
4140
+ "name": "protocolBitflag";
4141
+ "type": "u16";
4142
+ },
4143
+ {
4144
+ "name": "permissionsBitmask";
4145
+ "type": "u64";
4146
+ }
4147
+ ];
4148
+ };
4149
+ },
4150
+ {
4151
+ "name": "protocolPolicy";
4152
+ "docs": [
4153
+ "Stores policy data for an integrated protocol.",
4154
+ "Integration programs serialize/deserialize this data."
4155
+ ];
4156
+ "type": {
4157
+ "kind": "struct";
4158
+ "fields": [
4159
+ {
4160
+ "name": "protocolBitflag";
4161
+ "type": "u16";
4162
+ },
4163
+ {
4164
+ "name": "data";
4165
+ "type": "bytes";
4166
+ }
4167
+ ];
4168
+ };
4169
+ },
4170
+ {
4171
+ "name": "repayPrincipalParams";
4172
+ "type": {
4173
+ "kind": "struct";
4174
+ "fields": [
4175
+ {
4176
+ "name": "amount";
4177
+ "type": "u64";
4178
+ },
4179
+ {
4180
+ "name": "ledgerIndex";
4181
+ "type": "u8";
4182
+ },
4183
+ {
4184
+ "name": "repayAll";
4185
+ "type": "bool";
4186
+ }
4187
+ ];
4188
+ };
4189
+ },
4190
+ {
4191
+ "name": "sellLedgerParams";
4192
+ "type": {
4193
+ "kind": "struct";
4194
+ "fields": [
4195
+ {
4196
+ "name": "ledgerIndex";
4197
+ "type": "u8";
4198
+ },
4199
+ {
4200
+ "name": "expectedSalePrice";
4201
+ "type": "u64";
4202
+ },
4203
+ {
4204
+ "name": "assetIndexGuidance";
4205
+ "type": "bytes";
4206
+ }
4207
+ ];
4208
+ };
4209
+ },
4210
+ {
4211
+ "name": "sellLedgerPolicy";
4212
+ "type": {
4213
+ "kind": "struct";
4214
+ "fields": [
4215
+ {
4216
+ "name": "maxDiscountBps";
4217
+ "docs": [
4218
+ "Maximum discount from the ledger's expected value, in basis points.",
4219
+ "A value of zero requires no discount."
4220
+ ];
4221
+ "type": "u16";
4222
+ },
4223
+ {
4224
+ "name": "maxSlippageBps";
4225
+ "docs": [
4226
+ "Maximum tolerated slippage while selling a ledger, in basis points.",
4227
+ "A value of zero allows no slippage."
4228
+ ];
4229
+ "type": "u16";
4230
+ }
4231
+ ];
4232
+ };
4233
+ },
4234
+ {
4235
+ "name": "stateAccount";
4236
+ "type": {
4237
+ "kind": "struct";
4238
+ "fields": [
4239
+ {
4240
+ "name": "accountType";
4241
+ "type": {
4242
+ "defined": {
4243
+ "name": "accountType";
4244
+ };
4245
+ };
4246
+ },
4247
+ {
4248
+ "name": "enabled";
4249
+ "type": "bool";
4250
+ },
4251
+ {
4252
+ "name": "vault";
4253
+ "type": "pubkey";
4254
+ },
4255
+ {
4256
+ "name": "owner";
4257
+ "type": "pubkey";
4258
+ },
4259
+ {
4260
+ "name": "portfolioManagerName";
4261
+ "type": {
4262
+ "array": [
4263
+ "u8",
4264
+ 32
4265
+ ];
4266
+ };
4267
+ },
4268
+ {
4269
+ "name": "created";
4270
+ "type": {
4271
+ "defined": {
4272
+ "name": "createdModel";
4273
+ };
4274
+ };
4275
+ },
4276
+ {
4277
+ "name": "baseAssetMint";
4278
+ "type": "pubkey";
4279
+ },
4280
+ {
4281
+ "name": "baseAssetDecimals";
4282
+ "type": "u8";
4283
+ },
4284
+ {
4285
+ "name": "baseAssetTokenProgram";
4286
+ "type": "u8";
4287
+ },
4288
+ {
4289
+ "name": "name";
4290
+ "type": {
4291
+ "array": [
4292
+ "u8",
4293
+ 32
4294
+ ];
4295
+ };
4296
+ },
4297
+ {
4298
+ "name": "timelockDuration";
4299
+ "type": "u32";
4300
+ },
4301
+ {
4302
+ "name": "timelockExpiresAt";
4303
+ "type": "u64";
4304
+ },
4305
+ {
4306
+ "name": "mint";
4307
+ "type": "pubkey";
4308
+ },
4309
+ {
4310
+ "name": "assets";
4311
+ "type": {
4312
+ "vec": "pubkey";
4313
+ };
4314
+ },
4315
+ {
4316
+ "name": "integrationAcls";
4317
+ "type": {
4318
+ "vec": {
4319
+ "defined": {
4320
+ "name": "integrationAcl";
4321
+ };
4322
+ };
4323
+ };
4324
+ },
4325
+ {
4326
+ "name": "delegateAcls";
4327
+ "type": {
4328
+ "vec": {
4329
+ "defined": {
4330
+ "name": "delegateAcl";
4331
+ };
4332
+ };
4333
+ };
4334
+ },
4335
+ {
4336
+ "name": "externalPositions";
4337
+ "type": {
4338
+ "vec": "pubkey";
4339
+ };
4340
+ },
4341
+ {
4342
+ "name": "pricedProtocols";
4343
+ "type": {
4344
+ "vec": {
4345
+ "defined": {
4346
+ "name": "pricedProtocol";
4347
+ };
4348
+ };
4349
+ };
4350
+ },
4351
+ {
4352
+ "name": "params";
4353
+ "type": {
4354
+ "vec": {
4355
+ "vec": {
4356
+ "defined": {
4357
+ "name": "engineField";
4358
+ };
4359
+ };
4360
+ };
4361
+ };
4362
+ }
4363
+ ];
4364
+ };
4365
+ },
4366
+ {
4367
+ "name": "timeUnit";
4368
+ "type": {
4369
+ "kind": "enum";
4370
+ "variants": [
4371
+ {
4372
+ "name": "second";
4373
+ },
4374
+ {
4375
+ "name": "slot";
4376
+ }
4377
+ ];
4378
+ };
4379
+ },
4380
+ {
4381
+ "name": "updateStrategyParams";
4382
+ "type": {
4383
+ "kind": "struct";
4384
+ "fields": [
4385
+ {
4386
+ "name": "originationsEnabled";
4387
+ "type": {
4388
+ "option": "bool";
4389
+ };
4390
+ },
4391
+ {
4392
+ "name": "liquidityBuffer";
4393
+ "type": {
4394
+ "option": "u64";
4395
+ };
4396
+ },
4397
+ {
4398
+ "name": "interestFee";
4399
+ "type": {
4400
+ "option": "u64";
4401
+ };
4402
+ },
4403
+ {
4404
+ "name": "originationFee";
4405
+ "type": {
4406
+ "option": "u64";
4407
+ };
4408
+ },
4409
+ {
4410
+ "name": "principalFee";
4411
+ "type": {
4412
+ "option": "u64";
4413
+ };
4414
+ },
4415
+ {
4416
+ "name": "originationCap";
4417
+ "type": {
4418
+ "option": "u64";
4419
+ };
4420
+ },
4421
+ {
4422
+ "name": "marketInformation";
4423
+ "type": {
4424
+ "option": "pubkey";
4425
+ };
4426
+ },
4427
+ {
4428
+ "name": "externalYieldSourceArgs";
4429
+ "type": {
4430
+ "option": {
4431
+ "defined": {
4432
+ "name": "externalYieldSourceArgs";
4433
+ };
4434
+ };
4435
+ };
4436
+ }
4437
+ ];
4438
+ };
4439
+ },
4440
+ {
4441
+ "name": "updateWeightMatrixParams";
4442
+ "type": {
4443
+ "kind": "struct";
4444
+ "fields": [
4445
+ {
4446
+ "name": "collateralIndex";
4447
+ "type": "u8";
4448
+ },
4449
+ {
4450
+ "name": "weightMatrix";
4451
+ "type": {
4452
+ "array": [
4453
+ "u32",
4454
+ 5
4455
+ ];
4456
+ };
4457
+ },
4458
+ {
4459
+ "name": "expectedLoanValues";
4460
+ "type": {
4461
+ "defined": {
4462
+ "name": "expectedLoanValues";
4463
+ };
4464
+ };
4465
+ },
4466
+ {
4467
+ "name": "assetIndexGuidance";
4468
+ "type": "bytes";
4469
+ }
4470
+ ];
4471
+ };
4472
+ },
4473
+ {
4474
+ "name": "valuationModel";
4475
+ "type": {
4476
+ "kind": "enum";
4477
+ "variants": [
4478
+ {
4479
+ "name": "continuous";
4480
+ },
4481
+ {
4482
+ "name": "periodic";
4483
+ }
4484
+ ];
4485
+ };
4486
+ },
4487
+ {
4488
+ "name": "vaultPolicy";
4489
+ "type": {
4490
+ "kind": "struct";
4491
+ "fields": [
4492
+ {
4493
+ "name": "vaultAllowlist";
4494
+ "docs": [
4495
+ "Loopscale user vault accounts that may be used by the GLAM vault.",
4496
+ "An empty list denies all Loopscale user vault operations."
4497
+ ];
4498
+ "type": {
4499
+ "vec": "pubkey";
4500
+ };
4501
+ }
4502
+ ];
4503
+ };
4504
+ },
4505
+ {
4506
+ "name": "vaultStakeParams";
4507
+ "type": {
4508
+ "kind": "struct";
4509
+ "fields": [
4510
+ {
4511
+ "name": "amount";
4512
+ "type": "u64";
4513
+ },
4514
+ {
4515
+ "name": "principalAmount";
4516
+ "type": "u64";
4517
+ },
4518
+ {
4519
+ "name": "stakeAll";
4520
+ "type": {
4521
+ "option": "bool";
4522
+ };
4523
+ },
4524
+ {
4525
+ "name": "duration";
4526
+ "type": "u32";
4527
+ },
4528
+ {
4529
+ "name": "durationType";
4530
+ "type": "u8";
4531
+ },
4532
+ {
4533
+ "name": "actionType";
4534
+ "type": "u8";
4535
+ }
4536
+ ];
4537
+ };
4538
+ },
4539
+ {
4540
+ "name": "vaultUnstakeParams";
4541
+ "type": {
4542
+ "kind": "struct";
4543
+ "fields": [
4544
+ {
4545
+ "name": "actionType";
4546
+ "type": "u8";
4547
+ },
4548
+ {
4549
+ "name": "principalAmount";
4550
+ "type": "u64";
4551
+ }
4552
+ ];
4553
+ };
4554
+ },
4555
+ {
4556
+ "name": "withdrawCollateralParams";
4557
+ "type": {
4558
+ "kind": "struct";
4559
+ "fields": [
4560
+ {
4561
+ "name": "amount";
4562
+ "type": "u64";
4563
+ },
4564
+ {
4565
+ "name": "collateralIndex";
4566
+ "type": "u8";
4567
+ },
4568
+ {
4569
+ "name": "assetIndexGuidance";
4570
+ "type": "bytes";
4571
+ },
4572
+ {
4573
+ "name": "expectedLoanValues";
4574
+ "type": {
4575
+ "defined": {
4576
+ "name": "expectedLoanValues";
4577
+ };
4578
+ };
4579
+ },
4580
+ {
4581
+ "name": "closeIfEligible";
4582
+ "type": "bool";
4583
+ },
4584
+ {
4585
+ "name": "withdrawAll";
4586
+ "type": "bool";
4587
+ }
4588
+ ];
4589
+ };
4590
+ }
4591
+ ];
4592
+ "constants": [
4593
+ {
4594
+ "name": "protoLoopscaleBorrow";
4595
+ "type": "u16";
4596
+ "value": "1";
4597
+ },
4598
+ {
4599
+ "name": "protoLoopscaleBorrowPermBorrowPrincipal";
4600
+ "type": "u64";
4601
+ "value": "32";
4602
+ },
4603
+ {
4604
+ "name": "protoLoopscaleBorrowPermCloseLoan";
4605
+ "type": "u64";
4606
+ "value": "2";
4607
+ },
4608
+ {
4609
+ "name": "protoLoopscaleBorrowPermCreateLoan";
4610
+ "type": "u64";
4611
+ "value": "1";
4612
+ },
4613
+ {
4614
+ "name": "protoLoopscaleBorrowPermDepositCollateral";
4615
+ "type": "u64";
4616
+ "value": "8";
4617
+ },
4618
+ {
4619
+ "name": "protoLoopscaleBorrowPermRepayPrincipal";
4620
+ "type": "u64";
4621
+ "value": "64";
4622
+ },
4623
+ {
4624
+ "name": "protoLoopscaleBorrowPermSetPolicy";
4625
+ "type": "u64";
4626
+ "value": "128";
4627
+ },
4628
+ {
4629
+ "name": "protoLoopscaleBorrowPermUpdateLoan";
4630
+ "type": "u64";
4631
+ "value": "4";
4632
+ },
4633
+ {
4634
+ "name": "protoLoopscaleBorrowPermWithdrawCollateral";
4635
+ "type": "u64";
4636
+ "value": "16";
4637
+ },
4638
+ {
4639
+ "name": "protoLoopscaleLending";
4640
+ "type": "u16";
4641
+ "value": "2";
4642
+ },
4643
+ {
4644
+ "name": "protoLoopscaleLendingPermCloseStrategy";
4645
+ "type": "u64";
4646
+ "value": "16";
4647
+ },
4648
+ {
4649
+ "name": "protoLoopscaleLendingPermCreateStrategy";
4650
+ "type": "u64";
4651
+ "value": "1";
4652
+ },
4653
+ {
4654
+ "name": "protoLoopscaleLendingPermDepositStrategy";
4655
+ "type": "u64";
4656
+ "value": "4";
4657
+ },
4658
+ {
4659
+ "name": "protoLoopscaleLendingPermSellLedger";
4660
+ "type": "u64";
4661
+ "value": "32";
4662
+ },
4663
+ {
4664
+ "name": "protoLoopscaleLendingPermSetPolicy";
4665
+ "type": "u64";
4666
+ "value": "64";
4667
+ },
4668
+ {
4669
+ "name": "protoLoopscaleLendingPermUpdateStrategy";
4670
+ "type": "u64";
4671
+ "value": "2";
4672
+ },
4673
+ {
4674
+ "name": "protoLoopscaleLendingPermWithdrawStrategy";
4675
+ "type": "u64";
4676
+ "value": "8";
4677
+ },
4678
+ {
4679
+ "name": "protoLoopscaleVault";
4680
+ "type": "u16";
4681
+ "value": "4";
4682
+ },
4683
+ {
4684
+ "name": "protoLoopscaleVaultPermClaimVaultRewards";
4685
+ "type": "u64";
4686
+ "value": "16";
4687
+ },
4688
+ {
4689
+ "name": "protoLoopscaleVaultPermDepositUserVault";
4690
+ "type": "u64";
4691
+ "value": "1";
4692
+ },
4693
+ {
4694
+ "name": "protoLoopscaleVaultPermSetPolicy";
4695
+ "type": "u64";
4696
+ "value": "32";
4697
+ },
4698
+ {
4699
+ "name": "protoLoopscaleVaultPermStakeUserVaultLp";
4700
+ "type": "u64";
4701
+ "value": "4";
4702
+ },
4703
+ {
4704
+ "name": "protoLoopscaleVaultPermUnstakeUserVaultLp";
4705
+ "type": "u64";
4706
+ "value": "8";
4707
+ },
4708
+ {
4709
+ "name": "protoLoopscaleVaultPermWithdrawUserVault";
4710
+ "type": "u64";
4711
+ "value": "2";
4712
+ }
4713
+ ];
4714
+ };