@glamsystems/glam-sdk 1.0.6 → 1.0.8

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 (64) hide show
  1. package/index.cjs.js +3154 -986
  2. package/index.esm.js +3141 -983
  3. package/package.json +3 -2
  4. package/src/client/base.d.ts +2 -0
  5. package/src/client/cctp.d.ts +7 -2
  6. package/src/client/drift/protocol-v2.d.ts +8 -4
  7. package/src/client/price.d.ts +54 -9
  8. package/src/client/state.d.ts +2 -0
  9. package/src/clientConfig.d.ts +2 -0
  10. package/src/constants.d.ts +4 -1
  11. package/src/glamExports.d.ts +613 -0
  12. package/src/index.d.ts +1 -0
  13. package/src/models/index.d.ts +2 -2
  14. package/src/models/state.d.ts +2 -0
  15. package/src/react/cluster-provider.d.ts +2 -1
  16. package/src/react/glam.d.ts +4 -3
  17. package/src/utils/bitmask.d.ts +11 -0
  18. package/src/utils/common.d.ts +27 -6
  19. package/src/utils/computeBudget.d.ts +1 -2
  20. package/src/utils/evm.d.ts +4 -0
  21. package/src/utils/index.d.ts +1 -1
  22. package/src/utils/jupiterApi.d.ts +13 -2
  23. package/src/utils/positionCategorizer.d.ts +54 -0
  24. package/src/utils/rpc.d.ts +33 -3
  25. package/target/idl/ext_cctp.json +6 -0
  26. package/target/idl/ext_drift-staging.json +6 -0
  27. package/target/idl/ext_drift.json +6 -0
  28. package/target/idl/ext_kamino-staging.json +6 -0
  29. package/target/idl/ext_kamino.json +6 -0
  30. package/target/idl/ext_marinade.json +6 -0
  31. package/target/idl/ext_spl-staging.json +6 -0
  32. package/target/idl/ext_spl.json +6 -0
  33. package/target/idl/ext_stake_pool-staging.json +6 -0
  34. package/target/idl/ext_stake_pool.json +6 -0
  35. package/target/idl/glam_config.json +7 -27
  36. package/target/idl/glam_mint-staging.json +6 -0
  37. package/target/idl/glam_mint.json +6 -0
  38. package/target/idl/glam_protocol-staging.json +117 -9
  39. package/target/idl/glam_protocol.json +41 -8
  40. package/target/types/ext_cctp.d.ts +6 -0
  41. package/target/types/ext_cctp.ts +6 -0
  42. package/target/types/ext_drift-staging.ts +6 -0
  43. package/target/types/ext_drift.d.ts +6 -0
  44. package/target/types/ext_drift.ts +6 -0
  45. package/target/types/ext_kamino-staging.ts +6 -0
  46. package/target/types/ext_kamino.d.ts +6 -0
  47. package/target/types/ext_kamino.ts +6 -0
  48. package/target/types/ext_marinade.d.ts +6 -0
  49. package/target/types/ext_marinade.ts +6 -0
  50. package/target/types/ext_spl-staging.ts +6 -0
  51. package/target/types/ext_spl.d.ts +6 -0
  52. package/target/types/ext_spl.ts +6 -0
  53. package/target/types/ext_stake_pool-staging.ts +6 -0
  54. package/target/types/ext_stake_pool.d.ts +6 -0
  55. package/target/types/ext_stake_pool.ts +6 -0
  56. package/target/types/glam_config.d.ts +2 -22
  57. package/target/types/glam_config.ts +7 -27
  58. package/target/types/glam_mint-staging.ts +6 -0
  59. package/target/types/glam_mint.d.ts +6 -0
  60. package/target/types/glam_mint.ts +6 -0
  61. package/target/types/glam_protocol-staging.ts +117 -9
  62. package/target/types/glam_protocol.d.ts +41 -8
  63. package/target/types/glam_protocol.ts +41 -8
  64. package/src/utils/priorityfee.d.ts +0 -3
@@ -19,6 +19,7 @@ export type ExtKaminoProgram = Program<ExtKamino>;
19
19
  export type ExtMarinadeProgram = Program<ExtMarinade>;
