From 60e658ade5bad56b787e01a4fd5e384a41ab8784 Mon Sep 17 00:00:00 2001 From: Danitello123 Date: Mon, 27 Jul 2026 19:51:47 +0100 Subject: [PATCH 1/3] 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/3] 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() From 0338eeba2c18118a397d7a8cc957f0aa1fffd45d Mon Sep 17 00:00:00 2001 From: Danitello123 Date: Mon, 27 Jul 2026 20:03:28 +0100 Subject: [PATCH 3/3] fix: escrow refund accumulation --- contracts/escrow-vault/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/escrow-vault/src/lib.rs b/contracts/escrow-vault/src/lib.rs index 8287092..409cb8e 100644 --- a/contracts/escrow-vault/src/lib.rs +++ b/contracts/escrow-vault/src/lib.rs @@ -503,7 +503,7 @@ impl EscrowVaultContract { let refund = escrow.locked_amount; escrow.locked_amount = 0; - escrow.refunded_amount = refund; + escrow.refunded_amount += refund; escrow.state = EscrowState::Refunded; let _ttl_key = DataKey::Escrow(escrow_id);