Repository navigation
fix: copy usdt transaction id on tap - #1065
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4a72fad2cd
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
[Medium impact] This PR appears safe to merge. SummaryMakes the transaction ID in USDT activity details tappable.
No actionable issues found. Checks were limited to source review; native UI capture was blocked by the Linux environment. Reviews (1) · Last reviewed commit: "fix: copy usdt transaction id on tap" · Reviewed by Greptile |
talosmachina
left a comment
There was a problem hiding this comment.
No findings. Makes the USDT Details transaction ID a plain button that copies the hash and shows the common__copied toast, the same as InfoSection in ActivityExplorerView. Reviewed 4a72fad, full tier, reasoned from the code and CI (iOS does not build on this reviewer's Linux host).
What I checked, and 3 candidates I ruled out
Read in full: UsdtActivityDetail.swift, UsdtSupportActions.swift, ActivityExplorerView.swift (InfoSection)
Call sites traced: UsdtActivityDetail(transferId:) in MainNavView.swift:545, SendSheet.swift:259, UsdtWalletScreen.swift:100
CI: SwiftFormat, validate and Greptile green; Run Tests, Integration Tests and build-local still pending at review time
Ruled out
- Missing
AppViewModelin the sheet presentations: two of the three call sites present the view in a.sheet, butUsdtSupportActionsalready reads@EnvironmentObject appinside this same view on those paths, so the object reaches the sheet. - Toast hidden behind the sheet: toasts go through the app-wide
ToastWindowManagerwindow, not the presenting view. - Arbiscan link missing for incoming transfers: incoming with deposits configured gets the secondary explorer button in the scroll view, everything else gets the bottom one, so both directions keep a link, as the description says.
- No journey references the removed text selection or the new
UsdtActivityTxIdidentifier.
Merge confidence: 4/5, the unit and build jobs had not finished and nothing exercises the tap.
|
Pushed 8d32f4f: |
|
Pushed c59bfd3: the transaction ID copy step moved to |
jvsena42
left a comment
There was a problem hiding this comment.
Code scan at c59bfd3: no issues found.
- Right value: tapping the field copies the transaction hash it shows, the same one Open Block Explorer opens. It's not the bridge reference and not a URL.
- Coverage: every USDT transfer that has a hash gets it: send, receive, cross-network bridge send, and failed or refunded bridge transfers.
- Feedback: the existing "Copied To Clipboard" toast, with no new strings. The field is a single tappable element, and
UsdtActivityTxIdis shared across platforms. - Journey:
usdt-bridge-details.xmlgets the same new action on both platforms. - Not covered: refund and deposit-history ids still copy by long-press only, which the PR lists as out of scope.
Device gate (partial): c59bfd3 — not run yet. Pending: usdt-bridge-details.xml on the fixture. Tap UsdtActivityTxId and check the toast, the full hash on the clipboard, and that it matches the explorer URL; repeat on a received and a refunded transfer.
Device results will follow in a separate review.
jvsena42
left a comment
There was a problem hiding this comment.
Device gate passed on the USDT fixture (iPhone 17 simulator). Approving; my earlier code scan found no issues.
Ran usdt-bridge-details.xml actions 9-11, including the new UsdtActivityTxId action. Each tap showed the "Copied To Clipboard" toast and put the full 66-character hash on the clipboard (simctl pbpaste), and it matched the hash in the Open Block Explorer URL:
- Delivering bridge to Tron: the source tx hash, which equals the orchestra order's
sourceTxHash. - Received transfer: the fixture funding tx.
- Sent Arbitrum transfer: the send tx.
- Refunded bridge: the source hash, as in its explorer URL.
- Refund receipt (Received +3.50): the refund tx hash.
The summary and Details steps of the journey (actions 9-10) also passed.
Device gate: c59bfd3 — journeys: 3 passed, 0 failed (usdt-bridge-details.xml actions 9-11, plus 5 transfer kinds); not run: actions 1-8 and 12-18 (unchanged by this PR) and a failed bridge (refunded covers the same layout); Android: pending on synonymdev/bitkit-android#1640.
|
@jvsena42 thanks, merged. |
Closes #1058
Twin: synonymdev/bitkit-android#1640
Description
arbiscan.io, for sent and received transfers, so this PR adds no second link. Renaming that button to "Open in Arbiscan" would need a new string and translations; left as an option for design.Out of Scope
Design
N/A — matches the existing on-chain transaction ID behavior.
Preview
Before: tapping the Transaction ID does nothing. After: the tap copies it and shows the toast.
Before (2x)
ios-before-2x.mp4
After (2x)
ios-after-2x.mp4
QA Notes
Journeys
usdt-bridge-details.xml(on the fixture transfer: tap the transaction ID, toast and clipboard)Manual Tests
N/A
Automated Checks