UNPKG

@wuwei-labs/srsly

Version:
56 lines 2.47 kB
"use strict"; /** * @purpose Simplified updateContractThread instruction wrapper * * Thin convenience wrapper around Codama-generated updateContractThread instruction. * Funds additional lamports and/or updates the payment frequency for a contract thread. */ Object.defineProperty(exports, "__esModule", { value: true }); exports.updateContractThread = updateContractThread; const kit_1 = require("@solana/kit"); const instructions_1 = require("../generated/codama/instructions"); const config_1 = require("../utils/config"); const signer_1 = require("../utils/signer"); const instructions_2 = require("../utils/instructions"); const thread_1 = require("../pda/thread"); const srsly_1 = require("../pda/srsly"); const schedule_1 = require("../params/schedule"); const sol_1 = require("../params/sol"); /** * Top up a contract thread's lamports balance and (optionally) * reschedule its payment frequency. * * @param params - Thread update parameters * @param config - Optional SDK configuration overrides * @returns Kit instruction (or web3.js if PublicKey in config) */ async function updateContractThread(params, config) { const finalConfig = (0, config_1.mergeConfig)(config); if (!params.owner) { throw new Error('owner is required'); } if (!params.contract) { throw new Error('contract is required'); } const ownerSigner = (0, signer_1.toTransactionSigner)(params.owner); const addresses = (0, config_1.getAddresses)(config); const programAddress = (0, kit_1.address)(addresses.srsly); const contractAddress = (0, kit_1.address)(params.contract); // Derive thread PDA const rentalAuthority = await (0, srsly_1.deriveRentalAuthority)(); const contractThread = await (0, thread_1.deriveContractThread)(contractAddress, rentalAuthority); // Normalize optional schedule const paymentsFreq = params.paymentsFreq ? (0, schedule_1.normalizeSchedule)(params.paymentsFreq) : null; const kitInstruction = await (0, instructions_1.getUpdateContractThreadInstructionAsync)({ payer: ownerSigner, contract: contractAddress, contractThread, lamports: (0, sol_1.convertSol)(params.lamports ?? 0), paymentsFreq, }, { programAddress }); return (0, instructions_2.prepareInstructions)(kitInstruction, { computeUnits: params.computeUnits, PublicKey: finalConfig.PublicKey, }); } //# sourceMappingURL=updateContractThread.js.map