From ab7180f1181083a07f92d03591c4729140fc04fa Mon Sep 17 00:00:00 2001 From: SolanaMonkeyBusiness Date: Sat, 13 Nov 2021 14:24:34 +0100 Subject: [PATCH] Add postInstructions --- ts/src/program/context.ts | 6 ++++++ ts/src/program/namespace/transaction.ts | 1 + 2 files changed, 7 insertions(+) diff --git a/ts/src/program/context.ts b/ts/src/program/context.ts index 98eeb3b9b4..9003514924 100644 --- a/ts/src/program/context.ts +++ b/ts/src/program/context.ts @@ -33,6 +33,12 @@ export type Context = { */ instructions?: TransactionInstruction[]; + /** + * Instructions to run *after* a given method. Often this is used, for + * example to close accounts after to executing a method. + */ + postInstructions?: TransactionInstruction[]; + /** * Commitment parameters to use for a transaction. */ diff --git a/ts/src/program/namespace/transaction.ts b/ts/src/program/namespace/transaction.ts index 03fa171f3c..72eccabf73 100644 --- a/ts/src/program/namespace/transaction.ts +++ b/ts/src/program/namespace/transaction.ts @@ -18,6 +18,7 @@ export default class TransactionFactory { const tx = new Transaction(); ctx.instructions?.forEach((ix) => tx.add(ix)); tx.add(ixFn(...args)); + ctx.postInstructions?.forEach((ix) => tx.add(ix)); return tx; };