0x1::RewardConfigThe module provide configuration for block reward.
RewardConfiginitializenew_reward_configget_reward_configreward_delayuse 0x1::Config;
use 0x1::CoreAddresses;
use 0x1::Timestamp;
RewardConfigReward configuration
struct RewardConfig has copy, drop, store
reward_delay: u64
const EINVALID_ARGUMENT: u64 = 18;
initializeModule initialization.
public fun initialize(account: &signer, reward_delay: u64)
public fun initialize(account: &signer, reward_delay: u64) {
Timestamp::assert_genesis();
CoreAddresses::assert_genesis_address(account);
Config::publish_new_config<Self::RewardConfig>(
account,
new_reward_config(reward_delay)
);
}
aborts_if !Timestamp::is_genesis();
aborts_if Signer::address_of(account) != CoreAddresses::GENESIS_ADDRESS();
aborts_if exists<Config::Config<RewardConfig>>(Signer::address_of(account));
include Config::PublishNewConfigAbortsIf<RewardConfig>;
include Config::PublishNewConfigEnsures<RewardConfig>;
new_reward_configCreate a new reward config mainly used in DAO.
public fun new_reward_config(reward_delay: u64): RewardConfig::RewardConfig
public fun new_reward_config(reward_delay: u64) : RewardConfig {
RewardConfig {reward_delay: reward_delay}
}
get_reward_configGet reward configuration.
public fun get_reward_config(): RewardConfig::RewardConfig
public fun get_reward_config(): RewardConfig {
Config::get_by_address<RewardConfig>(CoreAddresses::GENESIS_ADDRESS())
}
include GetRewardConfigAbortsIf;
schema GetRewardConfigAbortsIf {
aborts_if !exists<Config::Config<RewardConfig>>(CoreAddresses::GENESIS_ADDRESS());
}
reward_delayGet reward delay.
public fun reward_delay(): u64
public fun reward_delay() :u64 {
let reward_config = get_reward_config();
reward_config.reward_delay
}
aborts_if !exists<Config::Config<RewardConfig>>(CoreAddresses::GENESIS_ADDRESS());
pragma verify = false;
pragma aborts_if_is_strict = true;