@glamsystems/glam-sdk 1.0.14-alpha.5 → 1.1.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1670 @@
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_neutral.json`.
6
+ */
7
+ export type ExtNeutral = {
8
+ "address": "G1NTNTpbUDVvXHQE6eGgYTBxWpwgLMBBPw4NrZYr5yM5";
9
+ "metadata": {
10
+ "name": "extNeutral";
11
+ "version": "0.1.0";
12
+ "spec": "0.1.0";
13
+ "description": "Neutral bundle integration for GLAM Protocol";
14
+ };
15
+ "instructions": [
16
+ {
17
+ "name": "closeUserBundleAccount";
18
+ "docs": [
19
+ "Close an empty Neutral user bundle account and remove it from GLAM external positions.",
20
+ "",
21
+ "- Permission: `CloseUserBundleAccount`.",
22
+ "- Policy: `bundle_account` must be present in `NeutralPolicy::bundles_allowlist`."
23
+ ];
24
+ "discriminator": [
25
+ 201,
26
+ 195,
27
+ 126,
28
+ 228,
29
+ 9,
30
+ 173,
31
+ 79,
32
+ 215
33
+ ];
34
+ "accounts": [
35
+ {
36
+ "name": "glamState";
37
+ "writable": true;
38
+ },
39
+ {
40
+ "name": "glamVault";
41
+ "writable": true;
42
+ "pda": {
43
+ "seeds": [
44
+ {
45
+ "kind": "const";
46
+ "value": [
47
+ 118,
48
+ 97,
49
+ 117,
50
+ 108,
51
+ 116
52
+ ];
53
+ },
54
+ {
55
+ "kind": "account";
56
+ "path": "glamState";
57
+ }
58
+ ];
59
+ "program": {
60
+ "kind": "account";
61
+ "path": "glamProtocolProgram";
62
+ };
63
+ };
64
+ },
65
+ {
66
+ "name": "glamSigner";
67
+ "writable": true;
68
+ "signer": true;
69
+ },
70
+ {
71
+ "name": "integrationAuthority";
72
+ "pda": {
73
+ "seeds": [
74
+ {
75
+ "kind": "const";
76
+ "value": [
77
+ 105,
78
+ 110,
79
+ 116,
80
+ 101,
81
+ 103,
82
+ 114,
83
+ 97,
84
+ 116,
85
+ 105,
86
+ 111,
87
+ 110,
88
+ 45,
89
+ 97,
90
+ 117,
91
+ 116,
92
+ 104,
93
+ 111,
94
+ 114,
95
+ 105,
96
+ 116,
97
+ 121
98
+ ];
99
+ }
100
+ ];
101
+ };
102
+ },
103
+ {
104
+ "name": "cpiProgram";
105
+ "address": "BUNDDh4P5XviMm1f3gCvnq2qKx6TGosAGnoUK12e7cXU";
106
+ },
107
+ {
108
+ "name": "glamProtocolProgram";
109
+ "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz";
110
+ },
111
+ {
112
+ "name": "systemProgram";
113
+ "address": "11111111111111111111111111111111";
114
+ },
115
+ {
116
+ "name": "userBundleAccount";
117
+ "writable": true;
118
+ },
119
+ {
120
+ "name": "bundleAccount";
121
+ }
122
+ ];
123
+ "args": [];
124
+ },
125
+ {
126
+ "name": "initializeBundleDepositor";
127
+ "docs": [
128
+ "Initialize a non-permissioned Neutral user bundle account for the GLAM vault.",
129
+ "",
130
+ "- Permission: `InitializeBundleDepositor`.",
131
+ "- Policy: `bundle_account` must be present in `NeutralPolicy::bundles_allowlist`."
132
+ ];
133
+ "discriminator": [
134
+ 126,
135
+ 6,
136
+ 242,
137
+ 36,
138
+ 22,
139
+ 209,
140
+ 35,
141
+ 2
142
+ ];
143
+ "accounts": [
144
+ {
145
+ "name": "glamState";
146
+ "writable": true;
147
+ },
148
+ {
149
+ "name": "glamVault";
150
+ "writable": true;
151
+ "pda": {
152
+ "seeds": [
153
+ {
154
+ "kind": "const";
155
+ "value": [
156
+ 118,
157
+ 97,
158
+ 117,
159
+ 108,
160
+ 116
161
+ ];
162
+ },
163
+ {
164
+ "kind": "account";
165
+ "path": "glamState";
166
+ }
167
+ ];
168
+ "program": {
169
+ "kind": "account";
170
+ "path": "glamProtocolProgram";
171
+ };
172
+ };
173
+ },
174
+ {
175
+ "name": "glamSigner";
176
+ "writable": true;
177
+ "signer": true;
178
+ },
179
+ {
180
+ "name": "integrationAuthority";
181
+ "pda": {
182
+ "seeds": [
183
+ {
184
+ "kind": "const";
185
+ "value": [
186
+ 105,
187
+ 110,
188
+ 116,
189
+ 101,
190
+ 103,
191
+ 114,
192
+ 97,
193
+ 116,
194
+ 105,
195
+ 111,
196
+ 110,
197
+ 45,
198
+ 97,
199
+ 117,
200
+ 116,
201
+ 104,
202
+ 111,
203
+ 114,
204
+ 105,
205
+ 116,
206
+ 121
207
+ ];
208
+ }
209
+ ];
210
+ };
211
+ },
212
+ {
213
+ "name": "cpiProgram";
214
+ "address": "BUNDDh4P5XviMm1f3gCvnq2qKx6TGosAGnoUK12e7cXU";
215
+ },
216
+ {
217
+ "name": "glamProtocolProgram";
218
+ "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz";
219
+ },
220
+ {
221
+ "name": "systemProgram";
222
+ "address": "11111111111111111111111111111111";
223
+ },
224
+ {
225
+ "name": "bundleAccount";
226
+ "writable": true;
227
+ },
228
+ {
229
+ "name": "userBundleAccount";
230
+ "writable": true;
231
+ }
232
+ ];
233
+ "args": [];
234
+ },
235
+ {
236
+ "name": "requestDeposit";
237
+ "docs": [
238
+ "Request a Neutral bundle deposit from the GLAM vault's token account.",
239
+ "",
240
+ "- Permission: `RequestDeposit`.",
241
+ "- Policy: `bundle_account` must be present in `NeutralPolicy::bundles_allowlist`."
242
+ ];
243
+ "discriminator": [
244
+ 243,
245
+ 202,
246
+ 197,
247
+ 215,
248
+ 135,
249
+ 97,
250
+ 213,
251
+ 109
252
+ ];
253
+ "accounts": [
254
+ {
255
+ "name": "glamState";
256
+ "writable": true;
257
+ },
258
+ {
259
+ "name": "glamVault";
260
+ "writable": true;
261
+ "pda": {
262
+ "seeds": [
263
+ {
264
+ "kind": "const";
265
+ "value": [
266
+ 118,
267
+ 97,
268
+ 117,
269
+ 108,
270
+ 116
271
+ ];
272
+ },
273
+ {
274
+ "kind": "account";
275
+ "path": "glamState";
276
+ }
277
+ ];
278
+ "program": {
279
+ "kind": "account";
280
+ "path": "glamProtocolProgram";
281
+ };
282
+ };
283
+ },
284
+ {
285
+ "name": "glamSigner";
286
+ "writable": true;
287
+ "signer": true;
288
+ },
289
+ {
290
+ "name": "integrationAuthority";
291
+ "pda": {
292
+ "seeds": [
293
+ {
294
+ "kind": "const";
295
+ "value": [
296
+ 105,
297
+ 110,
298
+ 116,
299
+ 101,
300
+ 103,
301
+ 114,
302
+ 97,
303
+ 116,
304
+ 105,
305
+ 111,
306
+ 110,
307
+ 45,
308
+ 97,
309
+ 117,
310
+ 116,
311
+ 104,
312
+ 111,
313
+ 114,
314
+ 105,
315
+ 116,
316
+ 121
317
+ ];
318
+ }
319
+ ];
320
+ };
321
+ },
322
+ {
323
+ "name": "cpiProgram";
324
+ "address": "BUNDDh4P5XviMm1f3gCvnq2qKx6TGosAGnoUK12e7cXU";
325
+ },
326
+ {
327
+ "name": "glamProtocolProgram";
328
+ "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz";
329
+ },
330
+ {
331
+ "name": "systemProgram";
332
+ "address": "11111111111111111111111111111111";
333
+ },
334
+ {
335
+ "name": "userTokenAccount";
336
+ "writable": true;
337
+ },
338
+ {
339
+ "name": "pendingDepositTokenAccount";
340
+ "writable": true;
341
+ },
342
+ {
343
+ "name": "treasuryAccount";
344
+ "writable": true;
345
+ },
346
+ {
347
+ "name": "userBundleAccount";
348
+ "writable": true;
349
+ },
350
+ {
351
+ "name": "assetAddress";
352
+ "writable": true;
353
+ },
354
+ {
355
+ "name": "oracleData";
356
+ "writable": true;
357
+ },
358
+ {
359
+ "name": "bundleTempData";
360
+ "writable": true;
361
+ },
362
+ {
363
+ "name": "bundleAccount";
364
+ "writable": true;
365
+ },
366
+ {
367
+ "name": "pendingBundleAssetAuthority";
368
+ "writable": true;
369
+ },
370
+ {
371
+ "name": "tokenProgram";
372
+ }
373
+ ];
374
+ "args": [
375
+ {
376
+ "name": "amount";
377
+ "type": "u64";
378
+ }
379
+ ];
380
+ },
381
+ {
382
+ "name": "requestWithdrawal";
383
+ "docs": [
384
+ "Request a Neutral bundle withdrawal for the GLAM vault.",
385
+ "",
386
+ "- Permission: `RequestWithdrawal`.",
387
+ "- Policy: `bundle_account` must be present in `NeutralPolicy::bundles_allowlist`."
388
+ ];
389
+ "discriminator": [
390
+ 251,
391
+ 85,
392
+ 121,
393
+ 205,
394
+ 56,
395
+ 201,
396
+ 12,
397
+ 177
398
+ ];
399
+ "accounts": [
400
+ {
401
+ "name": "glamState";
402
+ "writable": true;
403
+ },
404
+ {
405
+ "name": "glamVault";
406
+ "writable": true;
407
+ "pda": {
408
+ "seeds": [
409
+ {
410
+ "kind": "const";
411
+ "value": [
412
+ 118,
413
+ 97,
414
+ 117,
415
+ 108,
416
+ 116
417
+ ];
418
+ },
419
+ {
420
+ "kind": "account";
421
+ "path": "glamState";
422
+ }
423
+ ];
424
+ "program": {
425
+ "kind": "account";
426
+ "path": "glamProtocolProgram";
427
+ };
428
+ };
429
+ },
430
+ {
431
+ "name": "glamSigner";
432
+ "writable": true;
433
+ "signer": true;
434
+ },
435
+ {
436
+ "name": "integrationAuthority";
437
+ "pda": {
438
+ "seeds": [
439
+ {
440
+ "kind": "const";
441
+ "value": [
442
+ 105,
443
+ 110,
444
+ 116,
445
+ 101,
446
+ 103,
447
+ 114,
448
+ 97,
449
+ 116,
450
+ 105,
451
+ 111,
452
+ 110,
453
+ 45,
454
+ 97,
455
+ 117,
456
+ 116,
457
+ 104,
458
+ 111,
459
+ 114,
460
+ 105,
461
+ 116,
462
+ 121
463
+ ];
464
+ }
465
+ ];
466
+ };
467
+ },
468
+ {
469
+ "name": "cpiProgram";
470
+ "address": "BUNDDh4P5XviMm1f3gCvnq2qKx6TGosAGnoUK12e7cXU";
471
+ },
472
+ {
473
+ "name": "glamProtocolProgram";
474
+ "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz";
475
+ },
476
+ {
477
+ "name": "systemProgram";
478
+ "address": "11111111111111111111111111111111";
479
+ },
480
+ {
481
+ "name": "userBundleAccount";
482
+ "writable": true;
483
+ },
484
+ {
485
+ "name": "bundleAccount";
486
+ "writable": true;
487
+ },
488
+ {
489
+ "name": "oracleData";
490
+ "writable": true;
491
+ },
492
+ {
493
+ "name": "bundleTempData";
494
+ "writable": true;
495
+ },
496
+ {
497
+ "name": "tokenProgram";
498
+ "address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA";
499
+ },
500
+ {
501
+ "name": "rent";
502
+ "address": "SysvarRent111111111111111111111111111111111";
503
+ }
504
+ ];
505
+ "args": [
506
+ {
507
+ "name": "sharesAmount";
508
+ "type": "u128";
509
+ },
510
+ {
511
+ "name": "minEstimatedValue";
512
+ "type": "u64";
513
+ }
514
+ ];
515
+ },
516
+ {
517
+ "name": "setNeutralPolicy";
518
+ "docs": [
519
+ "Set the Neutral bundle allowlist policy."
520
+ ];
521
+ "discriminator": [
522
+ 82,
523
+ 190,
524
+ 30,
525
+ 24,
526
+ 221,
527
+ 135,
528
+ 158,
529
+ 215
530
+ ];
531
+ "accounts": [
532
+ {
533
+ "name": "glamState";
534
+ "writable": true;
535
+ },
536
+ {
537
+ "name": "glamSigner";
538
+ "writable": true;
539
+ "signer": true;
540
+ },
541
+ {
542
+ "name": "glamProtocolProgram";
543
+ "address": "GLAMpaME8wdTEzxtiYEAa5yD8fZbxZiz2hNtV58RZiEz";
544
+ }
545
+ ];
546
+ "args": [
547
+ {
548
+ "name": "policy";
549
+ "type": {
550
+ "defined": {
551
+ "name": "neutralPolicy";
552
+ };
553
+ };
554
+ }
555
+ ];
556
+ }
557
+ ];
558
+ "accounts": [
559
+ {
560
+ "name": "stateAccount";
561
+ "discriminator": [
562
+ 142,
563
+ 247,
564
+ 54,
565
+ 95,
566
+ 85,
567
+ 133,
568
+ 249,
569
+ 103
570
+ ];
571
+ }
572
+ ];
573
+ "errors": [
574
+ {
575
+ "code": 6000;
576
+ "name": "invalidNeutralAccount";
577
+ "msg": "Invalid Neutral account";
578
+ },
579
+ {
580
+ "code": 6001;
581
+ "name": "invalidNeutralDiscriminator";
582
+ "msg": "Invalid Neutral account discriminator";
583
+ },
584
+ {
585
+ "code": 6002;
586
+ "name": "invalidNeutralPda";
587
+ "msg": "Invalid Neutral PDA";
588
+ },
589
+ {
590
+ "code": 6003;
591
+ "name": "invalidTokenAccount";
592
+ "msg": "Invalid token account";
593
+ },
594
+ {
595
+ "code": 6004;
596
+ "name": "invalidAmount";
597
+ "msg": "Invalid amount";
598
+ },
599
+ {
600
+ "code": 6005;
601
+ "name": "bundleAllowlistTooLarge";
602
+ "msg": "Neutral bundle allowlist exceeds the maximum length";
603
+ },
604
+ {
605
+ "code": 6006;
606
+ "name": "defaultBundleNotAllowed";
607
+ "msg": "Neutral bundle allowlist contains the default pubkey";
608
+ },
609
+ {
610
+ "code": 6007;
611
+ "name": "duplicateBundle";
612
+ "msg": "Neutral bundle allowlist contains a duplicate bundle";
613
+ },
614
+ {
615
+ "code": 6008;
616
+ "name": "invalidPermissionMode";
617
+ "msg": "Neutral bundle permission mode does not match the instruction";
618
+ },
619
+ {
620
+ "code": 6009;
621
+ "name": "unexpectedSigner";
622
+ "msg": "Unexpected signer passed to Neutral CPI";
623
+ },
624
+ {
625
+ "code": 6010;
626
+ "name": "duplicateAccount";
627
+ "msg": "Duplicate account passed to Neutral CPI";
628
+ },
629
+ {
630
+ "code": 6011;
631
+ "name": "arithmeticOverflow";
632
+ "msg": "Arithmetic overflow during Neutral validation";
633
+ },
634
+ {
635
+ "code": 6012;
636
+ "name": "invalidUserBundleAccount";
637
+ "msg": "Invalid user bundle account";
638
+ },
639
+ {
640
+ "code": 6013;
641
+ "name": "userBundleAccountNotEmpty";
642
+ "msg": "User bundle account is not empty";
643
+ },
644
+ {
645
+ "code": 6014;
646
+ "name": "userBundleAccountAlreadyInitialized";
647
+ "msg": "User bundle account is already initialized";
648
+ },
649
+ {
650
+ "code": 6015;
651
+ "name": "userBundleAccountNotClosed";
652
+ "msg": "User bundle account was not closed";
653
+ },
654
+ {
655
+ "code": 6016;
656
+ "name": "unsupportedTokenProgram";
657
+ "msg": "Neutral asset mint must be owned by the legacy SPL Token program";
658
+ },
659
+ {
660
+ "code": 6017;
661
+ "name": "estimatedWithdrawalValueTooLow";
662
+ "msg": "Estimated withdrawal value is below the caller minimum";
663
+ }
664
+ ];
665
+ "types": [
666
+ {
667
+ "name": "accountType";
668
+ "type": {
669
+ "kind": "enum";
670
+ "variants": [
671
+ {
672
+ "name": "vault";
673
+ },
674
+ {
675
+ "name": "tokenizedVault";
676
+ },
677
+ {
678
+ "name": "mint";
679
+ },
680
+ {
681
+ "name": "singleAssetVault";
682
+ }
683
+ ];
684
+ };
685
+ },
686
+ {
687
+ "name": "accruedFees";
688
+ "type": {
689
+ "kind": "struct";
690
+ "fields": [
691
+ {
692
+ "name": "vaultSubscriptionFee";
693
+ "type": "u128";
694
+ },
695
+ {
696
+ "name": "vaultRedemptionFee";
697
+ "type": "u128";
698
+ },
699
+ {
700
+ "name": "managerSubscriptionFee";
701
+ "type": "u128";
702
+ },
703
+ {
704
+ "name": "managerRedemptionFee";
705
+ "type": "u128";
706
+ },
707
+ {
708
+ "name": "managementFee";
709
+ "type": "u128";
710
+ },
711
+ {
712
+ "name": "performanceFee";
713
+ "type": "u128";
714
+ },
715
+ {
716
+ "name": "protocolBaseFee";
717
+ "type": "u128";
718
+ },
719
+ {
720
+ "name": "protocolFlowFee";
721
+ "type": "u128";
722
+ }
723
+ ];
724
+ };
725
+ },
726
+ {
727
+ "name": "createdModel";
728
+ "type": {
729
+ "kind": "struct";
730
+ "fields": [
731
+ {
732
+ "name": "key";
733
+ "type": {
734
+ "array": [
735
+ "u8",
736
+ 8
737
+ ];
738
+ };
739
+ },
740
+ {
741
+ "name": "createdBy";
742
+ "type": "pubkey";
743
+ },
744
+ {
745
+ "name": "createdAt";
746
+ "type": "i64";
747
+ }
748
+ ];
749
+ };
750
+ },
751
+ {
752
+ "name": "delegateAcl";
753
+ "type": {
754
+ "kind": "struct";
755
+ "fields": [
756
+ {
757
+ "name": "pubkey";
758
+ "type": "pubkey";
759
+ },
760
+ {
761
+ "name": "integrationPermissions";
762
+ "type": {
763
+ "vec": {
764
+ "defined": {
765
+ "name": "integrationPermissions";
766
+ };
767
+ };
768
+ };
769
+ },
770
+ {
771
+ "name": "expiresAt";
772
+ "type": "i64";
773
+ }
774
+ ];
775
+ };
776
+ },
777
+ {
778
+ "name": "engineField";
779
+ "type": {
780
+ "kind": "struct";
781
+ "fields": [
782
+ {
783
+ "name": "name";
784
+ "type": {
785
+ "defined": {
786
+ "name": "engineFieldName";
787
+ };
788
+ };
789
+ },
790
+ {
791
+ "name": "value";
792
+ "type": {
793
+ "defined": {
794
+ "name": "engineFieldValue";
795
+ };
796
+ };
797
+ }
798
+ ];
799
+ };
800
+ },
801
+ {
802
+ "name": "engineFieldName";
803
+ "type": {
804
+ "kind": "enum";
805
+ "variants": [
806
+ {
807
+ "name": "owner";
808
+ },
809
+ {
810
+ "name": "portfolioManagerName";
811
+ },
812
+ {
813
+ "name": "name";
814
+ },
815
+ {
816
+ "name": "uri";
817
+ },
818
+ {
819
+ "name": "assets";
820
+ },
821
+ {
822
+ "name": "delegateAcls";
823
+ },
824
+ {
825
+ "name": "integrationAcls";
826
+ },
827
+ {
828
+ "name": "timelockDuration";
829
+ },
830
+ {
831
+ "name": "borrowable";
832
+ },
833
+ {
834
+ "name": "defaultAccountStateFrozen";
835
+ },
836
+ {
837
+ "name": "permanentDelegate";
838
+ },
839
+ {
840
+ "name": "notifyAndSettle";
841
+ },
842
+ {
843
+ "name": "feeStructure";
844
+ },
845
+ {
846
+ "name": "feeParams";
847
+ },
848
+ {
849
+ "name": "claimableFees";
850
+ },
851
+ {
852
+ "name": "claimedFees";
853
+ },
854
+ {
855
+ "name": "oracleConfigs";
856
+ }
857
+ ];
858
+ };
859
+ },
860
+ {
861
+ "name": "engineFieldValue";
862
+ "type": {
863
+ "kind": "enum";
864
+ "variants": [
865
+ {
866
+ "name": "boolean";
867
+ "fields": [
868
+ {
869
+ "name": "val";
870
+ "type": "bool";
871
+ }
872
+ ];
873
+ },
874
+ {
875
+ "name": "u8";
876
+ "fields": [
877
+ {
878
+ "name": "val";
879
+ "type": "u8";
880
+ }
881
+ ];
882
+ },
883
+ {
884
+ "name": "u32";
885
+ "fields": [
886
+ {
887
+ "name": "val";
888
+ "type": "u32";
889
+ }
890
+ ];
891
+ },
892
+ {
893
+ "name": "u64";
894
+ "fields": [
895
+ {
896
+ "name": "val";
897
+ "type": "u64";
898
+ }
899
+ ];
900
+ },
901
+ {
902
+ "name": "string";
903
+ "fields": [
904
+ {
905
+ "name": "val";
906
+ "type": "string";
907
+ }
908
+ ];
909
+ },
910
+ {
911
+ "name": "pubkey";
912
+ "fields": [
913
+ {
914
+ "name": "val";
915
+ "type": "pubkey";
916
+ }
917
+ ];
918
+ },
919
+ {
920
+ "name": "vecPubkey";
921
+ "fields": [
922
+ {
923
+ "name": "val";
924
+ "type": {
925
+ "vec": "pubkey";
926
+ };
927
+ }
928
+ ];
929
+ },
930
+ {
931
+ "name": "vecU8";
932
+ "fields": [
933
+ {
934
+ "name": "val";
935
+ "type": "bytes";
936
+ }
937
+ ];
938
+ },
939
+ {
940
+ "name": "vecU32";
941
+ "fields": [
942
+ {
943
+ "name": "val";
944
+ "type": {
945
+ "vec": "u32";
946
+ };
947
+ }
948
+ ];
949
+ },
950
+ {
951
+ "name": "vecDelegateAcl";
952
+ "fields": [
953
+ {
954
+ "name": "val";
955
+ "type": {
956
+ "vec": {
957
+ "defined": {
958
+ "name": "delegateAcl";
959
+ };
960
+ };
961
+ };
962
+ }
963
+ ];
964
+ },
965
+ {
966
+ "name": "vecIntegrationAcl";
967
+ "fields": [
968
+ {
969
+ "name": "val";
970
+ "type": {
971
+ "vec": {
972
+ "defined": {
973
+ "name": "integrationAcl";
974
+ };
975
+ };
976
+ };
977
+ }
978
+ ];
979
+ },
980
+ {
981
+ "name": "feeStructure";
982
+ "fields": [
983
+ {
984
+ "name": "val";
985
+ "type": {
986
+ "defined": {
987
+ "name": "feeStructure";
988
+ };
989
+ };
990
+ }
991
+ ];
992
+ },
993
+ {
994
+ "name": "feeParams";
995
+ "fields": [
996
+ {
997
+ "name": "val";
998
+ "type": {
999
+ "defined": {
1000
+ "name": "feeParams";
1001
+ };
1002
+ };
1003
+ }
1004
+ ];
1005
+ },
1006
+ {
1007
+ "name": "accruedFees";
1008
+ "fields": [
1009
+ {
1010
+ "name": "val";
1011
+ "type": {
1012
+ "defined": {
1013
+ "name": "accruedFees";
1014
+ };
1015
+ };
1016
+ }
1017
+ ];
1018
+ },
1019
+ {
1020
+ "name": "notifyAndSettle";
1021
+ "fields": [
1022
+ {
1023
+ "name": "val";
1024
+ "type": {
1025
+ "defined": {
1026
+ "name": "notifyAndSettle";
1027
+ };
1028
+ };
1029
+ }
1030
+ ];
1031
+ },
1032
+ {
1033
+ "name": "oracleConfigs";
1034
+ "fields": [
1035
+ {
1036
+ "name": "val";
1037
+ "type": {
1038
+ "defined": {
1039
+ "name": "oracleConfigs";
1040
+ };
1041
+ };
1042
+ }
1043
+ ];
1044
+ }
1045
+ ];
1046
+ };
1047
+ },
1048
+ {
1049
+ "name": "entryExitFees";
1050
+ "type": {
1051
+ "kind": "struct";
1052
+ "fields": [
1053
+ {
1054
+ "name": "subscriptionFeeBps";
1055
+ "type": "u16";
1056
+ },
1057
+ {
1058
+ "name": "redemptionFeeBps";
1059
+ "type": "u16";
1060
+ }
1061
+ ];
1062
+ };
1063
+ },
1064
+ {
1065
+ "name": "feeParams";
1066
+ "type": {
1067
+ "kind": "struct";
1068
+ "fields": [
1069
+ {
1070
+ "name": "yearInSeconds";
1071
+ "type": "u32";
1072
+ },
1073
+ {
1074
+ "name": "paHighWaterMark";
1075
+ "type": "i128";
1076
+ },
1077
+ {
1078
+ "name": "paLastNav";
1079
+ "type": "i128";
1080
+ },
1081
+ {
1082
+ "name": "lastAum";
1083
+ "type": "i128";
1084
+ },
1085
+ {
1086
+ "name": "lastPerformanceFeeCrystallized";
1087
+ "type": "i64";
1088
+ },
1089
+ {
1090
+ "name": "lastManagementFeeCrystallized";
1091
+ "type": "i64";
1092
+ },
1093
+ {
1094
+ "name": "lastProtocolFeeCrystallized";
1095
+ "type": "i64";
1096
+ }
1097
+ ];
1098
+ };
1099
+ },
1100
+ {
1101
+ "name": "feeStructure";
1102
+ "type": {
1103
+ "kind": "struct";
1104
+ "fields": [
1105
+ {
1106
+ "name": "vault";
1107
+ "type": {
1108
+ "defined": {
1109
+ "name": "entryExitFees";
1110
+ };
1111
+ };
1112
+ },
1113
+ {
1114
+ "name": "manager";
1115
+ "type": {
1116
+ "defined": {
1117
+ "name": "entryExitFees";
1118
+ };
1119
+ };
1120
+ },
1121
+ {
1122
+ "name": "management";
1123
+ "type": {
1124
+ "defined": {
1125
+ "name": "managementFee";
1126
+ };
1127
+ };
1128
+ },
1129
+ {
1130
+ "name": "performance";
1131
+ "type": {
1132
+ "defined": {
1133
+ "name": "performanceFee";
1134
+ };
1135
+ };
1136
+ },
1137
+ {
1138
+ "name": "protocol";
1139
+ "type": {
1140
+ "defined": {
1141
+ "name": "protocolFees";
1142
+ };
1143
+ };
1144
+ }
1145
+ ];
1146
+ };
1147
+ },
1148
+ {
1149
+ "name": "hurdleType";
1150
+ "type": {
1151
+ "kind": "enum";
1152
+ "variants": [
1153
+ {
1154
+ "name": "hard";
1155
+ },
1156
+ {
1157
+ "name": "soft";
1158
+ }
1159
+ ];
1160
+ };
1161
+ },
1162
+ {
1163
+ "name": "integrationAcl";
1164
+ "docs": [
1165
+ "An integration program can have multiple protocols supported.",
1166
+ "Enabled protocols are stored in a bitmask, and each protocol can have its own policy."
1167
+ ];
1168
+ "type": {
1169
+ "kind": "struct";
1170
+ "fields": [
1171
+ {
1172
+ "name": "integrationProgram";
1173
+ "type": "pubkey";
1174
+ },
1175
+ {
1176
+ "name": "protocolsBitmask";
1177
+ "type": "u16";
1178
+ },
1179
+ {
1180
+ "name": "protocolPolicies";
1181
+ "type": {
1182
+ "vec": {
1183
+ "defined": {
1184
+ "name": "protocolPolicy";
1185
+ };
1186
+ };
1187
+ };
1188
+ }
1189
+ ];
1190
+ };
1191
+ },
1192
+ {
1193
+ "name": "integrationPermissions";
1194
+ "docs": [
1195
+ "Stores delegate permissions for an integration program."
1196
+ ];
1197
+ "type": {
1198
+ "kind": "struct";
1199
+ "fields": [
1200
+ {
1201
+ "name": "integrationProgram";
1202
+ "type": "pubkey";
1203
+ },
1204
+ {
1205
+ "name": "protocolPermissions";
1206
+ "type": {
1207
+ "vec": {
1208
+ "defined": {
1209
+ "name": "protocolPermissions";
1210
+ };
1211
+ };
1212
+ };
1213
+ }
1214
+ ];
1215
+ };
1216
+ },
1217
+ {
1218
+ "name": "managementFee";
1219
+ "type": {
1220
+ "kind": "struct";
1221
+ "fields": [
1222
+ {
1223
+ "name": "feeBps";
1224
+ "type": "u16";
1225
+ }
1226
+ ];
1227
+ };
1228
+ },
1229
+ {
1230
+ "name": "neutralPolicy";
1231
+ "type": {
1232
+ "kind": "struct";
1233
+ "fields": [
1234
+ {
1235
+ "name": "bundlesAllowlist";
1236
+ "type": {
1237
+ "vec": "pubkey";
1238
+ };
1239
+ }
1240
+ ];
1241
+ };
1242
+ },
1243
+ {
1244
+ "name": "noticePeriodType";
1245
+ "type": {
1246
+ "kind": "enum";
1247
+ "variants": [
1248
+ {
1249
+ "name": "hard";
1250
+ },
1251
+ {
1252
+ "name": "soft";
1253
+ }
1254
+ ];
1255
+ };
1256
+ },
1257
+ {
1258
+ "name": "notifyAndSettle";
1259
+ "type": {
1260
+ "kind": "struct";
1261
+ "fields": [
1262
+ {
1263
+ "name": "model";
1264
+ "type": {
1265
+ "defined": {
1266
+ "name": "valuationModel";
1267
+ };
1268
+ };
1269
+ },
1270
+ {
1271
+ "name": "permissionlessFulfillment";
1272
+ "type": "bool";
1273
+ },
1274
+ {
1275
+ "name": "subscribeNoticePeriodType";
1276
+ "type": {
1277
+ "defined": {
1278
+ "name": "noticePeriodType";
1279
+ };
1280
+ };
1281
+ },
1282
+ {
1283
+ "name": "subscribeNoticePeriod";
1284
+ "type": "u64";
1285
+ },
1286
+ {
1287
+ "name": "subscribeSettlementPeriod";
1288
+ "type": "u64";
1289
+ },
1290
+ {
1291
+ "name": "subscribeCancellationWindow";
1292
+ "type": "u64";
1293
+ },
1294
+ {
1295
+ "name": "redeemNoticePeriodType";
1296
+ "type": {
1297
+ "defined": {
1298
+ "name": "noticePeriodType";
1299
+ };
1300
+ };
1301
+ },
1302
+ {
1303
+ "name": "redeemNoticePeriod";
1304
+ "type": "u64";
1305
+ },
1306
+ {
1307
+ "name": "redeemSettlementPeriod";
1308
+ "type": "u64";
1309
+ },
1310
+ {
1311
+ "name": "redeemCancellationWindow";
1312
+ "type": "u64";
1313
+ },
1314
+ {
1315
+ "name": "timeUnit";
1316
+ "type": {
1317
+ "defined": {
1318
+ "name": "timeUnit";
1319
+ };
1320
+ };
1321
+ },
1322
+ {
1323
+ "name": "padding";
1324
+ "type": {
1325
+ "array": [
1326
+ "u8",
1327
+ 3
1328
+ ];
1329
+ };
1330
+ }
1331
+ ];
1332
+ };
1333
+ },
1334
+ {
1335
+ "name": "oracleConfigs";
1336
+ "docs": [
1337
+ "Vault-specific oracle configs. If available, these configs are preferred over the global config."
1338
+ ];
1339
+ "type": {
1340
+ "kind": "struct";
1341
+ "fields": [
1342
+ {
1343
+ "name": "maxAgesSeconds";
1344
+ "type": {
1345
+ "vec": {
1346
+ "array": [
1347
+ "u16",
1348
+ 2
1349
+ ];
1350
+ };
1351
+ };
1352
+ },
1353
+ {
1354
+ "name": "padding";
1355
+ "type": {
1356
+ "array": [
1357
+ "u8",
1358
+ 12
1359
+ ];
1360
+ };
1361
+ }
1362
+ ];
1363
+ };
1364
+ },
1365
+ {
1366
+ "name": "performanceFee";
1367
+ "type": {
1368
+ "kind": "struct";
1369
+ "fields": [
1370
+ {
1371
+ "name": "feeBps";
1372
+ "type": "u16";
1373
+ },
1374
+ {
1375
+ "name": "hurdleRateBps";
1376
+ "type": "u16";
1377
+ },
1378
+ {
1379
+ "name": "hurdleType";
1380
+ "type": {
1381
+ "defined": {
1382
+ "name": "hurdleType";
1383
+ };
1384
+ };
1385
+ }
1386
+ ];
1387
+ };
1388
+ },
1389
+ {
1390
+ "name": "pricedProtocol";
1391
+ "type": {
1392
+ "kind": "struct";
1393
+ "fields": [
1394
+ {
1395
+ "name": "rent";
1396
+ "type": "u64";
1397
+ },
1398
+ {
1399
+ "name": "amount";
1400
+ "type": "i128";
1401
+ },
1402
+ {
1403
+ "name": "decimals";
1404
+ "type": "u8";
1405
+ },
1406
+ {
1407
+ "name": "lastUpdatedSlot";
1408
+ "type": "u64";
1409
+ },
1410
+ {
1411
+ "name": "integrationProgram";
1412
+ "type": "pubkey";
1413
+ },
1414
+ {
1415
+ "name": "protocolBitflag";
1416
+ "type": "u16";
1417
+ },
1418
+ {
1419
+ "name": "positions";
1420
+ "type": {
1421
+ "vec": "pubkey";
1422
+ };
1423
+ }
1424
+ ];
1425
+ };
1426
+ },
1427
+ {
1428
+ "name": "protocolFees";
1429
+ "type": {
1430
+ "kind": "struct";
1431
+ "fields": [
1432
+ {
1433
+ "name": "baseFeeBps";
1434
+ "type": "u16";
1435
+ },
1436
+ {
1437
+ "name": "flowFeeBps";
1438
+ "type": "u16";
1439
+ }
1440
+ ];
1441
+ };
1442
+ },
1443
+ {
1444
+ "name": "protocolPermissions";
1445
+ "docs": [
1446
+ "Represents a delegate's permissions for a specific protocol"
1447
+ ];
1448
+ "type": {
1449
+ "kind": "struct";
1450
+ "fields": [
1451
+ {
1452
+ "name": "protocolBitflag";
1453
+ "type": "u16";
1454
+ },
1455
+ {
1456
+ "name": "permissionsBitmask";
1457
+ "type": "u64";
1458
+ }
1459
+ ];
1460
+ };
1461
+ },
1462
+ {
1463
+ "name": "protocolPolicy";
1464
+ "docs": [
1465
+ "Stores policy data for an integrated protocol.",
1466
+ "Integration programs serialize/deserialize this data."
1467
+ ];
1468
+ "type": {
1469
+ "kind": "struct";
1470
+ "fields": [
1471
+ {
1472
+ "name": "protocolBitflag";
1473
+ "type": "u16";
1474
+ },
1475
+ {
1476
+ "name": "data";
1477
+ "type": "bytes";
1478
+ }
1479
+ ];
1480
+ };
1481
+ },
1482
+ {
1483
+ "name": "stateAccount";
1484
+ "type": {
1485
+ "kind": "struct";
1486
+ "fields": [
1487
+ {
1488
+ "name": "accountType";
1489
+ "type": {
1490
+ "defined": {
1491
+ "name": "accountType";
1492
+ };
1493
+ };
1494
+ },
1495
+ {
1496
+ "name": "enabled";
1497
+ "type": "bool";
1498
+ },
1499
+ {
1500
+ "name": "vault";
1501
+ "type": "pubkey";
1502
+ },
1503
+ {
1504
+ "name": "owner";
1505
+ "type": "pubkey";
1506
+ },
1507
+ {
1508
+ "name": "portfolioManagerName";
1509
+ "type": {
1510
+ "array": [
1511
+ "u8",
1512
+ 32
1513
+ ];
1514
+ };
1515
+ },
1516
+ {
1517
+ "name": "created";
1518
+ "type": {
1519
+ "defined": {
1520
+ "name": "createdModel";
1521
+ };
1522
+ };
1523
+ },
1524
+ {
1525
+ "name": "baseAssetMint";
1526
+ "type": "pubkey";
1527
+ },
1528
+ {
1529
+ "name": "baseAssetDecimals";
1530
+ "type": "u8";
1531
+ },
1532
+ {
1533
+ "name": "baseAssetTokenProgram";
1534
+ "type": "u8";
1535
+ },
1536
+ {
1537
+ "name": "name";
1538
+ "type": {
1539
+ "array": [
1540
+ "u8",
1541
+ 32
1542
+ ];
1543
+ };
1544
+ },
1545
+ {
1546
+ "name": "timelockDuration";
1547
+ "type": "u32";
1548
+ },
1549
+ {
1550
+ "name": "timelockExpiresAt";
1551
+ "type": "u64";
1552
+ },
1553
+ {
1554
+ "name": "mint";
1555
+ "type": "pubkey";
1556
+ },
1557
+ {
1558
+ "name": "assets";
1559
+ "type": {
1560
+ "vec": "pubkey";
1561
+ };
1562
+ },
1563
+ {
1564
+ "name": "integrationAcls";
1565
+ "type": {
1566
+ "vec": {
1567
+ "defined": {
1568
+ "name": "integrationAcl";
1569
+ };
1570
+ };
1571
+ };
1572
+ },
1573
+ {
1574
+ "name": "delegateAcls";
1575
+ "type": {
1576
+ "vec": {
1577
+ "defined": {
1578
+ "name": "delegateAcl";
1579
+ };
1580
+ };
1581
+ };
1582
+ },
1583
+ {
1584
+ "name": "externalPositions";
1585
+ "type": {
1586
+ "vec": "pubkey";
1587
+ };
1588
+ },
1589
+ {
1590
+ "name": "pricedProtocols";
1591
+ "type": {
1592
+ "vec": {
1593
+ "defined": {
1594
+ "name": "pricedProtocol";
1595
+ };
1596
+ };
1597
+ };
1598
+ },
1599
+ {
1600
+ "name": "params";
1601
+ "type": {
1602
+ "vec": {
1603
+ "vec": {
1604
+ "defined": {
1605
+ "name": "engineField";
1606
+ };
1607
+ };
1608
+ };
1609
+ };
1610
+ }
1611
+ ];
1612
+ };
1613
+ },
1614
+ {
1615
+ "name": "timeUnit";
1616
+ "type": {
1617
+ "kind": "enum";
1618
+ "variants": [
1619
+ {
1620
+ "name": "second";
1621
+ },
1622
+ {
1623
+ "name": "slot";
1624
+ }
1625
+ ];
1626
+ };
1627
+ },
1628
+ {
1629
+ "name": "valuationModel";
1630
+ "type": {
1631
+ "kind": "enum";
1632
+ "variants": [
1633
+ {
1634
+ "name": "continuous";
1635
+ },
1636
+ {
1637
+ "name": "periodic";
1638
+ }
1639
+ ];
1640
+ };
1641
+ }
1642
+ ];
1643
+ "constants": [
1644
+ {
1645
+ "name": "protoNeutral";
1646
+ "type": "u16";
1647
+ "value": "1";
1648
+ },
1649
+ {
1650
+ "name": "protoNeutralPermCloseUserBundleAccount";
1651
+ "type": "u64";
1652
+ "value": "8";
1653
+ },
1654
+ {
1655
+ "name": "protoNeutralPermInitializeBundleDepositor";
1656
+ "type": "u64";
1657
+ "value": "1";
1658
+ },
1659
+ {
1660
+ "name": "protoNeutralPermRequestDeposit";
1661
+ "type": "u64";
1662
+ "value": "2";
1663
+ },
1664
+ {
1665
+ "name": "protoNeutralPermRequestWithdrawal";
1666
+ "type": "u64";
1667
+ "value": "4";
1668
+ }
1669
+ ];
1670
+ };