Class ContractService
public class ContractService : IContractService
- Inheritance
-
ContractService
- Implements
- Inherited Members
Constructors
ContractService(IWalletProvider, IContractStorage, IClientTransport)
public ContractService(IWalletProvider walletProvider, IContractStorage contractStorage, IClientTransport transport)
Parameters
walletProviderIWalletProvidercontractStorageIContractStoragetransportIClientTransport
ContractService(IWalletProvider, IContractStorage, IClientTransport, ILogger<ContractService>)
public ContractService(IWalletProvider walletProvider, IContractStorage contractStorage, IClientTransport transport, ILogger<ContractService> logger)
Parameters
walletProviderIWalletProvidercontractStorageIContractStoragetransportIClientTransportloggerILogger<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
walletProviderIWalletProvidercontractStorageIContractStoragetransportIClientTransporteventHandlersIEnumerable<IEventHandler<NewContractActionEvent>>loggerILogger<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. Inputs the wallet is still advertising as an inbound destination are skipped, since recycling deactivates the reused script — see GetNextContract(NextContractPurpose, ContractActivityState, ArkContract[]?, CancellationToken).
public Task<ArkContract> DeriveContract(string walletId, NextContractPurpose purpose, ArkContract[] inputContracts, ContractActivityState activityState = ContractActivityState.Active, Dictionary<string, string>? metadata = null, CancellationToken cancellationToken = default)
Parameters
walletIdstringpurposeNextContractPurposeinputContractsArkContract[]activityStateContractActivityStatemetadataDictionary<string, string>cancellationTokenCancellationToken
Returns
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
walletIdstringpurposeNextContractPurposeactivityStateContractActivityStatemetadataDictionary<string, string>cancellationTokenCancellationToken
Returns
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
walletIdstringcontractArkContractactivityStateContractActivityStatemetadataDictionary<string, string>cancellationTokenCancellationToken