@glamsystems/glam-sdk 1.0.11 → 1.0.12-alpha.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 (43) hide show
  1. package/index.cjs.js +11037 -7904
  2. package/index.esm.js +11032 -7904
  3. package/package.json +1 -1
  4. package/src/client/base.d.ts +5 -1
  5. package/src/client/fees.d.ts +3 -0
  6. package/src/client/mint.d.ts +5 -1
  7. package/src/client/price.d.ts +3 -2
  8. package/src/clientConfig.d.ts +1 -0
  9. package/src/constants.d.ts +3 -3
  10. package/src/deser/integrationPolicies.d.ts +29 -1
  11. package/src/glamExports.d.ts +527 -51
  12. package/src/models/state.d.ts +3 -1
  13. package/src/react/glam.d.ts +1 -0
  14. package/src/react/index.d.ts +2 -0
  15. package/src/react/query-keys.d.ts +39 -0
  16. package/src/react/useVaultBalanceSubscription.d.ts +17 -0
  17. package/src/utils/bitmask.d.ts +4 -3
  18. package/src/utils/index.d.ts +0 -1
  19. package/src/utils/lookupTables.d.ts +45 -1
  20. package/src/utils/timelock.d.ts +4 -4
  21. package/src/utils/transaction.d.ts +1 -1
  22. package/target/idl/ext_drift-staging.json +4 -0
  23. package/target/idl/ext_drift.json +4 -0
  24. package/target/idl/glam_config.json +12 -2
  25. package/target/idl/glam_mint-staging.json +16 -186
  26. package/target/idl/glam_mint.json +16 -186
  27. package/target/idl/glam_policies.json +6 -1
  28. package/target/idl/glam_protocol-staging.json +536 -7
  29. package/target/idl/glam_protocol.json +536 -7
  30. package/target/types/ext_drift-staging.ts +4 -0
  31. package/target/types/ext_drift.d.ts +4 -0
  32. package/target/types/ext_drift.ts +4 -0
  33. package/target/types/ext_offchain.d.ts +1080 -0
  34. package/target/types/glam_config.d.ts +12 -2
  35. package/target/types/glam_config.ts +12 -2
  36. package/target/types/glam_mint-staging.ts +16 -186
  37. package/target/types/glam_mint.d.ts +16 -186
  38. package/target/types/glam_mint.ts +16 -186
  39. package/target/types/glam_policies.ts +6 -1
  40. package/target/types/glam_protocol-staging.ts +536 -7
  41. package/target/types/glam_protocol.d.ts +536 -7
  42. package/target/types/glam_protocol.ts +536 -7
  43. package/src/utils/glamApi.d.ts +0 -12
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@glamsystems/glam-sdk",
3
- "version": "1.0.11",
3
+ "version": "1.0.12-alpha.0",
4
4
  "description": "TypeScript SDK for the GLAM Protocol",
5
5
  "main": "./index.cjs.js",
6
6
  "module": "./index.esm.js",
@@ -2,7 +2,7 @@ import * as anchor from "@coral-xyz/anchor";
2
2
  import { BN } from "@coral-xyz/anchor";
3
3
  import { Wallet } from "@coral-xyz/anchor";
4
4
  import { AddressLookupTableAccount, Connection, Keypair, PublicKey, Transaction, TransactionInstruction, TransactionSignature, VersionedTransaction } from "@solana/web3.js";
5
- import { ExtCctpProgram, ExtDriftProgram, ExtKaminoProgram, ExtMarinadeProgram, ExtSplProgram, ExtStakePoolProgram, GlamMintProgram, GlamProtocolProgram } from "../glamExports";
5
+ import { ExtCctpProgram, ExtDriftProgram, ExtKaminoProgram, ExtMarinadeProgram, ExtOffchainProgram, ExtSplProgram, ExtStakePoolProgram, GlamMintProgram, GlamProtocolProgram } from "../glamExports";
6
6
  import { ClusterNetwork, GlamClientConfig } from "../clientConfig";
7
7
  import { RequestQueue, StateAccount, StateModel } from "../models";
8
8
  import { BlockhashWithCache } from "../utils/blockhash";
