diff --git a/contracts/sources/liquid_staking.move b/contracts/sources/liquid_staking.move index b4f5b85..ccc1d63 100644 --- a/contracts/sources/liquid_staking.move +++ b/contracts/sources/liquid_staking.move @@ -8,12 +8,14 @@ module liquid_staking::liquid_staking { use sui::bag::{Self, Bag}; use liquid_staking::fees::{FeeConfig}; use liquid_staking::cell::{Self, Cell}; - use sui::coin::{TreasuryCap}; + use sui::coin::{TreasuryCap, CoinMetadata}; use liquid_staking::version::{Self, Version}; use liquid_staking::events::{emit_event}; use sui_system::staking_pool::{FungibleStakedSui}; use std::type_name::{Self, TypeName}; use sui::package; + use std::string::String; + use std::ascii; /* Errors */ const EInvalidLstCreation: u64 = 0; @@ -491,6 +493,34 @@ module liquid_staking::liquid_staking { false } + public fun update_metadata

( + self: &mut LiquidStakingInfo

, + _: &AdminCap

, + metadata: &mut CoinMetadata

, + name: Option, + symbol: Option, + description: Option, + icon_url: Option, + ) { + let treasury_cap = &self.lst_treasury_cap; + + if (name.is_some()) { + treasury_cap.update_name(metadata, name.destroy_some()); + }; + + if (symbol.is_some()) { + treasury_cap.update_symbol(metadata, symbol.destroy_some()); + }; + + if (description.is_some()) { + treasury_cap.update_description(metadata, description.destroy_some()); + }; + + if (icon_url.is_some()) { + treasury_cap.update_icon_url(metadata, icon_url.destroy_some()); + }; + } + public(package) fun mark_redeem_request_as_processed

( _: &AdminCap

, request: &mut CustomRedeemRequest

diff --git a/contracts/tests/storage_tests.move b/contracts/tests/storage_tests.move index cb33fef..2bcffda 100644 --- a/contracts/tests/storage_tests.move +++ b/contracts/tests/storage_tests.move @@ -437,6 +437,7 @@ module liquid_staking::storage_tests { } #[test] + #[expected_failure(abort_code = 15, location = sui_system::staking_pool)] fun test_refresh_inactive_staking_pool_edge_case() { let mut scenario = test_scenario::begin(@0x0);