Class Extension
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
packetsIReadOnlyList<IExtensionPacket>
Fields
ArkadeMagic
public static readonly byte[] ArkadeMagic
Field Value
- byte[]
Properties
Packets
public IReadOnlyList<IExtensionPacket> Packets { get; }
Property Value
Methods
FromScript(Script)
Parses an extension from an OP_RETURN script.
public static Extension FromScript(Script script)
Parameters
scriptScript
Returns
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
txTransaction
Returns
GetAssetPacket()
Returns the asset Packet embedded in this extension, or null if none is present.
public Packet? GetAssetPacket()
Returns
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
scriptScript
Returns
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