Table of Contents

Class DelegatingAddressProvider

Namespace
NArk.Core.Wallet
Assembly
NArk.Core.dll

Wraps an existing IArkadeAddressProvider to override contract derivation for Receive and SendToSelf purposes, producing ArkDelegateContract instead of ArkPaymentContract. Boarding contracts pass through unchanged.

public class DelegatingAddressProvider : IArkadeAddressProvider
Inheritance
DelegatingAddressProvider
Implements
Inherited Members

Constructors

DelegatingAddressProvider(IArkadeAddressProvider, OutputDescriptor, OutputDescriptor, Sequence, LockTime?)

Wraps an existing IArkadeAddressProvider to override contract derivation for Receive and SendToSelf purposes, producing ArkDelegateContract instead of ArkPaymentContract. Boarding contracts pass through unchanged.

public DelegatingAddressProvider(IArkadeAddressProvider inner, OutputDescriptor delegateKey, OutputDescriptor serverKey, Sequence exitDelay, LockTime? cltvLocktime = null)

Parameters

inner IArkadeAddressProvider
delegateKey OutputDescriptor
serverKey OutputDescriptor
exitDelay Sequence
cltvLocktime LockTime?

Methods

GetNextContract(NextContractPurpose, ContractActivityState, ArkContract[]?, CancellationToken)

Gets the next contract for the specified purpose.

public Task<(ArkContract contract, ArkContractEntity entity)> GetNextContract(NextContractPurpose purpose, ContractActivityState activityState, ArkContract[]? inputContracts = null, CancellationToken cancellationToken = default)

Parameters

purpose NextContractPurpose

Purpose of the contract

activityState ContractActivityState

Activity state for the contract

inputContracts ArkContract[]

Optional input contracts for descriptor recycling (SendToSelf only). When provided, HD wallets may reuse a descriptor from the inputs to avoid index bloat.

cancellationToken CancellationToken

Cancellation token

Returns

Task<(ArkContract contract, ArkContractEntity entity)>

A tuple of (contract, entity). The entity's activity state may be overridden for special cases (e.g., static sweep addresses).

GetNextSigningDescriptor(CancellationToken)

Returns the next unused signing descriptor without persisting a contract or advancing the gap counter.

public Task<OutputDescriptor> GetNextSigningDescriptor(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Returns

Task<OutputDescriptor>

IsOurs(OutputDescriptor, CancellationToken)

Returns true if the given descriptor belongs to this wallet.

public Task<bool> IsOurs(OutputDescriptor descriptor, CancellationToken cancellationToken = default)

Parameters

descriptor OutputDescriptor
cancellationToken CancellationToken

Returns

Task<bool>