Table of Contents

Class ContractService

Namespace
NArk.Core.Services
Assembly
NArk.Core.dll
public class ContractService : IContractService
Inheritance
ContractService
Implements
Inherited Members

Constructors

ContractService(IWalletProvider, IContractStorage, IClientTransport)

public ContractService(IWalletProvider walletProvider, IContractStorage contractStorage, IClientTransport transport)

Parameters

walletProvider IWalletProvider
contractStorage IContractStorage
transport IClientTransport

ContractService(IWalletProvider, IContractStorage, IClientTransport, ILogger<ContractService>)

public ContractService(IWalletProvider walletProvider, IContractStorage contractStorage, IClientTransport transport, ILogger<ContractService> logger)

Parameters

walletProvider IWalletProvider
contractStorage IContractStorage
transport IClientTransport
logger ILogger<ContractService>

ContractService(IWalletProvider, IContractStorage, IClientTransport, IEnumerable<IEventHandler<NewContractActionEvent>>, ILogger<ContractService>?)

public ContractService(IWalletProvider walletProvider, IContractStorage contractStorage, IClientTransport transport, IEnumerable<IEventHandler<NewContractActionEvent>> eventHandlers, ILogger<ContractService>? logger = null)

Parameters

walletProvider IWalletProvider
contractStorage IContractStorage
transport IClientTransport
eventHandlers IEnumerable<IEventHandler<NewContractActionEvent>>
logger ILogger<ContractService>

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.

public 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.

public 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)

public 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