UNPKG

@wuwei-labs/srsly

Version:

[![npm version](https://img.shields.io/npm/v/ts-sdk-example.svg)](https://www.npmjs.com/package/ts-sdk-example)

44 lines 1.8 kB
import { getCloseContractInstructionAsync, SRSLY_PROGRAM_ADDRESS, } from '../codama'; import { deriveGameAccounts, DEFAULT_GAME_ID, } from '../utils'; /** * Asynchronously creates an instruction to close a rental contract with minimal required parameters. * Derives rentalAuthority automatically and handles optional parameters. * * @example * ```typescript * // Create the instruction with automatic account derivation * const ix = await closeContract({ * owner: wallet, * fleet: fleetAddress, * contract: contractAddress, * faction: 'mud', // Only needed if starbase and starbasePlayer not provided * // Optional: provide explicit starbase and starbasePlayer if you have them * // Optional: provide rentalState and rentalTokenAccount if active rental exists * }); * * // Add to transaction and sign * const tx = new Transaction().add(ix); * await sendAndConfirmTransaction(connection, tx, [wallet]); * ``` * * @param params The simplified parameters for closing a rental contract * @returns A promise that resolves to the instruction to close a contract */ export async function closeContract(params) { const { owner, fleet, contract, faction, gameId = DEFAULT_GAME_ID, } = params; const derivedAccounts = await deriveGameAccounts(owner.address, faction, gameId); const starbase = derivedAccounts.starbase; const starbasePlayer = derivedAccounts.starbasePlayer; // Let codama derive the rest (rentalAuthority, ownerTokenAccount, etc.) const input = { owner, fleet, contract, starbase, starbasePlayer, gameId, }; return getCloseContractInstructionAsync(input, { programAddress: SRSLY_PROGRAM_ADDRESS }); } export { getCloseContractInstructionAsync }; //# sourceMappingURL=close.js.map