30 #include <boost/multi_index/composite_key.hpp> 32 namespace graphene {
namespace chain {
53 bool is_settled_debt =
false;
58 if( tmp.first > tmp.second ) std::swap( tmp.first, tmp.second );
71 struct by_account_price;
72 struct by_is_settled_debt;
73 typedef multi_index_container<
76 ordered_unique< tag<by_id>, member< object, object_id_type, &object::id > >,
77 ordered_unique< tag<by_expiration>,
78 composite_key< limit_order_object,
79 member< limit_order_object, time_point_sec, &limit_order_object::expiration>,
80 member< object, object_id_type, &object::id>
83 ordered_unique< tag<by_price>,
84 composite_key< limit_order_object,
85 member< limit_order_object, price, &limit_order_object::sell_price>,
86 member< object, object_id_type, &object::id>
88 composite_key_compare< std::greater<price>, std::less<object_id_type> >
90 ordered_unique< tag<by_is_settled_debt>,
91 composite_key< limit_order_object,
92 member< limit_order_object, bool, &limit_order_object::is_settled_debt >,
93 const_mem_fun< limit_order_object, asset_id_type, &limit_order_object::receive_asset_id >,
94 member< object, object_id_type, &object::id>
98 ordered_unique< tag<by_account>,
99 composite_key< limit_order_object,
100 member<limit_order_object, account_id_type, &limit_order_object::seller>,
101 member<object, object_id_type, &object::id>
105 ordered_unique< tag<by_account_price>,
106 composite_key< limit_order_object,
107 member<limit_order_object, account_id_type, &limit_order_object::seller>,
108 member<limit_order_object, price, &limit_order_object::sell_price>,
109 member<object, object_id_type, &object::id>
111 composite_key_compare<std::less<account_id_type>, std::greater<price>, std::less<object_id_type>>
131 asset_id_type
debt_type()
const {
return call_price.quote.asset_id; }
145 if( tmp.first > tmp.second ) std::swap( tmp.first, tmp.second );
161 const uint16_t maintenance_collateral_ratio,
173 protocol_ids, force_settlement_object_type>
192 implementation_ids, impl_collateral_bid_object_type>
197 asset_id_type
debt_type()
const {
return inv_swan_price.quote.asset_id; }
203 struct by_collateral;
206 typedef multi_index_container<
209 ordered_unique< tag<by_id>,
210 member< object, object_id_type, &object::id > >,
211 ordered_unique< tag<by_price>,
212 composite_key< call_order_object,
213 member< call_order_object, price, &call_order_object::call_price>,
214 member< object, object_id_type, &object::id>
216 composite_key_compare< std::less<price>, std::less<object_id_type> >
218 ordered_unique< tag<by_account>,
219 composite_key< call_order_object,
220 member< call_order_object, account_id_type, &call_order_object::borrower >,
221 const_mem_fun< call_order_object, asset_id_type, &call_order_object::debt_type>
224 ordered_unique< tag<by_collateral>,
225 composite_key< call_order_object,
226 const_mem_fun< call_order_object, price, &call_order_object::collateralization >,
227 member< object, object_id_type, &object::id >
234 typedef multi_index_container<
237 ordered_unique< tag<by_id>, member< object, object_id_type, &object::id > >,
238 ordered_unique< tag<by_account>,
239 composite_key< force_settlement_object,
240 member<force_settlement_object, account_id_type, &force_settlement_object::owner>,
241 member< object, object_id_type, &object::id >
244 ordered_unique< tag<by_expiration>,
245 composite_key< force_settlement_object,
246 const_mem_fun<force_settlement_object, asset_id_type, &force_settlement_object::settlement_asset_id>,
247 member<force_settlement_object, time_point_sec, &force_settlement_object::settlement_date>,
248 member< object, object_id_type, &object::id >
254 typedef multi_index_container<
257 ordered_unique< tag<by_id>,
258 member< object, object_id_type, &object::id > >,
259 ordered_unique< tag<by_account>,
260 composite_key< collateral_bid_object,
261 const_mem_fun< collateral_bid_object, asset_id_type, &collateral_bid_object::debt_type>,
262 member< collateral_bid_object, account_id_type, &collateral_bid_object::bidder>
265 ordered_unique< tag<by_price>,
266 composite_key< collateral_bid_object,
267 const_mem_fun< collateral_bid_object, asset_id_type, &collateral_bid_object::debt_type>,
268 member< collateral_bid_object, price, &collateral_bid_object::inv_swan_price >,
269 member< object, object_id_type, &object::id >
271 composite_key_compare< std::less<asset_id_type>, std::greater<price>, std::less<object_id_type> >
price collateralization() const
asset amount_to_receive() const
asset_id_type debt_type() const
optional< uint16_t > target_collateral_ratio
maximum CR to maintain when selling collateral on margin call
multi_index_container< limit_order_object, indexed_by< ordered_unique< tag< by_id >, member< object, object_id_type, &object::id > >, ordered_unique< tag< by_expiration >, composite_key< limit_order_object, member< limit_order_object, time_point_sec, &limit_order_object::expiration >, member< object, object_id_type, &object::id > > >, ordered_unique< tag< by_price >, composite_key< limit_order_object, member< limit_order_object, price, &limit_order_object::sell_price >, member< object, object_id_type, &object::id > >, composite_key_compare< std::greater< price >, std::less< object_id_type > > >, ordered_unique< tag< by_is_settled_debt >, composite_key< limit_order_object, member< limit_order_object, bool, &limit_order_object::is_settled_debt >, const_mem_fun< limit_order_object, asset_id_type, &limit_order_object::receive_asset_id >, member< object, object_id_type, &object::id > > >, ordered_unique< tag< by_account >, composite_key< limit_order_object, member< limit_order_object, account_id_type, &limit_order_object::seller >, member< object, object_id_type, &object::id > > >, ordered_unique< tag< by_account_price >, composite_key< limit_order_object, member< limit_order_object, account_id_type, &limit_order_object::seller >, member< limit_order_object, price, &limit_order_object::sell_price >, member< object, object_id_type, &object::id > >, composite_key_compare< std::less< account_id_type >, std::greater< price >, std::less< object_id_type > > > >> limit_order_multi_index_type
tracks debt and call price information
generic_index< collateral_bid_object, collateral_bid_object_multi_index_type > collateral_bid_index
#define MAP_OBJECT_ID_TO_TYPE(OBJECT)
pair< asset_id_type, asset_id_type > get_market() const
multi_index_container< call_order_object, indexed_by< ordered_unique< tag< by_id >, member< object, object_id_type, &object::id > >, ordered_unique< tag< by_price >, composite_key< call_order_object, member< call_order_object, price, &call_order_object::call_price >, member< object, object_id_type, &object::id > >, composite_key_compare< std::less< price >, std::less< object_id_type > > >, ordered_unique< tag< by_account >, composite_key< call_order_object, member< call_order_object, account_id_type, &call_order_object::borrower >, const_mem_fun< call_order_object, asset_id_type, &call_order_object::debt_type > > >, ordered_unique< tag< by_collateral >, composite_key< call_order_object, const_mem_fun< call_order_object, price, &call_order_object::collateralization >, member< object, object_id_type, &object::id > > > >> call_order_multi_index_type
price call_price
Collateral / Debt.
asset amount_to_receive() const
generic_index< limit_order_object, limit_order_multi_index_type > limit_order_index
multi_index_container< force_settlement_object, indexed_by< ordered_unique< tag< by_id >, member< object, object_id_type, &object::id > >, ordered_unique< tag< by_account >, composite_key< force_settlement_object, member< force_settlement_object, account_id_type, &force_settlement_object::owner >, member< object, object_id_type, &object::id > > >, ordered_unique< tag< by_expiration >, composite_key< force_settlement_object, const_mem_fun< force_settlement_object, asset_id_type, &force_settlement_object::settlement_asset_id >, member< force_settlement_object, time_point_sec, &force_settlement_object::settlement_date >, member< object, object_id_type, &object::id > > > >> force_settlement_object_multi_index_type
asset_id_type collateral_type() const
asset_id_type sell_asset_id() const
time_point_sec settlement_date
share_type for_sale
asset id is sell_price.base.asset_id
asset get_debt_covered() const
provides stack-based nullable value similar to boost::optional
time_point_sec expiration
FC_REFLECT_TYPENAME(fc::log_message)
share_type debt
call_price.quote.asset_id, access via get_debt
asset get_collateral() const
#define GRAPHENE_DECLARE_EXTERNAL_SERIALIZATION(type)
asset_id_type receive_asset_id() const
The price struct stores asset prices in the BitShares system.
tracks bitassets scheduled for force settlement at some point in the future.
asset_id_type debt_type() const
bids of collateral for debt after a black swan
asset get_additional_collateral() const
asset amount_for_sale() const
multi_index_container< collateral_bid_object, indexed_by< ordered_unique< tag< by_id >, member< object, object_id_type, &object::id > >, ordered_unique< tag< by_account >, composite_key< collateral_bid_object, const_mem_fun< collateral_bid_object, asset_id_type, &collateral_bid_object::debt_type >, member< collateral_bid_object, account_id_type, &collateral_bid_object::bidder > > >, ordered_unique< tag< by_price >, composite_key< collateral_bid_object, const_mem_fun< collateral_bid_object, asset_id_type, &collateral_bid_object::debt_type >, member< collateral_bid_object, price, &collateral_bid_object::inv_swan_price >, member< object, object_id_type, &object::id > >, composite_key_compare< std::less< asset_id_type >, std::greater< price >, std::less< object_id_type > > > >> collateral_bid_object_multi_index_type
share_type collateral
call_price.base.asset_id, access via get_collateral
generic_index< force_settlement_object, force_settlement_object_multi_index_type > force_settlement_index
pair< asset_id_type, asset_id_type > get_market() const
asset_id_type settlement_asset_id() const
generic_index< call_order_object, call_order_multi_index_type > call_order_index
share_type deferred_fee
fee converted to CORE
asset deferred_paid_fee
originally paid fee
an offer to sell an amount of an asset at a specified exchange rate by a certain timeThe objects are ...