Table of Contents

Interface IContractService

Namespace
NArk.Core.Services
Assembly
NArk.Core.dll
public interface IContractService

Methods

DeriveContract(string, NextContractPurpose, ArkContract[], ContractActivityState, Dictionary<string, string>?, CancellationToken)

Derives a new contract for the specified purpose, with optional input contracts for descriptor recycling. When inputContracts are provided and purpose is SendToSelf, HD wallets may reuse a descriptor from the inputs to avoid index bloat and reduce contract data accumulation. Inputs the wallet is still advertising as an inbound destination are skipped, since recycling deactivates the reused script — see GetNextContract(NextContractPurpose, ContractActivityState, ArkContract[]?, CancellationToken).

Task<ArkContract> DeriveContract(string walletId, NextContractPurpose purpose, ArkContract[] inputContracts, ContractActivityState activityState = ContractActivityState.Active, Dictionary<string, string>? metadata = null, CancellationToken cancellationToken = default)

Parameters

walletId string
purpose NextContractPurpose
inputContracts ArkContract[]
activityState ContractActivityState
metadata Dictionary<string, string>
cancellationToken CancellationToken

Returns

Task<ArkContract>

DeriveContract(string, NextContractPurpose, ContractActivityState, Dictionary<string, string>?, CancellationToken)

Derives a new contract for the specified purpose.

Task<ArkContract> DeriveContract(string walletId, NextContractPurpose purpose, ContractActivityState activityState = ContractActivityState.Active, Dictionary<string, string>? metadata = null, CancellationToken cancellationToken = default)

Parameters

walletId string
purpose NextContractPurpose
activityState ContractActivityState
metadata Dictionary<string, string>
cancellationToken CancellationToken

Returns

Task<ArkContract>

ImportContract(string, ArkContract, ContractActivityState, Dictionary<string, string>?, CancellationToken)

Task ImportContract(string walletId, ArkContract contract, ContractActivityState activityState = ContractActivityState.Active, Dictionary<string, string>? metadata = null, CancellationToken cancellationToken = default)

Parameters

walletId string
contract ArkContract
activityState ContractActivityState
metadata Dictionary<string, string>
cancellationToken CancellationToken

Returns

Task