NFT make revenue_split integer from double
This commit is contained in:
parent
5783648cfb
commit
1e1f109e7e
10 changed files with 19 additions and 21 deletions
|
|
@ -804,8 +804,6 @@ uint32_t database::get_gpos_current_subperiod()
|
|||
const auto now = this->head_block_time();
|
||||
auto seconds_since_period_start = now.sec_since_epoch() - period_start.sec_since_epoch();
|
||||
|
||||
FC_ASSERT(period_start <= now && now <= period_end);
|
||||
|
||||
// get in what sub period we are
|
||||
uint32_t current_subperiod = 0;
|
||||
std::list<uint32_t> period_list(number_of_subperiods);
|
||||
|
|
@ -927,8 +925,8 @@ void rolling_period_start(database& db)
|
|||
if(now.sec_since_epoch() >= (period_start + vesting_period))
|
||||
{
|
||||
// roll
|
||||
db.modify(db.get_global_properties(), [now](global_property_object& p) {
|
||||
p.parameters.extensions.value.gpos_period_start = now.sec_since_epoch();
|
||||
db.modify(db.get_global_properties(), [period_start, vesting_period](global_property_object& p) {
|
||||
p.parameters.extensions.value.gpos_period_start = period_start + vesting_period;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
// RBAC HARDFORK Wednesday, 20-May-20 00:00:00 UTC
|
||||
// NFT HARDFORK Wednesday, 20-May-20 00:00:00 UTC
|
||||
#ifndef HARDFORK_NFT_TIME
|
||||
#define HARDFORK_NFT_TIME (fc::time_point_sec( 1589932800 ))
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ namespace graphene { namespace chain {
|
|||
std::string symbol;
|
||||
std::string base_uri;
|
||||
optional<account_id_type> revenue_partner;
|
||||
optional<double> revenue_split;
|
||||
optional<uint16_t> revenue_split;
|
||||
bool is_transferable = false;
|
||||
bool is_sellable = true;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ namespace graphene { namespace chain {
|
|||
std::string symbol;
|
||||
std::string base_uri;
|
||||
optional<account_id_type> revenue_partner;
|
||||
optional<double> revenue_split;
|
||||
optional<uint16_t> revenue_split;
|
||||
bool is_transferable = false;
|
||||
bool is_sellable = true;
|
||||
|
||||
|
|
@ -38,7 +38,7 @@ namespace graphene { namespace chain {
|
|||
optional<std::string> symbol;
|
||||
optional<std::string> base_uri;
|
||||
optional<account_id_type> revenue_partner;
|
||||
optional<double> revenue_split;
|
||||
optional<uint16_t> revenue_split;
|
||||
optional<bool> is_transferable;
|
||||
optional<bool> is_sellable;
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ void_result nft_metadata_create_evaluator::do_evaluate( const nft_metadata_creat
|
|||
FC_ASSERT((op.revenue_partner && op.revenue_split) || (!op.revenue_partner && !op.revenue_split), "NFT revenue partner info invalid");
|
||||
if (op.revenue_partner) {
|
||||
(*op.revenue_partner)(db());
|
||||
FC_ASSERT(*op.revenue_split >= 0.0 && *op.revenue_split <= 1.0, "Revenue split percent invalid");
|
||||
FC_ASSERT(*op.revenue_split >= GRAPHENE_1_PERCENT && *op.revenue_split <= GRAPHENE_100_PERCENT, "Revenue split percent invalid");
|
||||
}
|
||||
return void_result();
|
||||
} FC_CAPTURE_AND_RETHROW( (op) ) }
|
||||
|
|
@ -55,7 +55,7 @@ void_result nft_metadata_update_evaluator::do_evaluate( const nft_metadata_updat
|
|||
FC_ASSERT((op.revenue_partner && op.revenue_split) || (!op.revenue_partner && !op.revenue_split), "NFT revenue partner info invalid");
|
||||
if (op.revenue_partner) {
|
||||
(*op.revenue_partner)(db());
|
||||
FC_ASSERT(*op.revenue_split >= 0.0 && *op.revenue_split <= 1.0, "Revenue split percent invalid");
|
||||
FC_ASSERT(*op.revenue_split >= GRAPHENE_1_PERCENT && *op.revenue_split <= GRAPHENE_100_PERCENT, "Revenue split percent invalid");
|
||||
}
|
||||
return void_result();
|
||||
} FC_CAPTURE_AND_RETHROW( (op) ) }
|
||||
|
|
|
|||
|
|
@ -246,11 +246,11 @@ namespace graphene
|
|||
{
|
||||
const auto &nft_obj = item(d);
|
||||
const auto &nft_meta_obj = nft_obj.nft_metadata_id(d);
|
||||
if (nft_meta_obj.revenue_partner && *nft_meta_obj.revenue_split > 0.0)
|
||||
if (nft_meta_obj.revenue_partner && *nft_meta_obj.revenue_split > 0)
|
||||
{
|
||||
const auto &rev_partner = *nft_meta_obj.revenue_partner;
|
||||
const auto &rev_split = *nft_meta_obj.revenue_split;
|
||||
int64_t item_fee = static_cast<int64_t>((rev_split * (*offer.bid_price).amount.value) / offer.item_ids.size());
|
||||
int64_t item_fee = static_cast<int64_t>((rev_split * (*offer.bid_price).amount.value / GRAPHENE_100_PERCENT) / offer.item_ids.size());
|
||||
const auto &fee_asset = asset(item_fee, (*offer.bid_price).asset_id);
|
||||
auto ret_val = fee_map.insert({rev_partner, fee_asset});
|
||||
if (ret_val.second == false)
|
||||
|
|
|
|||
|
|
@ -1947,7 +1947,7 @@ class wallet_api
|
|||
string symbol,
|
||||
string base_uri,
|
||||
optional<string> revenue_partner,
|
||||
optional<double> revenue_split,
|
||||
optional<uint16_t> revenue_split,
|
||||
bool is_transferable,
|
||||
bool is_sellable,
|
||||
bool broadcast);
|
||||
|
|
@ -1972,7 +1972,7 @@ class wallet_api
|
|||
optional<string> symbol,
|
||||
optional<string> base_uri,
|
||||
optional<string> revenue_partner,
|
||||
optional<double> revenue_split,
|
||||
optional<uint16_t> revenue_split,
|
||||
optional<bool> is_transferable,
|
||||
optional<bool> is_sellable,
|
||||
bool broadcast);
|
||||
|
|
|
|||
|
|
@ -6372,7 +6372,7 @@ signed_transaction wallet_api::nft_metadata_create(string owner_account_id_or_na
|
|||
string symbol,
|
||||
string base_uri,
|
||||
optional<string> revenue_partner,
|
||||
optional<double> revenue_split,
|
||||
optional<uint16_t> revenue_split,
|
||||
bool is_transferable,
|
||||
bool is_sellable,
|
||||
bool broadcast)
|
||||
|
|
@ -6388,7 +6388,7 @@ signed_transaction wallet_api::nft_metadata_create(string owner_account_id_or_na
|
|||
{
|
||||
account_object partner_account = my->get_account(*revenue_partner);
|
||||
op.revenue_partner = partner_account.id;
|
||||
double rev_split = 0.0;
|
||||
uint16_t rev_split = 0;
|
||||
if( revenue_split )
|
||||
{
|
||||
rev_split = *revenue_split;
|
||||
|
|
@ -6412,7 +6412,7 @@ signed_transaction wallet_api::nft_metadata_update(string owner_account_id_or_na
|
|||
optional<string> symbol,
|
||||
optional<string> base_uri,
|
||||
optional<string> revenue_partner,
|
||||
optional<double> revenue_split,
|
||||
optional<uint16_t> revenue_split,
|
||||
optional<bool> is_transferable,
|
||||
optional<bool> is_sellable,
|
||||
bool broadcast)
|
||||
|
|
@ -6429,7 +6429,7 @@ signed_transaction wallet_api::nft_metadata_update(string owner_account_id_or_na
|
|||
{
|
||||
account_object partner_account = my->get_account(*revenue_partner);
|
||||
op.revenue_partner = partner_account.id;
|
||||
double rev_split = 0.0;
|
||||
uint16_t rev_split = 0;
|
||||
if( revenue_split )
|
||||
{
|
||||
rev_split = *revenue_split;
|
||||
|
|
|
|||
|
|
@ -630,6 +630,7 @@ BOOST_AUTO_TEST_CASE( voting )
|
|||
generate_blocks( HARDFORK_GPOS_TIME );
|
||||
generate_block();
|
||||
|
||||
auto now = HARDFORK_GPOS_TIME;
|
||||
const auto& core = asset_id_type()(db);
|
||||
|
||||
// send some asset to alice and bob
|
||||
|
|
@ -651,7 +652,6 @@ BOOST_AUTO_TEST_CASE( voting )
|
|||
BOOST_CHECK_EQUAL(db.get_global_properties().parameters.gpos_period_start(), HARDFORK_GPOS_TIME.sec_since_epoch());
|
||||
|
||||
// update default gpos for test speed
|
||||
auto now = db.head_block_time();
|
||||
// 5184000 = 60x60x24x60 = 60 days
|
||||
// 864000 = 60x60x24x10 = 10 days
|
||||
update_gpos_global(5184000, 864000, now);
|
||||
|
|
@ -754,7 +754,7 @@ BOOST_AUTO_TEST_CASE( voting )
|
|||
advance_x_maint(5);
|
||||
// a new GPOS period is in but vote from user is before the start. Whoever votes in 6th sub-period, votes will carry
|
||||
now = db.head_block_time();
|
||||
BOOST_CHECK_EQUAL(db.get_global_properties().parameters.gpos_period_start(), now.sec_since_epoch());
|
||||
BOOST_CHECK_EQUAL(db.get_global_properties().parameters.gpos_period_start(), HARDFORK_GPOS_TIME.sec_since_epoch() + db.get_global_properties().parameters.gpos_period());
|
||||
|
||||
generate_block();
|
||||
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ BOOST_AUTO_TEST_CASE(nft_metadata_create_test)
|
|||
op.symbol = "NFT";
|
||||
op.base_uri = "http://nft.example.com";
|
||||
op.revenue_partner = mdowner_id;
|
||||
op.revenue_split = 0.1;
|
||||
op.revenue_split = 1000;
|
||||
|
||||
trx.operations.push_back(op);
|
||||
sign(trx, mdowner_private_key);
|
||||
|
|
|
|||
Loading…
Reference in a new issue