@kamino-finance/klend-sdk 5.10.28-beta.0 → 5.10.28
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/dist/classes/index.d.ts +0 -3
- package/dist/classes/index.d.ts.map +1 -1
- package/dist/classes/index.js +0 -3
- package/dist/classes/index.js.map +1 -1
- package/dist/classes/manager.d.ts +6 -0
- package/dist/classes/manager.d.ts.map +1 -1
- package/dist/classes/manager.js +8 -0
- package/dist/classes/manager.js.map +1 -1
- package/dist/classes/types.d.ts +1 -13
- package/dist/classes/types.d.ts.map +1 -1
- package/dist/classes/vault.d.ts +7 -0
- package/dist/classes/vault.d.ts.map +1 -1
- package/dist/classes/vault.js +18 -0
- package/dist/classes/vault.js.map +1 -1
- package/package.json +1 -4
- package/src/classes/index.ts +0 -3
- package/src/classes/manager.ts +9 -0
- package/src/classes/types.ts +1 -17
- package/src/classes/vault.ts +21 -1
- package/dist/classes/stakePool.d.ts +0 -8
- package/dist/classes/stakePool.d.ts.map +0 -1
- package/dist/classes/stakePool.js +0 -18
- package/dist/classes/stakePool.js.map +0 -1
- package/dist/classes/standardStakePool.d.ts +0 -255
- package/dist/classes/standardStakePool.d.ts.map +0 -1
- package/dist/classes/standardStakePool.js +0 -275
- package/dist/classes/standardStakePool.js.map +0 -1
- package/dist/classes/unstakingPool.d.ts +0 -111
- package/dist/classes/unstakingPool.d.ts.map +0 -1
- package/dist/classes/unstakingPool.js +0 -437
- package/dist/classes/unstakingPool.js.map +0 -1
- package/dist/idl_codegen_unstaking_pool/accounts/PoolState.d.ts +0 -50
- package/dist/idl_codegen_unstaking_pool/accounts/PoolState.d.ts.map +0 -1
- package/dist/idl_codegen_unstaking_pool/accounts/PoolState.js +0 -156
- package/dist/idl_codegen_unstaking_pool/accounts/PoolState.js.map +0 -1
- package/dist/idl_codegen_unstaking_pool/accounts/index.d.ts +0 -3
- package/dist/idl_codegen_unstaking_pool/accounts/index.d.ts.map +0 -1
- package/dist/idl_codegen_unstaking_pool/accounts/index.js +0 -6
- package/dist/idl_codegen_unstaking_pool/accounts/index.js.map +0 -1
- package/dist/idl_codegen_unstaking_pool/errors/anchor.d.ts +0 -435
- package/dist/idl_codegen_unstaking_pool/errors/anchor.d.ts.map +0 -1
- package/dist/idl_codegen_unstaking_pool/errors/anchor.js +0 -767
- package/dist/idl_codegen_unstaking_pool/errors/anchor.js.map +0 -1
- package/dist/idl_codegen_unstaking_pool/errors/custom.d.ts +0 -163
- package/dist/idl_codegen_unstaking_pool/errors/custom.d.ts.map +0 -1
- package/dist/idl_codegen_unstaking_pool/errors/custom.js +0 -290
- package/dist/idl_codegen_unstaking_pool/errors/custom.js.map +0 -1
- package/dist/idl_codegen_unstaking_pool/errors/index.d.ts +0 -6
- package/dist/idl_codegen_unstaking_pool/errors/index.d.ts.map +0 -1
- package/dist/idl_codegen_unstaking_pool/errors/index.js +0 -75
- package/dist/idl_codegen_unstaking_pool/errors/index.js.map +0 -1
- package/dist/idl_codegen_unstaking_pool/instructions/burn.d.ts +0 -21
- package/dist/idl_codegen_unstaking_pool/instructions/burn.d.ts.map +0 -1
- package/dist/idl_codegen_unstaking_pool/instructions/burn.js +0 -73
- package/dist/idl_codegen_unstaking_pool/instructions/burn.js.map +0 -1
- package/dist/idl_codegen_unstaking_pool/instructions/collect.d.ts +0 -16
- package/dist/idl_codegen_unstaking_pool/instructions/collect.d.ts.map +0 -1
- package/dist/idl_codegen_unstaking_pool/instructions/collect.js +0 -29
- package/dist/idl_codegen_unstaking_pool/instructions/collect.js.map +0 -1
- package/dist/idl_codegen_unstaking_pool/instructions/index.d.ts +0 -11
- package/dist/idl_codegen_unstaking_pool/instructions/index.d.ts.map +0 -1
- package/dist/idl_codegen_unstaking_pool/instructions/index.js +0 -14
- package/dist/idl_codegen_unstaking_pool/instructions/index.js.map +0 -1
- package/dist/idl_codegen_unstaking_pool/instructions/initializePool.d.ts +0 -15
- package/dist/idl_codegen_unstaking_pool/instructions/initializePool.d.ts.map +0 -1
- package/dist/idl_codegen_unstaking_pool/instructions/initializePool.js +0 -28
- package/dist/idl_codegen_unstaking_pool/instructions/initializePool.js.map +0 -1
- package/dist/idl_codegen_unstaking_pool/instructions/mint.d.ts +0 -21
- package/dist/idl_codegen_unstaking_pool/instructions/mint.d.ts.map +0 -1
- package/dist/idl_codegen_unstaking_pool/instructions/mint.js +0 -77
- package/dist/idl_codegen_unstaking_pool/instructions/mint.js.map +0 -1
- package/dist/idl_codegen_unstaking_pool/instructions/updatePoolConfig.d.ts +0 -13
- package/dist/idl_codegen_unstaking_pool/instructions/updatePoolConfig.d.ts.map +0 -1
- package/dist/idl_codegen_unstaking_pool/instructions/updatePoolConfig.js +0 -58
- package/dist/idl_codegen_unstaking_pool/instructions/updatePoolConfig.js.map +0 -1
- package/dist/idl_codegen_unstaking_pool/programId.d.ts +0 -4
- package/dist/idl_codegen_unstaking_pool/programId.d.ts.map +0 -1
- package/dist/idl_codegen_unstaking_pool/programId.js +0 -9
- package/dist/idl_codegen_unstaking_pool/programId.js.map +0 -1
- package/dist/idl_codegen_unstaking_pool/types/PoolConfigField.d.ts +0 -32
- package/dist/idl_codegen_unstaking_pool/types/PoolConfigField.d.ts.map +0 -1
- package/dist/idl_codegen_unstaking_pool/types/PoolConfigField.js +0 -105
- package/dist/idl_codegen_unstaking_pool/types/PoolConfigField.js.map +0 -1
- package/dist/idl_codegen_unstaking_pool/types/index.d.ts +0 -5
- package/dist/idl_codegen_unstaking_pool/types/index.d.ts.map +0 -1
- package/dist/idl_codegen_unstaking_pool/types/index.js +0 -39
- package/dist/idl_codegen_unstaking_pool/types/index.js.map +0 -1
- package/src/classes/stakePool.ts +0 -21
- package/src/classes/standardStakePool.ts +0 -361
- package/src/classes/unstakingPool.ts +0 -565
- package/src/idl_codegen_unstaking_pool/accounts/PoolState.ts +0 -163
- package/src/idl_codegen_unstaking_pool/accounts/index.ts +0 -2
- package/src/idl_codegen_unstaking_pool/errors/anchor.ts +0 -764
- package/src/idl_codegen_unstaking_pool/errors/custom.ts +0 -288
- package/src/idl_codegen_unstaking_pool/errors/index.ts +0 -49
- package/src/idl_codegen_unstaking_pool/instructions/burn.ts +0 -60
- package/src/idl_codegen_unstaking_pool/instructions/collect.ts +0 -43
- package/src/idl_codegen_unstaking_pool/instructions/index.ts +0 -10
- package/src/idl_codegen_unstaking_pool/instructions/initializePool.ts +0 -41
- package/src/idl_codegen_unstaking_pool/instructions/mint.ts +0 -64
- package/src/idl_codegen_unstaking_pool/instructions/updatePoolConfig.ts +0 -40
- package/src/idl_codegen_unstaking_pool/programId.ts +0 -7
- package/src/idl_codegen_unstaking_pool/types/PoolConfigField.ts +0 -85
- package/src/idl_codegen_unstaking_pool/types/index.ts +0 -6
- package/src/idl_unstaking_pool.json +0 -456
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"unstakingPool.d.ts","sourceRoot":"","sources":["../../src/classes/unstakingPool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,437 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.UnstakingPoolConfig = exports.UnstakingPool = exports.UnstakingPoolClient = exports.CLOCK_PROGRAM_ID = exports.STAKE_PROGRAM_ID = exports.unstakingPoolStagingId = exports.unstakingPoolId = void 0;
|
|
7
|
-
const web3_js_1 = require("@solana/web3.js");
|
|
8
|
-
const instructions_1 = require("../idl_codegen_unstaking_pool/instructions");
|
|
9
|
-
const spl_token_1 = require("@solana/spl-token");
|
|
10
|
-
const lib_1 = require("../lib");
|
|
11
|
-
const accounts_1 = require("../idl_codegen_unstaking_pool/accounts");
|
|
12
|
-
const utils_1 = require("../utils");
|
|
13
|
-
const bs58_1 = __importDefault(require("bs58"));
|
|
14
|
-
const rpc_1 = require("../utils/rpc");
|
|
15
|
-
const types_1 = require("../idl_codegen_unstaking_pool/types");
|
|
16
|
-
const spl_stake_pool_1 = require("@solana/spl-stake-pool");
|
|
17
|
-
const stakePool_1 = require("./stakePool");
|
|
18
|
-
const standardStakePool_1 = require("./standardStakePool");
|
|
19
|
-
exports.unstakingPoolId = new web3_js_1.PublicKey('USo1uB8RsRuM8y8e8vbL3mwR22EzSTLyZqaJPoZvn3a');
|
|
20
|
-
exports.unstakingPoolStagingId = new web3_js_1.PublicKey('STuRAYCqtoJ15dASjaypTtgqDB7h7fLgiNBuWt17ZG5');
|
|
21
|
-
exports.STAKE_PROGRAM_ID = new web3_js_1.PublicKey('Stake11111111111111111111111111111111111111');
|
|
22
|
-
exports.CLOCK_PROGRAM_ID = new web3_js_1.PublicKey('SysvarC1ock11111111111111111111111111111111');
|
|
23
|
-
const STAKE_HISTORY_PROGRAM_ID = new web3_js_1.PublicKey('SysvarStakeHistory1111111111111111111111111');
|
|
24
|
-
const BASE_POOL_AUTHORITY_SEED = 'authority';
|
|
25
|
-
const UNSTAKING_SOL_MINT_SEED = 'unstaking_sol_mint';
|
|
26
|
-
/**
|
|
27
|
-
* KaminoPoolClient is a class that provides a high-level interface to interact with the Kamino Pool program.
|
|
28
|
-
*/
|
|
29
|
-
class UnstakingPoolClient {
|
|
30
|
-
_connection;
|
|
31
|
-
_unstakingPoolProgramId;
|
|
32
|
-
constructor(connection, unstakingPoolprogramId) {
|
|
33
|
-
this._connection = connection;
|
|
34
|
-
this._unstakingPoolProgramId = unstakingPoolprogramId ? unstakingPoolprogramId : exports.unstakingPoolId;
|
|
35
|
-
}
|
|
36
|
-
getConnection() {
|
|
37
|
-
return this._connection;
|
|
38
|
-
}
|
|
39
|
-
getProgramID() {
|
|
40
|
-
return this._unstakingPoolProgramId;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* This method will create a pool with a given config. The config can be changed later on, but it is recommended to set it up correctly from the start
|
|
44
|
-
* @param poolConfig - the config object used to create a pool
|
|
45
|
-
* @returns pool - keypair, should be used to sign the transaction which creates the pool account
|
|
46
|
-
* @returns pool: the keypair of the pool, used to sign the initialization transaction; initPoolIxs: a struct with ixs to initialize the pool and its lookup table + populateLUTIxs, a list to populate the lookup table which has to be executed in a separate transaction
|
|
47
|
-
*/
|
|
48
|
-
async createPoolIxs(poolConfig) {
|
|
49
|
-
const poolState = web3_js_1.Keypair.generate();
|
|
50
|
-
const size = accounts_1.PoolState.layout.span + 8;
|
|
51
|
-
const createPoolIx = web3_js_1.SystemProgram.createAccount({
|
|
52
|
-
fromPubkey: poolConfig.admin,
|
|
53
|
-
newAccountPubkey: poolState.publicKey,
|
|
54
|
-
lamports: await this._connection.getMinimumBalanceForRentExemption(size),
|
|
55
|
-
space: size,
|
|
56
|
-
programId: this._unstakingPoolProgramId,
|
|
57
|
-
});
|
|
58
|
-
const unstakingSolMint = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(UNSTAKING_SOL_MINT_SEED), poolState.publicKey.toBytes()], this._unstakingPoolProgramId)[0];
|
|
59
|
-
const basePoolAuthority = web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(BASE_POOL_AUTHORITY_SEED), poolState.publicKey.toBytes()], this._unstakingPoolProgramId)[0];
|
|
60
|
-
const wsolVault = (0, lib_1.getAssociatedTokenAddress)(lib_1.WRAPPED_SOL_MINT, basePoolAuthority);
|
|
61
|
-
const initPoolAccounts = {
|
|
62
|
-
admin: poolConfig.admin,
|
|
63
|
-
poolState: poolState.publicKey,
|
|
64
|
-
basePoolAuthority,
|
|
65
|
-
systemProgram: web3_js_1.SystemProgram.programId,
|
|
66
|
-
rent: web3_js_1.SYSVAR_RENT_PUBKEY,
|
|
67
|
-
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
68
|
-
associatedTokenProgram: spl_token_1.ASSOCIATED_TOKEN_PROGRAM_ID,
|
|
69
|
-
unstakingSolMint,
|
|
70
|
-
wsolMint: lib_1.WRAPPED_SOL_MINT,
|
|
71
|
-
wsolVault,
|
|
72
|
-
};
|
|
73
|
-
const initPoolIx = (0, instructions_1.initializePool)(initPoolAccounts, this._unstakingPoolProgramId);
|
|
74
|
-
// create and set up the pool lookup table
|
|
75
|
-
const slot = await this._connection.getSlot();
|
|
76
|
-
const [createLUTIx, lut] = this.getInitLookupTableIx(poolConfig.admin, slot);
|
|
77
|
-
const allAccountsToBeInserted = [
|
|
78
|
-
poolState.publicKey,
|
|
79
|
-
basePoolAuthority,
|
|
80
|
-
wsolVault,
|
|
81
|
-
unstakingSolMint,
|
|
82
|
-
poolConfig.admin,
|
|
83
|
-
spl_token_1.NATIVE_MINT,
|
|
84
|
-
this._unstakingPoolProgramId,
|
|
85
|
-
web3_js_1.SystemProgram.programId,
|
|
86
|
-
web3_js_1.SYSVAR_RENT_PUBKEY,
|
|
87
|
-
spl_token_1.TOKEN_PROGRAM_ID,
|
|
88
|
-
spl_token_1.TOKEN_2022_PROGRAM_ID,
|
|
89
|
-
web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
90
|
-
web3_js_1.SYSVAR_CLOCK_PUBKEY,
|
|
91
|
-
exports.STAKE_PROGRAM_ID,
|
|
92
|
-
spl_stake_pool_1.STAKE_POOL_PROGRAM_ID,
|
|
93
|
-
];
|
|
94
|
-
const insertIntoLUTIxs = await this.insertIntoLookupTableIxs(poolConfig.admin, lut, allAccountsToBeInserted, []);
|
|
95
|
-
const { updatePoolConfigIx: updateLUTIx } = await this.updatePoolConfigIxs(poolState.publicKey, poolConfig.admin, new types_1.PoolConfigField.LookupTable(), lut.toString());
|
|
96
|
-
const ixns = [createPoolIx, initPoolIx, createLUTIx, ...insertIntoLUTIxs, updateLUTIx];
|
|
97
|
-
if (poolConfig.actionAuthority) {
|
|
98
|
-
const { updatePoolConfigIx: updateActionAuthorityIx } = await this.updatePoolConfigIxs(poolState.publicKey, poolConfig.admin, new types_1.PoolConfigField.ActionAuthority(), poolConfig.actionAuthority.toString());
|
|
99
|
-
ixns.push(updateActionAuthorityIx);
|
|
100
|
-
}
|
|
101
|
-
return { pool: poolState, initPoolIxs: { initPoolIxs: ixns, populateLUTIxs: [] } };
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Update pool configuration such as admin authority (or fees/minimum depositable in the future)
|
|
105
|
-
* @param poolState - the pool to update and set the LUT for if needed or only the pool pubkey if updating LUT is not needed
|
|
106
|
-
* @param admin - admin of the specified pool
|
|
107
|
-
* @param mode - what field to update for pool
|
|
108
|
-
* @param value - new value that is converted .toString()
|
|
109
|
-
* @returns a struct that contains a list of ix to update the pool config + a list of ixs to insert all new accounts in the LUT
|
|
110
|
-
*/
|
|
111
|
-
async updatePoolConfigIxs(poolState, admin, mode, value) {
|
|
112
|
-
const updatePoolConfigAccounts = {
|
|
113
|
-
admin,
|
|
114
|
-
poolState: poolState instanceof UnstakingPool ? poolState.address : poolState,
|
|
115
|
-
};
|
|
116
|
-
const args = {
|
|
117
|
-
entry: mode,
|
|
118
|
-
data: Buffer.from([0]),
|
|
119
|
-
};
|
|
120
|
-
if (isNaN(+value)) {
|
|
121
|
-
const data = new web3_js_1.PublicKey(value);
|
|
122
|
-
args.data = data.toBuffer();
|
|
123
|
-
}
|
|
124
|
-
else {
|
|
125
|
-
const buffer = Buffer.alloc(8);
|
|
126
|
-
buffer.writeBigUInt64LE(BigInt(value.toString()));
|
|
127
|
-
args.data = buffer;
|
|
128
|
-
}
|
|
129
|
-
const updatePoolConfigIx = (0, instructions_1.updatePoolConfig)(args, updatePoolConfigAccounts, this._unstakingPoolProgramId);
|
|
130
|
-
const updateLUTIxs = [];
|
|
131
|
-
if (poolState instanceof UnstakingPool && poolState.state) {
|
|
132
|
-
if (mode.kind === new types_1.PoolConfigField.ActionAuthority().kind) {
|
|
133
|
-
const newPubkey = new web3_js_1.PublicKey(value);
|
|
134
|
-
const insertIntoLutIxs = await this.insertIntoLookupTableIxs(poolState.state.actionAuthority, poolState.state.poolLookupTable, [newPubkey]);
|
|
135
|
-
updateLUTIxs.push(...insertIntoLutIxs);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
return { updatePoolConfigIx, updateLUTIxs };
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Collect a stake account SOL if the needed epoch was reached
|
|
142
|
-
* @param poolState - the pool to collect SOL into
|
|
143
|
-
* @param payer - payer for the operation (ix is permissionless)
|
|
144
|
-
* @param stakeAccount - stake account that was deactivated this epoch and has base pool authority as owner
|
|
145
|
-
* @returns collect instruction
|
|
146
|
-
*/
|
|
147
|
-
async collectIx(poolState, payer, stakeAccount) {
|
|
148
|
-
const pool = await poolState.getState(this.getConnection());
|
|
149
|
-
const accounts = {
|
|
150
|
-
poolState: poolState.address,
|
|
151
|
-
payer,
|
|
152
|
-
stakeAccount,
|
|
153
|
-
basePoolAuthority: pool.basePoolAuthority,
|
|
154
|
-
wsolVault: pool.wsolVault,
|
|
155
|
-
wsolMint: spl_token_1.NATIVE_MINT,
|
|
156
|
-
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
157
|
-
systemProgram: web3_js_1.SystemProgram.programId,
|
|
158
|
-
clockProgramId: web3_js_1.SYSVAR_CLOCK_PUBKEY,
|
|
159
|
-
stakeProgramId: exports.STAKE_PROGRAM_ID,
|
|
160
|
-
stakeHistoryProgramId: STAKE_HISTORY_PROGRAM_ID,
|
|
161
|
-
};
|
|
162
|
-
return (0, instructions_1.collect)(accounts, this._unstakingPoolProgramId);
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Burn a number of shares (USOL) in exchange for SOL
|
|
166
|
-
* @param poolState - the pool to burn USOL from
|
|
167
|
-
* @param user - user that burns (ix is not gated by action authority)
|
|
168
|
-
* @param sharesToBurn - number of shares that are equivalent 1:1 with SOL
|
|
169
|
-
* @returns burn instruction
|
|
170
|
-
*/
|
|
171
|
-
async burnIx(poolState, user, sharesToBurn) {
|
|
172
|
-
const pool = await poolState.getState(this.getConnection());
|
|
173
|
-
const accounts = {
|
|
174
|
-
poolState: poolState.address,
|
|
175
|
-
basePoolAuthority: pool.basePoolAuthority,
|
|
176
|
-
wsolVault: pool.wsolVault,
|
|
177
|
-
wsolMint: spl_token_1.NATIVE_MINT,
|
|
178
|
-
systemProgram: web3_js_1.SystemProgram.programId,
|
|
179
|
-
user,
|
|
180
|
-
userWsolToken: (0, lib_1.getAssociatedTokenAddress)(spl_token_1.NATIVE_MINT, user),
|
|
181
|
-
userUnstakingSolToken: (0, lib_1.getAssociatedTokenAddress)(pool.unstakingSolMint, user),
|
|
182
|
-
unstakingSolMint: pool.unstakingSolMint,
|
|
183
|
-
unstakingSolTokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
184
|
-
wsolTokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
185
|
-
};
|
|
186
|
-
const args = {
|
|
187
|
-
sharesToBurn,
|
|
188
|
-
};
|
|
189
|
-
return (0, instructions_1.burn)(args, accounts, this._unstakingPoolProgramId);
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* Mints a number of unstaking sol (USOL) in exchange for staked SOL
|
|
193
|
-
* NOTE: this ix is permissioned by action authority
|
|
194
|
-
* @param poolState - the pool to mint USOL from
|
|
195
|
-
* @param user - user that mints
|
|
196
|
-
* @param stakedSolMint - staked sol mint
|
|
197
|
-
* @param stakedSolToDeposit - staked sol to convert to USOL (at the pool ratio)
|
|
198
|
-
* @returns burn instruction
|
|
199
|
-
*/
|
|
200
|
-
async mintIx(poolState, user, stakedSolMint, stakedSolToDeposit) {
|
|
201
|
-
const pool = await poolState.getState(this.getConnection());
|
|
202
|
-
const [stakedSolPool, stakedSolPoolPk, stakePoolType] = await (0, stakePool_1.mapStakedSolMintToPool)(this.getConnection(), stakedSolMint);
|
|
203
|
-
const accounts = {
|
|
204
|
-
poolState: poolState.address,
|
|
205
|
-
basePoolAuthority: pool.basePoolAuthority,
|
|
206
|
-
systemProgram: web3_js_1.SystemProgram.programId,
|
|
207
|
-
unstakingSolMint: pool.unstakingSolMint,
|
|
208
|
-
unstakingSolTokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
209
|
-
user,
|
|
210
|
-
actionAuthority: pool.actionAuthority,
|
|
211
|
-
userStakedSolToken: (0, lib_1.getAssociatedTokenAddress)(stakedSolMint, user),
|
|
212
|
-
userUnstakingSolToken: (0, lib_1.getAssociatedTokenAddress)(pool.unstakingSolMint, user),
|
|
213
|
-
stakedSolMint,
|
|
214
|
-
stakedSolTokenProgram: stakedSolPool.tokenProgramId,
|
|
215
|
-
};
|
|
216
|
-
const args = {
|
|
217
|
-
stakedSolToDeposit,
|
|
218
|
-
};
|
|
219
|
-
const txn = (0, instructions_1.mint)(args, accounts, this._unstakingPoolProgramId);
|
|
220
|
-
let remainingAccounts = [];
|
|
221
|
-
let remainingSigners = [];
|
|
222
|
-
switch (stakePoolType) {
|
|
223
|
-
case stakePool_1.StakePoolType.Standard:
|
|
224
|
-
[remainingAccounts, remainingSigners] = await (0, standardStakePool_1.getStandardPoolMintRemainingAccounts)(this.getConnection(), stakedSolPool, stakedSolPoolPk, stakedSolToDeposit);
|
|
225
|
-
}
|
|
226
|
-
txn.keys = txn.keys.concat(remainingAccounts);
|
|
227
|
-
return { mintIx: txn, additionalSigners: remainingSigners };
|
|
228
|
-
}
|
|
229
|
-
/**
|
|
230
|
-
* Sync a pool for lookup table; create and set the LUT for the pool if needed and fill it with all the needed accounts
|
|
231
|
-
* @param pool the pool to sync and set the LUT for if needed
|
|
232
|
-
* @param poolReserves optional; the state of the reserves in the pool allocation
|
|
233
|
-
* @returns a struct that contains a list of ix to create the LUT and assign it to the pool if needed + a list of ixs to insert all the accounts in the LUT
|
|
234
|
-
*/
|
|
235
|
-
async syncPoolLookupTable(pool) {
|
|
236
|
-
const poolState = await pool.getState(this._connection);
|
|
237
|
-
const allAccountsToBeInserted = [
|
|
238
|
-
pool.address,
|
|
239
|
-
poolState.basePoolAuthority,
|
|
240
|
-
poolState.wsolVault,
|
|
241
|
-
poolState.unstakingSolMint,
|
|
242
|
-
poolState.actionAuthority,
|
|
243
|
-
poolState.admin,
|
|
244
|
-
this._unstakingPoolProgramId,
|
|
245
|
-
web3_js_1.SystemProgram.programId,
|
|
246
|
-
web3_js_1.SYSVAR_RENT_PUBKEY,
|
|
247
|
-
spl_token_1.TOKEN_PROGRAM_ID,
|
|
248
|
-
spl_token_1.TOKEN_2022_PROGRAM_ID,
|
|
249
|
-
web3_js_1.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
250
|
-
web3_js_1.SYSVAR_CLOCK_PUBKEY,
|
|
251
|
-
exports.STAKE_PROGRAM_ID,
|
|
252
|
-
spl_stake_pool_1.STAKE_POOL_PROGRAM_ID,
|
|
253
|
-
];
|
|
254
|
-
const setupLUTIfNeededIxs = [];
|
|
255
|
-
let lut = poolState.poolLookupTable;
|
|
256
|
-
if (lut.equals(web3_js_1.PublicKey.default)) {
|
|
257
|
-
const recentSlot = await this._connection.getSlot();
|
|
258
|
-
const [ixn, address] = this.getInitLookupTableIx(poolState.admin, recentSlot);
|
|
259
|
-
setupLUTIfNeededIxs.push(ixn);
|
|
260
|
-
lut = address;
|
|
261
|
-
// set the new LUT for the pool
|
|
262
|
-
const updatePoolConfigIxs = await this.updatePoolConfigIxs(pool, pool.address, new types_1.PoolConfigField.LookupTable(), lut.toString());
|
|
263
|
-
setupLUTIfNeededIxs.push(updatePoolConfigIxs.updatePoolConfigIx);
|
|
264
|
-
}
|
|
265
|
-
const ixns = [];
|
|
266
|
-
let overridenExistentAccounts = undefined;
|
|
267
|
-
if (poolState.poolLookupTable.equals(web3_js_1.PublicKey.default)) {
|
|
268
|
-
overridenExistentAccounts = [];
|
|
269
|
-
}
|
|
270
|
-
ixns.push(...(await this.insertIntoLookupTableIxs(poolState.admin, lut, allAccountsToBeInserted, overridenExistentAccounts)));
|
|
271
|
-
return {
|
|
272
|
-
setupLUTIfNeededIxs,
|
|
273
|
-
syncLUTIxs: ixns,
|
|
274
|
-
};
|
|
275
|
-
}
|
|
276
|
-
getInitLookupTableIx(payer, slot) {
|
|
277
|
-
const [ixn, address] = web3_js_1.AddressLookupTableProgram.createLookupTable({
|
|
278
|
-
authority: payer,
|
|
279
|
-
payer,
|
|
280
|
-
recentSlot: slot,
|
|
281
|
-
});
|
|
282
|
-
return [ixn, address];
|
|
283
|
-
}
|
|
284
|
-
async insertIntoLookupTableIxs(payer, lookupTable, keys, accountsInLUT) {
|
|
285
|
-
let lutContents = accountsInLUT;
|
|
286
|
-
if (!accountsInLUT) {
|
|
287
|
-
lutContents = await this.getAccountsInLUT(lookupTable);
|
|
288
|
-
}
|
|
289
|
-
else {
|
|
290
|
-
lutContents = accountsInLUT;
|
|
291
|
-
}
|
|
292
|
-
const missingAccounts = keys.filter((key) => !lutContents.includes(key) && !key.equals(web3_js_1.PublicKey.default));
|
|
293
|
-
// deduplicate missing accounts and remove default accounts and convert it back to an array
|
|
294
|
-
const missingAccountsList = new utils_1.PublicKeySet(missingAccounts).toArray();
|
|
295
|
-
const chunkSize = 20;
|
|
296
|
-
const ixns = [];
|
|
297
|
-
for (let i = 0; i < missingAccountsList.length; i += chunkSize) {
|
|
298
|
-
const chunk = missingAccountsList.slice(i, i + chunkSize);
|
|
299
|
-
const ixn = web3_js_1.AddressLookupTableProgram.extendLookupTable({
|
|
300
|
-
lookupTable,
|
|
301
|
-
authority: payer,
|
|
302
|
-
payer,
|
|
303
|
-
addresses: chunk,
|
|
304
|
-
});
|
|
305
|
-
ixns.push(ixn);
|
|
306
|
-
}
|
|
307
|
-
return ixns;
|
|
308
|
-
}
|
|
309
|
-
/**
|
|
310
|
-
*
|
|
311
|
-
* @param connection
|
|
312
|
-
* @param lookupTable
|
|
313
|
-
* @returns
|
|
314
|
-
*/
|
|
315
|
-
async getAccountsInLUT(lookupTable) {
|
|
316
|
-
const lutState = await this._connection.getAddressLookupTable(lookupTable);
|
|
317
|
-
if (!lutState || !lutState.value) {
|
|
318
|
-
throw new Error(`Lookup table ${lookupTable.toString()} not found`);
|
|
319
|
-
}
|
|
320
|
-
return lutState.value.state.addresses;
|
|
321
|
-
}
|
|
322
|
-
deactivateLookupTableIx(payer, lookupTable) {
|
|
323
|
-
const ixn = web3_js_1.AddressLookupTableProgram.deactivateLookupTable({
|
|
324
|
-
authority: payer,
|
|
325
|
-
lookupTable: lookupTable,
|
|
326
|
-
});
|
|
327
|
-
return ixn;
|
|
328
|
-
}
|
|
329
|
-
/// this require the LUT to be deactivated at least 500 blocks before
|
|
330
|
-
closeLookupTableIx(payer, lookupTable) {
|
|
331
|
-
const ixn = web3_js_1.AddressLookupTableProgram.closeLookupTable({
|
|
332
|
-
authority: payer,
|
|
333
|
-
recipient: payer,
|
|
334
|
-
lookupTable: lookupTable,
|
|
335
|
-
});
|
|
336
|
-
return ixn;
|
|
337
|
-
}
|
|
338
|
-
/**
|
|
339
|
-
* Get all pools
|
|
340
|
-
* @returns an array of all pools
|
|
341
|
-
*/
|
|
342
|
-
async getAllPools() {
|
|
343
|
-
const filters = [
|
|
344
|
-
{
|
|
345
|
-
dataSize: accounts_1.PoolState.layout.span + 8,
|
|
346
|
-
},
|
|
347
|
-
{
|
|
348
|
-
memcmp: {
|
|
349
|
-
offset: 0,
|
|
350
|
-
bytes: bs58_1.default.encode(accounts_1.PoolState.discriminator),
|
|
351
|
-
},
|
|
352
|
-
},
|
|
353
|
-
];
|
|
354
|
-
const unstakingPools = await (0, rpc_1.getProgramAccounts)(this._connection, this._unstakingPoolProgramId, accounts_1.PoolState.layout.span + 8, {
|
|
355
|
-
commitment: this._connection.commitment ?? 'processed',
|
|
356
|
-
filters,
|
|
357
|
-
});
|
|
358
|
-
return unstakingPools.map((unstakingPool) => {
|
|
359
|
-
if (unstakingPool.account === null) {
|
|
360
|
-
throw new Error(`unstakingPool with pubkey ${unstakingPool.pubkey.toString()} does not exist`);
|
|
361
|
-
}
|
|
362
|
-
const unstakingPoolAccount = accounts_1.PoolState.decode(unstakingPool.account.data);
|
|
363
|
-
if (!unstakingPoolAccount) {
|
|
364
|
-
throw Error(`unstakingPool with pubkey ${unstakingPool.pubkey.toString()} could not be decoded`);
|
|
365
|
-
}
|
|
366
|
-
return new UnstakingPool(unstakingPool.pubkey, unstakingPoolAccount, this._unstakingPoolProgramId);
|
|
367
|
-
});
|
|
368
|
-
}
|
|
369
|
-
} // UnstakingPoolClient
|
|
370
|
-
exports.UnstakingPoolClient = UnstakingPoolClient;
|
|
371
|
-
class UnstakingPool {
|
|
372
|
-
address;
|
|
373
|
-
state;
|
|
374
|
-
programId;
|
|
375
|
-
constructor(poolAddress, state, programId = exports.unstakingPoolId) {
|
|
376
|
-
this.address = poolAddress;
|
|
377
|
-
this.state = state;
|
|
378
|
-
this.programId = programId;
|
|
379
|
-
}
|
|
380
|
-
async getState(connection) {
|
|
381
|
-
if (!this.state) {
|
|
382
|
-
const res = await accounts_1.PoolState.fetch(connection, this.address, this.programId);
|
|
383
|
-
if (!res) {
|
|
384
|
-
throw new Error(`Invalid pool ${this.address.toString()}`);
|
|
385
|
-
}
|
|
386
|
-
this.state = res;
|
|
387
|
-
return res;
|
|
388
|
-
}
|
|
389
|
-
else {
|
|
390
|
-
return this.state;
|
|
391
|
-
}
|
|
392
|
-
}
|
|
393
|
-
async reloadState(connection) {
|
|
394
|
-
this.state = await accounts_1.PoolState.fetch(connection, this.address, this.programId);
|
|
395
|
-
if (!this.state) {
|
|
396
|
-
throw new Error(`Could not fetch pool ${this.address.toString()}`);
|
|
397
|
-
}
|
|
398
|
-
return this.state;
|
|
399
|
-
}
|
|
400
|
-
async getStakeAccountsForPool(connection) {
|
|
401
|
-
if (!this.state) {
|
|
402
|
-
throw new Error('Need to have pool state to fetch stake accounts');
|
|
403
|
-
}
|
|
404
|
-
// Filter only accounts that have withdraw authority the base pool authority
|
|
405
|
-
// and are delegating
|
|
406
|
-
const results = await connection.getParsedProgramAccounts(exports.STAKE_PROGRAM_ID, {
|
|
407
|
-
filters: [
|
|
408
|
-
{ memcmp: { offset: 0, bytes: bs58_1.default.encode([2]) } },
|
|
409
|
-
{ memcmp: { offset: 44, bytes: this.state.basePoolAuthority.toBase58() } },
|
|
410
|
-
],
|
|
411
|
-
});
|
|
412
|
-
return results
|
|
413
|
-
.filter(result => 'parsed' in result.account.data)
|
|
414
|
-
.map(result => {
|
|
415
|
-
if (!('parsed' in result.account.data)) {
|
|
416
|
-
throw new Error('Already filtered above for these, this error should not happen!');
|
|
417
|
-
}
|
|
418
|
-
return [result.account.data.parsed, result.pubkey];
|
|
419
|
-
});
|
|
420
|
-
}
|
|
421
|
-
}
|
|
422
|
-
exports.UnstakingPool = UnstakingPool;
|
|
423
|
-
/**
|
|
424
|
-
* Used to initialize a Kamino Pool
|
|
425
|
-
*/
|
|
426
|
-
class UnstakingPoolConfig {
|
|
427
|
-
/** The admin of the pool */
|
|
428
|
-
admin;
|
|
429
|
-
/** Pubkey that can mint new tokens */
|
|
430
|
-
actionAuthority;
|
|
431
|
-
constructor(args) {
|
|
432
|
-
this.admin = args.admin;
|
|
433
|
-
this.actionAuthority = args.actionAuthority;
|
|
434
|
-
}
|
|
435
|
-
}
|
|
436
|
-
exports.UnstakingPoolConfig = UnstakingPoolConfig;
|
|
437
|
-
//# sourceMappingURL=unstakingPool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"unstakingPool.js","sourceRoot":"","sources":["../../src/classes/unstakingPool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { PublicKey, Connection } from '@solana/web3.js';
|
|
2
|
-
import BN from 'bn.js';
|
|
3
|
-
export interface PoolStateFields {
|
|
4
|
-
admin: PublicKey;
|
|
5
|
-
basePoolAuthority: PublicKey;
|
|
6
|
-
basePoolAuthorityBump: BN;
|
|
7
|
-
unstakingSolMint: PublicKey;
|
|
8
|
-
wsolVault: PublicKey;
|
|
9
|
-
actionAuthority: PublicKey;
|
|
10
|
-
poolLookupTable: PublicKey;
|
|
11
|
-
sharesIssued: BN;
|
|
12
|
-
wsolInVault: BN;
|
|
13
|
-
padding0: BN;
|
|
14
|
-
padding: Array<BN>;
|
|
15
|
-
}
|
|
16
|
-
export interface PoolStateJSON {
|
|
17
|
-
admin: string;
|
|
18
|
-
basePoolAuthority: string;
|
|
19
|
-
basePoolAuthorityBump: string;
|
|
20
|
-
unstakingSolMint: string;
|
|
21
|
-
wsolVault: string;
|
|
22
|
-
actionAuthority: string;
|
|
23
|
-
poolLookupTable: string;
|
|
24
|
-
sharesIssued: string;
|
|
25
|
-
wsolInVault: string;
|
|
26
|
-
padding0: string;
|
|
27
|
-
padding: Array<string>;
|
|
28
|
-
}
|
|
29
|
-
export declare class PoolState {
|
|
30
|
-
readonly admin: PublicKey;
|
|
31
|
-
readonly basePoolAuthority: PublicKey;
|
|
32
|
-
readonly basePoolAuthorityBump: BN;
|
|
33
|
-
readonly unstakingSolMint: PublicKey;
|
|
34
|
-
readonly wsolVault: PublicKey;
|
|
35
|
-
readonly actionAuthority: PublicKey;
|
|
36
|
-
readonly poolLookupTable: PublicKey;
|
|
37
|
-
readonly sharesIssued: BN;
|
|
38
|
-
readonly wsolInVault: BN;
|
|
39
|
-
readonly padding0: BN;
|
|
40
|
-
readonly padding: Array<BN>;
|
|
41
|
-
static readonly discriminator: Buffer<ArrayBuffer>;
|
|
42
|
-
static readonly layout: any;
|
|
43
|
-
constructor(fields: PoolStateFields);
|
|
44
|
-
static fetch(c: Connection, address: PublicKey, programId?: PublicKey): Promise<PoolState | null>;
|
|
45
|
-
static fetchMultiple(c: Connection, addresses: PublicKey[], programId?: PublicKey): Promise<Array<PoolState | null>>;
|
|
46
|
-
static decode(data: Buffer): PoolState;
|
|
47
|
-
toJSON(): PoolStateJSON;
|
|
48
|
-
static fromJSON(obj: PoolStateJSON): PoolState;
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=PoolState.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PoolState.d.ts","sourceRoot":"","sources":["../../../src/idl_codegen_unstaking_pool/accounts/PoolState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,MAAM,OAAO,CAAC;AAKvB,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,SAAS,CAAC;IACjB,iBAAiB,EAAE,SAAS,CAAC;IAC7B,qBAAqB,EAAE,EAAE,CAAC;IAC1B,gBAAgB,EAAE,SAAS,CAAC;IAC5B,SAAS,EAAE,SAAS,CAAC;IACrB,eAAe,EAAE,SAAS,CAAC;IAC3B,eAAe,EAAE,SAAS,CAAC;IAC3B,YAAY,EAAE,EAAE,CAAC;IACjB,WAAW,EAAE,EAAE,CAAC;IAChB,QAAQ,EAAE,EAAE,CAAC;IACb,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CACxB;AAED,qBAAa,SAAS;IACpB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,SAAS,CAAC;IACtC,QAAQ,CAAC,qBAAqB,EAAE,EAAE,CAAC;IACnC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAE5B,MAAM,CAAC,QAAQ,CAAC,aAAa,sBAAwD;IAErF,MAAM,CAAC,QAAQ,CAAC,MAAM,MAYnB;gBAES,MAAM,EAAE,eAAe;WActB,KAAK,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAE,SAAsB,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;WAatG,aAAa,CACxB,CAAC,EAAE,UAAU,EACb,SAAS,EAAE,SAAS,EAAE,EACtB,SAAS,GAAE,SAAsB,GAChC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAenC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS;IAsBtC,MAAM,IAAI,aAAa;IAgBvB,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,aAAa,GAAG,SAAS;CAe/C"}
|