Skip to content

Documentation / @cashconnect-js/core / templates/instruction-transaction

InstructionTransactionScript

ts
type InstructionTransactionScript = z.infer<typeof InstructionTransactionScriptSchema>;

Defined in: cashconnect-js/packages/core/src/templates/instruction-transaction.ts:434


InstructionTransactionInput

ts
type InstructionTransactionInput = z.infer<typeof InstructionTransactionInputSchema>;

Defined in: cashconnect-js/packages/core/src/templates/instruction-transaction.ts:438


InstructionTransactionOutput

ts
type InstructionTransactionOutput = z.infer<typeof InstructionTransactionOutputSchema>;

Defined in: cashconnect-js/packages/core/src/templates/instruction-transaction.ts:442


InstructionTransactionPayload

ts
type InstructionTransactionPayload = z.infer<typeof InstructionTransactionPayloadSchema>;

Defined in: cashconnect-js/packages/core/src/templates/instruction-transaction.ts:446


InstructionTransaction

ts
type InstructionTransaction = z.infer<typeof InstructionTransactionSchema>;

Defined in: cashconnect-js/packages/core/src/templates/instruction-transaction.ts:450


InstructionTransactionHandler

Defined in: cashconnect-js/packages/core/src/templates/instruction-transaction.ts:28

Constructors

Constructor

ts
new InstructionTransactionHandler(
   instruction, 
   compiler, 
   state, 
   context): InstructionTransactionHandler;

Defined in: cashconnect-js/packages/core/src/templates/instruction-transaction.ts:139

Parameters
ParameterType
instruction{ type: "transaction"; payload: { name: string; version: number; locktime: string | number; inputs: ( | "*" | { outpointTransactionHash: string; outpointIndex: string | number; sequenceNumber: string | number; $if?: string; unlockingBytecode?: | string | { script: string; resolve?: Record<string, string>; }; })[]; outputs: ( | "*" | { valueSatoshis: string | bigint; $if?: string; lockingBytecode?: | string | { script: string; resolve?: Record<string, string>; }; token?: { category: string | Uint8Array<ArrayBuffer>; amount?: string | bigint; nft?: { capability: "none" | "mutable" | "minting"; commitment: string; }; }; })[]; validate: boolean; }; $if?: string; }
instruction.type"transaction"
instruction.payload{ name: string; version: number; locktime: string | number; inputs: ( | "*" | { outpointTransactionHash: string; outpointIndex: string | number; sequenceNumber: string | number; $if?: string; unlockingBytecode?: | string | { script: string; resolve?: Record<string, string>; }; })[]; outputs: ( | "*" | { valueSatoshis: string | bigint; $if?: string; lockingBytecode?: | string | { script: string; resolve?: Record<string, string>; }; token?: { category: string | Uint8Array<ArrayBuffer>; amount?: string | bigint; nft?: { capability: "none" | "mutable" | "minting"; commitment: string; }; }; })[]; validate: boolean; }
instruction.payload.namestring
instruction.payload.versionnumber
instruction.payload.locktimestring | number
instruction.payload.inputs( | "*" | { outpointTransactionHash: string; outpointIndex: string | number; sequenceNumber: string | number; $if?: string; unlockingBytecode?: | string | { script: string; resolve?: Record<string, string>; }; })[]
instruction.payload.outputs( | "*" | { valueSatoshis: string | bigint; $if?: string; lockingBytecode?: | string | { script: string; resolve?: Record<string, string>; }; token?: { category: string | Uint8Array<ArrayBuffer>; amount?: string | bigint; nft?: { capability: "none" | "mutable" | "minting"; commitment: string; }; }; })[]
instruction.payload.validateboolean
instruction.$if?string
compilerCompiler
stateTemplateInstructionState
contextTemplateContext
Returns

InstructionTransactionHandler

Methods

execute()

ts
static execute(
   instruction, 
   compiler, 
   state, 
   context): Promise<TemplateInstructionState>;

Defined in: cashconnect-js/packages/core/src/templates/instruction-transaction.ts:29

