@nosana/kit
Version:
Nosana KIT
30 lines • 1.13 kB
JavaScript
const SECONDS_PER_DAY = 86400;
export async function stake({ amount, days }, { config, deps, client, getRequiredWallet, getNosATA }) {
try {
const wallet = getRequiredWallet();
const mint = config.nosTokenAddress;
const programId = config.stakeAddress;
const duration = days * SECONDS_PER_DAY;
// Parallelize independent async operations
const [userAta, vault, stakePda] = await Promise.all([
getNosATA(wallet.address),
deps.solana.pda(['vault', mint, wallet.address], programId),
deps.solana.pda(['stake', mint, wallet.address], programId),
]);
return client.getStakeInstruction({
mint,
user: userAta,
vault,
stake: stakePda,
authority: wallet,
amount,
duration,
});
}
catch (err) {
const errorMessage = `Failed to create stake instruction: ${err instanceof Error ? err.message : String(err)}`;
deps.logger.error(errorMessage);
throw new Error(errorMessage);
}
}
//# sourceMappingURL=stake.js.map