Resolve #83: core_exchange_rate in feed updates on maintenance

This commit is contained in:
Nathan Hourt 2015-06-26 15:46:16 -04:00
parent dad1ca3bee
commit dba009da4d
3 changed files with 4 additions and 9 deletions

View file

@ -345,9 +345,6 @@ void_result asset_update_feed_producers_evaluator::do_apply(const asset_update_f
a.feeds[*itr];
a.update_median_feeds(db().head_block_time());
});
db().modify(o.asset_to_update(db()), [this](asset_object& a) {
a.options.core_exchange_rate = bitasset_to_update->current_feed.core_exchange_rate;
});
db().check_call_orders( o.asset_to_update(db()) );
return void_result();
@ -464,9 +461,6 @@ void_result asset_publish_feeds_evaluator::do_apply(const asset_publish_feed_ope
a.feeds[o.publisher] = make_pair(d.head_block_time(), o.feed);
a.update_median_feeds(d.head_block_time());
});
d.modify(base, [&d](asset_object& a) {
a.options.core_exchange_rate = a.bitasset_data(d).current_feed.core_exchange_rate;
});
/// TODO: optimization: only do this if the median feed actually changed, otherwise there is no point
db().check_call_orders(base);

View file

@ -115,7 +115,6 @@ void asset_object::bitasset_options::validate() const
FC_ASSERT(maximum_force_settlement_volume <= GRAPHENE_100_PERCENT);
}
asset asset_object::amount_from_string(string amount_string) const
{ try {
bool negative_found = false;

View file

@ -231,11 +231,13 @@ void database::update_expired_feeds()
modify(b, [this](asset_bitasset_data_object& a) {
a.update_median_feeds(head_block_time());
});
check_call_orders(b.current_feed.settlement_price.base.asset_id(*this));
}
if( !b.current_feed.core_exchange_rate.is_null() &&
a.options.core_exchange_rate != b.current_feed.core_exchange_rate )
modify(a, [&b](asset_object& a) {
a.options.core_exchange_rate = b.current_feed.core_exchange_rate;
});
check_call_orders(b.current_feed.settlement_price.base.asset_id(*this));
}
}
}