randomness_api_v0_config - [mainnet]
use 0x1::chain_status;use 0x1::config_buffer;use 0x1::option;use 0x1::system_addresses;
Resources
RequiredGasDeposit
struct RequiredGasDeposit has drop, store, key
Fields
-
gas_amount: option::Option<u64>
AllowCustomMaxGasFlag
If this flag is set, max_gas
specified inside #[randomness()]
will be used as the required deposit.
struct AllowCustomMaxGasFlag has drop, store, key
Fields
-
value: bool
Functions
initialize
Only used in genesis.
fun initialize(framework: &signer, required_amount: randomness_api_v0_config::RequiredGasDeposit, allow_custom_max_gas_flag: randomness_api_v0_config::AllowCustomMaxGasFlag)
Implementation
fun initialize(framework: &signer, required_amount: RequiredGasDeposit, allow_custom_max_gas_flag: AllowCustomMaxGasFlag) { system_addresses::assert_aptos_framework(framework); chain_status::assert_genesis(); move_to(framework, required_amount); move_to(framework, allow_custom_max_gas_flag);}
set_for_next_epoch
This can be called by on-chain governance to update RequiredGasDeposit
for the next epoch.
public fun set_for_next_epoch(framework: &signer, gas_amount: option::Option<u64>)
Implementation
public fun set_for_next_epoch(framework: &signer, gas_amount: Option<u64>) { system_addresses::assert_aptos_framework(framework); config_buffer::upsert(RequiredGasDeposit { gas_amount });}
set_allow_max_gas_flag_for_next_epoch
This can be called by on-chain governance to update AllowCustomMaxGasFlag
for the next epoch.
public fun set_allow_max_gas_flag_for_next_epoch(framework: &signer, value: bool)
Implementation
public fun set_allow_max_gas_flag_for_next_epoch(framework: &signer, value: bool) { system_addresses::assert_aptos_framework(framework); config_buffer::upsert(AllowCustomMaxGasFlag { value } );}
on_new_epoch
Only used in reconfigurations to apply the pending RequiredGasDeposit
, if there is any.
public fun on_new_epoch(framework: &signer)
Implementation
public fun on_new_epoch(framework: &signer) acquires RequiredGasDeposit, AllowCustomMaxGasFlag { system_addresses::assert_aptos_framework(framework); if (config_buffer::does_exist<RequiredGasDeposit>()) { let new_config = config_buffer::extract_v2<RequiredGasDeposit>(); if (exists<RequiredGasDeposit>(@aptos_framework)) { *borrow_global_mut<RequiredGasDeposit>(@aptos_framework) = new_config; } else { move_to(framework, new_config); } }; if (config_buffer::does_exist<AllowCustomMaxGasFlag>()) { let new_config = config_buffer::extract_v2<AllowCustomMaxGasFlag>(); if (exists<AllowCustomMaxGasFlag>(@aptos_framework)) { *borrow_global_mut<AllowCustomMaxGasFlag>(@aptos_framework) = new_config; } else { move_to(framework, new_config); } }}
Specification
pragma verify = false;