UNPKG

@nosana/kit

Version:

Nosana KIT

36 lines 1.45 kB
import bs58 from 'bs58'; import { generateKeyPairSigner } from '@solana/kit'; export async function post({ market, timeout, ipfsHash, payer }, { config, deps, client, getRequiredWallet, getStaticAccounts, getNosATA, }) { try { const wallet = getRequiredWallet(); // Use provided payer or fall back to wallet const nosPayer = payer ?? wallet; // Generate new keypairs for job and run const [jobKey, runKey, associatedTokenAddress, { jobsProgram, ...staticAccounts }] = await Promise.all([ generateKeyPairSigner(), generateKeyPairSigner(), getNosATA(nosPayer.address), getStaticAccounts(), ]); const vault = await deps.solana.pda([market, config.nosTokenAddress], jobsProgram); // Create the list instruction return client.getListInstruction({ job: jobKey, run: runKey, market, ipfsJob: bs58.decode(ipfsHash).subarray(2), timeout, user: associatedTokenAddress, vault: vault, payer: nosPayer, authority: wallet, ...staticAccounts, }); } catch (err) { const errorMessage = `Failed to create list instruction: ${err instanceof Error ? err.message : String(err)}`; deps.logger.error(errorMessage); throw new Error(errorMessage); } } //# sourceMappingURL=post.js.map