Repository navigation
Conversation
Resolves Sorokit#911. Resolves Sorokit#912. Resolves Sorokit#917. Resolves Sorokit#918.
|
@Diyaq 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! 🚀 |
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.
Closes #911, closes #912, closes #917, closes #918.
#911 — ContractEventFeed: topic filtering, reconnect recovery, cursor paging
The issue asks for tests of behaviour the component didn't fully have yet, so this adds two small features and then tests them:
filterTopicsprop. Shows only events whose topics include at least one of the given names (exact match). The event-type toggle counts are worked out from the topic-filtered set. If nothing matches, the existing "No events match the selected filters" message is shown.Reconnecting…status badge, instead of swapping everything for the hard error view. The next successful poll removes the badge. A failure on the first load, or with polling off, still shows the normal error and Retry button. The polling state is read through a ref so thatloaddoesn't get new dependencies, which would have caused extra fetches.ContractEventFeed.test.tsx):fromLedgercursor moves forward across pages on consecutive ledgers (100–101 → 102, 102–103 → 104), jumps to the highest ledger when events arrive out of order, and stays put when a page comes back empty.#912 — SorobanPanel: missing contract banner, args reset on method switch, timers
role="alert"anddata-testid="soroban-error". New tests cover a contract that isn't on-chain:args: [].#917 — AllowanceManager: self-approval, expiry estimate, revoke confirmation
validateSpenderrejects an empty spender and the active wallet address; the comparison ignores case and surrounding whitespace. The error shows inline under the field (role="alert", linked to the input witharia-invalid/aria-describedby) and disables Approve.handleApproveNewruns the same check again before calling the client.Expires at ledger N · ~5 days from now (<estimated date and time>). The estimate assumes 5-second ledger closes (estimateLedgerExpiry,LEDGER_CLOSE_SECONDS). IfcurrentLedgerisn't known, only the ledger number is shown.role="dialog",aria-modal, labelled by its title) and aconfirm-revoketest id.AllowanceManager.test.tsx):currentLedger#918 — AllocationInput: invalid-total highlighting, 0.1% arrow steps, Distribute Evenly
aria-invalid,aria-describedbypointing to the total message, and a!marker. A new under-allocation message sits alongside the existing over-allocation alert. A form where nothing has been entered yet (total 0) isn't flagged.step="0.1".PortfolioRebalancertests that found the button by its old name are updated.AllocationInput.test.tsx): highlighting under, over and at exactly 100%; the untouched form; arrow stepping (up, down, no drift, from typed text, limits, other keys ignored); Distribute Evenly with an even split, one asset, a 1-cent remainder, a 4-cent remainder spread across assets, clearing what was being typed, and the disabled state.Testing
Per this task's rules, nothing was built, linted or run. The new tests are written against the current component code but haven't been run.
🤖 Generated with Claude Code
Closes #911
Closes #912
Closes #917
Closes #918