quote method

Future<void> quote(
  1. SwapFormInput input
)

Request a bounds-checked quote (§2.6) for either direction. Dispatches on the sealed SwapFormInput so each shape carries only its own fields. On success → SwapReview with the confirmable numbers + the §2.6 disclosure; on a typed failure → back to SwapFormState with an honest inline fault. Funds NEVER move here — quote is deterministic and side-effect-free.

Implementation

Future<void> quote(SwapFormInput input) async {
  if (_inFlight) return; // re-entrancy: ignore taps while a step runs
  final session = _requireSession();
  if (session == null) return;

  switch (input) {
    case OutOfZecInput():
      await _quoteOutOfZec(session, input);
    case IntoZecInput():
      await _quoteIntoZec(session, input);
  }
}