Parameters
ParameterType
instruction{ type: "transaction"; payload: { name: string; version: number; locktime: string | number; inputs: ( | "*" | { outpointTransactionHash: string; outpointIndex: string | number; sequenceNumber: string | number; $if?: string; unlockingBytecode?: | string | { script: string; resolve?: Record<string, string>; }; })[]; outputs: ( | "*" | { valueSatoshis: string | bigint; $if?: string; lockingBytecode?: | string | { script: string; resolve?: Record<string, string>; }; token?: { category: string | Uint8Array<ArrayBuffer>; amount?: string | bigint; nft?: { capability: "none" | "mutable" | "minting"; commitment: string; }; }; })[]; validate: boolean; }; $if?: string; }
instruction.type"transaction"
instruction.payload{ name: string; version: number; locktime: string | number; inputs: ( | "*" | { outpointTransactionHash: string; outpointIndex: string | number; sequenceNumber: string | number; $if?: string; unlockingBytecode?: | string | { script: string; resolve?: Record<string, string>; }; })[]; outputs: ( | "*" | { valueSatoshis: string | bigint; $if?: string; lockingBytecode?: | string | { script: string; resolve?: Record<string, string>; }; token?: { category: string | Uint8Array<ArrayBuffer>; amount?: string | bigint; nft?: { capability: "none" | "mutable" | "minting"; commitment: string; }; }; })[]; validate: boolean; }
instruction.payload.namestring
instruction.payload.versionnumber
instruction.payload.locktimestring | number
instruction.payload.inputs( | "*" | { outpointTransactionHash: string; outpointIndex: string | number; sequenceNumber: string | number; $if?: string; unlockingBytecode?: | string | { script: string; resolve?: Record<string, string>; }; })[]
instruction.payload.outputs( | "*" | { valueSatoshis: string | bigint; $if?: string; lockingBytecode?: | string | { script: string; resolve?: Record<string, string>; }; token?: { category: string | Uint8Array<ArrayBuffer>; amount?: string | bigint; nft?: { capability: "none" | "mutable" | "minting"; commitment: string; }; }; })[]
instruction.payload.validateboolean
instruction.$if?string
compilerCompiler
stateTemplateInstructionState
contextTemplateContext
Returns

Promise<TemplateInstructionState>

resolveFieldValues()

ts
resolveFieldValues(): Omit<TransactionTemplate, "sourceOutput">;

Defined in: cashconnect-js/packages/core/src/templates/instruction-transaction.ts:146

Returns

Omit<TransactionTemplate, "sourceOutput">

resolveInputValues()

ts
resolveInputValues(input, i): object;

Defined in: cashconnect-js/packages/core/src/templates/instruction-transaction.ts:207

Parameters
ParameterType
input{ outpointTransactionHash: string; outpointIndex: string | number; sequenceNumber: string | number; $if?: string; unlockingBytecode?: | string | { script: string; resolve?: Record<string, string>; }; }
input.outpointTransactionHashstring
input.outpointIndexstring | number
input.sequenceNumberstring | number
input.$if?string
input.unlockingBytecode?| string | { script: string; resolve?: Record<string, string>; }
inumber
Returns

object

NameTypeDefined in
outpointIndexnumbercashconnect-js/packages/core/src/templates/instruction-transaction.ts:233
outpointTransactionHashUint8Array<ArrayBufferLike>cashconnect-js/packages/core/src/templates/instruction-transaction.ts:241
sequenceNumbernumbercashconnect-js/packages/core/src/templates/instruction-transaction.ts:249
unlockingBytecode| (compilationContext) => Uint8Array<ArrayBufferLike> | undefinedcashconnect-js/packages/core/src/templates/instruction-transaction.ts:257

resolveOutputValues()

ts
resolveOutputValues(output, i): object;

Defined in: cashconnect-js/packages/core/src/templates/instruction-transaction.ts:261

Parameters
ParameterType
output{ valueSatoshis: string | bigint; $if?: string; lockingBytecode?: | string | { script: string; resolve?: Record<string, string>; }; token?: { category: string | Uint8Array<ArrayBuffer>; amount?: string | bigint; nft?: { capability: "none" | "mutable" | "minting"; commitment: string; }; }; }
output.valueSatoshisstring | bigint
output.$if?string
output.lockingBytecode?| string | { script: string; resolve?: Record<string, string>; }
output.token?{ category: string | Uint8Array<ArrayBuffer>; amount?: string | bigint; nft?: { capability: "none" | "mutable" | "minting"; commitment: string; }; }
output.token.categorystring | Uint8Array<ArrayBuffer>
output.token.amount?string | bigint
output.token.nft?{ capability: "none" | "mutable" | "minting"; commitment: string; }
output.token.nft.capability"none" | "mutable" | "minting"
output.token.nft.commitmentstring
inumber
Returns

