1
0
forked from GRIN/grim

fix(send): show the proof-notify target on the review screen

With proof mode on, a notify= npub on the scanned URI makes the wallet
gift-wrap the full signed payment proof (buyer sender address + kernel) to
that key at finalize, but the review screen never showed the target, a
hidden watcher the payer never saw or consented to.

The proof row now renders a second line, Proof shared with: npub1abc...xyz,
whenever a notify target is present, so the recipient is seen and chosen: if
you scanned it, you asked for it. Display only; nothing about what gets sent
changes. Adds the goblin.send.row_proof_shared key in all six locales.
This commit is contained in:
2ro
2026-07-05 06:08:25 -04:00
parent c0b622f694
commit 210c4ab662
7 changed files with 23 additions and 0 deletions
+1
View File
@@ -794,6 +794,7 @@ goblin:
row_note: "Notiz"
row_proof: "Zahlungsnachweis"
row_proof_val: "Enthalten"
row_proof_shared: "Nachweis geteilt mit"
row_they_pay: "Sie zahlen"
row_they_pay_val: "Nur wenn sie zustimmen"
row_delivery: "Zustellung"
+1
View File
@@ -794,6 +794,7 @@ goblin:
row_note: "Note"
row_proof: "Payment proof"
row_proof_val: "Included"
row_proof_shared: "Proof shared with"
row_they_pay: "They pay"
row_they_pay_val: "Only if they approve"
row_delivery: "Delivery"
+1
View File
@@ -794,6 +794,7 @@ goblin:
row_note: "Note"
row_proof: "Preuve de paiement"
row_proof_val: "Incluse"
row_proof_shared: "Preuve partagée avec"
row_they_pay: "Ils paient"
row_they_pay_val: "Seulement s'ils approuvent"
row_delivery: "Livraison"
+1
View File
@@ -794,6 +794,7 @@ goblin:
row_note: "Заметка"
row_proof: "Подтверждение платежа"
row_proof_val: "Включено"
row_proof_shared: "Подтверждение получит"
row_they_pay: "Они платят"
row_they_pay_val: "Только если они одобрят"
row_delivery: "Доставка"
+1
View File
@@ -794,6 +794,7 @@ goblin:
row_note: "Not"
row_proof: "Ödeme kanıtı"
row_proof_val: "Dahil"
row_proof_shared: "Kanıt paylaşılır"
row_they_pay: "Onlar öder"
row_they_pay_val: "Yalnızca onaylarlarsa"
row_delivery: "Teslimat"
+1
View File
@@ -794,6 +794,7 @@ goblin:
row_note: "备注"
row_proof: "支付证明"
row_proof_val: "已包含"
row_proof_shared: "证明分享给"
row_they_pay: "对方支付"
row_they_pay_val: "仅当对方同意时"
row_delivery: "传输"
+17
View File
@@ -1231,6 +1231,23 @@ impl SendFlow {
&t!("goblin.send.row_proof"),
&t!("goblin.send.row_proof_val"),
);
// Make the proof's hidden delivery target visible and consented: when
// a `notify` npub rode in on the scanned URI, the wallet gift-wraps
// the full signed proof (with the buyer's sender address + kernel) to
// that key at finalize. Show exactly where it goes so it is a seen,
// chosen recipient rather than a silent watcher: if you scanned it,
// you asked for it. Display only; nothing here changes what is sent.
if let Some(notify) = self.notify.as_deref() {
// Truncate the bech32 npub for a single-line row (npub1abc…wxyz).
// `notify` is a validated npub (ASCII, well over 18 chars), so the
// byte slices land on char boundaries.
let short = if notify.len() > 18 {
format!("{}{}", &notify[..12], &notify[notify.len() - 6..])
} else {
notify.to_string()
};
w::info_row(ui, &t!("goblin.send.row_proof_shared"), &short);
}
}
if self.request {
w::info_row(