@@ -258,8 +258,8 @@ export class SolanaStakingClient {
258258 const staker = extParams . invoker . publicKey ;
259259 invariant ( staker , "Undefined invoker publicKey" ) ;
260260 const mint = deriveStakeMintPDA ( stakePoolProgram . programId , pk ( stakePool ) ) ;
261- const stakeMintAccountKey = getAssociatedTokenAddressSync ( mint , staker , false , pk ( tokenProgramId ) ) ;
262- const poolMintAccountKey = getAssociatedTokenAddressSync ( pk ( stakePoolMint ) , staker , false , pk ( tokenProgramId ) ) ;
261+ const stakeMintAccountKey = getAssociatedTokenAddressSync ( mint , staker , true , pk ( tokenProgramId ) ) ;
262+ const poolMintAccountKey = getAssociatedTokenAddressSync ( pk ( stakePoolMint ) , staker , true , pk ( tokenProgramId ) ) ;
263263 const instruction = await stakePoolProgram . methods
264264 . stake ( nonce , amount , duration )
265265 . accounts ( {
@@ -296,8 +296,8 @@ export class SolanaStakingClient {
296296 invariant ( staker , "Undefined invoker publicKey" ) ;
297297 const stakeMintKey = deriveStakeMintPDA ( stakePoolProgram . programId , pk ( stakePool ) ) ;
298298 const stakeEntryKey = deriveStakeEntryPDA ( stakePoolProgram . programId , pk ( stakePool ) , staker , nonce ) ;
299- const poolMintAccountKey = getAssociatedTokenAddressSync ( pk ( stakePoolMint ) , staker , false , pk ( tokenProgramId ) ) ;
300- const stakeMintAccountKey = getAssociatedTokenAddressSync ( stakeMintKey , staker , false , pk ( tokenProgramId ) ) ;
299+ const poolMintAccountKey = getAssociatedTokenAddressSync ( pk ( stakePoolMint ) , staker , true , pk ( tokenProgramId ) ) ;
300+ const stakeMintAccountKey = getAssociatedTokenAddressSync ( stakeMintKey , staker , true , pk ( tokenProgramId ) ) ;
301301 const instruction = await stakePoolProgram . methods
302302 . unstake ( )
303303 . accounts ( {
@@ -331,6 +331,7 @@ export class SolanaStakingClient {
331331 rewardMint,
332332 permissionless = false ,
333333 stakePool,
334+ lastClaimPeriodOpt,
334335 tokenProgramId = TOKEN_PROGRAM_ID ,
335336 } : CreateRewardPoolArgs ,
336337 extParams : IInteractSolanaExt ,
@@ -339,7 +340,7 @@ export class SolanaStakingClient {
339340 const creator = extParams . invoker . publicKey ;
340341 invariant ( creator , "Undefined invoker publicKey" ) ;
341342 const instruction = await rewardPoolProgram . methods
342- . createPool ( nonce , rewardAmount , rewardPeriod , permissionless )
343+ . createPool ( nonce , rewardAmount , rewardPeriod , permissionless , lastClaimPeriodOpt )
343344 . accounts ( {
344345 creator,
345346 stakePool,
@@ -377,7 +378,7 @@ export class SolanaStakingClient {
377378 rewardPool : deriveRewardPoolPDA ( rewardPoolProgram . programId , pk ( stakePool ) , pk ( rewardMint ) , rewardPoolNonce ) ,
378379 claimant : staker ,
379380 tokenProgram : tokenProgramId ,
380- to : getAssociatedTokenAddressSync ( pk ( rewardMint ) , staker , false , pk ( tokenProgramId ) ) ,
381+ to : getAssociatedTokenAddressSync ( pk ( rewardMint ) , staker , true , pk ( tokenProgramId ) ) ,
381382 } )
382383 . instruction ( ) ;
383384
@@ -420,7 +421,7 @@ export class SolanaStakingClient {
420421 . accountsPartial ( {
421422 funder : staker ,
422423 rewardPool : rewardPoolPda ,
423- from : getAssociatedTokenAddressSync ( rewardMintPk , staker , false , tokenProgramPk ) ,
424+ from : getAssociatedTokenAddressSync ( rewardMintPk , staker , true , tokenProgramPk ) ,
424425 tokenProgram : tokenProgramId ,
425426 vault : deriveRewardVaultPDA ( rewardPoolProgram . programId , rewardPoolPda ) ,
426427 mint : rewardMint ,
@@ -442,7 +443,7 @@ export class SolanaStakingClient {
442443 }
443444
444445 async prepareCreateRewardEntryInstructions (
445- { stakePoolMint , stakePool, rewardPoolNonce, depositNonce } : CreateRewardEntryArgs ,
446+ { stakePool, rewardPoolNonce, depositNonce, rewardMint } : CreateRewardEntryArgs ,
446447 extParams : IInteractSolanaExt ,
447448 ) {
448449 const { stakePoolProgram, rewardPoolProgram } = this . programs ;
@@ -454,7 +455,7 @@ export class SolanaStakingClient {
454455 payer : staker ,
455456 authority : staker ,
456457 stakeEntry : deriveStakeEntryPDA ( stakePoolProgram . programId , pk ( stakePool ) , staker , depositNonce ) ,
457- rewardPool : deriveRewardPoolPDA ( rewardPoolProgram . programId , pk ( stakePool ) , pk ( stakePoolMint ) , rewardPoolNonce ) ,
458+ rewardPool : deriveRewardPoolPDA ( rewardPoolProgram . programId , pk ( stakePool ) , pk ( rewardMint ) , rewardPoolNonce ) ,
458459 } )
459460 . instruction ( ) ;
460461
@@ -472,7 +473,7 @@ export class SolanaStakingClient {
472473 }
473474
474475 async prepareUpdateRewardPoolInstructions (
475- { rewardPool, rewardAmount, rewardPeriod } : UpdateRewardPoolArgs ,
476+ { rewardPool, rewardAmount, rewardPeriod, stakePool } : UpdateRewardPoolArgs ,
476477 extParams : IInteractSolanaExt ,
477478 ) {
478479 const { rewardPoolProgram } = this . programs ;
@@ -481,6 +482,7 @@ export class SolanaStakingClient {
481482 const instruction = await rewardPoolProgram . methods
482483 . updatePool ( rewardAmount , rewardPeriod )
483484 . accountsPartial ( {
485+ stakePool,
484486 authority : invoker ,
485487 rewardPool,
486488 } )
0 commit comments