Class ArkadeProgramFunctionScriptBuilder
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
opsIEnumerable<Op>The tapscript ops for this function's leaf.
arkadeScriptbyte[]The ArkadeScript the emulator validates before co-signing.
emulatorKeyTaprootPubKeyThe emulator's tweaked key for
arkadeScript.arkadeScriptWitnessWitScriptOptional 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>