feat(block2): Ğ1 — publish a Ğ1 address + 'Pay in Ğ1' in chat (levels 1-2)

The optional Ğ1 (free currency) integration, per g1-integration.md.
- Profile: an optional 'Ğ1 address' field, persisted locally and published in
  your NIP-01 kind:0 metadata (separate from the Nostr key).
- commons_core: UserProfile/ProfileTransport carry a 'g1' field (round-trip
  tested).
- Chat: when the peer published a Ğ1 address, a 'Pay in Ğ1' app-bar action opens
  their wallet (url_launcher) so value moves in the wallet, not the app — copies
  the address as a fallback. No payment rails in-app (sharing-model §4.3).

NOTE (vjrj): the wallet deep-link uses the Cesium web wallet as a universal
fallback; swap the URI in chat_screen._payG1 for the Ğ1nkgo/Ğecko scheme you
prefer. Analyzer clean (both packages); profile transport test covers g1.
This commit is contained in:
vjrj 2026-07-10 13:06:38 +02:00
parent d0d2ecb132
commit d7136ec2c2
13 changed files with 138 additions and 14 deletions

View file

@ -1167,6 +1167,12 @@ class Translations$profile$en {
/// en: 'A short line — what you grow, where'
String get aboutHint => 'A short line — what you grow, where';
/// en: 'Ğ1 address (optional)'
String get g1 => 'Ğ1 address (optional)';
/// en: 'So people can pay you in Ğ1 — separate from your key'
String get g1Hint => 'So people can pay you in Ğ1 — separate from your key';
/// en: 'Your identity'
String get yourId => 'Your identity';
@ -1223,6 +1229,12 @@ class Translations$chat$en {
/// en: 'Set up sharing to send messages'
String get offline => 'Set up sharing to send messages';
/// en: 'Pay in Ğ1'
String get payG1 => 'Pay in Ğ1';
/// en: 'Ğ1 address copied — paste it in your wallet'
String get g1Copied => 'Ğ1 address copied — paste it in your wallet';
}
// Path: trust
@ -2033,6 +2045,8 @@ extension on Translations {
'profile.nameHint' => 'How others see you',
'profile.about' => 'About',
'profile.aboutHint' => 'A short line — what you grow, where',
'profile.g1' => 'Ğ1 address (optional)',
'profile.g1Hint' => 'So people can pay you in Ğ1 — separate from your key',
'profile.yourId' => 'Your identity',
'profile.idHelp' => 'Share this so people can recognise you',
'profile.copy' => 'Copy',
@ -2046,6 +2060,8 @@ extension on Translations {
'chat.send' => 'Send',
'chat.empty' => 'No messages yet — say hello',
'chat.offline' => 'Set up sharing to send messages',
'chat.payG1' => 'Pay in Ğ1',
'chat.g1Copied' => 'Ğ1 address copied — paste it in your wallet',
'trust.none' => 'No one vouches for them yet',
'trust.count' => ({required Object n}) => 'Vouched for by ${n}',
'trust.vouch' => 'I know this person',