From c9688ae0513fc21d2629f67038b8526b68c418ba Mon Sep 17 00:00:00 2001 From: Daniel Larimer Date: Wed, 22 Jul 2015 18:40:12 -0400 Subject: [PATCH] Fix #200 Fee Schedule is now validated when chain_paramters are validated --- .../chain/protocol/chain_parameters.hpp | 25 ++----------------- libraries/chain/protocol/fee_schedule.cpp | 25 +++++++++++++++++++ 2 files changed, 27 insertions(+), 23 deletions(-) diff --git a/libraries/chain/include/graphene/chain/protocol/chain_parameters.hpp b/libraries/chain/include/graphene/chain/protocol/chain_parameters.hpp index 1d76f52f..25f0bf93 100644 --- a/libraries/chain/include/graphene/chain/protocol/chain_parameters.hpp +++ b/libraries/chain/include/graphene/chain/protocol/chain_parameters.hpp @@ -64,29 +64,8 @@ namespace graphene { namespace chain { uint8_t max_authority_depth = GRAPHENE_MAX_SIG_CHECK_DEPTH; extensions_type extensions; - void validate()const - { - FC_ASSERT( reserve_percent_of_fee <= GRAPHENE_100_PERCENT ); - FC_ASSERT( network_percent_of_fee <= GRAPHENE_100_PERCENT ); - FC_ASSERT( lifetime_referrer_percent_of_fee <= GRAPHENE_100_PERCENT ); - FC_ASSERT( network_percent_of_fee + lifetime_referrer_percent_of_fee <= GRAPHENE_100_PERCENT ); - - FC_ASSERT( block_interval >= GRAPHENE_MIN_BLOCK_INTERVAL ); - FC_ASSERT( block_interval <= GRAPHENE_MAX_BLOCK_INTERVAL ); - FC_ASSERT( block_interval > 0 ); - FC_ASSERT( maintenance_interval > block_interval, - "Maintenance interval must be longer than block interval" ); - FC_ASSERT( maintenance_interval % block_interval == 0, - "Maintenance interval must be a multiple of block interval" ); - FC_ASSERT( maximum_transaction_size >= GRAPHENE_MIN_TRANSACTION_SIZE_LIMIT, - "Transaction size limit is too low" ); - FC_ASSERT( maximum_block_size >= GRAPHENE_MIN_BLOCK_SIZE_LIMIT, - "Block size limit is too low" ); - FC_ASSERT( maximum_time_until_expiration > block_interval, - "Maximum transaction expiration time must be greater than a block interval" ); - FC_ASSERT( maximum_proposal_lifetime - committee_proposal_review_period > block_interval, - "Committee proposal review period must be less than the maximum proposal lifetime" ); - } + /** defined in fee_schedule.cpp */ + void validate()const; }; } } // graphene::chain diff --git a/libraries/chain/protocol/fee_schedule.cpp b/libraries/chain/protocol/fee_schedule.cpp index a87fec45..05d9df99 100644 --- a/libraries/chain/protocol/fee_schedule.cpp +++ b/libraries/chain/protocol/fee_schedule.cpp @@ -116,4 +116,29 @@ namespace graphene { namespace chain { return f; } + void chain_parameters::validate()const + { + current_fees->validate(); + FC_ASSERT( reserve_percent_of_fee <= GRAPHENE_100_PERCENT ); + FC_ASSERT( network_percent_of_fee <= GRAPHENE_100_PERCENT ); + FC_ASSERT( lifetime_referrer_percent_of_fee <= GRAPHENE_100_PERCENT ); + FC_ASSERT( network_percent_of_fee + lifetime_referrer_percent_of_fee <= GRAPHENE_100_PERCENT ); + + FC_ASSERT( block_interval >= GRAPHENE_MIN_BLOCK_INTERVAL ); + FC_ASSERT( block_interval <= GRAPHENE_MAX_BLOCK_INTERVAL ); + FC_ASSERT( block_interval > 0 ); + FC_ASSERT( maintenance_interval > block_interval, + "Maintenance interval must be longer than block interval" ); + FC_ASSERT( maintenance_interval % block_interval == 0, + "Maintenance interval must be a multiple of block interval" ); + FC_ASSERT( maximum_transaction_size >= GRAPHENE_MIN_TRANSACTION_SIZE_LIMIT, + "Transaction size limit is too low" ); + FC_ASSERT( maximum_block_size >= GRAPHENE_MIN_BLOCK_SIZE_LIMIT, + "Block size limit is too low" ); + FC_ASSERT( maximum_time_until_expiration > block_interval, + "Maximum transaction expiration time must be greater than a block interval" ); + FC_ASSERT( maximum_proposal_lifetime - committee_proposal_review_period > block_interval, + "Committee proposal review period must be less than the maximum proposal lifetime" ); + } + } } // graphene::chain