Class ComposedSwapExecutionClient
- Namespace
- NArk.ArkadeIntents.Composition
- Assembly
- NArk.ArkadeIntents.dll
Advances persisted composed routes without disclosing their SDK-held secrets in results.
public sealed class ComposedSwapExecutionClient
- Inheritance
-
ComposedSwapExecutionClient
- Inherited Members
Remarks
The internal gate serializes only calls made through this executor instance. A host running multiple instances or processes must take a distributed lock keyed by the outgoing swap id; intent storage does not expose compare-and-swap.
Constructors
ComposedSwapExecutionClient(IArkadeIntentStorage, IVtxoStorage, IBitcoinBlockchain, IContractStorage, IClientTransport, LightningIntentsClient, OnchainIntentsClient?, IEvmSwapRpc, IEvmDurableTransactionSender, EvmSendPolicy, TimeProvider?)
Creates an executor using existing NI clients and host-controlled EVM proof and durable signing adapters.
public ComposedSwapExecutionClient(IArkadeIntentStorage storage, IVtxoStorage vtxos, IBitcoinBlockchain blockchain, IContractStorage contracts, IClientTransport transport, LightningIntentsClient lightning, OnchainIntentsClient? onchain, IEvmSwapRpc rpc, IEvmDurableTransactionSender sender, EvmSendPolicy policy, TimeProvider? timeProvider = null)
Parameters
storageIArkadeIntentStorageSDK recovery storage containing the intents and their secrets.
vtxosIVtxoStorageSynchronized VTXOs used to prove exact funding of the outgoing Arkade lock.
blockchainIBitcoinBlockchainBitcoin chain time used to exclude expired Arkade funding.
contractsIContractStorageImported covenant descriptors.
transportIClientTransportArkade network facts.
lightningLightningIntentsClientNI Lightning receive and outgoing refund implementation.
onchainOnchainIntentsClientNI onchain receive implementation, optional for other rails.
rpcIEvmSwapRpcConfigured EVM chain reader.
senderIEvmDurableTransactionSenderHost sender that saves a deterministic transaction identity before broadcast.
policyEvmSendPolicyExpected chain, token, contract and proof bounds.
timeProviderTimeProviderClock used to enforce safety windows.
Methods
AdvanceAsync(string, string?, CancellationToken)
Advances one route; exact funding can trigger a pending EVM leg and verified completion is repeatable.
public Task<ComposedSwapExecutionResult> AdvanceAsync(string outgoingSwapId, string? ingressSwapId = null, CancellationToken cancellationToken = default)
Parameters
outgoingSwapIdstringPersisted BtcToEvm RFQ id.
ingressSwapIdstringPersisted Lightning/onchain receive RFQ id, or null for direct Arkade.
cancellationTokenCancellationTokenCancels reads or submission; prepared EVM identity survives an uncertain broadcast.
Returns
- Task<ComposedSwapExecutionResult>
Public lifecycle and verified transaction identity only.
Remarks
Callers must serialize this route across executor instances and processes.