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
walletProviderIWalletProviderloggerILogger<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
walletIdentifierstringcontractArkContractdelegatePubkeyECPubKey
Returns
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
contractArkContract