From 1fac71b2e95dcf30487414005d61d5c6209db8db Mon Sep 17 00:00:00 2001 From: Sorin Petreasca Date: Fri, 21 Feb 2025 12:13:42 +0200 Subject: [PATCH 1/2] Token Unstake SC helper functions updates --- locked-asset/token-unstake/src/fees_handler.rs | 17 +++++++++++++++-- locked-asset/token-unstake/wasm/src/lib.rs | 5 +++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/locked-asset/token-unstake/src/fees_handler.rs b/locked-asset/token-unstake/src/fees_handler.rs index 803ef5345..a0d2ba7c7 100644 --- a/locked-asset/token-unstake/src/fees_handler.rs +++ b/locked-asset/token-unstake/src/fees_handler.rs @@ -67,13 +67,26 @@ pub trait FeesHandlerModule: self.burn_penalty(payment); } + #[only_owner] + #[endpoint(setFeesBurnPercentage)] + fn set_fees_burn_percentage(&self, fees_burn_percentage: u64) { + require!( + fees_burn_percentage <= MAX_PENALTY_PERCENTAGE, + "Invalid percentage" + ); + self.fees_burn_percentage().set(fees_burn_percentage); + } + fn burn_penalty(&self, payment: EsdtTokenPayment) { let fees_burn_percentage = self.fees_burn_percentage().get(); let burn_amount = &payment.amount * fees_burn_percentage / MAX_PENALTY_PERCENTAGE; let remaining_amount = &payment.amount - &burn_amount; - self.send() - .esdt_local_burn(&payment.token_identifier, payment.token_nonce, &burn_amount); + self.send().esdt_non_zero_local_burn( + &payment.token_identifier, + payment.token_nonce, + &burn_amount, + ); self.send_fees_to_collector(EsdtTokenPayment::new( payment.token_identifier, diff --git a/locked-asset/token-unstake/wasm/src/lib.rs b/locked-asset/token-unstake/wasm/src/lib.rs index ea93ce423..48286afd1 100644 --- a/locked-asset/token-unstake/wasm/src/lib.rs +++ b/locked-asset/token-unstake/wasm/src/lib.rs @@ -6,9 +6,9 @@ // Init: 1 // Upgrade: 1 -// Endpoints: 10 +// Endpoints: 11 // Async Callback (empty): 1 -// Total number of exported functions: 13 +// Total number of exported functions: 14 #![no_std] @@ -26,6 +26,7 @@ multiversx_sc_wasm_adapter::endpoints! { cancelUnbond => cancel_unbond depositUserTokens => deposit_user_tokens depositFees => deposit_fees + setFeesBurnPercentage => set_fees_burn_percentage getFeesBurnPercentage => fees_burn_percentage getFeesCollectorAddress => fees_collector_address setEnergyFactoryAddress => set_energy_factory_address From d208320247c3186d08431df8c60e28ea627c7615 Mon Sep 17 00:00:00 2001 From: Sorin Petreasca Date: Fri, 21 Feb 2025 13:40:13 +0200 Subject: [PATCH 2/2] text error change --- locked-asset/token-unstake/src/fees_handler.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locked-asset/token-unstake/src/fees_handler.rs b/locked-asset/token-unstake/src/fees_handler.rs index a0d2ba7c7..238826a77 100644 --- a/locked-asset/token-unstake/src/fees_handler.rs +++ b/locked-asset/token-unstake/src/fees_handler.rs @@ -72,7 +72,7 @@ pub trait FeesHandlerModule: fn set_fees_burn_percentage(&self, fees_burn_percentage: u64) { require!( fees_burn_percentage <= MAX_PENALTY_PERCENTAGE, - "Invalid percentage" + "Fees burn percentage exceeds the maximum allowed percentage" ); self.fees_burn_percentage().set(fees_burn_percentage); }