29 #include <boost/multi_index/composite_key.hpp> 31 namespace graphene {
namespace chain {
43 static constexpr uint8_t
type_id = credit_offer_object_type;
62 struct by_auto_disable_time;
72 ordered_unique< tag<by_id>, member< object, object_id_type, &object::id > >,
73 ordered_unique< tag<by_auto_disable_time>,
74 composite_key< credit_offer_object,
75 member< credit_offer_object, bool, &credit_offer_object::enabled >,
76 member< credit_offer_object, time_point_sec, &credit_offer_object::auto_disable_time >,
77 member< object, object_id_type, &object::id>
80 ordered_unique< tag<by_owner>,
81 composite_key< credit_offer_object,
82 member< credit_offer_object, account_id_type, &credit_offer_object::owner_account >,
83 member< object, object_id_type, &object::id>
86 ordered_unique< tag<by_asset_type>,
87 composite_key< credit_offer_object,
88 member< credit_offer_object, asset_id_type, &credit_offer_object::asset_type >,
89 member< object, object_id_type, &object::id>
111 static constexpr uint8_t
type_id = credit_deal_object_type;
124 struct by_latest_repay_time;
126 struct by_offer_owner;
128 struct by_debt_asset;
129 struct by_collateral_asset;
137 ordered_unique< tag<by_id>, member< object, object_id_type, &object::id > >,
138 ordered_unique< tag<by_latest_repay_time>,
139 composite_key< credit_deal_object,
140 member< credit_deal_object, time_point_sec, &credit_deal_object::latest_repay_time >,
141 member< object, object_id_type, &object::id>
144 ordered_unique< tag<by_offer_id>,
145 composite_key< credit_deal_object,
146 member< credit_deal_object, credit_offer_id_type, &credit_deal_object::offer_id >,
147 member< object, object_id_type, &object::id>
150 ordered_unique< tag<by_offer_owner>,
151 composite_key< credit_deal_object,
152 member< credit_deal_object, account_id_type, &credit_deal_object::offer_owner >,
153 member< object, object_id_type, &object::id>
156 ordered_unique< tag<by_borrower>,
157 composite_key< credit_deal_object,
158 member< credit_deal_object, account_id_type, &credit_deal_object::borrower >,
159 member< object, object_id_type, &object::id>
162 ordered_unique< tag<by_debt_asset>,
163 composite_key< credit_deal_object,
164 member< credit_deal_object, asset_id_type, &credit_deal_object::debt_asset >,
165 member< object, object_id_type, &object::id>
168 ordered_unique< tag<by_collateral_asset>,
169 composite_key< credit_deal_object,
170 member< credit_deal_object, asset_id_type, &credit_deal_object::collateral_asset >,
171 member< object, object_id_type, &object::id>
193 static constexpr uint8_t
type_id = impl_credit_deal_summary_object_type;
202 struct by_offer_borrower;
210 ordered_unique< tag<by_id>, member< object, object_id_type, &object::id > >,
211 ordered_unique< tag<by_offer_borrower>,
212 composite_key< credit_deal_summary_object,
213 member< credit_deal_summary_object, credit_offer_id_type, &credit_deal_summary_object::offer_id >,
214 member< credit_deal_summary_object, account_id_type, &credit_deal_summary_object::borrower >
share_type total_debt_amount
How much funds borrowed.
A credit offer is a fund that can be used by other accounts who provide certain collateral.
account_id_type offer_owner
Owner of the credit offer, redundant info for ease of querying.
share_type collateral_amount
How much funds in collateral.
asset_id_type asset_type
Asset type in the fund.
A credit deal describes the details of a borrower's borrowing of funds from a credit offer...
asset_id_type debt_asset
Asset type of the debt, redundant info for ease of querying.
static constexpr uint8_t type_id
#define MAP_OBJECT_ID_TO_TYPE(OBJECT)
A credit deal summary describes the summary of a borrower's borrowing of funds from a credit offer...
share_type current_balance
Usable amount in the fund.
account_id_type offer_owner
Owner of the credit offer, redundant info for ease of querying.
account_id_type borrower
Borrower.
credit_offer_id_type offer_id
ID of the credit offer.
bool enabled
Whether this offer is available.
FC_REFLECT_TYPENAME(fc::log_message)
uint32_t fee_rate
Fee rate, the demominator is GRAPHENE_FEE_RATE_DENOM.
share_type total_balance
Total size of the fund.
#define GRAPHENE_DECLARE_EXTERNAL_SERIALIZATION(type)
asset_id_type debt_asset
Asset type of the debt, redundant info for ease of querying.
multi_index_container< credit_offer_object, indexed_by< ordered_unique< tag< by_id >, member< object, object_id_type, &object::id > >, ordered_unique< tag< by_auto_disable_time >, composite_key< credit_offer_object, member< credit_offer_object, bool, &credit_offer_object::enabled >, member< credit_offer_object, time_point_sec, &credit_offer_object::auto_disable_time >, member< object, object_id_type, &object::id > > >, ordered_unique< tag< by_owner >, composite_key< credit_offer_object, member< credit_offer_object, account_id_type, &credit_offer_object::owner_account >, member< object, object_id_type, &object::id > > >, ordered_unique< tag< by_asset_type >, composite_key< credit_offer_object, member< credit_offer_object, asset_id_type, &credit_offer_object::asset_type >, member< object, object_id_type, &object::id > > > > > credit_offer_multi_index_type
uint32_t max_duration_seconds
The time limit that borrowed funds should be repaid.
static constexpr uint8_t space_id
flat_map< asset_id_type, price > acceptable_collateral
Types and rates of acceptable collateral.
share_type debt_amount
How much funds borrowed.
flat_map< account_id_type, share_type > acceptable_borrowers
Allowed borrowers and their maximum amounts to borrow. No limitation if empty.
Use the Curiously Recurring Template Pattern to automatically add the ability to clone, serialize, and move objects polymorphically.
account_id_type owner_account
Owner of the fund.
time_point_sec latest_repay_time
The deadline when the debt should be repaid.
multi_index_container< credit_deal_summary_object, indexed_by< ordered_unique< tag< by_id >, member< object, object_id_type, &object::id > >, ordered_unique< tag< by_offer_borrower >, composite_key< credit_deal_summary_object, member< credit_deal_summary_object, credit_offer_id_type, &credit_deal_summary_object::offer_id >, member< credit_deal_summary_object, account_id_type, &credit_deal_summary_object::borrower > > > > > credit_deal_summary_index_type
multi_index_container< credit_deal_object, indexed_by< ordered_unique< tag< by_id >, member< object, object_id_type, &object::id > >, ordered_unique< tag< by_latest_repay_time >, composite_key< credit_deal_object, member< credit_deal_object, time_point_sec, &credit_deal_object::latest_repay_time >, member< object, object_id_type, &object::id > > >, ordered_unique< tag< by_offer_id >, composite_key< credit_deal_object, member< credit_deal_object, credit_offer_id_type, &credit_deal_object::offer_id >, member< object, object_id_type, &object::id > > >, ordered_unique< tag< by_offer_owner >, composite_key< credit_deal_object, member< credit_deal_object, account_id_type, &credit_deal_object::offer_owner >, member< object, object_id_type, &object::id > > >, ordered_unique< tag< by_borrower >, composite_key< credit_deal_object, member< credit_deal_object, account_id_type, &credit_deal_object::borrower >, member< object, object_id_type, &object::id > > >, ordered_unique< tag< by_debt_asset >, composite_key< credit_deal_object, member< credit_deal_object, asset_id_type, &credit_deal_object::debt_asset >, member< object, object_id_type, &object::id > > >, ordered_unique< tag< by_collateral_asset >, composite_key< credit_deal_object, member< credit_deal_object, asset_id_type, &credit_deal_object::collateral_asset >, member< object, object_id_type, &object::id > > > > > credit_deal_multi_index_type
credit_offer_id_type offer_id
ID of the credit offer.
account_id_type borrower
Borrower.
asset_id_type collateral_asset
Asset type of the collateral.
share_type min_deal_amount
Minimum amount to borrow for each new deal.
time_point_sec auto_disable_time
The time when this offer will be disabled automatically.