Configuration map of block reward contract addresses (#10875)
* configuration map of block reward contract addresses * Revert test module updates. * re-added block reward transition map tests and docs * review comment
This commit is contained in:
committed by
David
parent
175051bac7
commit
efb390eb60
@@ -14,8 +14,31 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Parity Ethereum. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
//! Authority params deserialization.
|
||||
//! Authority Round parameter deserialization.
|
||||
//!
|
||||
//! Here is an example of input parameters where the step duration is constant at 5 seconds, the set
|
||||
//! of validators is decided by the contract at address `0x10..01` starting from block 0, and where
|
||||
//! the address of the contract that computes block rewards is set to `0x20..02` for blocks 0
|
||||
//! through 41 and to `0x30.03` for all blocks starting from block 42.
|
||||
//!
|
||||
//! ```ignore
|
||||
//! "params": {
|
||||
//! "stepDuration": "5",
|
||||
//! "validators": {
|
||||
//! "multi": {
|
||||
//! "0": {
|
||||
//! "contract": "0x1000000000000000000000000000000000000001"
|
||||
//! }
|
||||
//! }
|
||||
//! },
|
||||
//! "blockRewardContractTransitions": {
|
||||
//! "0": "0x2000000000000000000000000000000000000002",
|
||||
//! "42": "0x3000000000000000000000000000000000000003"
|
||||
//! }
|
||||
//! }
|
||||
//! ```
|
||||
|
||||
use std::collections::BTreeMap;
|
||||
use hash::Address;
|
||||
use uint::Uint;
|
||||
use bytes::Bytes;
|
||||
@@ -41,11 +64,24 @@ pub struct AuthorityRoundParams {
|
||||
pub immediate_transitions: Option<bool>,
|
||||
/// Reward per block in wei.
|
||||
pub block_reward: Option<Uint>,
|
||||
/// Block at which the block reward contract should start being used.
|
||||
/// Block at which the block reward contract should start being used. This option allows one to
|
||||
/// add a single block reward contract transition and is compatible with the multiple address
|
||||
/// option `block_reward_contract_transitions` below.
|
||||
pub block_reward_contract_transition: Option<Uint>,
|
||||
/// Block reward contract address (setting the block reward contract
|
||||
/// overrides the static block reward definition).
|
||||
/// Block reward contract address which overrides the `block_reward` setting. This option allows
|
||||
/// one to add a single block reward contract address and is compatible with the multiple
|
||||
/// address option `block_reward_contract_transitions` below.
|
||||
pub block_reward_contract_address: Option<Address>,
|
||||
/// Block reward contract addresses with their associated starting block numbers.
|
||||
///
|
||||
/// Setting the block reward contract overrides `block_reward`. If the single block reward
|
||||
/// contract address is also present then it is added into the map at the block number stored in
|
||||
/// `block_reward_contract_transition` or 0 if that block number is not provided. Therefore both
|
||||
/// a single block reward contract transition and a map of reward contract transitions can be
|
||||
/// used simulataneously in the same configuration. In such a case the code requires that the
|
||||
/// block number of the single transition is strictly less than any of the block numbers in the
|
||||
/// map.
|
||||
pub block_reward_contract_transitions: Option<BTreeMap<Uint, Address>>,
|
||||
/// Block reward code. This overrides the block reward contract address.
|
||||
pub block_reward_contract_code: Option<Bytes>,
|
||||
/// Block at which maximum uncle count should be considered.
|
||||
|
||||
Reference in New Issue
Block a user