From 60e658ade5bad56b787e01a4fd5e384a41ab8784 Mon Sep 17 00:00:00 2001 From: Danitello123 Date: Mon, 27 Jul 2026 19:51:47 +0100 Subject: [PATCH 1/2] fix(liquidity-pool): prevent i128 overflow in withdraw --- contracts/liquidity-pool/src/lib.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/contracts/liquidity-pool/src/lib.rs b/contracts/liquidity-pool/src/lib.rs index fb9354b..94906f7 100644 --- a/contracts/liquidity-pool/src/lib.rs +++ b/contracts/liquidity-pool/src/lib.rs @@ -189,7 +189,10 @@ impl LiquidityPoolContract { if total_shares == 0 { panic!("no shares in pool"); } - let amount = (shares * pool.total_liquidity) / total_shares; + let amount = shares + .checked_mul(pool.total_liquidity) + .expect("share redemption calculation overflows i128") + / total_shares; let available = pool.total_liquidity - pool.total_borrowed; if amount > available { From 0a6bf98455285b86b06dfaf6431a6e030e34584f Mon Sep 17 00:00:00 2001 From: Danitello123 Date: Mon, 27 Jul 2026 19:56:48 +0100 Subject: [PATCH 2/2] fix(milestone-tracker): prevent u64 overflow on deadline calculation --- contracts/milestone-tracker/src/lib.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/contracts/milestone-tracker/src/lib.rs b/contracts/milestone-tracker/src/lib.rs index e18bf87..38fcf85 100644 --- a/contracts/milestone-tracker/src/lib.rs +++ b/contracts/milestone-tracker/src/lib.rs @@ -98,7 +98,8 @@ impl MilestoneTrackerContract { } let now = env.ledger().timestamp(); - let deadline = now + duration_secs; + let deadline = now.checked_add(duration_secs) + .expect("milestone deadline timestamp overflows u64"); let counter: u64 = env .storage()