object

NameTypeDefined in
valueSatoshisbigintcashconnect-js/packages/core/src/templates/instruction-transaction.ts:283
token| { category: Uint8Array<ArrayBufferLike>; amount: bigint; nft: | { capability: "none" | "mutable" | "minting"; commitment: Uint8Array<ArrayBufferLike>; } | undefined; } | undefinedcashconnect-js/packages/core/src/templates/instruction-transaction.ts:291
lockingBytecode() => Uint8Array<ArrayBufferLike> | undefinedcashconnect-js/packages/core/src/templates/instruction-transaction.ts:320

validateTransaction()

ts
validateTransaction(transaction, sourceOutputs): void;

Defined in: cashconnect-js/packages/core/src/templates/instruction-transaction.ts:324

Parameters
ParameterType
transactionTransactionBch
sourceOutputsOutput[]
Returns

void

resolveSourceOutputs()

ts
resolveSourceOutputs(transaction, existingSourceOutputs): Promise<TransactionTemplate>;

Defined in: cashconnect-js/packages/core/src/templates/instruction-transaction.ts:346

Parameters
ParameterType
transactionOmit<TransactionTemplate, "sourceOutput">
existingSourceOutputsSourceOutputs
Returns

Promise<TransactionTemplate>

Properties

PropertyModifierTypeDefined in
instructionpublicobjectcashconnect-js/packages/core/src/templates/instruction-transaction.ts:140
instruction.typepublic"transaction"cashconnect-js/packages/core/src/templates/instruction-transaction.ts:429
instruction.payloadpublicobjectcashconnect-js/packages/core/src/templates/instruction-transaction.ts:431
instruction.payload.namepublicstringcashconnect-js/packages/core/src/templates/instruction-transaction.ts:418
instruction.payload.versionpublicnumbercashconnect-js/packages/core/src/templates/instruction-transaction.ts:419
instruction.payload.locktimepublicstring | numbercashconnect-js/packages/core/src/templates/instruction-transaction.ts:420
instruction.payload.inputspublic( | "*" | { outpointTransactionHash: string; outpointIndex: string | number; sequenceNumber: string | number; $if?: string; unlockingBytecode?: | string | { script: string; resolve?: Record<string, string>; }; })[]cashconnect-js/packages/core/src/templates/instruction-transaction.ts:421
instruction.payload.outputspublic( | "*" | { valueSatoshis: string | bigint; $if?: string; lockingBytecode?: | string | { script: string; resolve?: Record<string, string>; }; token?: { category: string | Uint8Array<ArrayBuffer>; amount?: string | bigint; nft?: { capability: "none" | "mutable" | "minting"; commitment: string; }; }; })[]cashconnect-js/packages/core/src/templates/instruction-transaction.ts:422
instruction.payload.validatepublicbooleancashconnect-js/packages/core/src/templates/instruction-transaction.ts:425
instruction.$if?publicstringcashconnect-js/packages/core/src/templates/instruction-transaction.ts:430
compilerpublicCompilercashconnect-js/packages/core/src/templates/instruction-transaction.ts:141
statepublicTemplateInstructionStatecashconnect-js/packages/core/src/templates/instruction-transaction.ts:142
contextpublicTemplateContextcashconnect-js/packages/core/src/templates/instruction-transaction.ts:143

InstructionTransactionScriptSchema

ts
const InstructionTransactionScriptSchema: ZodUnion<readonly [ZodString, ZodObject<{
  script: ZodString;
  resolve: ZodOptional<ZodRecord<ZodString, ZodString>>;
}, $strip>]>;

Defined in: cashconnect-js/packages/core/src/templates/instruction-transaction.ts:383


InstructionTransactionInputSchema

ts
const InstructionTransactionInputSchema: ZodObject<{
  $if: ZodOptional<ZodString>;
  unlockingBytecode: ZodOptional<ZodUnion<readonly [ZodString, ZodObject<{
     script: ZodString;
     resolve: ZodOptional<ZodRecord<ZodString, ZodString>>;
  }, $strip>]>>;
  outpointTransactionHash: ZodString;
  outpointIndex: ZodUnion<readonly [ZodString, ZodNumber]>;
  sequenceNumber: ZodUnion<readonly [ZodString, ZodNumber]>;
}, $strip>;

