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
rfqIdstringThe correlation id.
cancellationTokenCancellationTokenCancels the round trip.
Returns
- Task<RfqStatus<TStatusProfile>>
The status, or
nullwhen the solver has no negotiation under that id.
Type Parameters
TStatusProfileThe 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
requestEvmSendRfqRequestStrict exact-input EVM send request.
cancellationTokenCancellationTokenCancels 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
requestRfqRequest<TRequestProfile>The request payload; strict, so it must carry no extra fields.
cancellationTokenCancellationTokenCancels the round trip.
Returns
Type Parameters
TRequestProfileThe corridor's request-profile shape.
TQuoteProfileThe 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.