Build 20: README credit, onboarding copy, centered balance hero
- README: credit Claude (Anthropic) for Goblin's development at the bottom, in place of per-commit co-authorship. - Onboarding: replace the contradictory "Pay people, not addresses" card with "Send like a message" and reword the body in plain language (no more "plumbing"/"ciphertext"). The identity step now says you can rotate your key anytime to maintain your privacy. - Home: center the balance hero so it lines up with the Pay amount and the empty-state below it.
This commit is contained in:
@@ -37,3 +37,9 @@ In the root of the repo run `./scripts/android.sh build|release v7|v8|x86`, wher
|
||||
## License
|
||||
|
||||
Apache License v2.0.
|
||||
|
||||
## Credits
|
||||
|
||||
**Goblin** — the Cash App-style, Nostr-native payments experience layered on top of this wallet (end-to-end encrypted NIP-17 payments over Tor, in-app identity, and the goblin.st identity service) — was designed and built with development assistance from **Claude** ([Anthropic](https://www.anthropic.com)).
|
||||
|
||||
The underlying cross-platform grin wallet is the upstream **Grim** project.
|
||||
|
||||
@@ -192,10 +192,10 @@ impl OnboardingContent {
|
||||
or addresses on its chain.",
|
||||
),
|
||||
(
|
||||
"Pay people, not addresses",
|
||||
"Payments travel as end-to-end encrypted messages over nostr \
|
||||
and Tor. Goblin handles the plumbing; relays only ever see \
|
||||
ciphertext.",
|
||||
"Send like a message",
|
||||
"Pay a @username or npub and it arrives as an end-to-end \
|
||||
encrypted message over nostr and Tor — no one in between can \
|
||||
see the amount or who's involved.",
|
||||
),
|
||||
(
|
||||
"Yours alone",
|
||||
@@ -719,8 +719,9 @@ impl OnboardingContent {
|
||||
ui.label(
|
||||
RichText::new(
|
||||
"A fresh key, made for payments — deliberately not part \
|
||||
of your seed, so you can replace it without touching \
|
||||
your funds. Back it up later in Settings → Identity.",
|
||||
of your seed, so you can rotate it anytime to maintain \
|
||||
your privacy, without ever touching your funds. Back it \
|
||||
up in Settings → Identity.",
|
||||
)
|
||||
.font(FontId::new(12.5, fonts::regular()))
|
||||
.color(t.surface_text_dim),
|
||||
@@ -728,9 +729,9 @@ impl OnboardingContent {
|
||||
ui.add_space(6.0);
|
||||
ui.label(
|
||||
RichText::new(
|
||||
"Want a clean slate later? Swap in a brand-new key any \
|
||||
time from Settings — your grin stays put, and the new \
|
||||
you isn't linked to the old one. Same wallet, fresh face.",
|
||||
"Want a clean slate? Swap in a brand-new key any time — \
|
||||
the new you isn't linked to the old one. Same wallet, \
|
||||
fresh face.",
|
||||
)
|
||||
.font(FontId::new(12.5, fonts::regular()))
|
||||
.color(t.surface_text_dim),
|
||||
|
||||
@@ -342,16 +342,19 @@ pub fn field_well(ui: &mut Ui, content: impl FnOnce(&mut Ui)) {
|
||||
/// A balance hero block: kicker, big number + ツ, optional fiat line.
|
||||
pub fn balance_hero(ui: &mut Ui, atomic: u64, fiat: Option<&str>, size: f32) {
|
||||
let t = theme::tokens();
|
||||
kicker(ui, "Balance");
|
||||
// Centered to match the Pay amount and the empty-state below it.
|
||||
ui.vertical_centered(|ui| kicker(ui, "Balance"));
|
||||
ui.add_space(6.0);
|
||||
amount_text(ui, &amount_str(atomic), size);
|
||||
amount_text_centered(ui, &amount_str(atomic), size);
|
||||
if let Some(fiat) = fiat {
|
||||
ui.add_space(4.0);
|
||||
ui.label(
|
||||
RichText::new(fiat)
|
||||
.font(FontId::new(13.0, fonts::regular()))
|
||||
.color(t.text_dim),
|
||||
);
|
||||
ui.vertical_centered(|ui| {
|
||||
ui.label(
|
||||
RichText::new(fiat)
|
||||
.font(FontId::new(13.0, fonts::regular()))
|
||||
.color(t.text_dim),
|
||||
);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user