@glamsystems/glam-sdk 1.1.0-alpha.6 → 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
+ };