11import type { MergePool , Rewarder } from "@macalinao/clients-quarry" ;
2+ import type { AccountInfo } from "@macalinao/gill-extra" ;
23import type { Address , Instruction , TransactionSigner } from "@solana/kit" ;
34import {
45 findMergeMinerPda ,
56 findMinerPda ,
6- findMinterPda ,
77 findQuarryPda ,
8- getClaimRewardsMMInstruction ,
9- getWithdrawTokensMMInstruction ,
10- QUARRY_MINT_WRAPPER_PROGRAM_ADDRESS ,
8+ getClaimRewardsMMInstructionAsync ,
9+ getWithdrawTokensMMInstructionAsync ,
1110} from "@macalinao/clients-quarry" ;
1211import {
1312 findAssociatedTokenPda ,
@@ -24,10 +23,12 @@ export interface QuarryStakeAccounts {
2423 minerVault : Address ;
2524}
2625
27- export interface MergePoolAccount {
28- address : Address ;
29- data : Pick < MergePool , "primaryMint" | "replicaMint" > ;
30- }
26+ /**
27+ * A merge pool account with primary/replica mint exposed.
28+ */
29+ export type MergePoolAccount = AccountInfo <
30+ Pick < MergePool , "primaryMint" | "replicaMint" >
31+ > ;
3132
3233export interface ClaimRewardsCommonArgs {
3334 quarryMint : Address ;
@@ -57,12 +58,6 @@ export async function claimRewardsCommon({
5758} : ClaimRewardsCommonArgs ) : Promise < Instruction [ ] > {
5859 const instructions : Instruction [ ] = [ ] ;
5960
60- // Derive the minter PDA
61- const [ minter ] = await findMinterPda ( {
62- wrapper : rewarder . data . mintWrapper ,
63- authority : stake . rewarder ,
64- } ) ;
65-
6661 // Get or create associated token accounts for the merge miner
6762 const [ mmQuarryTokenAccount ] = await findAssociatedTokenPda ( {
6863 mint : quarryMint ,
@@ -119,30 +114,23 @@ export async function claimRewardsCommon({
119114
120115 // Claim rewards instruction
121116 instructions . push (
122- getClaimRewardsMMInstruction ( {
117+ await getClaimRewardsMMInstructionAsync ( {
123118 mintWrapper : rewarder . data . mintWrapper ,
124- mintWrapperProgram : QUARRY_MINT_WRAPPER_PROGRAM_ADDRESS ,
125- minter,
126119 rewardsTokenMint : rewarder . data . rewardsTokenMint ,
127- rewardsTokenAccount : mmRewardsTokenAccount ,
128- claimFeeTokenAccount : rewarder . data . claimFeeTokenAccount ,
129120 stakeTokenAccount : mmQuarryTokenAccount ,
130121 pool : stake . pool ,
131122 mm : stake . mm ,
132123 rewarder : stake . rewarder ,
133124 quarry : stake . quarry ,
134- miner : stake . miner ,
135125 minerVault : stake . minerVault ,
136126 } ) ,
137127 ) ;
138128
139129 // Withdraw rewards tokens from merge miner to owner
140130 instructions . push (
141- getWithdrawTokensMMInstruction ( {
131+ await getWithdrawTokensMMInstructionAsync ( {
142132 owner : mmOwner ,
143133 pool : stake . pool ,
144- mm : stake . mm ,
145- mmTokenAccount : mmRewardsTokenAccount ,
146134 withdrawMint : rewarder . data . rewardsTokenMint ,
147135 tokenDestination : ownerRewardsTokenAccount ,
148136 } ) ,
@@ -161,13 +149,9 @@ export async function claimPrimaryRewards({
161149} : {
162150 mergePool : MergePoolAccount ;
163151 mmOwner : TransactionSigner ;
164- rewarder : {
165- address : Address ;
166- data : Pick <
167- Rewarder ,
168- "mintWrapper" | "rewardsTokenMint" | "claimFeeTokenAccount"
169- > ;
170- } ;
152+ rewarder : AccountInfo <
153+ Pick < Rewarder , "mintWrapper" | "rewardsTokenMint" | "claimFeeTokenAccount" >
154+ > ;
171155} ) : Promise < Instruction [ ] > {
172156 const stake = await getPrimaryStakeAccounts ( {
173157 rewarder : rewarder . address ,
0 commit comments