diff --git a/libraries/app/database_api.cpp b/libraries/app/database_api.cpp index 54e056b3..dea61ea5 100644 --- a/libraries/app/database_api.cpp +++ b/libraries/app/database_api.cpp @@ -175,7 +175,6 @@ class database_api_impl : public std::enable_shared_from_this if( !is_subscribed_to_item(i) ) { - idump((i)); _subscribe_filter.insert( vec.data(), vec.size() );//(vecconst char*)&i, sizeof(i) ); } } diff --git a/libraries/chain/db_balance.cpp b/libraries/chain/db_balance.cpp index a70f077b..fb723a2b 100644 --- a/libraries/chain/db_balance.cpp +++ b/libraries/chain/db_balance.cpp @@ -71,9 +71,13 @@ void database::adjust_balance(account_id_type account, asset delta ) } else { if( delta.amount < 0 ) FC_ASSERT( itr->get_balance() >= -delta, "Insufficient Balance: ${a}'s balance of ${b} is less than required ${r}", ("a",account(*this).name)("b",to_pretty_string(itr->get_balance()))("r",to_pretty_string(-delta))); - modify(*itr, [delta](account_balance_object& b) { - b.adjust_balance(delta); - }); + if( delta.amount < 0 && itr->get_balance() == -delta ) { + remove(*itr); + } else { + modify(*itr, [delta](account_balance_object& b) { + b.adjust_balance(delta); + }); + } } } FC_CAPTURE_AND_RETHROW( (account)(delta) ) }