@streamflow/staking 9.0.4 → 10.0.0-alpha.p313.18b7be3
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/README.md +1 -1
- package/dist/cjs/index.cjs +27 -28
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.cts +30 -31
- package/dist/esm/index.d.ts +30 -31
- package/dist/esm/index.js +1 -2
- package/dist/esm/index.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -344,7 +344,7 @@ SolanaStakingClient also exposes original IDL of all programs, so you can use so
|
|
|
344
344
|
|
|
345
345
|
```typescript
|
|
346
346
|
// Stake Mint Token Program matches token program of the original token, program exposes separate methods depending on the program.
|
|
347
|
-
import { signAndExecuteTransaction, prepareTransaction } from "@streamflow/common
|
|
347
|
+
import { signAndExecuteTransaction, prepareTransaction } from "@streamflow/common";
|
|
348
348
|
|
|
349
349
|
const program = client.programs.stakePoolProgram;
|
|
350
350
|
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -4,7 +4,6 @@ var anchor = require('@coral-xyz/anchor');
|
|
|
4
4
|
var splToken = require('@solana/spl-token');
|
|
5
5
|
var web3_js = require('@solana/web3.js');
|
|
6
6
|
var common = require('@streamflow/common');
|
|
7
|
-
var solana = require('@streamflow/common/solana');
|
|
8
7
|
var BN4 = require('bn.js');
|
|
9
8
|
require('@solana/wallet-adapter-base');
|
|
10
9
|
|
|
@@ -7104,7 +7103,7 @@ var SolanaStakingClient = class {
|
|
|
7104
7103
|
this.cluster = cluster;
|
|
7105
7104
|
this.commitment = commitment;
|
|
7106
7105
|
this.connection = new web3_js.Connection(clusterUrl, this.commitment);
|
|
7107
|
-
this.sendThrottler = sendThrottler ??
|
|
7106
|
+
this.sendThrottler = sendThrottler ?? common.buildSendThrottler(sendRate);
|
|
7108
7107
|
const stakePoolIdl = {
|
|
7109
7108
|
...stake_pool_default,
|
|
7110
7109
|
address: programIds?.stakePool ?? STAKE_POOL_PROGRAM_ID[cluster] ?? stake_pool_default.address
|
|
@@ -7157,7 +7156,7 @@ var SolanaStakingClient = class {
|
|
|
7157
7156
|
}
|
|
7158
7157
|
async searchStakePools(criteria = {}) {
|
|
7159
7158
|
const { stakePoolProgram } = this.programs;
|
|
7160
|
-
return stakePoolProgram.account.stakePool.all(
|
|
7159
|
+
return stakePoolProgram.account.stakePool.all(common.getFilters(criteria, STAKE_POOL_BYTE_OFFSETS));
|
|
7161
7160
|
}
|
|
7162
7161
|
async getStakeEntry(id) {
|
|
7163
7162
|
const { stakePoolProgram } = this.programs;
|
|
@@ -7165,15 +7164,15 @@ var SolanaStakingClient = class {
|
|
|
7165
7164
|
}
|
|
7166
7165
|
async searchStakeEntries(criteria = {}) {
|
|
7167
7166
|
const { stakePoolProgram } = this.programs;
|
|
7168
|
-
return stakePoolProgram.account.stakeEntry.all(
|
|
7167
|
+
return stakePoolProgram.account.stakeEntry.all(common.getFilters(criteria, STAKE_ENTRY_BYTE_OFFSETS));
|
|
7169
7168
|
}
|
|
7170
7169
|
async searchRewardPools(criteria = {}) {
|
|
7171
7170
|
const { rewardPoolProgram } = this.programs;
|
|
7172
|
-
return rewardPoolProgram.account.rewardPool.all(
|
|
7171
|
+
return rewardPoolProgram.account.rewardPool.all(common.getFilters(criteria, REWARD_POOL_BYTE_OFFSETS));
|
|
7173
7172
|
}
|
|
7174
7173
|
async searchRewardEntries(criteria) {
|
|
7175
7174
|
const { rewardPoolProgram } = this.programs;
|
|
7176
|
-
return rewardPoolProgram.account.rewardEntry.all(
|
|
7175
|
+
return rewardPoolProgram.account.rewardEntry.all(common.getFilters(criteria, REWARD_ENTRY_BYTE_OFFSETS));
|
|
7177
7176
|
}
|
|
7178
7177
|
async getFee(target) {
|
|
7179
7178
|
const perTargetFee = await this.getFeeValueIfExists(target);
|
|
@@ -7243,7 +7242,7 @@ var SolanaStakingClient = class {
|
|
|
7243
7242
|
mint,
|
|
7244
7243
|
tokenProgram: tokenProgramId
|
|
7245
7244
|
}).instruction();
|
|
7246
|
-
const stakePoolPDA = deriveStakePoolPDA(stakePoolProgram.programId,
|
|
7245
|
+
const stakePoolPDA = deriveStakePoolPDA(stakePoolProgram.programId, common.pk(mint), creator, nonce);
|
|
7247
7246
|
return { ixs: [createInstruction], publicKey: stakePoolPDA };
|
|
7248
7247
|
}
|
|
7249
7248
|
async stake(data, extParams) {
|
|
@@ -7294,7 +7293,7 @@ var SolanaStakingClient = class {
|
|
|
7294
7293
|
const { stakePoolProgram } = this.programs;
|
|
7295
7294
|
const staker = extParams.invoker.publicKey;
|
|
7296
7295
|
common.invariant(staker, "Undefined invoker publicKey");
|
|
7297
|
-
const poolMintAccountKey = splToken.getAssociatedTokenAddressSync(
|
|
7296
|
+
const poolMintAccountKey = splToken.getAssociatedTokenAddressSync(common.pk(stakePoolMint), staker, true, common.pk(tokenProgramId));
|
|
7298
7297
|
const instruction = await stakePoolProgram.methods.stake(nonce, amount, duration).accounts({
|
|
7299
7298
|
stakePool,
|
|
7300
7299
|
tokenProgram: tokenProgramId,
|
|
@@ -7392,8 +7391,8 @@ var SolanaStakingClient = class {
|
|
|
7392
7391
|
const { stakePoolProgram } = this.programs;
|
|
7393
7392
|
const staker = extParams.invoker.publicKey;
|
|
7394
7393
|
common.invariant(staker, "Undefined invoker publicKey");
|
|
7395
|
-
const stakeEntryKey = deriveStakeEntryPDA(stakePoolProgram.programId,
|
|
7396
|
-
const poolMintAccountKey = splToken.getAssociatedTokenAddressSync(
|
|
7394
|
+
const stakeEntryKey = deriveStakeEntryPDA(stakePoolProgram.programId, common.pk(stakePool), staker, nonce);
|
|
7395
|
+
const poolMintAccountKey = splToken.getAssociatedTokenAddressSync(common.pk(stakePoolMint), staker, true, common.pk(tokenProgramId));
|
|
7397
7396
|
const instruction = await stakePoolProgram.methods.unstake(shouldClose).accounts({
|
|
7398
7397
|
stakeEntry: stakeEntryKey,
|
|
7399
7398
|
to: poolMintAccountKey,
|
|
@@ -7414,7 +7413,7 @@ var SolanaStakingClient = class {
|
|
|
7414
7413
|
const { stakePoolProgram } = this.programs;
|
|
7415
7414
|
const staker = extParams.invoker.publicKey;
|
|
7416
7415
|
common.invariant(staker, "Undefined invoker publicKey");
|
|
7417
|
-
const stakeEntryKey = deriveStakeEntryPDA(stakePoolProgram.programId,
|
|
7416
|
+
const stakeEntryKey = deriveStakeEntryPDA(stakePoolProgram.programId, common.pk(stakePool), staker, nonce);
|
|
7418
7417
|
const instruction = await stakePoolProgram.methods.closeEntry().accounts({
|
|
7419
7418
|
stakeEntry: stakeEntryKey,
|
|
7420
7419
|
authority: staker
|
|
@@ -7449,7 +7448,7 @@ var SolanaStakingClient = class {
|
|
|
7449
7448
|
mint: rewardMint,
|
|
7450
7449
|
tokenProgram: tokenProgramId
|
|
7451
7450
|
}).instruction();
|
|
7452
|
-
const rewardPoolKey = deriveRewardPoolPDA(rewardPoolProgram.programId,
|
|
7451
|
+
const rewardPoolKey = deriveRewardPoolPDA(rewardPoolProgram.programId, common.pk(stakePool), common.pk(rewardMint), nonce);
|
|
7453
7452
|
return { publicKey: rewardPoolKey, ixs: [instruction] };
|
|
7454
7453
|
}
|
|
7455
7454
|
async claimRewards(data, extParams) {
|
|
@@ -7476,16 +7475,16 @@ var SolanaStakingClient = class {
|
|
|
7476
7475
|
common.invariant(staker, "Undefined invoker publicKey");
|
|
7477
7476
|
const rewardPoolKey = deriveRewardPoolPDA(
|
|
7478
7477
|
rewardPoolProgram.programId,
|
|
7479
|
-
|
|
7480
|
-
|
|
7478
|
+
common.pk(stakePool),
|
|
7479
|
+
common.pk(rewardMint),
|
|
7481
7480
|
rewardPoolNonce
|
|
7482
7481
|
);
|
|
7483
7482
|
let ixBuilder = rewardPoolProgram.methods.claimRewards().accounts({
|
|
7484
|
-
stakeEntry: deriveStakeEntryPDA(stakePoolProgram.programId,
|
|
7483
|
+
stakeEntry: deriveStakeEntryPDA(stakePoolProgram.programId, common.pk(stakePool), staker, depositNonce),
|
|
7485
7484
|
rewardPool: rewardPoolKey,
|
|
7486
7485
|
claimant: staker,
|
|
7487
7486
|
tokenProgram: tokenProgramId,
|
|
7488
|
-
to: splToken.getAssociatedTokenAddressSync(
|
|
7487
|
+
to: splToken.getAssociatedTokenAddressSync(common.pk(rewardMint), staker, true, common.pk(tokenProgramId))
|
|
7489
7488
|
});
|
|
7490
7489
|
if (this.isDynamicRewardProgram(rewardPoolProgram)) {
|
|
7491
7490
|
if (governor === void 0) {
|
|
@@ -7516,16 +7515,16 @@ var SolanaStakingClient = class {
|
|
|
7516
7515
|
const staker = extParams.invoker.publicKey;
|
|
7517
7516
|
common.invariant(staker, "Undefined invoker publicKey");
|
|
7518
7517
|
const existingFee = await this.getFeeValueIfExists(staker);
|
|
7519
|
-
const rewardMintPk =
|
|
7520
|
-
const tokenProgramPk =
|
|
7521
|
-
const treasuryATA = !existingFee || existingFee.streamflowFee.gtn(0) ? await
|
|
7518
|
+
const rewardMintPk = common.pk(rewardMint);
|
|
7519
|
+
const tokenProgramPk = common.pk(tokenProgramId);
|
|
7520
|
+
const treasuryATA = !existingFee || existingFee.streamflowFee.gtn(0) ? await common.checkOrCreateAtaBatch(
|
|
7522
7521
|
this.connection,
|
|
7523
7522
|
[STREAMFLOW_TREASURY_PUBLIC_KEY],
|
|
7524
7523
|
rewardMintPk,
|
|
7525
7524
|
extParams.invoker,
|
|
7526
7525
|
tokenProgramPk
|
|
7527
7526
|
) : null;
|
|
7528
|
-
const rewardPoolPda = deriveRewardPoolPDA(rewardPoolProgram.programId,
|
|
7527
|
+
const rewardPoolPda = deriveRewardPoolPDA(rewardPoolProgram.programId, common.pk(stakePool), rewardMintPk, nonce);
|
|
7529
7528
|
const instruction = await rewardPoolProgram.methods.fundPool(amount).accountsPartial({
|
|
7530
7529
|
funder: staker,
|
|
7531
7530
|
rewardPool: rewardPoolPda,
|
|
@@ -7553,8 +7552,8 @@ var SolanaStakingClient = class {
|
|
|
7553
7552
|
const instruction = await rewardPoolProgram.methods.createEntry().accounts({
|
|
7554
7553
|
payer: staker,
|
|
7555
7554
|
authority: staker,
|
|
7556
|
-
stakeEntry: deriveStakeEntryPDA(stakePoolProgram.programId,
|
|
7557
|
-
rewardPool: deriveRewardPoolPDA(rewardPoolProgram.programId,
|
|
7555
|
+
stakeEntry: deriveStakeEntryPDA(stakePoolProgram.programId, common.pk(stakePool), staker, depositNonce),
|
|
7556
|
+
rewardPool: deriveRewardPoolPDA(rewardPoolProgram.programId, common.pk(stakePool), common.pk(rewardMint), rewardPoolNonce)
|
|
7558
7557
|
}).accountsPartial({
|
|
7559
7558
|
stakePool
|
|
7560
7559
|
}).instruction();
|
|
@@ -7574,7 +7573,7 @@ var SolanaStakingClient = class {
|
|
|
7574
7573
|
common.invariant(staker, "Undefined invoker publicKey");
|
|
7575
7574
|
const instruction = await rewardPoolProgram.methods.closeEntry(depositNonce).accounts({
|
|
7576
7575
|
authority: staker,
|
|
7577
|
-
rewardPool: deriveRewardPoolPDA(rewardPoolProgram.programId,
|
|
7576
|
+
rewardPool: deriveRewardPoolPDA(rewardPoolProgram.programId, common.pk(stakePool), common.pk(rewardMint), rewardPoolNonce)
|
|
7578
7577
|
}).instruction();
|
|
7579
7578
|
return { ixs: [instruction] };
|
|
7580
7579
|
}
|
|
@@ -7613,14 +7612,14 @@ var SolanaStakingClient = class {
|
|
|
7613
7612
|
return accountEntity.discriminator;
|
|
7614
7613
|
}
|
|
7615
7614
|
async execute(ixs, extParams) {
|
|
7616
|
-
const executionParams =
|
|
7617
|
-
ixs = await
|
|
7618
|
-
async (params) =>
|
|
7615
|
+
const executionParams = common.unwrapExecutionParams(extParams, this.connection);
|
|
7616
|
+
ixs = await common.createAndEstimateTransaction(
|
|
7617
|
+
async (params) => common.prepareBaseInstructions(this.connection, params).concat(ixs),
|
|
7619
7618
|
executionParams
|
|
7620
7619
|
);
|
|
7621
|
-
const { tx, hash, context } = await
|
|
7620
|
+
const { tx, hash, context } = await common.prepareTransaction(this.connection, ixs, extParams.invoker.publicKey);
|
|
7622
7621
|
try {
|
|
7623
|
-
const signature = await
|
|
7622
|
+
const signature = await common.signAndExecuteTransaction(
|
|
7624
7623
|
this.connection,
|
|
7625
7624
|
extParams.invoker,
|
|
7626
7625
|
tx,
|