@solana/kit-plugin-instruction-plan
v0.6.0
Published
Plan and execute transactions in your Kit clients
Maintainers
Readme
Kit Plugins ➤ Instruction Plan
This package provides plugins that add transaction planning and execution to your Kit clients.
Installation
pnpm install @solana/kit-plugin-instruction-plantransactionPlanner plugin
The transactionPlanner plugin sets a custom transaction planner on the client.
Installation
import { createEmptyClient, createTransactionPlanner } from '@solana/kit';
import { transactionPlanner } from '@solana/kit-plugins';
const myTransactionPlanner = createTransactionPlanner(/* ... */);
const client = createEmptyClient().use(transactionPlanner(myTransactionPlanner));Features
transactionPlanner: A function that plans instructions into transaction messages.const transactionPlan = await client.transactionPlanner(myInstructionPlan);
transactionPlanExecutor plugin
The transactionPlanExecutor plugin sets a custom transaction plan executor on the client.
Installation
import { createEmptyClient, createTransactionPlanExecutor } from '@solana/kit';
import { transactionPlanExecutor } from '@solana/kit-plugins';
const myTransactionPlanExecutor = createTransactionPlanExecutor(/* ... */);
const client = createEmptyClient().use(transactionPlanExecutor(myTransactionPlanExecutor));Features
transactionPlanExecutor: A function that executes planned transactions.const transactionPlanResult = await client.transactionPlanExecutor(myTransactionPlan);
sendTransactions plugin
The sendTransactions plugin adds two helper functions, sendTransaction and sendTransactions, that combine transaction planning and execution in a single call. They accept transaction messages, instructions or instruction plans as input.
Installation
This plugin requires both transactionPlanner and transactionPlanExecutor to be installed on the client.
import { createEmptyClient } from '@solana/kit';
import { transactionPlanner, transactionPlanExecutor, sendTransactions } from '@solana/kit-plugins';
const client = createEmptyClient()
.use(transactionPlanner(myTransactionPlanner))
.use(transactionPlanExecutor(myTransactionPlanExecutor))
.use(sendTransactions());Features
sendTransactions: An asynchronous function that plans and executes transaction messages, instructions or instruction plans in one call.const transactionPlanResult = await client.sendTransactions(myInstructionPlan);sendTransaction: An asynchronous function that plans and executes a single transaction message, instruction plan or multiple instructions in one call. Should the provided instructions or instruction plan result in multiple transactions, an error will be thrown prior to execution.const transactionPlanResult = await client.sendTransaction(myInstructionPlan);
Default Planner and Executor Implementations
For ready-to-use transaction planner and executor implementations, see:
@solana/kit-plugin-rpc— providesrpcTransactionPlannerandrpcTransactionPlanExecutorfor RPC-based transaction planning and execution.@solana/kit-plugin-litesvm— provideslitesvmTransactionPlannerandlitesvmTransactionPlanExecutorfor LiteSVM-based transaction planning and execution.
