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); 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 { 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()