32 #include <boost/multi_index/composite_key.hpp> 34 namespace graphene {
namespace chain {
52 uint16_t taker_fee_percent = 0;
53 uint16_t withdrawal_fee_percent = 0;
54 fc::uint128_t virtual_value = 0;
58 virtual_value = fc::uint128_t( balance_a.
value ) * balance_b.
value;
62 struct by_share_asset;
70 typedef multi_index_container<
73 ordered_unique< tag<by_id>, member< object, object_id_type, &object::id > >,
74 ordered_unique< tag<by_share_asset>,
75 member< liquidity_pool_object, asset_id_type, &liquidity_pool_object::share_asset > >,
76 ordered_unique< tag<by_asset_a>,
77 composite_key< liquidity_pool_object,
78 member< liquidity_pool_object, asset_id_type, &liquidity_pool_object::asset_a >,
79 member< object, object_id_type, &object::id>
82 ordered_unique< tag<by_asset_b>,
83 composite_key< liquidity_pool_object,
84 member< liquidity_pool_object, asset_id_type, &liquidity_pool_object::asset_b >,
85 member< object, object_id_type, &object::id>
88 ordered_unique< tag<by_asset_ab>,
89 composite_key< liquidity_pool_object,
90 member< liquidity_pool_object, asset_id_type, &liquidity_pool_object::asset_a >,
91 member< liquidity_pool_object, asset_id_type, &liquidity_pool_object::asset_b >,
92 member< object, object_id_type, &object::id>
115 (withdrawal_fee_percent)
asset_id_type asset_a
Type of the first asset in the pool.
#define MAP_OBJECT_ID_TO_TYPE(OBJECT)
asset_id_type asset_b
Type of the second asset in the pool.
asset_id_type share_asset
Type of the share asset aka the LP token.
#define GRAPHENE_DECLARE_EXTERNAL_SERIALIZATION(type)
multi_index_container< liquidity_pool_object, indexed_by< ordered_unique< tag< by_id >, member< object, object_id_type, &object::id > >, ordered_unique< tag< by_share_asset >, member< liquidity_pool_object, asset_id_type, &liquidity_pool_object::share_asset > >, ordered_unique< tag< by_asset_a >, composite_key< liquidity_pool_object, member< liquidity_pool_object, asset_id_type, &liquidity_pool_object::asset_a >, member< object, object_id_type, &object::id > > >, ordered_unique< tag< by_asset_b >, composite_key< liquidity_pool_object, member< liquidity_pool_object, asset_id_type, &liquidity_pool_object::asset_b >, member< object, object_id_type, &object::id > > >, ordered_unique< tag< by_asset_ab >, composite_key< liquidity_pool_object, member< liquidity_pool_object, asset_id_type, &liquidity_pool_object::asset_a >, member< liquidity_pool_object, asset_id_type, &liquidity_pool_object::asset_b >, member< object, object_id_type, &object::id > > > >> liquidity_pool_multi_index_type
share_type balance_a
The balance of the first asset in the pool.
generic_index< liquidity_pool_object, liquidity_pool_multi_index_type > liquidity_pool_index
void update_virtual_value()
#define FC_REFLECT_DERIVED(TYPE, INHERITS, MEMBERS)
Specializes fc::reflector for TYPE where type inherits other reflected classes.
share_type balance_b
The balance of the second asset in the pool.
base for all database objects