Skip to content

Commit dfe125a

Browse files
committed
Add TransactionPlanner type
1 parent c522714 commit dfe125a

3 files changed

Lines changed: 37 additions & 0 deletions

File tree

.changeset/floppy-queens-tickle.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@solana/instruction-plans': patch
3+
---
4+
5+
Add a `TransactionPlanner` function type that defines how `InstructionPlans` gets planned and turned into `TransactionPlans`.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/* eslint-disable @typescript-eslint/no-floating-promises */
2+
3+
import type { InstructionPlan } from '../instruction-plan';
4+
import type { TransactionPlan } from '../transaction-plan';
5+
import type { TransactionPlanner } from '../transaction-planner';
6+
7+
// [DESCRIBE] TransactionPlanner
8+
{
9+
// Its return type satisfies TransactionPlan.
10+
{
11+
const instructionPlan = null as unknown as InstructionPlan;
12+
const planner = null as unknown as TransactionPlanner;
13+
const transactionPlan = planner(instructionPlan);
14+
transactionPlan satisfies Promise<TransactionPlan>;
15+
}
16+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import type { InstructionPlan } from './instruction-plan';
2+
import type { TransactionPlan } from './transaction-plan';
3+
4+
/**
5+
* Plans one or more transactions according to the provided instruction plan.
6+
*
7+
* @param instructionPlan - The instruction plan to be planned and executed.
8+
* @param config - Optional configuration object that can include an `AbortSignal` to cancel the planning process.
9+
*
10+
* @see {@link InstructionPlan}
11+
* @see {@link TransactionPlan}
12+
*/
13+
export type TransactionPlanner = (
14+
instructionPlan: InstructionPlan,
15+
config?: { abortSignal?: AbortSignal },
16+
) => Promise<TransactionPlan>;

0 commit comments

Comments
 (0)