Table of Contents

Class Extension

Namespace
NArk.Core.Assets
Assembly
NArk.Core.dll

An extension blob carried in a Bitcoin OP_RETURN output. Wire format: OP_RETURN <push: [ARK magic 0x41524B][type(1B) varint(len) data]...> Each record is a typed packet with explicit LEB128 varint length framing. Duplicate packet types are rejected. At least one packet is required.

public class Extension
Inheritance
Extension
Inherited Members

Constructors

Extension(IReadOnlyList<IExtensionPacket>)

public Extension(IReadOnlyList<IExtensionPacket> packets)

Parameters

packets IReadOnlyList<IExtensionPacket>

Fields

ArkadeMagic

public static readonly byte[] ArkadeMagic

Field Value

byte[]

Properties

Packets

public IReadOnlyList<IExtensionPacket> Packets { get; }

Property Value

IReadOnlyList<IExtensionPacket>

Methods

FromScript(Script)

Parses an extension from an OP_RETURN script.

public static Extension FromScript(Script script)

Parameters

script Script

Returns

Extension

FromTransaction(Transaction)

Searches a transaction's outputs for an extension blob and parses it. Returns null if no extension output is found.

public static Extension? FromTransaction(Transaction tx)

Parameters

tx Transaction

Returns

Extension

GetAssetPacket()

Returns the asset Packet embedded in this extension, or null if none is present.

public Packet? GetAssetPacket()

Returns

Packet

IsExtension(Script)

Reports whether the given script is an ARK extension blob (OP_RETURN followed by a data push whose payload begins with ArkadeMagic).

public static bool IsExtension(Script script)

Parameters

script Script

Returns

bool

Serialize()

Serializes this extension as a complete OP_RETURN script.

public byte[] Serialize()

Returns

byte[]

ToTxOut()

Returns an OP_RETURN TxOut with amount=0 containing the serialized extension.

public TxOut ToTxOut()

Returns

TxOut