diff --git a/precompile/binaries/stdlib/staking.mv b/precompile/binaries/stdlib/staking.mv index bc269458..5ddc08cb 100644 Binary files a/precompile/binaries/stdlib/staking.mv and b/precompile/binaries/stdlib/staking.mv differ diff --git a/precompile/modules/initia_stdlib/sources/staking.move b/precompile/modules/initia_stdlib/sources/staking.move index beafa08a..eb2892d8 100644 --- a/precompile/modules/initia_stdlib/sources/staking.move +++ b/precompile/modules/initia_stdlib/sources/staking.move @@ -180,6 +180,9 @@ module initia_std::staking { /// Chain already has `StakingState` for the given metadata const ESTAKING_STATE_ALREADY_EXISTS: u64 = 16; + /// Invalid slash fraction + const EINVALID_SLASH_FRACTION: u64 = 17; + // Constants /// Max number of view function response items. @@ -621,6 +624,8 @@ module initia_std::staking { validator: String, fraction: BigDecimal ) acquires ModuleStore { + assert!(bigdecimal::le(fraction, bigdecimal::one()), error::invalid_argument(EINVALID_SLASH_FRACTION)); + check_chain_permission(chain); let module_store = borrow_global_mut(@initia_std);