Table of Contents

Interface IRfqTransport

Namespace
NArk.ArkadeIntents.Rfq
Assembly
NArk.ArkadeIntents.dll

Carries the RFQ message family to a solver. The payloads are identical whatever the transport — only the framing differs — so a corridor's client is written once against this seam.

public interface IRfqTransport

Remarks

Today's implementation is HttpRfqTransport. A relay transport (both parties outbound, addressed by pubkey) is the other shape the protocol defines; it is the only way to reach a solver deployed with no listening ports, and the only way to use the solver registry's rendezvous data, whose corridor cards carry a discovery pubkey and relays rather than a URL.

Methods

GetStatusAsync<TStatusProfile>(string, CancellationToken)

Ask the solver where a negotiation stands.

Task<RfqStatus<TStatusProfile>?> GetStatusAsync<TStatusProfile>(string rfqId, CancellationToken cancellationToken = default)

Parameters

rfqId string

The correlation id.

cancellationToken CancellationToken

Cancels the round trip.

Returns

Task<RfqStatus<TStatusProfile>>

The status, or null when the solver has no negotiation under that id.

Type Parameters

TStatusProfile

The corridor's status-profile shape.

Remarks

Best-effort by design — never the money path. A funded swap is observable on-chain whether or not the solver answers.

RequestEvmSendQuoteAsync(EvmSendRfqRequest, CancellationToken)

Asks for an Arkade-to-ERC20 quote using its current numeric-sats wire shape.

Task<RfqQuote<EvmSendQuoteProfile>> RequestEvmSendQuoteAsync(EvmSendRfqRequest request, CancellationToken cancellationToken = default)

Parameters

request EvmSendRfqRequest

Strict exact-input EVM send request.

cancellationToken CancellationToken

Cancels the round trip.

Returns

Task<RfqQuote<EvmSendQuoteProfile>>

The solver's binding terms.

RequestQuoteAsync<TRequestProfile, TQuoteProfile>(RfqRequest<TRequestProfile>, CancellationToken)

Ask for a quote and return the solver's binding terms.

Task<RfqQuote<TQuoteProfile>> RequestQuoteAsync<TRequestProfile, TQuoteProfile>(RfqRequest<TRequestProfile> request, CancellationToken cancellationToken = default)

Parameters

request RfqRequest<TRequestProfile>

The request payload; strict, so it must carry no extra fields.

cancellationToken CancellationToken

Cancels the round trip.

Returns

Task<RfqQuote<TQuoteProfile>>

The solver's quote for request.

Type Parameters

TRequestProfile

The corridor's request-profile shape.

TQuoteProfile

The corridor's quote-profile shape.

Exceptions

RfqRefusedException

The solver declined, with a reason from the closed set.

InvalidOperationException

The reply was neither a quote nor a refusal, or answered a different negotiation.