@nosana/kit
Version:
Nosana KIT
36 lines • 1.45 kB
JavaScript
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