swapQuote method

  1. @override
Future<SwapQuote> swapQuote({
  1. required QuoteRequest request,
})
override

Request a bounds-checked swap quote (spec §2.6) — the FIRST step of the on-ramp. DETERMINISTIC against the user's exact side; funds NEVER move. The returned SwapQuote carries the deposit address, the min-out floor, the ZEC side in zatoshis, and the §2.6 privacy disclosure the host MUST render. Throws a typed SwapApiError (slippageToleranceTooHigh, quoteOutOfBounds, destinationInvalid, providerUnavailable, swapDisabled, …) the controller maps to an honest inline fault.

Implementation

@override
Future<SwapQuote> swapQuote({required QuoteRequest request}) async {
  swapQuoteCount++;
  lastSwapQuoteRequest = request;
  final gate = swapQuoteGate;
  if (gate != null) await gate.future;
  if (swapQuoteNeverCompletes) return Completer<SwapQuote>().future;
  if (swapQuoteThrows != null) throw swapQuoteThrows!;
  return swapQuoteResult ?? swapQuoteFixture();
}