UNPKG

@nosana/kit

Version:

Nosana KIT

39 lines 1.81 kB
import { generateKeyPairSigner } from '@solana/kit'; import { SYSTEM_PROGRAM_ADDRESS } from '@solana-program/system'; export async function open({ nodeAccessKey, jobExpiration, jobType, jobPrice, jobTimeout, nodeStakeMinimum, payer, } = {}, { config, deps, client, getRequiredWallet, getStaticAccounts }) { try { const wallet = getRequiredWallet(); // Use provided payer or fall back to wallet const nosPayer = payer ?? wallet; // Generate new keypair for market and get jobs program address const [marketKeypair, { jobsProgram }] = await Promise.all([ generateKeyPairSigner(), getStaticAccounts(), ]); // Derive vault PDA: [market, mint] const vault = await deps.solana.pda([marketKeypair.address, config.nosTokenAddress], jobsProgram); // Use default access key if not provided (system program) const accessKey = nodeAccessKey ?? SYSTEM_PROGRAM_ADDRESS; // Create the open instruction return client.getOpenInstruction({ mint: config.nosTokenAddress, market: marketKeypair, vault: vault, authority: nosPayer, accessKey: accessKey, jobExpiration: jobExpiration ?? 86400, // 24 hours in seconds jobPrice: jobPrice ?? 0, jobTimeout: jobTimeout ?? 7200, // 120 minutes in seconds jobType: jobType ?? 0, nodeXnosMinimum: nodeStakeMinimum ?? 0, }, { programAddress: jobsProgram, }); } catch (err) { const errorMessage = `Failed to create open instruction: ${err instanceof Error ? err.message : String(err)}`; deps.logger.error(errorMessage); throw new Error(errorMessage); } } //# sourceMappingURL=open.js.map