Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,17 @@

namespace x42.Networks.Policies
{
/// <summary>
/// Blockcore sample coin-specific standard transaction definitions.
/// </summary>
public class x42StandardScriptsRegistry : StandardScriptsRegistry
{
// See MAX_OP_RETURN_RELAY in stratisX, <script.h>
public const int MaxOpReturnRelay = 40;

// Need a network-specific version of the template list
private readonly List<ScriptTemplate> standardTemplates = new List<ScriptTemplate>
/// <summary>
/// x42 coin-specific standard transaction definitions.
/// </summary>
public class x42StandardScriptsRegistry : StandardScriptsRegistry
{
// See MAX_OP_RETURN_RELAY in Bitcoin Core, <script/standard.h.>
// 80 bytes of data, +1 for OP_RETURN, +2 for the pushdata opcodes.
public const int MaxOpReturnRelay = 83;

// Need a network-specific version of the template list
private readonly List<ScriptTemplate> standardTemplates = new List<ScriptTemplate>
{
PayToPubkeyHashTemplate.Instance,
PayToPubkeyTemplate.Instance,
Expand All @@ -24,39 +25,39 @@ public class x42StandardScriptsRegistry : StandardScriptsRegistry
PayToWitTemplate.Instance
};

public override List<ScriptTemplate> GetScriptTemplates => standardTemplates;

public override void RegisterStandardScriptTemplate(ScriptTemplate scriptTemplate)
{
if (!standardTemplates.Any(template => (template.Type == scriptTemplate.Type)))
{
standardTemplates.Add(scriptTemplate);
}
}

public override bool IsStandardTransaction(Transaction tx, Network network)
{
return base.IsStandardTransaction(tx, network);
}

public override bool AreOutputsStandard(Network network, Transaction tx)
{
return base.AreOutputsStandard(network, tx);
}

public override ScriptTemplate GetTemplateFromScriptPubKey(Script script)
{
return standardTemplates.FirstOrDefault(t => t.CheckScriptPubKey(script));
}

public override bool IsStandardScriptPubKey(Network network, Script scriptPubKey)
{
return base.IsStandardScriptPubKey(network, scriptPubKey);
}

public override bool AreInputsStandard(Network network, Transaction tx, CoinsView coinsView)
{
return base.AreInputsStandard(network, tx, coinsView);
}
}
public override List<ScriptTemplate> GetScriptTemplates => this.standardTemplates;

public override void RegisterStandardScriptTemplate(ScriptTemplate scriptTemplate)
{
if (!this.standardTemplates.Any(template => (template.Type == scriptTemplate.Type)))
{
this.standardTemplates.Add(scriptTemplate);
}
}

public override bool IsStandardTransaction(Transaction tx, Network network)
{
return base.IsStandardTransaction(tx, network);
}

public override bool AreOutputsStandard(Network network, Transaction tx)
{
return base.AreOutputsStandard(network, tx);
}

public override ScriptTemplate GetTemplateFromScriptPubKey(Script script)
{
return this.standardTemplates.FirstOrDefault(t => t.CheckScriptPubKey(script));
}

public override bool IsStandardScriptPubKey(Network network, Script scriptPubKey)
{
return base.IsStandardScriptPubKey(network, scriptPubKey);
}

public override bool AreInputsStandard(Network network, Transaction tx, CoinsView coinsView)
{
return base.AreInputsStandard(network, tx, coinsView);
}
}
}