Telegram: https://t.me/+DOylgFv1jyJlNzM0
Why this matters
In frontend/src/app/streams/[id]/page.tsx the progress bar computes:
width: `${Math.min(100, Number((withdrawn * 100n) / deposited))}%`
deposited is BigInt(stream.depositedAmount). If a stream's depositedAmount is "0" (e.g. a freshly indexed/edge-case stream, or a fee that consumed the full deposit), (withdrawn * 100n) / deposited is a BigInt divide-by-zero, which throws RangeError and crashes the page render.
Acceptance criteria
Files to touch
frontend/src/app/streams/[id]/page.tsx (Stream Progress section)
Out of scope
- The live-claimable counter logic.
Telegram: https://t.me/+DOylgFv1jyJlNzM0
Why this matters
In
frontend/src/app/streams/[id]/page.tsxthe progress bar computes:width: `${Math.min(100, Number((withdrawn * 100n) / deposited))}%`depositedisBigInt(stream.depositedAmount). If a stream'sdepositedAmountis"0"(e.g. a freshly indexed/edge-case stream, or a fee that consumed the full deposit),(withdrawn * 100n) / depositedis a BigInt divide-by-zero, which throwsRangeErrorand crashes the page render.Acceptance criteria
deposited === 0ndepositedAmount: "0"Files to touch
frontend/src/app/streams/[id]/page.tsx(Stream Progress section)Out of scope