Table of Contents

Class ComposedSwapClient

Namespace
NArk.ArkadeIntents.Composition
Assembly
NArk.ArkadeIntents.dll

Composes independent solver quotes entirely on the client.

public sealed class ComposedSwapClient
Inheritance
ComposedSwapClient
Inherited Members

Remarks

The outgoing quote is always completed first. A receive quote then reuses H and pins its claim to L. No solver is told that the two RFQs form a route. Claiming M reveals P before an EVM lock necessarily exists, so this mechanism relies on the configured outgoing solver state machine; only a verified ERC20 claim is final settlement.

Constructors

ComposedSwapClient(IEvmOutgoingQuoteClient, ILightningIngressQuoteClient, IOnchainIngressQuoteClient, ComposedSwapOptions?, TimeProvider?)

Composes independent solver quotes entirely on the client.

public ComposedSwapClient(IEvmOutgoingQuoteClient evm, ILightningIngressQuoteClient lightning, IOnchainIngressQuoteClient onchain, ComposedSwapOptions? options = null, TimeProvider? timeProvider = null)

Parameters

evm IEvmOutgoingQuoteClient
lightning ILightningIngressQuoteClient
onchain IOnchainIngressQuoteClient
options ComposedSwapOptions
timeProvider TimeProvider

Remarks

The outgoing quote is always completed first. A receive quote then reuses H and pins its claim to L. No solver is told that the two RFQs form a route. Claiming M reveals P before an EVM lock necessarily exists, so this mechanism relies on the configured outgoing solver state machine; only a verified ERC20 claim is final settlement.

Methods

CreateArkadeAsync(string, long, string, EvmSendPolicy, IRfqTransport, string?, SolverCard?, CancellationToken)

Creates a direct Arkade-to-EVM route.

public Task<ArkadeToEvmRoute> CreateArkadeAsync(string walletId, long amountSats, string evmClaimAddress, EvmSendPolicy policy, IRfqTransport outgoingTransport, string? outgoingRfqId = null, SolverCard? outgoingCard = null, CancellationToken cancellationToken = default)

Parameters

walletId string
amountSats long
evmClaimAddress string
policy EvmSendPolicy
outgoingTransport IRfqTransport
outgoingRfqId string
outgoingCard SolverCard
cancellationToken CancellationToken

Returns

Task<ArkadeToEvmRoute>

CreateLightningAsync(string, long, string, EvmSendPolicy, IRfqTransport, IRfqTransport, string, string?, string?, SolverCard?, SolverCard?, CancellationToken)

Creates outgoing L first, then a Lightning invoice whose M claim pays L.

public Task<LightningToEvmRoute> CreateLightningAsync(string walletId, long amountSats, string evmClaimAddress, EvmSendPolicy policy, IRfqTransport outgoingTransport, IRfqTransport ingressTransport, string covclaimdPubKey, string? outgoingRfqId = null, string? ingressRfqId = null, SolverCard? outgoingCard = null, SolverCard? ingressCard = null, CancellationToken cancellationToken = default)

Parameters

walletId string
amountSats long
evmClaimAddress string
policy EvmSendPolicy
outgoingTransport IRfqTransport
ingressTransport IRfqTransport
covclaimdPubKey string
outgoingRfqId string
ingressRfqId string
outgoingCard SolverCard
ingressCard SolverCard
cancellationToken CancellationToken

Returns

Task<LightningToEvmRoute>

CreateOnchainAsync(string, long, string, EvmSendPolicy, IRfqTransport, IRfqTransport, string, BitcoinAddress, string?, string?, SolverCard?, SolverCard?, CancellationToken)

Creates outgoing L first, then an L1 receive whose M claim pays L.

public Task<OnchainToEvmRoute> CreateOnchainAsync(string walletId, long amountSats, string evmClaimAddress, EvmSendPolicy policy, IRfqTransport outgoingTransport, IRfqTransport ingressTransport, string covclaimdPubKey, BitcoinAddress l1RefundAddress, string? outgoingRfqId = null, string? ingressRfqId = null, SolverCard? outgoingCard = null, SolverCard? ingressCard = null, CancellationToken cancellationToken = default)

Parameters

walletId string
amountSats long
evmClaimAddress string
policy EvmSendPolicy
outgoingTransport IRfqTransport
ingressTransport IRfqTransport
covclaimdPubKey string
l1RefundAddress BitcoinAddress
outgoingRfqId string
ingressRfqId string
outgoingCard SolverCard
ingressCard SolverCard
cancellationToken CancellationToken

Returns

Task<OnchainToEvmRoute>