diff --git a/contracts/sources/fees.move b/contracts/sources/fees.move index ae1cdd8..ccce16c 100644 --- a/contracts/sources/fees.move +++ b/contracts/sources/fees.move @@ -148,7 +148,7 @@ module liquid_staking::fees { (((sui_amount as u128) * (self.sui_mint_fee_bps as u128) + 9999) / 10_000) as u64 } - public(package) fun calculate_redeem_fee(self: &FeeConfig, sui_amount: u64): u64 { + public fun calculate_redeem_fee(self: &FeeConfig, sui_amount: u64): u64 { if (self.redeem_fee_bps == 0) { return 0 }; diff --git a/contracts/sources/liquid_staking.move b/contracts/sources/liquid_staking.move index ccc1d63..982c0a1 100644 --- a/contracts/sources/liquid_staking.move +++ b/contracts/sources/liquid_staking.move @@ -127,6 +127,22 @@ module liquid_staking::liquid_staking { &self.lst } + public fun lst_amount_to_sui_amount
( + self: &LiquidStakingInfo
, + lst_amount: u64 + ): u64 { + let total_sui_supply = self.total_sui_supply(); + let total_lst_supply = self.total_lst_supply(); + + assert!(total_lst_supply > 0, EZeroLstSupply); + + let sui_amount = (total_sui_supply as u128) + * (lst_amount as u128) + / (total_lst_supply as u128); + + sui_amount as u64 + } + #[test_only] public fun accrued_spread_fees
(self: &LiquidStakingInfo
): u64 { self.accrued_spread_fees @@ -547,20 +563,4 @@ module liquid_staking::liquid_staking { lst_amount as u64 } - - public(package) fun lst_amount_to_sui_amount
( - self: &LiquidStakingInfo
, - lst_amount: u64 - ): u64 { - let total_sui_supply = self.total_sui_supply(); - let total_lst_supply = self.total_lst_supply(); - - assert!(total_lst_supply > 0, EZeroLstSupply); - - let sui_amount = (total_sui_supply as u128) - * (lst_amount as u128) - / (total_lst_supply as u128); - - sui_amount as u64 - } }