Skip to content

Commit

Permalink
Show transaction id for finalized transactions in transaction signing…
Browse files Browse the repository at this point in the history
… flow
  • Loading branch information
willyfromtheblock committed May 30, 2024
1 parent 3e91065 commit a3a597e
Show file tree
Hide file tree
Showing 12 changed files with 76 additions and 23 deletions.
5 changes: 3 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
### **1.2.9** (2024-06-x)
### **1.2.9** (2024-05-30)

-
- Show transaction id for finalized transactions in transaction signing flow
- Improve user experience for double tab to clipboard with hint texts

### **1.2.8** (2024-05-27)

Expand Down
8 changes: 5 additions & 3 deletions assets/translations/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -458,7 +458,7 @@
"sign_step_1_button_alt": "Change",
"sign_step_2": "Enter Message",
"sign_step_3": "Sign Message",
"sign_step_3_description": "This is your signature. You may double tap to copy it to the clipboard.",
"sign_step_3_description": "This is your signature.",
"sign_step_3_button": "Sign",
"verify_step_3_button": "Verify",
"sign_step_3_button_alt": "Copy signature to clipboard",
Expand Down Expand Up @@ -508,7 +508,7 @@
"sign_transaction_input_label": "Transaction Hex",
"sign_transaction_step_3": "Sign Transaction",
"sign_transaction_step_3_button_alt": "Copy hex to clipboard",
"sign_transaction_step_3_description": "This is your signed transaction hex. You may double tap to copy it to the clipboard.",
"sign_transaction_step_3_description": "Signed transaction hex",
"sign_transaction_input_selector_title": "Select which inputs to sign",
"sign_transaction_signing_failed": "Transaction signing failed.",
"sign_transaction_inputs": "Inputs",
Expand All @@ -518,5 +518,7 @@
"sign_transaction_confirmation_broadcast": "Broadcast",
"sign_transaction_confirmation_broadcast_snack": "Transaction broadcast attempted",
"sign_transaction_confirmation_dialog_title": "Broadcast Transaction",
"sign_transaction_confirmation_dialog_content": "Please confirm that you want to broadcast this transaction."
"sign_transaction_confirmation_dialog_content": "Please confirm that you want to broadcast this transaction.",
"sign_transaction_confirmation_transaction_id": "Transaction id",
"double_tap_to_copy": "You may double tap to copy the text."
}
1 change: 1 addition & 0 deletions lib/screens/settings/app_settings_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ class _AppSettingsScreenState extends State<AppSettingsScreen> {
children: [
const SizedBox(height: 20),
DoubleTabToClipboard(
withHintText: true,
clipBoardData: _seedPhrase,
child: SelectableText(
_seedPhrase,
Expand Down
2 changes: 2 additions & 0 deletions lib/screens/wallet/transaction_details.dart
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,7 @@ class TransactionDetails extends StatelessWidget {
children: [
DoubleTabToClipboard(
clipBoardData: tx.broadcastHex,
withHintText: true,
child: SelectableText(
tx.broadcastHex,
),
Expand Down Expand Up @@ -246,6 +247,7 @@ class TransactionDetails extends StatelessWidget {
flex: 2,
child: DoubleTabToClipboard(
clipBoardData: addr,
withHintText: false,
child: Text(
addr,
style: const TextStyle(
Expand Down
2 changes: 2 additions & 0 deletions lib/screens/wallet/wallet_sign_message.dart
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,7 @@ class _WalletMessageSigningScreenState
)
: DoubleTabToClipboard(
clipBoardData: _signingAddress,
withHintText: false,
child: SelectableText(_signingAddress),
),
),
Expand Down Expand Up @@ -286,6 +287,7 @@ class _WalletMessageSigningScreenState
children: [
DoubleTabToClipboard(
clipBoardData: _signature,
withHintText: true,
child: SelectableText(
_signature,
key: const Key('signature'),
Expand Down
1 change: 1 addition & 0 deletions lib/screens/wallet/wallet_sign_transaction.dart
Original file line number Diff line number Diff line change
Expand Up @@ -318,6 +318,7 @@ class _WalletSignTransactionScreenState
),
)
: DoubleTabToClipboard(
withHintText: false,
clipBoardData: _signingAddress,
child: SelectableText(_signingAddress),
),
Expand Down
51 changes: 36 additions & 15 deletions lib/screens/wallet/wallet_sign_transaction_confirmation.dart
Original file line number Diff line number Diff line change
Expand Up @@ -269,7 +269,7 @@ class WalletSignTransactionConfirmationScreen extends StatelessWidget {
],
),
const SizedBox(
height: 20,
height: 10,
),
const Divider(),
Text(
Expand All @@ -278,28 +278,49 @@ class WalletSignTransactionConfirmationScreen extends StatelessWidget {
style: const TextStyle(fontWeight: FontWeight.bold),
),
const SizedBox(
height: 20,
height: 10,
),
DoubleTabToClipboard(
clipBoardData: tx.toHex(),
withHintText: true,
child: SelectableText(tx.toHex()),
),
if (txReadyForBroadcast)
const SizedBox(
height: 20,
),
if (txReadyForBroadcast)
Center(
child: PeerButton(
text: AppLocalizations.instance.translate(
'sign_transaction_confirmation_broadcast',
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const Divider(),
Text(
AppLocalizations.instance.translate(
'sign_transaction_confirmation_transaction_id',
),
style:
const TextStyle(fontWeight: FontWeight.bold),
),
action: () => broadcastTransaction(
hex: tx.toHex(),
txId: tx.txid,
context: context,
const SizedBox(
height: 10,
),
),
DoubleTabToClipboard(
clipBoardData: tx.txid,
withHintText: true,
child: Text(tx.txid),
),
const SizedBox(
height: 20,
),
Center(
child: PeerButton(
text: AppLocalizations.instance.translate(
'sign_transaction_confirmation_broadcast',
),
action: () => broadcastTransaction(
hex: tx.toHex(),
txId: tx.txid,
context: context,
),
),
),
],
),
],
),
Expand Down
24 changes: 21 additions & 3 deletions lib/widgets/double_tab_to_clipboard.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,13 @@ import '../tools/app_localizations.dart';
class DoubleTabToClipboard extends StatelessWidget {
final Widget child;
final String clipBoardData;
final bool withHintText;

const DoubleTabToClipboard({
super.key,
required this.clipBoardData,
required this.child,
required this.withHintText,
});

static void tapEvent(BuildContext context, String clipBoardData) {
Expand All @@ -30,9 +32,25 @@ class DoubleTabToClipboard extends StatelessWidget {

@override
Widget build(BuildContext context) {
return GestureDetector(
onDoubleTap: () => tapEvent(context, clipBoardData),
child: child,
return Column(
children: [
GestureDetector(
onDoubleTap: () => tapEvent(context, clipBoardData),
child: child,
),
if (withHintText)
const SizedBox(
height: 5,
),
if (withHintText)
Text(
AppLocalizations.instance.translate('double_tap_to_copy'),
style: TextStyle(
fontSize: 12,
color: Theme.of(context).colorScheme.secondary,
),
)
],
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ class AddressTabExpandable extends StatelessWidget {
? MediaQuery.of(context).size.width / 3
: MediaQuery.of(context).size.width,
child: DoubleTabToClipboard(
withHintText: false,
clipBoardData: walletAddress.address,
child: Card(
elevation: 0,
Expand Down
2 changes: 2 additions & 0 deletions lib/widgets/wallet/addresses_tab.dart
Original file line number Diff line number Diff line change
Expand Up @@ -451,6 +451,7 @@ class _AddressTabState extends State<AddressTab> {
? MediaQuery.of(context).size.width / 3
: MediaQuery.of(context).size.width,
child: DoubleTabToClipboard(
withHintText: false,
clipBoardData: addr.address,
child: Card(
elevation: 0,
Expand Down Expand Up @@ -593,6 +594,7 @@ class _AddressTabState extends State<AddressTab> {
? MediaQuery.of(context).size.width / 3
: MediaQuery.of(context).size.width,
child: DoubleTabToClipboard(
withHintText: false,
clipBoardData: addr.address,
child: Card(
elevation: 0,
Expand Down
1 change: 1 addition & 0 deletions lib/widgets/wallet/receive_tab.dart
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,7 @@ class _ReceiveTabState extends State<ReceiveTab> {
padding: const EdgeInsets.all(8.0),
child: FittedBox(
child: DoubleTabToClipboard(
withHintText: false,
clipBoardData: widget.unusedAddress,
child: SelectableText(
widget.unusedAddress,
Expand Down
1 change: 1 addition & 0 deletions lib/widgets/wallet/wallet_home_qr.dart
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ class WalletHomeQr extends StatelessWidget {
padding: const EdgeInsets.all(8.0),
child: FittedBox(
child: DoubleTabToClipboard(
withHintText: false,
clipBoardData: address,
child: SelectableText(
address,
Expand Down

0 comments on commit a3a597e

Please sign in to comment.