InstructionPlan

type InstructionPlan = 
  | MessagePackerInstructionPlan
  | ParallelInstructionPlan
  | SequentialInstructionPlan
  | SingleInstructionPlan;

A set of instructions with constraints on how they can be executed.

This is structured as a recursive tree of plans in order to allow for parallel execution, sequential execution and combinations of both.

Namely the following plans are supported:

  • SingleInstructionPlan - A plan that contains a single instruction. This is a simple instruction wrapper and the simplest leaf in this tree.
  • ParallelInstructionPlan - A plan that contains other plans that can be executed in parallel.
  • SequentialInstructionPlan - A plan that contains other plans that must be executed sequentially. It also defines whether the plan is divisible meaning that instructions inside it can be split into separate transactions.
  • MessagePackerInstructionPlan - A plan that can dynamically pack instructions into transaction messages.

Helpers are provided for each of these plans to make it easier to create them.

Example

const myInstructionPlan: InstructionPlan = parallelInstructionPlan([
   sequentialInstructionPlan([instructionA, instructionB]),
   instructionC,
   instructionD,
]);

See

On this page