Table of Contents

Class DelegateContractDelegationTransformer

Namespace
NArk.Core.Transformers
Assembly
NArk.Core.dll
public class DelegateContractDelegationTransformer : IDelegationTransformer
Inheritance
DelegateContractDelegationTransformer
Implements
Inherited Members

Constructors

DelegateContractDelegationTransformer(IWalletProvider, ILogger<DelegateContractDelegationTransformer>?)

public DelegateContractDelegationTransformer(IWalletProvider walletProvider, ILogger<DelegateContractDelegationTransformer>? logger = null)

Parameters

walletProvider IWalletProvider
logger ILogger<DelegateContractDelegationTransformer>

Methods

CanDelegate(string, ArkContract, ECPubKey)

Returns true if this transformer recognises the contract as delegatable and the delegator's public key matches the expected delegate key in the contract.

public Task<bool> CanDelegate(string walletIdentifier, ArkContract contract, ECPubKey delegatePubkey)

Parameters

walletIdentifier string
contract ArkContract
delegatePubkey ECPubKey

Returns

Task<bool>

GetDelegationScriptBuilders(ArkContract)

Returns the script builders for delegation artifacts:

  • intentScript: collaborative path for the BIP322 intent proof (e.g., User+Server 2-of-2)
  • forfeitScript: delegate path for ACP forfeit tx (e.g., User+Delegate+Server 3-of-3)
public (ScriptBuilder intentScript, ScriptBuilder forfeitScript) GetDelegationScriptBuilders(ArkContract contract)

Parameters

contract ArkContract

Returns

(ScriptBuilder intentScript, ScriptBuilder forfeitScript)