diff --git a/contract/src/jar/model/common.rs b/contract/src/jar/model/common.rs index bbe455f1..82b1f453 100644 --- a/contract/src/jar/model/common.rs +++ b/contract/src/jar/model/common.rs @@ -60,11 +60,13 @@ impl JarLastVersion { "Applying penalty is not supported for score based jars" ); - let current_interest = self.get_interest(&[], product, now).0; + let (interest, remainder) = self.get_interest(&[], product, now); + + self.claim_remainder = remainder; self.cache = Some(JarCache { updated_at: now, - interest: current_interest, + interest, }); self.is_penalty_applied = is_applied; } diff --git a/contract/src/tests.rs b/contract/src/tests.rs index 32efe19b..913e3353 100644 --- a/contract/src/tests.rs +++ b/contract/src/tests.rs @@ -290,7 +290,7 @@ fn get_total_interest_for_premium_with_multiple_penalties_applied() { context.set_block_timestamp_in_ms(3_700_000); let interest = context.contract().get_total_interest(alice.clone()).amount.total.0; - assert_eq!(interest, 1_613_140_537_798_072_042); + assert_eq!(interest, 1_613_140_537_798_072_044); } #[test] @@ -344,10 +344,10 @@ fn apply_penalty_in_batch() { context.set_block_timestamp_in_days(365); let interest = context.contract().get_total_interest(alice.clone()).amount.total.0; - assert_eq!(interest, 1_498_630_000); + assert_eq!(interest, 1_498_630_100); let interest = context.contract().get_total_interest(bob.clone()).amount.total.0; - assert_eq!(interest, 749_315_000); + assert_eq!(interest, 749_315_050); let alice_jars = context.contract().get_jars_for_account(alice); let bob_jars = context.contract().get_jars_for_account(bob); diff --git a/res/sweat_jar.wasm b/res/sweat_jar.wasm index 7e177233..c76b1d4d 100755 Binary files a/res/sweat_jar.wasm and b/res/sweat_jar.wasm differ