Skip to content

fix: copy usdt transaction id on tap - #1640

Merged
ovitrif merged 3 commits into
masterfrom
fix/usdt-txid-copy
Oct 21, 2026
Merged

ovitrif merged 3 commits into
masterfrom
fix/usdt-txid-copy

Conversation

@ovitrif

@ovitrif ovitrif commented Oct 20, 2026 •

Copy link
Copy Markdown
Collaborator

Closes #1633
Twin: synonymdev/bitkit-ios#1065

Description

  • Makes the Transaction ID in USDT activity details tappable: a tap copies the Arbitrum transaction hash and shows the "Copied To Clipboard" toast, the same as on-chain bitcoin activity. Before, a tap did nothing and only the system long-press text selection could copy it (needed in practice when a seller pastes the hash into a Pubky Market refund record).
  • Arbiscan link: Details already has an "Open Block Explorer" button that opens the transaction on 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

  • USDT deposit history: the "Transaction ID · Arbitrum One" field there keeps its text selection.
  • Other USDT detail fields (From and To address, bridge references) keep their text selection.

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 After
Before (2x)

android-before-2x.mp4

After (2x)

android-after-2x.mp4

QA Notes

Journeys

  • updated usdt-bridge-details.xml (on the fixture transfer: tap the transaction ID, toast and clipboard)

Manual Tests

N/A

Automated Checks

  • ran compileDevDebugKotlin, detekt and lintDevDebug

@ovitrif ovitrif added this to the 3.1.0 milestone Oct 20, 2026
@ovitrif ovitrif self-assigned this Oct 20, 2026
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-20T23:33:08.063169Z a86bd1f PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@ovitrif
ovitrif requested review from a team, ben-kaufman and coreyphillips and removed request for a team October 20, 2026 23:30
@greptile-apps

greptile-apps Bot commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 5/5

[Low impact] The PR appears safe to merge.

Summary

USDT activity details now copy the full transaction hash when tapped and show the existing success toast.

  • Tapping a USDT activity transaction ID copies its hash.

Reviews (1) · Last reviewed commit: "fix: copy usdt transaction id on tap" · Reviewed by Greptile

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a86bd1fed7

ℹ️ 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".

@github-actions

github-actions Bot commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Regtest APK

Built from d5e527f (run).

Download bitkit-dev-debug universal APK (expires in 30 days).

@talosmachina talosmachina left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No findings. Makes the USDT activity transaction id copy on tap, with a Copied toast, instead of being a text selection. Reviewed a86bd1f, full tier.

What I checked, and 3 candidates I ruled out

Read in full: UsdtActivityDetail.kt, UsdtDetailStyles.kt (UsdtDetailField), ui/utils/Clipboard.kt
CI: green, all e2e shards included
Build: Bitkit track: the branch was not built here (Android branches are not built on this box, iOS does not build on Linux), so this review is reasoned from the code and from CI.

Ruled out

  • Copy runs during composition: copyToClipboard(hash) { ... } returns a lambda, and the clipboard write happens only when clickableAlpha invokes it.
  • Toast truncates the full hash: only the toast description is shortened with ellipsisMiddle(40); the clipboard gets the full hash.
  • Selection removed: dropping SelectionContainer is the point of the change (tap copies); the hash still renders whole.

Merge confidence: 4/5, CI is green, but no test drives the new tap (a UI change a unit test would barely reach; the UsdtActivityTxId tag allows one).

@ovitrif

ovitrif commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator Author

Pushed a8fc402: usdt-send-review-and-details.xml now taps the transaction ID and checks the "Copied To Clipboard" toast and the clipboard, matching the iOS twin (synonymdev/bitkit-ios#1065).

@ovitrif

ovitrif commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator Author

Pushed d5e527f: the transaction ID copy step moved to usdt-bridge-details.xml, which runs on a fixture transfer, so no USDT history is needed; the earlier step in usdt-send-review-and-details.xml is removed. Same wording on both twins.

@jvsena42 jvsena42 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code scan at d5e527f: 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 UsdtActivityTxId is shared across platforms.
  • Journey: usdt-bridge-details.xml gets 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): d5e527f — 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 jvsena42 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Device gate passed on the USDT fixture (emulator, Pixel 9). Approving; my earlier code scan found no issues.

Ran usdt-bridge-details.xml actions 9-12, including the new UsdtActivityTxId action. I read the clipboard by pasting it into a text field, after first putting a different hash there, so each paste proves a new copy. Each tap showed the "Copied To Clipboard" toast and put the full 66-character hash on the clipboard, matching 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.
  • Failed bridge: the source hash.
  • Refunded bridge: the source hash.
  • Refund receipt: the refund tx hash.

Contact Support and Copy Details sit side by side with their labels unclipped on the failed and refunded summaries.

Device gate: d5e527f — journeys: 4 passed, 0 failed (usdt-bridge-details.xml actions 9-12; new action checked on delivering, received, failed, refunded and refund-receipt transfers); not run: actions 1-8 and 13-17 (unchanged by this PR); iOS: passed on synonymdev/bitkit-ios#1065.

@ovitrif
ovitrif merged commit 089098a into master Oct 21, 2026
21 checks passed
@ovitrif
ovitrif deleted the fix/usdt-txid-copy branch October 21, 2026 12:45
@ovitrif

ovitrif commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator Author

@jvsena42 thanks, merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug: usdt transaction id can't be copied with a tap in activity details

3 participants