Defined in: cashconnect-js/packages/core/src/templates/instruction-transaction.ts:391


InstructionTransactionOutputSchema

ts
const InstructionTransactionOutputSchema: ZodObject<{
  $if: ZodOptional<ZodString>;
  lockingBytecode: ZodOptional<ZodUnion<readonly [ZodString, ZodObject<{
     script: ZodString;
     resolve: ZodOptional<ZodRecord<ZodString, ZodString>>;
  }, $strip>]>>;
  valueSatoshis: ZodUnion<readonly [ZodString, ZodBigInt]>;
  token: ZodOptional<ZodObject<{
     category: ZodUnion<readonly [ZodString, ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>]>;
     amount: ZodOptional<ZodUnion<readonly [ZodString, ZodBigInt]>>;
     nft: ZodOptional<ZodObject<{
        capability: ZodEnum<{
           none: "none";
           mutable: "mutable";
           minting: "minting";
        }>;
        commitment: ZodString;
     }, $strip>>;
  }, $strip>>;
}, $strip>;

Defined in: cashconnect-js/packages/core/src/templates/instruction-transaction.ts:399


InstructionTransactionPayloadSchema

ts
const InstructionTransactionPayloadSchema: ZodObject<{
  name: ZodString;
  version: ZodNumber;
  locktime: ZodUnion<readonly [ZodString, ZodNumber]>;
  inputs: ZodArray<ZodUnion<readonly [ZodObject<{
     $if: ZodOptional<ZodString>;
     unlockingBytecode: ZodOptional<ZodUnion<readonly [ZodString, ZodObject<..., ...>]>>;
     outpointTransactionHash: ZodString;
     outpointIndex: ZodUnion<readonly [ZodString, ZodNumber]>;
     sequenceNumber: ZodUnion<readonly [ZodString, ZodNumber]>;
  }, $strip>, ZodLiteral<"*">]>>;
  outputs: ZodArray<ZodUnion<readonly [ZodObject<{
     $if: ZodOptional<ZodString>;
     lockingBytecode: ZodOptional<ZodUnion<readonly [ZodString, ZodObject<..., ...>]>>;
     valueSatoshis: ZodUnion<readonly [ZodString, ZodBigInt]>;
     token: ZodOptional<ZodObject<{
        category: ZodUnion<...>;
        amount: ZodOptional<...>;
        nft: ZodOptional<...>;
     }, $strip>>;
  }, $strip>, ZodLiteral<"*">]>>;
  validate: ZodDefault<ZodOptional<ZodBoolean>>;
}, $strip>;

Defined in: cashconnect-js/packages/core/src/templates/instruction-transaction.ts:417


InstructionTransactionSchema

ts
const InstructionTransactionSchema: ZodObject<{
  type: ZodLiteral<"transaction">;
  $if: ZodOptional<ZodString>;
  payload: ZodObject<{
     name: ZodString;
     version: ZodNumber;
     locktime: ZodUnion<readonly [ZodString, ZodNumber]>;
     inputs: ZodArray<ZodUnion<readonly [ZodObject<{
        $if: ZodOptional<ZodString>;
        unlockingBytecode: ZodOptional<ZodUnion<...>>;
        outpointTransactionHash: ZodString;
        outpointIndex: ZodUnion<readonly [..., ...]>;
        sequenceNumber: ZodUnion<readonly [..., ...]>;
     }, $strip>, ZodLiteral<"*">]>>;
     outputs: ZodArray<ZodUnion<readonly [ZodObject<{
        $if: ZodOptional<ZodString>;
        lockingBytecode: ZodOptional<ZodUnion<...>>;
        valueSatoshis: ZodUnion<readonly [..., ...]>;
        token: ZodOptional<ZodObject<..., ...>>;
     }, $strip>, ZodLiteral<"*">]>>;
     validate: ZodDefault<ZodOptional<ZodBoolean>>;
  }, $strip>;
}, $strip>;

Defined in: cashconnect-js/packages/core/src/templates/instruction-transaction.ts:428