Skip to content

Commit 03898d1

Browse files
authored
Merge pull request #1775 from bitshares/fix-reward-percent
Check reward percent
2 parents c737ea5 + 0ffbaa7 commit 03898d1

File tree

2 files changed

+36
-2
lines changed

2 files changed

+36
-2
lines changed

libraries/chain/protocol/asset_ops.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,8 @@ void asset_options::validate()const
236236
{
237237
FC_ASSERT( whitelist_markets.find(item) == whitelist_markets.end() );
238238
}
239+
if( extensions.value.reward_percent.valid() )
240+
FC_ASSERT( *extensions.value.reward_percent < GRAPHENE_100_PERCENT );
239241
}
240242

241243
void asset_claim_fees_operation::validate()const {

tests/tests/market_fee_sharing_tests.cpp

+34-2
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ BOOST_AUTO_TEST_CASE(create_asset_with_additional_options_after_hf)
147147

148148
generate_blocks_past_hf1268();
149149

150-
uint16_t reward_percent = 100;
150+
uint16_t reward_percent = GRAPHENE_100_PERCENT + 1; // 100.01%
151151
flat_set<account_id_type> whitelist = {issuer_id};
152152
price price(asset(1, asset_id_type(1)), asset(1));
153153
uint16_t market_fee_percent = 100;
@@ -156,6 +156,28 @@ BOOST_AUTO_TEST_CASE(create_asset_with_additional_options_after_hf)
156156
options.value.reward_percent = reward_percent;
157157
options.value.whitelist_market_fee_sharing = whitelist;
158158

159+
GRAPHENE_CHECK_THROW(create_user_issued_asset("USD",
160+
issuer,
161+
charge_market_fee,
162+
price,
163+
2,
164+
market_fee_percent,
165+
options),
166+
fc::assert_exception);
167+
168+
reward_percent = GRAPHENE_100_PERCENT; // 100%
169+
options.value.reward_percent = reward_percent;
170+
GRAPHENE_CHECK_THROW(create_user_issued_asset("USD",
171+
issuer,
172+
charge_market_fee,
173+
price,
174+
2,
175+
market_fee_percent,
176+
options),
177+
fc::assert_exception);
178+
179+
reward_percent = GRAPHENE_100_PERCENT - 1; // 99.99%
180+
options.value.reward_percent = reward_percent;
159181
asset_object usd_asset = create_user_issued_asset("USD",
160182
issuer,
161183
charge_market_fee,
@@ -197,8 +219,18 @@ BOOST_AUTO_TEST_CASE(update_additional_options_after_hf)
197219

198220
generate_blocks_past_hf1268();
199221

200-
uint16_t reward_percent = 40;
222+
uint16_t reward_percent = GRAPHENE_100_PERCENT + 1; // 100.01%
201223
flat_set<account_id_type> whitelist = {issuer_id};
224+
GRAPHENE_CHECK_THROW(
225+
update_asset(issuer_id, issuer_private_key, usd_asset.get_id(), reward_percent, whitelist),
226+
fc::assert_exception );
227+
228+
reward_percent = GRAPHENE_100_PERCENT; // 100%
229+
GRAPHENE_CHECK_THROW(
230+
update_asset(issuer_id, issuer_private_key, usd_asset.get_id(), reward_percent, whitelist),
231+
fc::assert_exception );
232+
233+
reward_percent = GRAPHENE_100_PERCENT - 1; // 99.99%
202234
update_asset(issuer_id, issuer_private_key, usd_asset.get_id(), reward_percent, whitelist);
203235

204236
asset_object updated_asset = usd_asset.get_id()(db);

0 commit comments

Comments
 (0)