20
20
  export type ExtStakePoolProgram = Program<ExtStakePool>;
21
21
  export type ExtCctpProgram = Program<ExtCctp>;
22
+ export declare const isStaging: () => boolean;
22
23
  export declare function getGlamProtocolIdl(): {
23
24
  address: string;
24
25
  metadata: {
@@ -614,6 +615,618 @@ export declare function getGlamProtocolIdl(): {
614
615
  type: string;
615
616
  value: string;
616
617
  }[];
618
+ } | {
619
+ address: string;
620
+ metadata: {
621
+ name: string;
622
+ version: string;
623
+ spec: string;
624
+ description: string;
625
+ };
626
+ instructions: ({
627
+ name: string;
628
+ docs: string[];
629
+ discriminator: number[];
630
+ accounts: ({
631
+ name: string;
632
+ writable: boolean;
633
+ pda?: undefined;
634
+ signer?: undefined;
635
+ address?: undefined;
636
+ } | {
637
+ name: string;
638
+ writable: boolean;
639
+ pda: {
640
+ seeds: ({
641
+ kind: string;
642
+ value: number[];
643
+ path?: undefined;
644
+ } | {
645
+ kind: string;
646
+ path: string;
647
+ value?: undefined;
648
+ })[];
649
+ };
650
+ signer?: undefined;
651
+ address?: undefined;
652
+ } | {
653
+ name: string;
654
+ writable: boolean;
655
+ signer: boolean;
656
+ pda?: undefined;
657
+ address?: undefined;
658
+ } | {
659
+ name: string;
660
+ writable?: undefined;
661
+ pda?: undefined;
662
+ signer?: undefined;
663
+ address?: undefined;
664
+ } | {
665
+ name: string;
666
+ signer: boolean;
667
+ writable?: undefined;
668
+ pda?: undefined;
669
+ address?: undefined;
670
+ } | {
671
+ name: string;
672
+ address: string;
673
+ writable?: undefined;
674
+ pda?: undefined;
675
+ signer?: undefined;
676
+ })[];
677
+ args: ({
678
+ name: string;
679
+ type: string;
680
+ } | {
681
+ name: string;
682
+ type: {
683
+ vec: {
684
+ defined: {
685
+ name: string;
686
+ };
687
+ };
688
+ };
689
+ })[];
690
+ } | {
691
+ name: string;
692
+ docs: string[];
693
+ discriminator: number[];
694
+ accounts: ({
695
+ name: string;
696
+ writable: boolean;
697
+ signer?: undefined;
698
+ } | {
699
+ name: string;
700
+ writable: boolean;
701
+ signer: boolean;
702
+ })[];
703
+ args: {
704
+ name: string;
705
+ type: {
706
+ defined: {
707
+ name: string;
708
+ };
709
+ };
710
+ }[];
711
+ } | {
712
+ name: string;
713
+ discriminator: number[];
714
+ accounts: ({
715
+ name: string;
716
+ writable: boolean;
717
+ pda: {
718
+ seeds: ({
719
+ kind: string;
720
+ value: number[];
721
+ path?: undefined;
722
+ } | {
723
+ kind: string;
724
+ path: string;
725
+ value?: undefined;
726
+ })[];
727
+ };
728
+ signer?: undefined;
729
+ address?: undefined;
730
+ } | {
731
+ name: string;
732
+ writable: boolean;
733
+ signer: boolean;
734
+ pda?: undefined;
735
+ address?: undefined;
736
+ } | {
737
+ name: string;
738
+ address: string;
739
+ writable?: undefined;
740
+ pda?: undefined;
741
+ signer?: undefined;
742
+ } | {
743
+ name: string;
744
+ writable?: undefined;
745
+ pda?: undefined;
746
+ signer?: undefined;
747
+ address?: undefined;
748
+ })[];
749
+ args: {
750
+ name: string;
751
+ type: {
752
+ defined: {
753
+ name: string;
754
+ };
755
+ };
756
+ }[];
757
+ docs?: undefined;
758
+ } | {
759
+ name: string;
760
+ discriminator: number[];
761
+ accounts: ({
762
+ name: string;
763
+ writable: boolean;
764
+ pda?: undefined;
765
+ signer?: undefined;
766
+ address?: undefined;
767
+ optional?: undefined;
768
+ } | {
769
+ name: string;
770
+ writable: boolean;
771
+ pda: {
772
+ seeds: ({
773
+ kind: string;
774
+ value: number[];
775
+ path?: undefined;
776
+ } | {
777
+ kind: string;
778
+ path: string;
779
+ value?: undefined;
780
+ })[];
781
+ program?: undefined;
782
+ };
783
+ signer?: undefined;
784
+ address?: undefined;
785
+ optional?: undefined;
786
+ } | {
787
+ name: string;
788
+ writable: boolean;
789
+ signer: boolean;
790
+ pda?: undefined;
791
+ address?: undefined;
792
+ optional?: undefined;
793
+ } | {
794
+ name: string;
795
+ address: string;
796
+ writable?: undefined;
797
+ pda?: undefined;
798
+ signer?: undefined;
799
+ optional?: undefined;
800
+ } | {
801
+ name: string;
802
+ optional: boolean;
803
+ writable?: undefined;
804
+ pda?: undefined;
805
+ signer?: undefined;
806
+ address?: undefined;
807
+ } | {
808
+ name: string;
809
+ optional: boolean;
810
+ pda: {
811
+ seeds: {
812
+ kind: string;
813
+ value: number[];
814
+ }[];
815
+ program: {
816
+ kind: string;
817
+ value: number[];
818
+ };
819
+ };
820
+ writable?: undefined;
821
+ signer?: undefined;
822
+ address?: undefined;
823
+ })[];
824
+ args: {
825
+ name: string;
826
+ type: string;
827
+ }[];
828
+ docs?: undefined;
829
+ } | {
830
+ name: string;
831
+ discriminator: number[];
832
+ accounts: ({
833
+ name: string;
834
+ writable: boolean;
835
+ signer?: undefined;
836
+ } | {
837
+ name: string;
838
+ writable: boolean;
839
+ signer: boolean;
840
+ })[];
841
+ args: {
842
+ name: string;
843
+ type: {
844
+ defined: {
845
+ name: string;
846
+ };
847
+ };
848
+ }[];
849
+ docs?: undefined;
850
+ } | {
851
+ name: string;
852
+ discriminator: number[];
853
+ accounts: ({
854
+ name: string;
855
+ writable?: undefined;
856
+ pda?: undefined;
857
+ signer?: undefined;
858
+ address?: undefined;
859
+ } | {
860
+ name: string;
861
+ writable: boolean;
862
+ pda: {
863
+ seeds: ({
864
+ kind: string;
865
+ value: number[];
866
+ path?: undefined;
867
+ } | {
868
+ kind: string;
869
+ path: string;
870
+ value?: undefined;
871
+ })[];
872
+ };
873
+ signer?: undefined;
874
+ address?: undefined;
875
+ } | {
876
+ name: string;
877
+ writable: boolean;
878
+ signer: boolean;
879
+ pda?: undefined;
880
+ address?: undefined;
881
+ } | {
882
+ name: string;
883
+ address: string;
884
+ writable?: undefined;
885
+ pda?: undefined;
886
+ signer?: undefined;
887
+ } | {
888
+ name: string;
889
+ writable: boolean;
890
+ pda?: undefined;
891
+ signer?: undefined;
892
+ address?: undefined;
893
+ })[];
894
+ args: never[];
895
+ docs?: undefined;
896
+ } | {
897
+ name: string;
898
+ discriminator: number[];
899
+ accounts: ({
900
+ name: string;
901
+ writable: boolean;
902
+ signer?: undefined;
903
+ } | {
904
+ name: string;
905
+ writable: boolean;
906
+ signer: boolean;
907
+ })[];
908
+ args: {
909
+ name: string;
910
+ type: {
911
+ vec: {
912
+ defined: {
913
+ name: string;
914
+ };
915
+ };
916
+ };
917
+ }[];
918
+ docs?: undefined;
919
+ } | {
920
+ name: string;
921
+ docs: string[];
922
+ discriminator: number[];
923
+ accounts: ({
924
+ name: string;
925
+ writable: boolean;
926
+ signer?: undefined;
927
+ } | {
928
+ name: string;
929
+ signer: boolean;
930
+ writable?: undefined;
931
+ })[];
932
+ args: {
933
+ name: string;
934
+ type: {
935
+ defined: {
936
+ name: string;
937
+ };
938
+ };
939
+ }[];
940
+ })[];
941
+ accounts: {
942
+ name: string;
943
+ discriminator: number[];
944
+ }[];
945
+ errors: {
946
+ code: number;
947
+ name: string;
948
+ msg: string;
949
+ }[];
950
+ types: ({
951
+ name: string;
952
+ type: {
953
+ kind: string;
954
+ variants: {
955
+ name: string;
956
+ }[];
957
+ fields?: undefined;
958
+ };
959
+ docs?: undefined;
960
+ } | {
961
+ name: string;
962
+ type: {
963
+ kind: string;
964
+ fields: ({
965
+ name: string;
966
+ type: {
967
+ vec: string;
968
+ option?: undefined;
969
+ };
970
+ } | {
971
+ name: string;
972
+ type: {
973
+ option: string;
974
+ vec?: undefined;
975
+ };
976
+ })[];
977
+ variants?: undefined;
978
+ };
979
+ docs?: undefined;
980
+ } | {
981
+ name: string;
982
+ type: {
983
+ kind: string;
984
+ variants: ({
985
+ name: string;
986
+ fields: {
987
+ name: string;
988
+ type: string;
989
+ }[];
990
+ } | {
991
+ name: string;
992
+ fields: {
993
+ name: string;
994
+ type: {
995
+ vec: string;
996
+ };
997
+ }[];
998
+ } | {
999
+ name: string;
1000
+ fields: {
1001
+ name: string;
1002
+ type: {
1003
+ vec: {
1004
+ defined: {
1005
+ name: string;
1006
+ };
1007
+ };
1008
+ };
1009
+ }[];
1010
+ } | {
1011
+ name: string;
1012
+ fields: {
1013
+ name: string;
1014
+ type: {
1015
+ defined: {
1016
+ name: string;
1017
+ };
1018
+ };
1019
+ }[];
1020
+ })[];
1021
+ fields?: undefined;
1022
+ };
1023
+ docs?: undefined;
1024
+ } | {
1025
+ name: string;
1026
+ type: {
1027
+ kind: string;
1028
+ fields: ({
1029
+ name: string;
1030
+ type: {
1031
+ defined: {
1032
+ name: string;
1033
+ };
1034
+ option?: undefined;
1035
+ };
1036
+ } | {
1037
+ name: string;
1038
+ type: string;
1039
+ } | {
1040
+ name: string;
1041
+ type: {
1042
+ option: string;
1043
+ defined?: undefined;
1044
+ };
1045
+ })[];
1046
+ variants?: undefined;
1047
+ };
1048
+ docs?: undefined;
1049
+ } | {
1050
+ name: string;
1051
+ docs: string[];
1052
+ type: {
1053
+ kind: string;
1054
+ fields: ({
1055
+ name: string;
1056
+ type: string;
1057
+ } | {
1058
+ name: string;
1059
+ type: {
1060
+ vec: {
1061
+ defined: {
1062
+ name: string;
1063
+ };
1064
+ };
1065
+ };
1066
+ })[];
1067
+ variants?: undefined;
1068
+ };
1069
+ } | {
1070
+ name: string;
1071
+ type: {
1072
+ kind: string;
1073
+ fields: ({
1074
+ name: string;
1075
+ type: string;
1076
+ } | {
1077
+ name: string;
1078
+ type: {
1079
+ option: {
1080
+ vec: string;
1081
+ };
1082
+ };
1083
+ })[];
1084
+ variants?: undefined;
1085
+ };
1086
+ docs?: undefined;
1087
+ } | {
1088
+ name: string;
1089
+ docs: string[];
1090
+ type: {
1091
+ kind: string;
1092
+ fields: ({
1093
+ name: string;
1094
+ type: {
1095
+ vec: {
1096
+ array: (string | number)[];
1097
+ };
1098
+ array?: undefined;
1099
+ };
1100
+ } | {
1101
+ name: string;
1102
+ type: {
1103
+ array: (string | number)[];
1104
+ vec?: undefined;
1105
+ };
1106
+ })[];
1107
+ variants?: undefined;
1108
+ };
1109
+ } | {
1110
+ name: string;
1111
+ type: {
1112
+ kind: string;
1113
+ fields: ({
1114
+ name: string;
1115
+ type: {
1116
+ defined: {
1117
+ name: string;
1118
+ };
1119
+ array?: undefined;
1120
+ vec?: undefined;
1121
+ };
1122
+ } | {
1123
+ name: string;
1124
+ type: string;
1125
+ } | {
1126
+ name: string;
1127
+ type: {
1128
+ array: (string | number)[];
1129
+ defined?: undefined;
1130
+ vec?: undefined;
1131
+ };
1132
+ } | {
1133
+ name: string;
1134
+ type: {
1135
+ vec: string;
1136
+ defined?: undefined;
1137
+ array?: undefined;
1138
+ };
1139
+ } | {
1140
+ name: string;
1141
+ type: {
1142
+ vec: {
1143
+ defined: {
1144
+ name: string;
1145
+ };
1146
+ vec?: undefined;
1147
+ };
1148
+ defined?: undefined;
1149
+ array?: undefined;
1150
+ };
1151
+ } | {
1152
+ name: string;
1153
+ type: {
1154
+ vec: {
1155
+ vec: {
1156
+ defined: {
1157
+ name: string;
1158
+ };
1159
+ };
1160
+ defined?: undefined;
1161
+ };
1162
+ defined?: undefined;
1163
+ array?: undefined;
1164
+ };
1165
+ })[];
1166
+ variants?: undefined;
1167
+ };
1168
+ docs?: undefined;
1169
+ } | {
1170
+ name: string;
1171
+ type: {
1172
+ kind: string;
1173
+ fields: ({
1174
+ name: string;
1175
+ type: {
1176
+ option: {
1177
+ defined: {
1178
+ name: string;
1179
+ };
1180
+ array?: undefined;
1181
+ vec?: undefined;
1182
+ };
1183
+ };
1184
+ } | {
1185
+ name: string;
1186
+ type: {
1187
+ option: {
1188
+ array: (string | number)[];
1189
+ defined?: undefined;
1190
+ vec?: undefined;
1191
+ };
1192
+ };
1193
+ } | {
1194
+ name: string;
1195
+ type: {
1196
+ option: string;
1197
+ };
1198
+ } | {
1199
+ name: string;
1200
+ type: {
1201
+ option: {
1202
+ vec: string;
1203
+ defined?: undefined;
1204
+ array?: undefined;
1205
+ };
1206
+ };
1207
+ } | {
1208
+ name: string;
1209
+ type: {
1210
+ option: {
1211
+ vec: {
1212
+ defined: {
1213
+ name: string;
1214
+ };
1215
+ };
1216
+ defined?: undefined;
1217
+ array?: undefined;
1218
+ };
1219
+ };
1220
+ })[];
1221
+ variants?: undefined;
1222
+ };
1223
+ docs?: undefined;
1224
+ })[];
1225
+ constants: {
1226
+ name: string;
1227
+ type: string;
1228
+ value: string;
1229
+ }[];
617
1230
  };
618
1231
  export declare function getGlamMintIdl(): {
619
1232
  address: string;
package/src/index.d.ts CHANGED
@@ -6,6 +6,7 @@ export * from "./client/jupiter";
6
6
  export * from "./client/drift";
7
7
  export * from "./client/timelock";
8
8
  export * from "./client/cctp";
9
+ export * from "./client/price";
9
10
  export * from "./deser/integrationPolicies";
10
11
  export * from "./client/base";
11
12
  export * from "./assets";
@@ -1,6 +1,6 @@
1
- export { StateIdlModel, StateModel, CreatedModel, StateAccountType } from "./state";
1
+ export { StateIdlModel, StateModel, CreatedModel, StateAccountType, } from "./state";
2
2
  export type { StateAccount, StateModelType, CreatedModelType } from "./state";
3
- export { MintIdlModel, MintModel, EmergencyUpdateMintArgs, RequestType } from "./mint";
3
+ export { MintIdlModel, MintModel, EmergencyUpdateMintArgs, RequestType, } from "./mint";
4
4
  export type { MintModelType, EmergencyUpdateMintArgsType, FeeStructure, FeeParams, AccruedFees, NotifyAndSettle, } from "./mint";
5
5
  export { IntegrationPermissions, ProtocolPermissions, ProtocolPolicy, IntegrationAcl, DelegateAcl, EmergencyAccessUpdateArgs, } from "./acl";
6
6
  export type { IntegrationPermissionsType, ProtocolPermissionsType, ProtocolPolicyType, IntegrationAclType, DelegateAclType, EmergencyAccessUpdateArgsType, } from "./acl";
@@ -21,6 +21,8 @@ export declare class StateIdlModel implements StateModelType {
21
21
  owner: PublicKey | null;
22
22
  portfolioManagerName: number[] | null;
23
23
  borrowable: PublicKey[] | null;
24
+ reduceOnly: boolean | null;
25
+ anyLst: boolean | null;
24
26
  timelockDuration: number | null;
25
27
  integrationAcls: IntegrationAcl[] | null;
26
28
  delegateAcls: DelegateAcl[] | null;
@@ -1,6 +1,6 @@
1
1
  import { ReactNode } from "react";
2
2
  import { ClusterNetwork } from "../clientConfig";
3
- interface Cluster {
3
+ export interface Cluster {
4
4
  name: string;
5
5
  endpoint: string;
6
6
  network?: ClusterNetwork;
@@ -18,4 +18,5 @@ export declare function ClusterProvider({ children }: {
18
18
  children: ReactNode;
19
19
  }): import("react/jsx-runtime").JSX.Element;
20
20
  export declare function useCluster(): ClusterProviderContext;
21
+ export declare function getClusterUrlParam(cluster: Cluster): string;
21
22
  export {};
@@ -3,7 +3,8 @@ import { GlamClient } from "../client";
3
3
  import { PublicKey } from "@solana/web3.js";
4
4
  import { DriftMarketConfigs } from "../client/drift";
5
5
  import { TokenAccount } from "../client/base";
6
- import { TokenListItem, TokenPrice } from "../utils/jupiterApi";
6
+ import { JupTokenList } from "../utils/jupiterApi";
7
+ import { VaultHoldings } from "../client/price";
7
8
  import { DriftUser } from "../deser";
8
9
  declare global {
9
10
  interface Window {
@@ -15,13 +16,13 @@ declare global {
15
16
  interface GlamProviderContext {
16
17
  glamClient: GlamClient;
17
18
  vault: Vault;
19
+ vaultHoldings?: VaultHoldings;
18
20
  activeGlamState?: GlamStateCache;
19
21
  glamStatesList: GlamStateCache[];
20
22
  delegateAcls: DelegateAcl[];
21
23
  integrationAcls: IntegrationAcl[];
22
24
  allGlamStates: StateModel[];
23
- prices: TokenPrice[];
24
- jupTokenList: TokenListItem[];
25
+ jupTokenList?: JupTokenList;
25
26
  driftMarketConfigs?: DriftMarketConfigs;
26
27
  setActiveGlamState: (f: GlamStateCache) => void;
27
28
  refresh: () => Promise<void>;
@@ -36,3 +36,14 @@ export declare function parseProtocolPermissionsBitmask(integrationProgram: Publ
36
36
  name: string;
37
37
  }[];
38
38
  };
39
+ /**
40
+ * Given the protocol name and a list of permission names, returns the permissions bitmask.
41
+ */
42
+ export declare function parsePermissionNames({ protocolName, permissionNames, }: {
43
+ protocolName: string;
44
+ permissionNames: string[];
45
+ }): {
46
+ integrationProgram: PublicKey;
47
+ protocolBitflag: number;
48
+ permissionsBitmask: BN;
49
+ };