void Taker::consume_offer (Offer const& offer, Amounts const& order) { if (order.in < zero) Throw<std::logic_error> ("flow with negative input."); if (order.out < zero) Throw<std::logic_error> ("flow with negative output."); if (journal_.debug) journal_.debug << "Consuming from offer " << offer; if (journal_.trace) { auto const& available = offer.amount (); journal_.trace << " in:" << format_amount (available.in); journal_.trace << " out:" << format_amount(available.out); } offer.consume (view_, order); }