@@ -34,6 +34,8 @@ export declare class BaseClient {
34
34
  blockhashWithCache: BlockhashWithCache;
35
35
  jupiterApiKey?: string;
36
36
  jupiterApiClient?: JupiterApiClient;
37
+ onSentListeners: Set<(sig: string) => void>;
38
+ readonly staging: boolean;
37
39
  private _protocolProgram?;
38
40
  private _mintProgram?;
39
41
  private _extSplProgram?;
@@ -42,6 +44,7 @@ export declare class BaseClient {
42
44
  private _extMarinadeProgram?;
43
45
  private _extStakePoolProgram?;
44
46
  private _extCctpProgram?;
47
+ private _extOffchainProgram?;
45
48
  private _statePda?;
46
49
  constructor(config?: GlamClientConfig);
47
50
  get protocolProgram(): GlamProtocolProgram;
@@ -52,6 +55,7 @@ export declare class BaseClient {
52
55
  get extMarinadeProgram(): ExtMarinadeProgram;
53
56
  get extStakePoolProgram(): ExtStakePoolProgram;
54
57
  get extCctpProgram(): ExtCctpProgram;
58
+ get extOffchainProgram(): ExtOffchainProgram;
55
59
  get isVaultConnected(): boolean;
56
60
  get statePda(): PublicKey;
57
61
  set statePda(statePda: PublicKey);
@@ -6,6 +6,8 @@ declare class TxBuilder extends BaseTxBuilder<FeesClient> {
6
6
  crystallizeFeesTx(txOptions?: TxOptions): Promise<VersionedTransaction>;
7
7
  claimFeesIxs(glamSigner: PublicKey): Promise<TransactionInstruction[]>;
8
8
  claimFeesTx(txOptions?: TxOptions): Promise<VersionedTransaction>;
9
+ chargeProtocolFeeIxs(glamSigner: PublicKey): Promise<TransactionInstruction[]>;
10
+ chargeProtocolFeeTx(txOptions?: TxOptions): Promise<VersionedTransaction>;
9
11
  setProtocolFeesIx(baseFeeBps: number, flowFeeBps: number, signer?: PublicKey): Promise<TransactionInstruction>;
10
12
  setProtocolFeesTx(baseFeeBps: number, flowFeeBps: number, txOptions?: TxOptions): Promise<VersionedTransaction>;
11
13
  }
@@ -24,6 +26,7 @@ export declare class FeesClient {
24
26
  getClaimedFees(): Promise<any>;
25
27
  crystallizeFees(txOptions?: TxOptions): Promise<TransactionSignature>;
26
28
  claimFees(txOptions?: TxOptions): Promise<TransactionSignature>;
29
+ chargeProtocolFee(txOptions?: TxOptions): Promise<TransactionSignature>;
27
30
  setProtocolFees(baseFeeBps: number, flowFeeBps: number, txOptions?: TxOptions): Promise<TransactionSignature>;
28
31
  }
29
32
  export {};
@@ -1,6 +1,7 @@
1
1
  import { BN } from "@coral-xyz/anchor";
2
2
  import { PublicKey, TransactionInstruction, VersionedTransaction } from "@solana/web3.js";
3
3
  import { BaseClient, BaseTxBuilder, TokenAccount, TxOptions } from "./base";
4
+ import { PriceClient } from "./price";
4
5
  import { MintIdlModel, RequestType, StateAccountType } from "../models";
5
6
  import { UpdateStateParams } from "./state";
6
7
  export type InitMintParams = {
@@ -34,6 +35,7 @@ declare class TxBuilder extends BaseTxBuilder<MintClient> {
34
35
  forceTransferTx(from: PublicKey, to: PublicKey, amount: BN, forceThaw?: boolean, txOptions?: TxOptions): Promise<VersionedTransaction>;
35
36
  initializeIxs(initMintParams: InitMintParams, stateParams: UpdateStateParams | null, glamSigner: PublicKey): Promise<[TransactionInstruction[], PublicKey]>;
36
37
  initializeTx(initMintParams: InitMintParams, stateParams: UpdateStateParams | null, txOptions?: TxOptions): Promise<[VersionedTransaction, PublicKey]>;
38
+ crystallizeFeesIxs(glamSigner: PublicKey): Promise<TransactionInstruction[]>;
37
39
  updateIx(mintModel: Partial<MintIdlModel>, glamSigner: PublicKey): Promise<TransactionInstruction>;
38
40
  updateTx(mintModel: Partial<MintIdlModel>, txOptions?: TxOptions): Promise<VersionedTransaction>;
39
41
  emergencyUpdateIx(requestType: RequestType, setPaused: boolean, glamSigner: PublicKey): Promise<TransactionInstruction>;
@@ -46,8 +48,10 @@ declare class TxBuilder extends BaseTxBuilder<MintClient> {
46
48
  }
47
49
  export declare class MintClient {
48
50
  readonly base: BaseClient;
51
+ private readonly getPrice?;
49
52
  readonly txBuilder: TxBuilder;
50
- constructor(base: BaseClient);
53
+ constructor(base: BaseClient, getPrice?: (() => PriceClient) | undefined);
54
+ get price(): PriceClient;
51
55
  /**
52
56
  * Fetches token holders of the GLAM mint using helius RPC
53
57
  */
@@ -58,11 +58,12 @@ export declare class PriceClient {
58
58
  readonly kvaults: KaminoVaultsClient;
59
59
  readonly drift: DriftProtocolClient;
60
60
  readonly dvaults: DriftVaultsClient;
61
- readonly jupiterApi: JupiterApiClient;
61
+ private readonly getJupiterApi;
62
62
  private _stateModel;
63
63
  private _lookupTables;
64
64
  private _kaminoVaults;
65
- constructor(base: BaseClient, klend: KaminoLendingClient, kvaults: KaminoVaultsClient, drift: DriftProtocolClient, dvaults: DriftVaultsClient, jupiterApi: JupiterApiClient);
65
+ constructor(base: BaseClient, klend: KaminoLendingClient, kvaults: KaminoVaultsClient, drift: DriftProtocolClient, dvaults: DriftVaultsClient, getJupiterApi: () => JupiterApiClient);
66
+ get jupiterApi(): JupiterApiClient;
66
67
  get cachedStateModel(): StateModel | null;
67
68
  set cachedStateModel(stateModel: StateModel);
68
69
  get lookupTables(): PublicKey[];
@@ -25,4 +25,5 @@ export type GlamClientConfig = {
25
25
  statePda?: PublicKey;
26
26
  jupiterApiKey?: string;
27
27
  jupiterApiClient?: JupiterApiClient;
28
+ useStaging?: boolean;
28
29
  };
@@ -64,7 +64,7 @@ export declare const DRIFT_POOL_MAPPING: Record<number, string>;
64
64
  *
65
65
  * This method provides the source of truth for protocol and permission mappings and staging status in SDK.
66
66
  */
67
- export declare const getProtocolsAndPermissions: () => Record<string, Record<string, {
67
+ export declare const getProtocolsAndPermissions: (staging: boolean) => Record<string, Record<string, {
68
68
  name: string;
69
69
  staging: boolean;
70
70
  permissions: Record<number, string>;
@@ -72,8 +72,8 @@ export declare const getProtocolsAndPermissions: () => Record<string, Record<str
72
72
  /**
73
73
  * (Program ID, Bitflag) -> Protocol Name
74
74
  */
75
- export declare const getProtocolNameByProgramAndBitflag: () => Record<string, Record<string, string>>;
75
+ export declare const getProtocolNameByProgramAndBitflag: (staging: boolean) => Record<string, Record<string, string>>;
76
76
  /**
77
77
  * Protocol Name -> (Program ID, Bitflag)
78
78
  */
79
- export declare const getProgramAndBitflagByProtocolName: () => Record<string, [string, string]>;
79
+ export declare const getProgramAndBitflagByProtocolName: (staging: boolean) => Record<string, [string, string]>;
@@ -39,8 +39,10 @@ export declare class DriftProtocolPolicy {
39
39
  spotMarketsAllowlist: number[];
40
40
  perpMarketsAllowlist: number[];
41
41
  borrowAllowlist: PublicKey[];
42
+ orderPriceToleranceBps: number;
42
43
  static _layout: any;
43
- constructor(spotMarketsAllowlist: number[], perpMarketsAllowlist: number[], borrowAllowlist: PublicKey[]);
44
+ static _legacyLayout: any;
45
+ constructor(spotMarketsAllowlist: number[], perpMarketsAllowlist: number[], borrowAllowlist: PublicKey[], orderPriceToleranceBps?: number);
44
46
  static decode(buffer: Buffer<ArrayBufferLike>): DriftProtocolPolicy;
45
47
  encode(): Buffer;
46
48
  }
@@ -73,3 +75,29 @@ export declare class CctpPolicy {
73
75
  encode(): Buffer;
74
76
  get domainToAddressesMap(): Map<number, PublicKey[]>;
75
77
  }
78
+ export declare enum PeriodType {
79
+ Day = 0,
80
+ Week = 1,
81
+ Month = 2
82
+ }
83
+ export interface AssetRateLimit {
84
+ mint: PublicKey;
85
+ periodType: number;
86
+ amount: BN;
87
+ }
88
+ export interface DelegateRateLimit {
89
+ delegate: PublicKey;
90
+ limits: AssetRateLimit[];
91
+ }
92
+ export declare class TransferRateLimitPolicy {
93
+ vaultDefaults: AssetRateLimit[];
94
+ delegateOverrides: DelegateRateLimit[];
95
+ static _layout: any;
96
+ constructor(vaultDefaults: AssetRateLimit[], delegateOverrides: DelegateRateLimit[]);
97
+ static decode(buffer: Buffer<ArrayBufferLike>): TransferRateLimitPolicy;
98
+ encode(): Buffer;
99
+ /**
100
+ * Derive the TransferTracker PDA address for a given vault state, signer, and mint.
101
+ */
102
+ static getTransferTrackerPda(glamState: PublicKey, signer: PublicKey, mint: PublicKey, programId: PublicKey): [PublicKey, number];
103
+ }