Namespace NArk.Arkade.Emulator
Classes
- ArkadeBatchSessionExtension
IBatchSessionExtension that drives emulator co-signing at the PSBT-emitting points of a batch flow. Idempotent — passes PSBTs through unchanged when no input in the batch is arkade-bound.
- ArkadeEmulatorPacketProvider
ISpendExtensionPacketProvider that contributes the Arkade EmulatorPacket to a spend's Extension OP_RETURN, so covenant (arkade-bound) inputs carry the script bytes + witness the emulator needs to co-sign. Stateless and cheap: returns nothing when the spend has no arkade-bound input, so it can be registered unconditionally.
- ArkadeEmulatorSpendSubmitter
ISpendSubmitHandler that routes covenant (arkade-bound) offchain spends through the emulator co-signing service instead of arkd directly. The emulator validates each input's ArkadeScript, adds its co-signature, forwards the set to arkd and finalizes — so once it returns, the spend is fully submitted.
- ArkadePsbtExtensions
Helpers that link the existing ArkCoin + PSBT spend flow to the emulator co-signing service. The integration points:
- ConnectorTreeNode
One node in the connector tree carried through the finalization request.
- EmulatorClient
HTTP/JSON implementation of IEmulatorProvider. Designed for DI — register via
services.AddEmulatorClient(...)and inject. The HttpClient base address must be set to the emulator server root (e.g.http://localhost:7073).
- EmulatorClientOptions
Configuration for EmulatorClient.
- EmulatorEntry
One entry in an EmulatorPacket — binds a transaction input to the ArkadeScript bytecode the emulator should execute and the witness stack that script consumes.
- EmulatorFinalizationResult
Co-signed forfeits + (conditionally) commitment tx from
POST /v1/finalization.
- EmulatorInfo
Server identification returned from
GET /v1/info.
- EmulatorPacket
TLV record (type tag
0x01) carried inside the same Extension OP_RETURN envelope the asset packet uses, binding ArkadeScript bytecode + a witness stack to specific transaction inputs for emulator co-signing.
- EmulatorPubKeys
The covenant co-signer key each Arkade network runs, pinned rather than asked for.
- EmulatorSubmitTxResult
Co-signed PSBTs returned from
POST /v1/tx.
- PrevArkTxProvider
Default IPrevArkTxProvider: serves previous Arkade transactions from the local virtual-tx store when present, then arkd's indexer (
GetVirtualTxs), and finally — when a blockchain backend is supplied — from chain.
Interfaces
- IEmulatorProvider
Client surface for an Arkade emulator co-signing service. Mirrors the ts-sdk's
EmulatorProvidershape so callers picking a .NET vs. TypeScript wallet stack write the same orchestration code.
- IPrevArkTxProvider
Resolves raw Arkade transactions by txid, so a spend can attach them to its PSBT inputs as
prevarktxark fields before the emulator sees it.