Repository navigation
fix: checksum address validation, polling-abort safety (#143, #142, #140, #138) - #1028
Merged
Austinaminu2 merged 1 commit intoOct 18, 2026
Merged
Conversation
…ng fixes - FlowwStar#143: add validateStellarAddress() distinguishing a bad-checksum near-miss from a plain format error, and surface a specific "Invalid checksum" message on the create-stream form and batch-upload rows (StrKey.isValidEd25519PublicKey() was already used for the boolean check; this adds the specific messaging and tests the acceptance criteria call for). - FlowwStar#142: abort any in-flight fetch in useStreams/useStream on unmount, not just when the next fetch starts. The interval lifecycle itself (one setInterval per mount, cleared on unmount, StrictMode-safe) was already implemented correctly — added tests pinning that down. - FlowwStar#140: verified top_up() already updates linear_amount correctly and is already covered by an existing test (test_top_up_before_start_time_updates_deposit_and_rate). No code change needed; no fabricated change made. - FlowwStar#138: verified hooks/use-contract.ts has no duplicate useCallback definitions on current main — createStream/withdraw/estimateFee are each defined exactly once. No code change needed. Closes FlowwStar#143 Closes FlowwStar#142 Closes FlowwStar#140 Closes FlowwStar#138 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
christabel888
had a problem deploying
to
staging
October 18, 2026 18:14 — with
GitHub Actions
Failure
|
@christabel888 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
4 tasks
This branch had an error being deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
validateStellarAddress()inlib/stellar.ts, which classifies an invalid address as eitherformat(wrong shape entirely) orchecksum(right length/prefix/alphabet but a bad CRC-16 — the classic single-mistyped-character near-miss). Wired it into the create-stream form and the batch-upload CSV row validation so each surfaces a specific "Invalid checksum" message instead of a generic one.StrKey.isValidEd25519PublicKey()was already the underlying boolean check on both surfaces; this adds the distinct messaging the acceptance criteria calls for. Added unit + component tests covering valid/format/checksum cases.useStreams/useStream(hooks/use-streams.ts) already created exactly one polling interval per mount and cleared it correctly on unmount/StrictMode remount, with per-requestAbortControlleralready cancelling stale in-flight requests before starting a new one. The one gap against the acceptance criteria: nothing aborted the still in-flight request specifically on unmount. Added that. Added tests pinning down the interval lifecycle (one tick perpollInterval, cleared exactly once on unmount, no orphaned fetches firing after unmount).top_up()incontracts/streaming/src/lib.rsalready updateslinear_amounton both branches (past-cliff re-anchor and pre-cliff growth), and this is already covered bytest_top_up_before_start_time_updates_deposit_and_rate(assert_eq!(stream.linear_amount, total + additional)). No code change made — already resolved onmain.hooks/use-contract.tshas no duplicateuseCallbackdefinitions onmain;createStream,withdraw, andestimateFeeare each defined exactly once. No code change made — already resolved onmain.Test plan
vitest run __tests__/lib/stellar-address-validation.test.ts __tests__/components/create-form.test.tsx __tests__/components/batch-create-page.test.tsx __tests__/hooks/use-streams.test.tsCloses #143
Closes #142
Closes #140
Closes #138
🤖 Generated with Claude Code