Scorum
cancel_pending_bets_evaluator.cpp
Go to the documentation of this file.
5 
7 
8 namespace scorum {
9 namespace chain {
12  : evaluator_impl<data_service_factory_i, cancel_pending_bets_evaluator>(services)
13  , _account_service(services.account_service())
14  , _pending_bet_svc(services.pending_bet_service())
15  , _betting_svc(betting_service)
16 {
17 }
18 
20 {
21  try
22  {
23  _account_service.check_account_existence(op.better);
24  for (const auto& uuid : op.bet_uuids)
25  {
26  FC_ASSERT(_pending_bet_svc.is_exists(uuid), "Bet ${1} doesn't exist", ("1", uuid));
27  FC_ASSERT(_pending_bet_svc.get_pending_bet(uuid).data.better == op.better, "Invalid better");
28  }
29 
30  for (const auto& uuid : op.bet_uuids)
31  {
32  const auto& bet = _pending_bet_svc.get_pending_bet(uuid);
33  _betting_svc.cancel_pending_bet(bet.id);
34  }
35  }
36  FC_CAPTURE_LOG_AND_RETHROW((op))
37 }
38 }
39 }
cancel_pending_bets_evaluator(data_service_factory_i &services, betting_service_i &)
Definition: asset.cpp:15
virtual void check_account_existence(const account_name_type &, const optional< const char * > &context_type_name=optional< const char * >()) const =0
account_name_type better
Definition: bet_objects.hpp:29
virtual void cancel_pending_bet(pending_bet_id_type id)=0
virtual bool is_exists(const uuid_type &uuid) const =0
virtual const pending_bet_object & get_pending_bet(const uuid_type &) const =0
This operation cancel unmatched bets by id.
std::vector< uuid_type > bet_uuids
bets list that is being canceling