Table of Contents

Class ArkadeProgramFunctionScriptBuilder

Namespace
NArk.Arkade.Program
Assembly
NArk.Arkade.dll

A compiled ArkadeProgram covenant leaf, wrapped so it is detected as arkade-bound by the existing emulator co-signing pipeline — same role as ArkadeNofNMultisigTapScript, but for arbitrary compiled leaves instead of a hardcoded N-of-N.

public sealed class ArkadeProgramFunctionScriptBuilder : GenericTapScript, IArkadeBoundScriptBuilder
Inheritance
ArkadeProgramFunctionScriptBuilder
Implements
Inherited Members

Constructors

ArkadeProgramFunctionScriptBuilder(IEnumerable<Op>, byte[], TaprootPubKey, WitScript?)

Creates a script builder for one compiled program function.

public ArkadeProgramFunctionScriptBuilder(IEnumerable<Op> ops, byte[] arkadeScript, TaprootPubKey emulatorKey, WitScript? arkadeScriptWitness = null)

Parameters

ops IEnumerable<Op>

The tapscript ops for this function's leaf.

arkadeScript byte[]

The ArkadeScript the emulator validates before co-signing.

emulatorKey TaprootPubKey

The emulator's tweaked key for arkadeScript.

arkadeScriptWitness WitScript

Optional call-time witness satisfying arkadeScript.

Properties

ArkadeScript

The ArkadeScript bytecode the emulator executes for this leaf.

public byte[] ArkadeScript { get; }

Property Value

byte[]

ArkadeScriptWitness

The witness the emulator pushes before executing ArkadeScript (e.g. the inspected output index). Distinct from the on-chain ArkCoin.SpendingConditionWitness — a leaf can carry an on-chain condition (a hashlock preimage) AND an arkade-script witness at once. Null when the arkade script needs no witness.

public WitScript? ArkadeScriptWitness { get; }

Property Value

WitScript

EmulatorKeys

Pre-tweak emulator pubkeys (one per emulator). The tapscript leaf's signing set carries the post-tweak versions of these — the pre-tweak forms are kept so the dispatch layer can decide whether to call out to a specific emulator instance.

public IReadOnlyList<TaprootPubKey> EmulatorKeys { get; }

Property Value

IReadOnlyList<TaprootPubKey>