@glamsystems/glam-sdk 1.1.0-alpha.0 → 1.1.0-alpha.2
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.
- package/index.cjs.js +4898 -1183
- package/index.esm.js +4890 -1172
- package/package.json +2 -2
- package/target/idl/glam_mint-staging.json +236 -0
- package/target/idl/glam_protocol-staging.json +5 -0
- package/target/idl/glam_protocol.json +5 -0
- package/target/types/glam_mint-staging.ts +236 -0
- package/target/types/glam_protocol-staging.ts +5 -0
- package/target/types/glam_protocol.ts +5 -0
- package/src/assets.d.ts +0 -39
- package/src/client/access.d.ts +0 -57
- package/src/client/base.d.ts +0 -184
- package/src/client/bridge.d.ts +0 -183
- package/src/client/bridgeRegistry.d.ts +0 -32
- package/src/client/cctp.d.ts +0 -156
- package/src/client/epi.d.ts +0 -78
- package/src/client/fees.d.ts +0 -33
- package/src/client/invest.d.ts +0 -37
- package/src/client/jupiter.d.ts +0 -45
- package/src/client/kamino/farm.d.ts +0 -39
- package/src/client/kamino/index.d.ts +0 -4
- package/src/client/kamino/lending.d.ts +0 -86
- package/src/client/kamino/types.d.ts +0 -56
- package/src/client/kamino/vaults.d.ts +0 -31
- package/src/client/loopscale.d.ts +0 -84
- package/src/client/marinade.d.ts +0 -42
- package/src/client/mint.d.ts +0 -127
- package/src/client/neutral.d.ts +0 -111
- package/src/client/price.d.ts +0 -137
- package/src/client/stake-pool.d.ts +0 -39
- package/src/client/stake.d.ts +0 -34
- package/src/client/state.d.ts +0 -56
- package/src/client/timelock.d.ts +0 -31
- package/src/client/vault.d.ts +0 -90
- package/src/client.d.ts +0 -68
- package/src/clientConfig.d.ts +0 -29
- package/src/constants.d.ts +0 -84
- package/src/deser/base.d.ts +0 -18
- package/src/deser/index.d.ts +0 -3
- package/src/deser/integrationPolicies.d.ts +0 -120
- package/src/deser/kaminoLayouts.d.ts +0 -264
- package/src/deser/tokenAclLayouts.d.ts +0 -67
- package/src/error.d.ts +0 -29
- package/src/glamExports.d.ts +0 -5116
- package/src/globalConfig.d.ts +0 -27
- package/src/index.d.ts +0 -20
- package/src/models/acl.d.ts +0 -43
- package/src/models/index.d.ts +0 -8
- package/src/models/mint.d.ts +0 -64
- package/src/models/state.d.ts +0 -104
- package/src/models/types.d.ts +0 -28
- package/src/react/cluster-provider.d.ts +0 -22
- package/src/react/glam.d.ts +0 -47
- package/src/react/index.d.ts +0 -5
- package/src/react/query-keys.d.ts +0 -38
- package/src/react/useVaultBalanceSubscription.d.ts +0 -17
- package/src/utils/accounts.d.ts +0 -72
- package/src/utils/bitmask.d.ts +0 -53
- package/src/utils/blockhash.d.ts +0 -11
- package/src/utils/common.d.ts +0 -37
- package/src/utils/computeBudget.d.ts +0 -15
- package/src/utils/evm.d.ts +0 -10
- package/src/utils/fraction.d.ts +0 -29
- package/src/utils/glamPDAs.d.ts +0 -15
- package/src/utils/index.d.ts +0 -16
- package/src/utils/jupiterApi.d.ts +0 -89
- package/src/utils/lookupTables.d.ts +0 -53
- package/src/utils/pkmap.d.ts +0 -87
- package/src/utils/pkset.d.ts +0 -73
- package/src/utils/positionCategorizer.d.ts +0 -36
- package/src/utils/rpc.d.ts +0 -33
- package/src/utils/timelock.d.ts +0 -52
- package/src/utils/transaction.d.ts +0 -13
- package/target/types/ext_bridge.d.ts +0 -2385
- package/target/types/ext_cctp.d.ts +0 -1268
- package/target/types/ext_epi.d.ts +0 -2175
- package/target/types/ext_kamino.d.ts +0 -3433
- package/target/types/ext_loopscale.d.ts +0 -3547
- package/target/types/ext_marinade.d.ts +0 -1593
- package/target/types/ext_neutral.d.ts +0 -1786
- package/target/types/ext_spl.d.ts +0 -1274
- package/target/types/ext_stake_pool.d.ts +0 -1622
- package/target/types/glam_config.d.ts +0 -755
- package/target/types/glam_mint.d.ts +0 -6106
- package/target/types/glam_protocol.d.ts +0 -2708
package/src/client/neutral.d.ts
DELETED
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import { BN } from "@coral-xyz/anchor";
|
|
2
|
-
import { PublicKey, TransactionInstruction, TransactionSignature, VersionedTransaction } from "@solana/web3.js";
|
|
3
|
-
import { BaseClient, BaseTxBuilder, TxOptions } from "./base";
|
|
4
|
-
import { NeutralPolicy } from "../deser/integrationPolicies";
|
|
5
|
-
export declare const NEUTRAL_PROTOCOL = 1;
|
|
6
|
-
export declare const NEUTRAL_BUNDLE_DISCRIMINATOR: Buffer<ArrayBuffer>;
|
|
7
|
-
export type InitializeBundleDepositorAccounts = {
|
|
8
|
-
bundle: PublicKey;
|
|
9
|
-
userBundleAccount?: PublicKey;
|
|
10
|
-
};
|
|
11
|
-
export type RequestDepositAccounts = {
|
|
12
|
-
bundle: PublicKey;
|
|
13
|
-
userTokenAccount?: PublicKey;
|
|
14
|
-
pendingDepositTokenAccount?: PublicKey;
|
|
15
|
-
treasuryAccount?: PublicKey;
|
|
16
|
-
userBundleAccount?: PublicKey;
|
|
17
|
-
assetAddress?: PublicKey;
|
|
18
|
-
oracleData?: PublicKey;
|
|
19
|
-
bundleTempData?: PublicKey;
|
|
20
|
-
pendingBundleAssetAuthority?: PublicKey;
|
|
21
|
-
tokenProgram?: PublicKey;
|
|
22
|
-
};
|
|
23
|
-
export type NeutralBundleView = {
|
|
24
|
-
treasuryAccount: PublicKey;
|
|
25
|
-
assetAddress: PublicKey;
|
|
26
|
-
assetDecimals: number;
|
|
27
|
-
permissioned: boolean;
|
|
28
|
-
};
|
|
29
|
-
export declare class NeutralBundleAccount {
|
|
30
|
-
readonly _address: PublicKey;
|
|
31
|
-
discriminator: number[];
|
|
32
|
-
name: number[];
|
|
33
|
-
manager: PublicKey;
|
|
34
|
-
keeper: PublicKey;
|
|
35
|
-
treasuryAccount: PublicKey;
|
|
36
|
-
allocatedReceivers: PublicKey[];
|
|
37
|
-
bundleUnderlyingBalance: BN;
|
|
38
|
-
maxDepositAmount: BN;
|
|
39
|
-
withdrawalDelay: BN;
|
|
40
|
-
performanceFee: number;
|
|
41
|
-
managementFeeBps: number;
|
|
42
|
-
depositFee: number;
|
|
43
|
-
withdrawalFee: number;
|
|
44
|
-
managerPfeeShares: BN;
|
|
45
|
-
currentAllocationBps: number;
|
|
46
|
-
oracleBuffer: BN;
|
|
47
|
-
totalShares: BN;
|
|
48
|
-
assetPrecision: BN;
|
|
49
|
-
assetAddress: PublicKey;
|
|
50
|
-
assetDecimals: number;
|
|
51
|
-
withdrawalTMin: BN;
|
|
52
|
-
withdrawalTMax: BN;
|
|
53
|
-
withdrawalCurve: number;
|
|
54
|
-
permissionned: boolean;
|
|
55
|
-
managerMfeeShares: BN;
|
|
56
|
-
minDepositAmount: BN;
|
|
57
|
-
oracleUpdateTimeLimit: BN;
|
|
58
|
-
oracleMaxAge: BN;
|
|
59
|
-
withdrawalRedemptionRequestCutoffTs: BN;
|
|
60
|
-
withdrawalRedemptionUnlockCurrentCycleTs: BN;
|
|
61
|
-
withdrawalRedemptionUnlockNextCycleTs: BN;
|
|
62
|
-
padding: number[];
|
|
63
|
-
static _layout: any;
|
|
64
|
-
static decode(address: PublicKey, buffer: Buffer): NeutralBundleAccount;
|
|
65
|
-
getAddress(): PublicKey;
|
|
66
|
-
get permissioned(): boolean;
|
|
67
|
-
toView(): NeutralBundleView;
|
|
68
|
-
}
|
|
69
|
-
export declare function getNeutralUserBundlePda(authority: PublicKey, bundle: PublicKey): PublicKey;
|
|
70
|
-
export declare function getNeutralOracleDataPda(bundle: PublicKey): PublicKey;
|
|
71
|
-
export declare function getNeutralBundleTempDataPda(bundle: PublicKey): PublicKey;
|
|
72
|
-
export declare function getNeutralPendingBundleAssetAuthorityPda(bundle: PublicKey): PublicKey;
|
|
73
|
-
export declare function getNeutralPendingDepositTokenAccountPda(pendingBundleAssetAuthority: PublicKey, assetAddress: PublicKey): PublicKey;
|
|
74
|
-
declare class TxBuilder extends BaseTxBuilder<NeutralClient> {
|
|
75
|
-
setNeutralPolicyIx(policy: NeutralPolicy, signer?: PublicKey): Promise<TransactionInstruction>;
|
|
76
|
-
setNeutralPolicyTx(policy: NeutralPolicy, txOptions?: TxOptions): Promise<VersionedTransaction>;
|
|
77
|
-
initializeBundleDepositorIx(accounts: InitializeBundleDepositorAccounts, signer?: PublicKey): Promise<TransactionInstruction>;
|
|
78
|
-
initializeBundleDepositorTx(accounts: InitializeBundleDepositorAccounts, txOptions?: TxOptions): Promise<VersionedTransaction>;
|
|
79
|
-
initializePermissionedBundleDepositorIx(accounts: InitializeBundleDepositorAccounts, signer?: PublicKey): Promise<TransactionInstruction>;
|
|
80
|
-
initializePermissionedBundleDepositorTx(accounts: InitializeBundleDepositorAccounts, txOptions?: TxOptions): Promise<VersionedTransaction>;
|
|
81
|
-
requestDepositIx(accounts: RequestDepositAccounts, amount: BN | bigint | number | string, signer?: PublicKey): Promise<TransactionInstruction>;
|
|
82
|
-
requestDepositTx(accounts: RequestDepositAccounts, amount: BN | bigint | number | string, txOptions?: TxOptions): Promise<VersionedTransaction>;
|
|
83
|
-
}
|
|
84
|
-
export declare class NeutralClient {
|
|
85
|
-
readonly base: BaseClient;
|
|
86
|
-
readonly txBuilder: TxBuilder;
|
|
87
|
-
constructor(base: BaseClient);
|
|
88
|
-
baseAccounts(signer?: PublicKey): {
|
|
89
|
-
glamState: PublicKey;
|
|
90
|
-
glamVault: PublicKey;
|
|
91
|
-
glamSigner: PublicKey;
|
|
92
|
-
integrationAuthority: PublicKey;
|
|
93
|
-
cpiProgram: PublicKey;
|
|
94
|
-
glamProtocolProgram: PublicKey;
|
|
95
|
-
systemProgram: PublicKey;
|
|
96
|
-
};
|
|
97
|
-
getIntegrationAuthorityPda(): PublicKey;
|
|
98
|
-
getUserBundlePda(bundle: PublicKey): PublicKey;
|
|
99
|
-
getOracleDataPda(bundle: PublicKey): PublicKey;
|
|
100
|
-
getBundleTempDataPda(bundle: PublicKey): PublicKey;
|
|
101
|
-
getPendingBundleAssetAuthorityPda(bundle: PublicKey): PublicKey;
|
|
102
|
-
fetchBundle(bundle: PublicKey): Promise<NeutralBundleAccount>;
|
|
103
|
-
fetchPolicy(): Promise<NeutralPolicy | null>;
|
|
104
|
-
setPolicy(policy: NeutralPolicy, txOptions?: TxOptions): Promise<TransactionSignature>;
|
|
105
|
-
allowlistBundle(bundle: PublicKey, txOptions?: TxOptions): Promise<TransactionSignature>;
|
|
106
|
-
initializeBundleDepositor(bundle: PublicKey, txOptions?: TxOptions): Promise<TransactionSignature>;
|
|
107
|
-
initializePermissionedBundleDepositor(bundle: PublicKey, txOptions?: TxOptions): Promise<TransactionSignature>;
|
|
108
|
-
requestDeposit(bundle: PublicKey, amount: BN | bigint | number | string, txOptions?: TxOptions): Promise<TransactionSignature>;
|
|
109
|
-
requestDepositUiAmount(bundle: PublicKey, amount: number | string, txOptions?: TxOptions): Promise<TransactionSignature>;
|
|
110
|
-
}
|
|
111
|
-
export {};
|
package/src/client/price.d.ts
DELETED
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
import { AccountMeta, Commitment, PublicKey, TransactionInstruction } from "@solana/web3.js";
|
|
2
|
-
import { BN } from "@coral-xyz/anchor";
|
|
3
|
-
import { KaminoLendingClient, KaminoVaultsClient } from "./kamino";
|
|
4
|
-
import { BaseClient } from "./base";
|
|
5
|
-
import { StateModel } from "../models";
|
|
6
|
-
import { PkMap, PkSet } from "../utils";
|
|
7
|
-
import { KVaultState, Reserve } from "../deser";
|
|
8
|
-
import { JupiterApiClient, TokenListItem } from "../utils/jupiterApi";
|
|
9
|
-
import { BridgeClient } from "./bridge";
|
|
10
|
-
import { EpiClient } from "./epi";
|
|
11
|
-
/**
|
|
12
|
-
* Represents a single asset holding within a vault.
|
|
13
|
-
*
|
|
14
|
-
* @param mintAddress - The SPL token mint address of the held asset
|
|
15
|
-
* @param decimals - Number of decimal places for the token (e.g., 6 for USDC, 9 for SOL)
|
|
16
|
-
* @param amount - Unsigned token amount in native units; direction (deposit/borrow) is in protocolMeta
|
|
17
|
-
* @param price - Current price of the asset denominated in the base asset (e.g., USD, SOL)
|
|
18
|
-
* @param priceMeta - Additional pricing context (e.g., source, slot, base asset). Default base asset, if not specified, is USD.
|
|
19
|
-
* @param protocol - Protocol identifier where the asset is allocated
|
|
20
|
-
* @param protocolMeta - Protocol-specific metadata (e.g., market index, position direction, reserve address)
|
|
21
|
-
*/
|
|
22
|
-
export declare class Holding {
|
|
23
|
-
readonly mintAddress: PublicKey;
|
|
24
|
-
readonly decimals: number;
|
|
25
|
-
readonly amount: BN;
|
|
26
|
-
readonly price: number;
|
|
27
|
-
readonly priceMeta: Record<string, any>;
|
|
28
|
-
readonly protocol: string;
|
|
29
|
-
readonly protocolMeta: Record<string, any>;
|
|
30
|
-
readonly uiAmount: number;
|
|
31
|
-
constructor(mintAddress: PublicKey, decimals: number, amount: BN, price: number, priceMeta: Record<string, any> | undefined, protocol: string, protocolMeta?: Record<string, any>);
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Aggregates all holdings for a GLAM vault.
|
|
35
|
-
* Includes token balances and supported DeFi positions.
|
|
36
|
-
*
|
|
37
|
-
* @param vaultState - The vault's state account address (stores vault configuration)
|
|
38
|
-
* @param vaultPda - The vault's PDA that holds tokens and positions
|
|
39
|
-
* @param priceBaseAssetMint - The base asset mint used for pricing (e.g., PublicKey.default for USD, So11111111111111111111111111111111111111112 for SOL)
|
|
40
|
-
* @param slot - The Solana slot at which holdings were fetched
|
|
41
|
-
* @param timestamp - Unix timestamp (seconds) when holdings were fetched
|
|
42
|
-
* @param commitment - The Solana commitment level used for fetching account data
|
|
43
|
-
*/
|
|
44
|
-
export declare class VaultHoldings {
|
|
45
|
-
readonly vaultState: PublicKey;
|
|
46
|
-
readonly vaultPda: PublicKey;
|
|
47
|
-
readonly priceBaseAssetMint: PublicKey;
|
|
48
|
-
readonly slot: number;
|
|
49
|
-
readonly timestamp: number;
|
|
50
|
-
readonly commitment: Commitment;
|
|
51
|
-
holdings: Holding[];
|
|
52
|
-
constructor(vaultState: PublicKey, vaultPda: PublicKey, priceBaseAssetMint: PublicKey, slot: number, timestamp: number, commitment: Commitment);
|
|
53
|
-
add(holding: Holding): void;
|
|
54
|
-
toJson(): string;
|
|
55
|
-
}
|
|
56
|
-
type PricingChunk = {
|
|
57
|
-
ixs: TransactionInstruction[];
|
|
58
|
-
kaminoReserves: PublicKey[];
|
|
59
|
-
};
|
|
60
|
-
export declare class PriceClient {
|
|
61
|
-
readonly base: BaseClient;
|
|
62
|
-
readonly klend: KaminoLendingClient;
|
|
63
|
-
readonly kvaults: KaminoVaultsClient;
|
|
64
|
-
readonly bridge: BridgeClient;
|
|
65
|
-
readonly epi: EpiClient;
|
|
66
|
-
private readonly getJupiterApi;
|
|
67
|
-
private _stateModel;
|
|
68
|
-
private _lookupTables;
|
|
69
|
-
private _kaminoVaults;
|
|
70
|
-
private _priceVaultIxsQueue;
|
|
71
|
-
constructor(base: BaseClient, klend: KaminoLendingClient, kvaults: KaminoVaultsClient, bridge: BridgeClient, epi: EpiClient, getJupiterApi: () => JupiterApiClient);
|
|
72
|
-
get jupiterApi(): JupiterApiClient;
|
|
73
|
-
get cachedStateModel(): StateModel | null;
|
|
74
|
-
set cachedStateModel(stateModel: StateModel);
|
|
75
|
-
get lookupTables(): PublicKey[];
|
|
76
|
-
get kaminoVaults(): PublicKey[];
|
|
77
|
-
private getKaminoObligationReserveSets;
|
|
78
|
-
/**
|
|
79
|
-
* Fetches all holdings in the vault.
|
|
80
|
-
*
|
|
81
|
-
* The source of truth for external positions is the `externalPositions` array
|
|
82
|
-
* from the state account, which tracks:
|
|
83
|
-
* - Kamino obligation accounts (lending positions)
|
|
84
|
-
* - Kamino vault share ATAs (shares in kamino vaults)
|
|
85
|
-
*
|
|
86
|
-
* @param commitment Commitment level for fetching accounts
|
|
87
|
-
* @param priceBaseAssetMint Price reference/numeraire asset mint (default: PublicKey.default for USD).
|
|
88
|
-
* Pass a token mint (e.g., WSOL) to get prices denominated in that asset.
|
|
89
|
-
* @returns VaultHoldings object containing all holdings
|
|
90
|
-
*/
|
|
91
|
-
getVaultHoldings(commitment: Commitment, priceBaseAssetMint?: PublicKey): Promise<VaultHoldings>;
|
|
92
|
-
getPubkeysForTokenHoldings(externalPositionsSet: PkSet, commitment?: Commitment): Promise<PublicKey[]>;
|
|
93
|
-
/**
|
|
94
|
-
* Gets kamino obligation reserves from known obligation pubkeys.
|
|
95
|
-
*/
|
|
96
|
-
getPubkeysForKaminoHoldings(obligationPubkeys: PublicKey[], commitment?: Commitment): Promise<PkMap<PkSet>>;
|
|
97
|
-
/**
|
|
98
|
-
* Gets kamino vault states from known share ATA pubkeys.
|
|
99
|
-
* Used by getVaultHoldingsV2 to process vault shares from externalPositions.
|
|
100
|
-
*/
|
|
101
|
-
getKaminoVaultStatesFromAtas(shareAtaPubkeys: PublicKey[], commitment?: Commitment): Promise<PkMap<KVaultState>>;
|
|
102
|
-
/**
|
|
103
|
-
* Fetches token price from the prefetched map, falling back to Jupiter API if not found.
|
|
104
|
-
* @throws Error if price cannot be fetched from either source
|
|
105
|
-
*/
|
|
106
|
-
private getTokenPrice;
|
|
107
|
-
getTokenHoldings(tokenAccountPubkeys: PublicKey[], accountsDataMap: PkMap<Buffer>, tokenPricesMap: PkMap<TokenListItem>, priceSource: string): Promise<Holding[]>;
|
|
108
|
-
getKaminoLendHoldings(obligationPubkeys: Iterable<PublicKey>, reservesMap: PkMap<Reserve>, accountsDataMap: PkMap<Buffer>, tokenPricesMap: PkMap<TokenListItem>, priceSource: string): Promise<Holding[]>;
|
|
109
|
-
getKaminoVaultsHoldings(kvaultAtasAndStates: PkMap<KVaultState>, reservesMap: PkMap<Reserve>, accountsDataMap: PkMap<Buffer>, tokenPricesMap: PkMap<TokenListItem>, priceSource: string): Promise<Holding[]>;
|
|
110
|
-
/**
|
|
111
|
-
* Returns an instruction that prices Kamino obligations.
|
|
112
|
-
* If there are no Kamino obligations, returns null.
|
|
113
|
-
*/
|
|
114
|
-
priceKaminoObligationsIxs(): Promise<PricingChunk>;
|
|
115
|
-
priceKaminoVaultSharesIx(): Promise<PricingChunk | null>;
|
|
116
|
-
/**
|
|
117
|
-
* Returns an instruction that prices vault balance and tokens
|
|
118
|
-
*/
|
|
119
|
-
priceVaultTokensIx(): Promise<PricingChunk>;
|
|
120
|
-
/**
|
|
121
|
-
* Returns an instruction that prices stake accounts.
|
|
122
|
-
* If there are no stake accounts, returns null.
|
|
123
|
-
*/
|
|
124
|
-
priceStakeAccountsIx(): Promise<TransactionInstruction | null>;
|
|
125
|
-
priceVaultIxs(): Promise<TransactionInstruction[]>;
|
|
126
|
-
private enqueuePriceVaultIxs;
|
|
127
|
-
private priceManagedTransfersIxs;
|
|
128
|
-
private priceEpiValidatedPositionsIx;
|
|
129
|
-
private _priceVaultIxsImpl;
|
|
130
|
-
validateAumIx(): Promise<TransactionInstruction>;
|
|
131
|
-
getBaseAssetOracle(): Promise<PublicKey>;
|
|
132
|
-
remainingAccountsForPricingVaultAssets(): Promise<[
|
|
133
|
-
AccountMeta[],
|
|
134
|
-
PublicKey[]
|
|
135
|
-
]>;
|
|
136
|
-
}
|
|
137
|
-
export {};
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { BN } from "@coral-xyz/anchor";
|
|
2
|
-
import { PublicKey, VersionedTransaction, TransactionSignature, TransactionInstruction } from "@solana/web3.js";
|
|
3
|
-
import { BaseClient, BaseTxBuilder, TxOptions } from "./base";
|
|
4
|
-
import { MarinadeClient } from "./marinade";
|
|
5
|
-
import { StakeClient } from "./stake";
|
|
6
|
-
interface StakePoolAccountData {
|
|
7
|
-
programId: PublicKey;
|
|
8
|
-
depositAuthority: PublicKey;
|
|
9
|
-
withdrawAuthority: PublicKey;
|
|
10
|
-
poolMint: PublicKey;
|
|
11
|
-
feeAccount: PublicKey;
|
|
12
|
-
reserveStake: PublicKey;
|
|
13
|
-
tokenProgramId: PublicKey;
|
|
14
|
-
validatorList: PublicKey;
|
|
15
|
-
}
|
|
16
|
-
declare class TxBuilder extends BaseTxBuilder<StakePoolClient> {
|
|
17
|
-
depositSolIxs(stakePool: PublicKey, lamports: BN, glamSigner: PublicKey): Promise<TransactionInstruction[]>;
|
|
18
|
-
depositSolTx(stakePool: PublicKey, lamports: BN, txOptions?: TxOptions): Promise<VersionedTransaction>;
|
|
19
|
-
depositStakeIxs(stakePool: PublicKey, stakeAccount: PublicKey, glamSigner: PublicKey): Promise<TransactionInstruction[]>;
|
|
20
|
-
depositStakeTx(stakePool: PublicKey, stakeAccount: PublicKey, txOptions?: TxOptions): Promise<VersionedTransaction>;
|
|
21
|
-
withdrawStakeIxs(stakePool: PublicKey, amount: BN, deactivate: boolean | undefined, glamSigner: PublicKey): Promise<[TransactionInstruction[], PublicKey]>;
|
|
22
|
-
withdrawStakeTx(stakePool: PublicKey, amount: BN, deactivate?: boolean, txOptions?: TxOptions): Promise<[VersionedTransaction, PublicKey]>;
|
|
23
|
-
}
|
|
24
|
-
export declare class StakePoolClient {
|
|
25
|
-
readonly base: BaseClient;
|
|
26
|
-
readonly stake: StakeClient;
|
|
27
|
-
readonly marinade: MarinadeClient;
|
|
28
|
-
readonly txBuilder: TxBuilder;
|
|
29
|
-
constructor(base: BaseClient, stake: StakeClient, marinade: MarinadeClient);
|
|
30
|
-
unstake(asset: PublicKey, amount: number | BN, deactivate?: boolean, txOptions?: TxOptions): Promise<TransactionSignature>;
|
|
31
|
-
depositSol(stakePool: PublicKey, amount: BN, txOptions?: TxOptions): Promise<TransactionSignature>;
|
|
32
|
-
depositStake(stakePool: PublicKey, stakeAccount: PublicKey, txOptions?: TxOptions): Promise<TransactionSignature>;
|
|
33
|
-
withdrawStake(stakePool: PublicKey, amount: BN, deactivate?: boolean, txOptions?: TxOptions): Promise<TransactionSignature>;
|
|
34
|
-
getStakePoolWithdrawAuthority(programId: PublicKey, stakePool: PublicKey): PublicKey;
|
|
35
|
-
getStakePoolDepositAuthority(programId: PublicKey, stakePool: PublicKey): PublicKey;
|
|
36
|
-
getStakeAccountVoter(stakeAccount: PublicKey): Promise<PublicKey | null>;
|
|
37
|
-
getStakePoolAccountData(stakePool: PublicKey): Promise<StakePoolAccountData>;
|
|
38
|
-
}
|
|
39
|
-
export {};
|
package/src/client/stake.d.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { BN } from "@coral-xyz/anchor";
|
|
2
|
-
import { PublicKey, VersionedTransaction, TransactionSignature, TransactionInstruction } from "@solana/web3.js";
|
|
3
|
-
import { BaseClient, BaseTxBuilder, TxOptions } from "./base";
|
|
4
|
-
declare class TxBuilder extends BaseTxBuilder<StakeClient> {
|
|
5
|
-
initializeAndDelegateStakeIxs(vote: PublicKey, amount: BN, glamSigner: PublicKey): Promise<[TransactionInstruction[], PublicKey]>;
|
|
6
|
-
initializeAndDelegateStakeTx(vote: PublicKey, amount: BN, txOptions?: TxOptions): Promise<[VersionedTransaction, PublicKey]>;
|
|
7
|
-
deactivateStakesIx(stakeAccounts: PublicKey[], glamSigner: PublicKey): Promise<TransactionInstruction>;
|
|
8
|
-
deactivateStakesTx(stakeAccounts: PublicKey[], txOptions?: TxOptions): Promise<VersionedTransaction>;
|
|
9
|
-
withdrawStakesIx(stakeAccounts: PublicKey[], glamSigner: PublicKey): Promise<TransactionInstruction>;
|
|
10
|
-
withdrawStakesTx(stakeAccounts: PublicKey[], txOptions?: TxOptions): Promise<VersionedTransaction>;
|
|
11
|
-
mergeStakeIx(destinationStake: PublicKey, sourceStake: PublicKey, glamSigner: PublicKey): Promise<TransactionInstruction>;
|
|
12
|
-
mergeStakeTx(destinationStake: PublicKey, sourceStake: PublicKey, txOptions?: TxOptions): Promise<VersionedTransaction>;
|
|
13
|
-
splitStakeIxs(existingStake: PublicKey, lamports: BN, glamSigner: PublicKey): Promise<[TransactionInstruction[], PublicKey]>;
|
|
14
|
-
splitStakeTx(existingStake: PublicKey, lamports: BN, txOptions?: TxOptions): Promise<[VersionedTransaction, PublicKey]>;
|
|
15
|
-
moveStakeIx(sourceStake: PublicKey, destinationStake: PublicKey, amount: BN, glamSigner: PublicKey): Promise<any>;
|
|
16
|
-
moveStakeTx(sourceStake: PublicKey, destinationStake: PublicKey, amount: BN, txOptions?: TxOptions): Promise<VersionedTransaction>;
|
|
17
|
-
}
|
|
18
|
-
export declare class StakeClient {
|
|
19
|
-
readonly base: BaseClient;
|
|
20
|
-
readonly txBuilder: TxBuilder;
|
|
21
|
-
constructor(base: BaseClient);
|
|
22
|
-
initializeAndDelegateStake(vote: PublicKey, amount: BN, txOptions?: TxOptions): Promise<TransactionSignature>;
|
|
23
|
-
deactivate(stakeAccounts: PublicKey[], txOptions?: TxOptions): Promise<TransactionSignature>;
|
|
24
|
-
withdraw(stakeAccounts: PublicKey[], txOptions?: TxOptions): Promise<TransactionSignature>;
|
|
25
|
-
merge(destinationStake: PublicKey, sourceStake: PublicKey, txOptions?: TxOptions): Promise<TransactionSignature>;
|
|
26
|
-
split(existingStake: PublicKey, lamports: BN, txOptions?: TxOptions): Promise<{
|
|
27
|
-
newStake: PublicKey;
|
|
28
|
-
txSig: TransactionSignature;
|
|
29
|
-
}>;
|
|
30
|
-
move(sourceStake: PublicKey, destinationStake: PublicKey, amount: BN, txOptions?: TxOptions): Promise<TransactionSignature>;
|
|
31
|
-
getStakeAccountVoter(stakeAccount: PublicKey): Promise<PublicKey | null>;
|
|
32
|
-
createStakeAccount(signer: PublicKey): Promise<[PublicKey, TransactionInstruction]>;
|
|
33
|
-
}
|
|
34
|
-
export {};
|
package/src/client/state.d.ts
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { VersionedTransaction, TransactionSignature, PublicKey, TransactionInstruction } from "@solana/web3.js";
|
|
2
|
-
import { BaseClient, BaseTxBuilder, TxOptions } from "./base";
|
|
3
|
-
import { StateIdlModel, StateAccountType } from "../models";
|
|
4
|
-
export type InitStateParams = {
|
|
5
|
-
accountType: StateAccountType;
|
|
6
|
-
name: number[];
|
|
7
|
-
baseAssetMint: PublicKey;
|
|
8
|
-
} & Partial<StateIdlModel>;
|
|
9
|
-
/**
|
|
10
|
-
* A subset of StateIdlModel fields that are updatable using updateState instruction
|
|
11
|
-
*/
|
|
12
|
-
export type UpdateStateParams = {
|
|
13
|
-
name?: number[];
|
|
14
|
-
owner?: PublicKey;
|
|
15
|
-
portfolioManagerName?: number[];
|
|
16
|
-
timelockDuration?: number;
|
|
17
|
-
assets?: PublicKey[];
|
|
18
|
-
borrowable?: PublicKey[];
|
|
19
|
-
};
|
|
20
|
-
declare class TxBuilder extends BaseTxBuilder<StateClient> {
|
|
21
|
-
initializeIx(params: InitStateParams, glamSigner: PublicKey): Promise<[TransactionInstruction, PublicKey]>;
|
|
22
|
-
initializeTx(params: InitStateParams, txOptions?: TxOptions): Promise<[VersionedTransaction, PublicKey]>;
|
|
23
|
-
updateIx(params: UpdateStateParams, glamSigner: PublicKey): Promise<TransactionInstruction>;
|
|
24
|
-
updateTx(params: UpdateStateParams, txOptions: TxOptions): Promise<VersionedTransaction>;
|
|
25
|
-
extendIx(newBytes: number, glamSigner: PublicKey): Promise<TransactionInstruction>;
|
|
26
|
-
extendTx(newBytes: number, txOptions?: TxOptions): Promise<VersionedTransaction>;
|
|
27
|
-
closeIx(glamSigner: PublicKey): Promise<TransactionInstruction>;
|
|
28
|
-
closeTx(txOptions?: TxOptions): Promise<VersionedTransaction>;
|
|
29
|
-
}
|
|
30
|
-
export declare class StateClient {
|
|
31
|
-
readonly base: BaseClient;
|
|
32
|
-
readonly txBuilder: TxBuilder;
|
|
33
|
-
constructor(base: BaseClient);
|
|
34
|
-
/**
|
|
35
|
-
* Creates a new GLAM state
|
|
36
|
-
*/
|
|
37
|
-
initialize(params: InitStateParams, txOptions?: TxOptions): Promise<TransactionSignature>;
|
|
38
|
-
/**
|
|
39
|
-
* Updates the GLAM state account.
|
|
40
|
-
*
|
|
41
|
-
* If no timelock , the updates will be applied immediately.
|
|
42
|
-
* If timelock is enabled, the updates will be staged and can be applied after the timelock period.
|
|
43
|
-
*
|
|
44
|
-
* Only the fields provided in `params` will be updated; omitted fields remain unchanged.
|
|
45
|
-
*/
|
|
46
|
-
update(params: UpdateStateParams, txOptions?: TxOptions): Promise<TransactionSignature>;
|
|
47
|
-
/**
|
|
48
|
-
* Extends GLAM state account size
|
|
49
|
-
*/
|
|
50
|
-
extend(newBytes: number, txOptions?: TxOptions): Promise<TransactionSignature>;
|
|
51
|
-
/**
|
|
52
|
-
* Closes GLAM state account
|
|
53
|
-
*/
|
|
54
|
-
close(txOptions?: TxOptions): Promise<TransactionSignature>;
|
|
55
|
-
}
|
|
56
|
-
export {};
|
package/src/client/timelock.d.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { VersionedTransaction, TransactionSignature, PublicKey, TransactionInstruction } from "@solana/web3.js";
|
|
2
|
-
import { BaseClient, BaseTxBuilder, TxOptions } from "./base";
|
|
3
|
-
import { StateClient } from "./state";
|
|
4
|
-
declare class TxBuilder extends BaseTxBuilder<TimelockClient> {
|
|
5
|
-
applyStateTimelockIx(glamSigner: PublicKey): Promise<TransactionInstruction>;
|
|
6
|
-
applyStateTimelockTx(txOptions?: TxOptions): Promise<VersionedTransaction>;
|
|
7
|
-
applyMintTimelockIx(glamSigner: PublicKey): Promise<TransactionInstruction>;
|
|
8
|
-
applyMintTimelockTx(txOptions?: TxOptions): Promise<VersionedTransaction>;
|
|
9
|
-
cancelTimelockIx(glamSigner: PublicKey): Promise<TransactionInstruction>;
|
|
10
|
-
cancelTimelockTx(txOptions?: TxOptions): Promise<VersionedTransaction>;
|
|
11
|
-
}
|
|
12
|
-
export declare class TimelockClient {
|
|
13
|
-
readonly base: BaseClient;
|
|
14
|
-
readonly stateClient: StateClient;
|
|
15
|
-
readonly txBuilder: TxBuilder;
|
|
16
|
-
constructor(base: BaseClient, stateClient: StateClient);
|
|
17
|
-
/**
|
|
18
|
-
* Sets the timelock duration in seconds
|
|
19
|
-
* @param durationSeconds Duration in seconds for timelock period
|
|
20
|
-
*/
|
|
21
|
-
set(durationSeconds: number, txOptions?: TxOptions): Promise<TransactionSignature>;
|
|
22
|
-
/**
|
|
23
|
-
* Applies pending timelock updates after timelock expires.
|
|
24
|
-
*/
|
|
25
|
-
apply(txOptions?: TxOptions): Promise<TransactionSignature>;
|
|
26
|
-
/**
|
|
27
|
-
* Cancels pending timelock updates
|
|
28
|
-
*/
|
|
29
|
-
cancel(txOptions?: TxOptions): Promise<TransactionSignature>;
|
|
30
|
-
}
|
|
31
|
-
export {};
|
package/src/client/vault.d.ts
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { BN } from "@coral-xyz/anchor";
|
|
2
|
-
import { PublicKey, VersionedTransaction, TransactionSignature, TransactionInstruction } from "@solana/web3.js";
|
|
3
|
-
import { BaseClient, BaseTxBuilder, TxOptions } from "./base";
|
|
4
|
-
declare class TxBuilder extends BaseTxBuilder<VaultClient> {
|
|
5
|
-
wrapIxs(amount: BN, glamSigner: PublicKey): Promise<TransactionInstruction[]>;
|
|
6
|
-
wrapTx(amount: BN, txOptions: TxOptions): Promise<VersionedTransaction>;
|
|
7
|
-
unwrapIx(glamSigner: PublicKey): Promise<TransactionInstruction>;
|
|
8
|
-
unwrapTx(txOptions: TxOptions): Promise<VersionedTransaction>;
|
|
9
|
-
systemTransferIx(amount: BN, to: PublicKey, glamSigner: PublicKey): Promise<TransactionInstruction>;
|
|
10
|
-
systemTransferTx(amount: BN, to: PublicKey, txOptions: TxOptions): Promise<VersionedTransaction>;
|
|
11
|
-
/**
|
|
12
|
-
* Returns an instruction that closes the specified vault token account
|
|
13
|
-
*/
|
|
14
|
-
closeTokenAccountIx(tokenAccount: PublicKey, tokenProgram: PublicKey, signer?: PublicKey): Promise<TransactionInstruction>;
|
|
15
|
-
closeTokenAccountsTx(pubkeys: PublicKey[], txOptions: TxOptions): Promise<VersionedTransaction>;
|
|
16
|
-
depositSolIxs(lamports: number | BN, wrap: boolean, glamSigner: PublicKey): Promise<TransactionInstruction[]>;
|
|
17
|
-
depositSolTx(lamports: number | BN, wrap?: boolean, txOptions?: TxOptions): Promise<VersionedTransaction>;
|
|
18
|
-
depositIxs(asset: PublicKey, amount: number | BN, glamSigner: PublicKey): Promise<TransactionInstruction[]>;
|
|
19
|
-
depositTx(asset: PublicKey, amount: number | BN, txOptions: TxOptions): Promise<VersionedTransaction>;
|
|
20
|
-
/**
|
|
21
|
-
* Transfers tokens held by the vault to the specified recipient
|
|
22
|
-
*/
|
|
23
|
-
tokenTransferIxs(mint: PublicKey, amount: number | BN, to: PublicKey, glamSigner: PublicKey): Promise<TransactionInstruction[]>;
|
|
24
|
-
tokenTransferTx(mint: PublicKey, amount: number | BN, to: PublicKey, txOptions: TxOptions): Promise<VersionedTransaction>;
|
|
25
|
-
}
|
|
26
|
-
export declare class VaultClient {
|
|
27
|
-
readonly base: BaseClient;
|
|
28
|
-
readonly txBuilder: TxBuilder;
|
|
29
|
-
constructor(base: BaseClient);
|
|
30
|
-
/**
|
|
31
|
-
* Wraps vault SOL to wSOL
|
|
32
|
-
*
|
|
33
|
-
* @param amount
|
|
34
|
-
* @param txOptions
|
|
35
|
-
*/
|
|
36
|
-
wrap(amount: BN | number, txOptions?: TxOptions): Promise<TransactionSignature>;
|
|
37
|
-
/**
|
|
38
|
-
* Unwraps vault wSOL to SOL
|
|
39
|
-
*
|
|
40
|
-
* @param txOptions
|
|
41
|
-
*/
|
|
42
|
-
unwrap(txOptions?: TxOptions): Promise<TransactionSignature>;
|
|
43
|
-
/**
|
|
44
|
-
* Transfers SOL from vault to another account
|
|
45
|
-
*
|
|
46
|
-
* @param amount
|
|
47
|
-
* @param to
|
|
48
|
-
* @param txOptions
|
|
49
|
-
*/
|
|
50
|
-
systemTransfer(amount: BN | number, to: PublicKey | string, txOptions?: TxOptions): Promise<TransactionSignature>;
|
|
51
|
-
/**
|
|
52
|
-
* Transfers token from vault to another account
|
|
53
|
-
*
|
|
54
|
-
* @param mint
|
|
55
|
-
* @param amount
|
|
56
|
-
* @param txOptions
|
|
57
|
-
*/
|
|
58
|
-
tokenTransfer(mint: PublicKey | string, amount: number | BN, to: PublicKey | string, txOptions?: TxOptions): Promise<TransactionSignature>;
|
|
59
|
-
/**
|
|
60
|
-
* Closes multiple vault token accounts
|
|
61
|
-
*
|
|
62
|
-
* @param tokenAccounts
|
|
63
|
-
* @param txOptions
|
|
64
|
-
*/
|
|
65
|
-
closeTokenAccounts(tokenAccounts: PublicKey[] | string[], txOptions?: TxOptions): Promise<TransactionSignature>;
|
|
66
|
-
/**
|
|
67
|
-
* Deposits token to vault
|
|
68
|
-
*
|
|
69
|
-
* @param mint Token mint
|
|
70
|
-
* @param amount
|
|
71
|
-
* @param txOptions
|
|
72
|
-
*/
|
|
73
|
-
deposit(mint: PublicKey | string, amount: number | BN, txOptions?: TxOptions): Promise<TransactionSignature>;
|
|
74
|
-
/**
|
|
75
|
-
* Deposits SOL to vault
|
|
76
|
-
*
|
|
77
|
-
* @param lamports
|
|
78
|
-
* @param wrap Whether to wrap SOL to wSOL or not
|
|
79
|
-
* @param txOptions
|
|
80
|
-
*/
|
|
81
|
-
depositSol(lamports: number | BN, wrap?: boolean, txOptions?: TxOptions): Promise<TransactionSignature>;
|
|
82
|
-
/**
|
|
83
|
-
* Generates instructions to wrap SOL into wSOL if the vault doesn't have enough wSOL
|
|
84
|
-
*
|
|
85
|
-
* @param lamports Desired amount of wSOL
|
|
86
|
-
* @returns Array of instructions, empty if wSOL is sufficient
|
|
87
|
-
*/
|
|
88
|
-
maybeWrapSol(lamports: number | BN, signer?: PublicKey): Promise<TransactionInstruction[]>;
|
|
89
|
-
}
|
|
90
|
-
export {};
|
package/src/client.d.ts
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { GlamClientConfig } from "./clientConfig";
|
|
2
|
-
import { BaseClient } from "./client/base";
|
|
3
|
-
import { JupiterSwapClient } from "./client/jupiter";
|
|
4
|
-
import { MarinadeClient } from "./client/marinade";
|
|
5
|
-
import { VaultClient } from "./client/vault";
|
|
6
|
-
import { StateClient } from "./client/state";
|
|
7
|
-
import { KaminoLendingClient, KaminoFarmClient, KaminoVaultsClient } from "./client/kamino";
|
|
8
|
-
import { InvestClient } from "./client/invest";
|
|
9
|
-
import { PriceClient } from "./client/price";
|
|
10
|
-
import { FeesClient } from "./client/fees";
|
|
11
|
-
import { MintClient } from "./client/mint";
|
|
12
|
-
import { AccessClient } from "./client/access";
|
|
13
|
-
import { TimelockClient } from "./client/timelock";
|
|
14
|
-
import { StakeClient } from "./client/stake";
|
|
15
|
-
import { StakePoolClient } from "./client/stake-pool";
|
|
16
|
-
import { CctpClient } from "./client/cctp";
|
|
17
|
-
import { BridgeClient } from "./client/bridge";
|
|
18
|
-
import { EpiClient } from "./client/epi";
|
|
19
|
-
import { LoopscaleClient } from "./client/loopscale";
|
|
20
|
-
import { NeutralClient } from "./client/neutral";
|
|
21
|
-
/**
|
|
22
|
-
* Main entrypoint for the GLAM SDK
|
|
23
|
-
*
|
|
24
|
-
* Lazy loads each client/module at first use
|
|
25
|
-
*/
|
|
26
|
-
export declare class GlamClient extends BaseClient {
|
|
27
|
-
private _invest?;
|
|
28
|
-
private _jupiterSwap?;
|
|
29
|
-
private _marinade?;
|
|
30
|
-
private _vault?;
|
|
31
|
-
private _price?;
|
|
32
|
-
private _stake?;
|
|
33
|
-
private _stakePool?;
|
|
34
|
-
private _state?;
|
|
35
|
-
private _mint?;
|
|
36
|
-
private _access?;
|
|
37
|
-
private _kaminoLending?;
|
|
38
|
-
private _kaminoFarm?;
|
|
39
|
-
private _kaminoVaults?;
|
|
40
|
-
private _fees?;
|
|
41
|
-
private _timelock?;
|
|
42
|
-
private _cctp?;
|
|
43
|
-
private _bridge?;
|
|
44
|
-
private _epi?;
|
|
45
|
-
private _loopscale?;
|
|
46
|
-
private _neutral?;
|
|
47
|
-
constructor(config?: GlamClientConfig);
|
|
48
|
-
get invest(): InvestClient;
|
|
49
|
-
get fees(): FeesClient;
|
|
50
|
-
get jupiterSwap(): JupiterSwapClient;
|
|
51
|
-
get marinade(): MarinadeClient;
|
|
52
|
-
get vault(): VaultClient;
|
|
53
|
-
get stake(): StakeClient;
|
|
54
|
-
get stakePool(): StakePoolClient;
|
|
55
|
-
get price(): PriceClient;
|
|
56
|
-
get state(): StateClient;
|
|
57
|
-
get access(): AccessClient;
|
|
58
|
-
get mint(): MintClient;
|
|
59
|
-
get kaminoLending(): KaminoLendingClient;
|
|
60
|
-
get kaminoFarm(): KaminoFarmClient;
|
|
61
|
-
get kaminoVaults(): KaminoVaultsClient;
|
|
62
|
-
get timelock(): TimelockClient;
|
|
63
|
-
get cctp(): CctpClient;
|
|
64
|
-
get bridge(): BridgeClient;
|
|
65
|
-
get epi(): EpiClient;
|
|
66
|
-
get loopscale(): LoopscaleClient;
|
|
67
|
-
get neutral(): NeutralClient;
|
|
68
|
-
}
|
package/src/clientConfig.d.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { Provider, Wallet } from "@coral-xyz/anchor";
|
|
2
|
-
import { PublicKey } from "@solana/web3.js";
|
|
3
|
-
import { JupiterApiClient } from "./utils";
|
|
4
|
-
export declare enum ClusterNetwork {
|
|
5
|
-
Mainnet = "mainnet-beta",
|
|
6
|
-
Testnet = "testnet",
|
|
7
|
-
Devnet = "devnet",
|
|
8
|
-
Localnet = "localnet",
|
|
9
|
-
Custom = "custom"
|
|
10
|
-
}
|
|
11
|
-
export declare namespace ClusterNetwork {
|
|
12
|
-
function fromStr(cluster: string): ClusterNetwork;
|
|
13
|
-
/**
|
|
14
|
-
* Detects the Solana cluster network from an RPC endpoint URL
|
|
15
|
-
*
|
|
16
|
-
* @param rpcUrl The RPC endpoint URL
|
|
17
|
-
* @returns The detected cluster network
|
|
18
|
-
*/
|
|
19
|
-
function fromUrl(rpcUrl: string): ClusterNetwork;
|
|
20
|
-
}
|
|
21
|
-
export type GlamClientConfig = {
|
|
22
|
-
provider?: Provider;
|
|
23
|
-
wallet?: Wallet;
|
|
24
|
-
cluster?: ClusterNetwork;
|
|
25
|
-
statePda?: PublicKey;
|
|
26
|
-
jupiterApiKey?: string;
|
|
27
|
-
jupiterApiClient?: JupiterApiClient;
|
|
28
|
-
useStaging?: boolean;
|
|
29
|
-
};
|