use crate::EraId;
use super::DelegationRate;
pub const INITIAL_ERA_ID: EraId = EraId::new(0);
pub const INITIAL_ERA_END_TIMESTAMP_MILLIS: u64 = 0;
pub const DELEGATION_RATE_DENOMINATOR: DelegationRate = 100;
pub const BLOCK_REWARD: u64 = 1_000_000_000_000;
pub const ARG_AMOUNT: &str = "amount";
pub const ARG_DELEGATION_RATE: &str = "delegation_rate";
pub const ARG_PUBLIC_KEY: &str = "public_key";
pub const ARG_NEW_PUBLIC_KEY: &str = "new_public_key";
pub const ARG_VALIDATOR: &str = "validator";
pub const ARG_DELEGATOR: &str = "delegator";
pub const ARG_DELEGATOR_PURSE: &str = "delegator_purse";
pub const ARG_DELEGATORS: &str = "delegators";
pub const ARG_RESERVATIONS: &str = "reservations";
pub const ARG_VALIDATOR_PURSE: &str = "validator_purse";
pub const ARG_VALIDATOR_KEYS: &str = "validator_keys";
pub const ARG_VALIDATOR_PUBLIC_KEYS: &str = "validator_public_keys";
pub const ARG_NEW_VALIDATOR: &str = "new_validator";
pub const ARG_ERA_ID: &str = "era_id";
pub const ARG_VALIDATOR_SLOTS: &str = VALIDATOR_SLOTS_KEY;
pub const ARG_MINT_CONTRACT_PACKAGE_HASH: &str = "mint_contract_package_hash";
pub const ARG_GENESIS_VALIDATORS: &str = "genesis_validators";
pub const ARG_AUCTION_DELAY: &str = "auction_delay";
pub const ARG_LOCKED_FUNDS_PERIOD: &str = "locked_funds_period";
pub const ARG_UNBONDING_DELAY: &str = "unbonding_delay";
pub const ARG_ERA_END_TIMESTAMP_MILLIS: &str = "era_end_timestamp_millis";
pub const ARG_EVICTED_VALIDATORS: &str = "evicted_validators";
pub const ARG_REWARDS_MAP: &str = "rewards_map";
pub const ARG_ENTRY_POINT: &str = "entry_point";
pub const ARG_MINIMUM_DELEGATION_AMOUNT: &str = "minimum_delegation_amount";
pub const ARG_MAXIMUM_DELEGATION_AMOUNT: &str = "maximum_delegation_amount";
pub const ARG_RESERVED_SLOTS: &str = "reserved_slots";
pub const METHOD_GET_ERA_VALIDATORS: &str = "get_era_validators";
pub const METHOD_ADD_BID: &str = "add_bid";
pub const METHOD_WITHDRAW_BID: &str = "withdraw_bid";
pub const METHOD_DELEGATE: &str = "delegate";
pub const METHOD_UNDELEGATE: &str = "undelegate";
pub const METHOD_REDELEGATE: &str = "redelegate";
pub const METHOD_RUN_AUCTION: &str = "run_auction";
pub const METHOD_SLASH: &str = "slash";
pub const METHOD_DISTRIBUTE: &str = "distribute";
pub const METHOD_READ_ERA_ID: &str = "read_era_id";
pub const METHOD_ACTIVATE_BID: &str = "activate_bid";
pub const METHOD_CHANGE_BID_PUBLIC_KEY: &str = " change_bid_public_key";
pub const METHOD_ADD_RESERVATIONS: &str = "add_reservations";
pub const METHOD_CANCEL_RESERVATIONS: &str = "cancel_reservations";
pub const ERA_ID_KEY: &str = "era_id";
pub const ERA_END_TIMESTAMP_MILLIS_KEY: &str = "era_end_timestamp_millis";
pub const SEIGNIORAGE_RECIPIENTS_SNAPSHOT_KEY: &str = "seigniorage_recipients_snapshot";
pub const SEIGNIORAGE_RECIPIENTS_SNAPSHOT_VERSION_KEY: &str =
"seigniorage_recipients_snapshot_version";
pub const DEFAULT_SEIGNIORAGE_RECIPIENTS_SNAPSHOT_VERSION: u8 = 2;
pub const VALIDATOR_SLOTS_KEY: &str = "validator_slots";
pub const AUCTION_DELAY_KEY: &str = "auction_delay";
pub const LOCKED_FUNDS_PERIOD_KEY: &str = "locked_funds_period";
pub const UNBONDING_DELAY_KEY: &str = "unbonding_delay";
pub const MINIMUM_DELEGATION_RATE_KEY: &str = "minimum_delegation_rate";