Skip to content

Commit

Permalink
Review (#141)
Browse files Browse the repository at this point in the history
* update app config

* Fixes #131

* Fixes #133

* fix mint url clipboard submit

* update invoice screen

* dont allow deleting a mint with remaining balance

* add factory reset, update contacts onboarding text

* update readme

* update nostr contacts screen. Fixes #132

* fix adding npub

* Fixes #128

* add missing translation in single contact screen

* Fixes #143

* add try catch for dropAll method

* fix

* #Fixes #135

* update pin hint (add "no restore" warning)

* remove vibration on closing scan screen #131

* update and use mainColors

* maintain the CTA conventions, see #132

* u SDK49 compatible deps, update truncate func

* clean up, add some JSDocs

* update truncated components

* update top-nav go-back btn in the left. Fixes #130

* update padding of top nav back icon

* Fixes #126

* Fix send button txt in payment overview screen

* fix sending process

* Add scrollable onboarding. Fixes #138

* fix navigation screen name

* add specific animations for auth and onboarding

* adapt nostr onboarding screen

* update onboarding translations

* show onboarding screen first

* update initial screen animations to default

* add apple bundle identifier

* update dashboard

* Add recipient (nostr) to history entry

* add nostr sender to history entry

* Add multimint swap as history entry

* add max 3 latest transaction to dashboard

* add settings to hide latest transactions

* update disclaimer screen

* update disclaimer txt

* add missing translations

* add production scripts
  • Loading branch information
KKA11010 authored Aug 26, 2023
1 parent cfc20e0 commit ab295a6
Show file tree
Hide file tree
Showing 83 changed files with 1,765 additions and 1,057 deletions.
13 changes: 9 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,15 +86,20 @@ The NUT documents (**N**otation, **U**sage and **T**erminology) each specify par
2. Navigate inside the repository and run `npm i`
3. Start the Expo dev server by running `npm run start`
4. Download the [Expo Go](https://expo.dev/client) app.
5. Scan the QR code provided by your terminal using the app (iOS users will have to use the Camera app).
6. A browser tab will be opened. Press the "Expo Go" button in the bottom of the page.
7. eNuts will be bundled up and will run on your device.
- **Android users**: Scan the QR code provided by your terminal using the Expo-go app
- **iOS users**: Press on the local dev server shown in the Expo-go app or scan the QR code using your camera app.
5. A browser tab will be opened. Press the "Expo Go" button in the bottom of the page.
6. eNuts will be bundled up and will run on your device.

**Tip**

- Perform a factory reset to start as a "new user" anytime under `Settings/Factory reset` (Dev mode only)

**Troubleshooting**

- If you see this build error: `[GraphQL] Entity not authorized` in you terminal, you can simply remove the following line from the `config/app.config.ts` file:

```javascript
```json
// Unauthorized error related to the project ID used in the expo organization for eNuts
// If you are not a member of the organization, you will encounter the build error.
{
Expand Down
Binary file added assets/cashu.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/send_receive.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
28 changes: 21 additions & 7 deletions assets/translations/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"createPin": "PIN erstellen",
"editPin": "PIN ändern",
"pinMismatch": "PIN inkorrekt!",
"pinSetup": "Sie können ein PIN erstellen um Ihre App zu schützen.",
"pinSetup": "Sie können eine PIN erstellen um Ihre App zu schützen. Wenn die PIN vergessen wird, ist derzeit keine Wiederherstellung möglich.",
"pleaseConfirm": "Bitte bestätigen Sie Ihre PIN.",
"pleaseConfirmNewPin": "Bitte bestätigen Sie Ihre neue PIN.",
"pleaseEnter": "Bitte geben Sie Ihre PIN ein.",
Expand Down Expand Up @@ -62,6 +62,7 @@
"contact_one": "1 Kontakt",
"contact_other": "{{count}} Kontakte",
"contactDel": "Kontakt konnte nicht gelöscht werden",
"mintDelErr": "Eine Mint mit verbleibendem Guthaben zu entfernen ist nicht möglich",
"contactNotSaved": "Kontakt konnte nicht gespeichert werden. Möglicher Duplikat.",
"continue": "Fortfahren",
"copied": "Kopiert",
Expand All @@ -80,9 +81,12 @@
"default": "Standard",
"delete": "Löschen",
"delHistory": "Transaktionsverlauf löschen",
"factoryReset": "Wallet zurücksetzen",
"delHistoryErr": "Verlauf konnte nicht gelöscht werden",
"delHistoryQ": "Sind Sie sicher, dass Sie den Verlauf löschen möchten?",
"resetQ": "Sind Sie sicher, dass Sie Ihre Wallet zurücksetzen möchten?",
"delHistoryTxt": "Die Daten können nachträglich nicht wiederhergestellt werden.",
"plsRestart": "Bitte starten Sie die App neu",
"disclaimer": "Haftungsausschluss",
"ecashPayment": "Ecash Zahlung",
"edit": "Bearbeiten",
Expand Down Expand Up @@ -143,13 +147,16 @@
"payWithLn": "Zahle mit deiner LN wallet",
"processingPayment": "Zahlung wird ausgeführt",
"readme": "Lies mich",
"sender": "Absender",
"recipient": "Empfänger",
"reqTimeout": "Timeout für Netzwerkanfragen",
"risks": "Verstehen Sie die derzeitige Risiken",
"save": "Speichern",
"scanAgain": "Hier tippen, um erneut zu scannen",
"scanTokenOrLn": "Cashu Token oder LN Rechnung scannen",
"scanLn": "Lightning Rechnung scannen",
"scan": "Scannen",
"enutsBeta": "eNuts ist beta Software.",
"seconds": "Sekunden",
"selectAmount": "Betrag auswählen",
"selected": "Ausgewählt",
Expand All @@ -172,13 +179,15 @@
"version": "Version",
"willDoLater": "Mache ich später",
"yes": "Ja",
"invalidPubKey": "Invalider öffentlicher Schlüssel!",
"whatsNostr": "Was ist NOSTR?",
"walletLocked": "Wallet gesperrt",
"explainer1": "eNuts ist eine treuhänderische Lightning-Wallet, die private und sofortige Transaktionen mit dem Cashu-Protokoll ermöglicht. Ihre Gelder werden von Mints verwaltet, mit denen Sie interagieren, und Ecash wird lokal auf Ihrem Gerät gespeichert.",
"explainer2": "Cashu ist ein neues Ecash-Protokoll für treuhänderische Bitcoin-Apps, bei denen Mints nur Lightning-Knoten sind, die Bitcoin-Transaktionen durchführen und Ihnen Ecash zur Verfügung stellen. Seien Sie versichert, die Mints bleiben unwissend über Ihre Ecash-Zahlungen.",
"explainer3": "Fügen Sie einfach eine Mint über die URL hinzu, zahlen Sie eine Lightning-Rechnung, um Ecash zu erhalten. eNuts führt Sie, ermöglicht Ihnen sofortiges Empfangen von jedem und fügt automatisch verbundene Mints hinzu – mit Ihrer Zustimmung. Tauschen Sie Guthaben zwischen Mints aus und senden Sie Ecash, sobald Sie ein Guthaben haben.",
"explainer3": "Fügen Sie einfach eine Mint über die URL hinzu und zahlen Sie eine Lightning-Rechnung, um Ecash zu erhalten. eNuts führt Sie, ermöglicht Ihnen sofortiges Empfangen von jedem und fügt automatisch verbundene Mints hinzu – mit Ihrer Zustimmung. Tauschen Sie Guthaben zwischen Mints aus und senden Sie Ecash, sobald Sie ein Guthaben haben.",
"send&receive": "Senden & Empfangen",
"contactsNostr": "Kontakte & NOSTR",
"nostrExplainer": "eNuts ermöglicht Ecash-Überweisungen über NOSTR-DMs und nahtlose Kontaktsynchronisierung mit NPUB. Keine Notwendigkeit, Ihren privaten Schlüssel einzugeben, da eNuts einen neuen für Sie generiert. Ihr NOSTR-Profil und Ihre Daten werden mit Ihrem öffentlichen Schlüssel angezeigt, während der neu generierte private Schlüssel eine reibungslose Interaktion mit NOSTR-DMs ermöglicht.",
"nostrExplainer": "Die NOSTR-Implementierung ermöglicht eine reibungslose Synchronisierung Ihrer Kontakte, ohne dass Sie Ihren privaten Schlüssel eingeben müssen, da wir einen neuen für Sie generieren. Ihre Daten werden mithilfe des öffentlichen Schlüssels angezeigt, während der neue private Schlüssel Ihre Nachrichten verschlüsselt/entschlüsselt.",
"send": "Senden",
"FoundNoLnurl": "Keine LNURL gefunden",
"invalidNpub": "invalider NPUB!",
Expand All @@ -195,7 +204,12 @@
"totalDmsReceived": "Sie haben {{totalDms}} Cashu token erhalten.",
"swapNow": "Jetzt tauschen",
"emptyMint": "Kein Guthaben vorhanden",
"zapSoon": "Zaps werden bald hinzugefügt..."
"zapSoon": "Zaps werden bald hinzugefügt...",
"enutsPub": "eNuts: ",
"seeFullHistory": "Gesamter Transaktionsverlauf",
"hideLatestTxs": "Aktuellste Transaktionen verbergen",
"hiddenTxs": "Transaktionen verborgen",
"next": "Weiter"
},
"error": {
"addAllMintIdsErr": "Fehler beim Abrufen der Schlüsselsatz-IDs von Mint",
Expand Down Expand Up @@ -315,15 +329,15 @@
"general": "Allgemein"
},
"wallet": {
"cashuContent": "Obwohl der Autor von Cashu kein Kryptograf ist und das Protokoll noch überprüft wird, bestehen Bedenken hinsichtlich möglicher schwerwiegender Mängel. Daher ist Cashu noch nicht für den produktiven Einsatz bereit.",
"cashuContent": "Der Autor von Cashu kein Kryptograf und das Protokoll wird noch überprüft. Es bestehen Bedenken hinsichtlich möglicher schwerwiegender Mängel. Daher ist Cashu noch nicht für den produktiven Einsatz bereit.",
"cashuExperiment": "Cashu ist immer noch experimentell.",
"claiming": "Überprüft...",
"createLnInvoice": "Lightning Rechnung erstellen",
"custodialRisk": "Verwahrrisiko, Mints halten die Schlüssel.",
"custodialRiskContent": "Mit eNuts haben Sie nicht die Kontrolle über die Bitcoin-Schlüssel; die Mint fungiert als Verwahrer. Wenn Sie einer Mint nicht vertrauen, ist es ratsam, nicht mit ihr zu interagieren.",
"disclaimer": "Bitte beachten Sie, dass es sich hierbei um eine Beta-Version in einem frühen Stadium handelt und diese noch vor der offiziellen Veröffentlichung getestet wird. Die Software und alle darauf enthaltenen Inhalte werden als „wie besehen“ und „wie verfügbar“ bereitgestellt. Wir geben keine Garantien, ob ausdrücklich oder stillschweigend, hinsichtlich der Eignung oder Verwendbarkeit der Software oder deren Inhalte.",
"enutsDisclaimer": "eNuts ist unvollendete Alpha-Software.",
"lossContent": "Cashu-Token sind Inhabertoken, was bedeutet, dass es keine Möglichkeit zur Wiederherstellung gibt, wenn Sie den Zugriff darauf verlieren. eNuts speichert Ihre Token auf Ihrem Gerät. Stellen Sie vor dem Löschen der App sicher, dass Sie Ihre Token gesichert haben.",
"enutsDisclaimer": "eNuts ist unvollendete Beta-Software.",
"lossContent": "Cashu-Token sind Inhabertoken, was bedeutet, dass es derzeit keine Möglichkeit zur Wiederherstellung gibt, wenn Sie den Zugriff darauf verlieren. eNuts speichert Ihre Token auf Ihrem Gerät. Stellen Sie vor dem Löschen der App sicher, dass Sie Ihre Token gesichert haben.",
"lossOfTokens": "Verlust von Geldern.",
"paidOut": "Ausbezahlt",
"pasteToken": "Ecash aus Zwischenablage",
Expand Down
30 changes: 22 additions & 8 deletions assets/translations/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"createPin": "Create PIN",
"editPin": "Edit PIN",
"pinMismatch": "Incorrect PIN!",
"pinSetup": "You can setup a PIN to secure your app.",
"pinSetup": "You can setup a PIN to secure your app. If the PIN is forgotten, restoration is currently unavailable.",
"pleaseConfirm": "Please confirm your PIN.",
"pleaseConfirmNewPin": "Please confirm your new PIN.",
"pleaseEnter": "Please enter your PIN now.",
Expand Down Expand Up @@ -62,6 +62,7 @@
"contact_one": "1 Contact",
"contact_other": "{{count}} Contacts",
"contactDel": "Could not delete contact",
"mintDelErr": "Unable to remove a mint with remaining balance",
"contactNotSaved": "Contact could not be saved. Possible name or address duplication.",
"continue": "Continue",
"copied": "Copied",
Expand All @@ -80,9 +81,12 @@
"default": "Default",
"delete": "Delete",
"delHistory": "Delete transaction history",
"factoryReset": "Factory reset",
"delHistoryErr": "Could not delete the history.",
"delHistoryQ": "Are you sure that you want to delete the history?",
"resetQ": "Are you sure that you want to reset your wallet?",
"delHistoryTxt": "The data can not be retrieved afterwards.",
"plsRestart": "Please restart the app now",
"disclaimer": "Disclaimer",
"ecashPayment": "Ecash payment",
"edit": "Edit",
Expand Down Expand Up @@ -143,13 +147,16 @@
"payWithLn": "Pay with your LN wallet",
"processingPayment": "Processing payment",
"readme": "Read me",
"sender": "Sender",
"recipient": "Recipient",
"reqTimeout": "Network request timeout",
"risks": "Understand the current risks",
"save": "Save",
"scanAgain": "Tap to Scan Again",
"scanTokenOrLn": "Scan Cashu token or Lightning invoice",
"scanLn": "Scan Lightning invoice",
"scan": "Scan",
"enutsBeta": "eNuts is beta software.",
"seconds": "seconds",
"selectAmount": "Select amount",
"selected": "Selected",
Expand All @@ -172,13 +179,15 @@
"version": "Version",
"willDoLater": "Will do later",
"yes": "Yes",
"invalidPubKey": "Invalid public key!",
"whatsNostr": "What is NOSTR?",
"walletLocked": "Wallet locked",
"explainer1": "eNuts is a custodial Lightning wallet, allowing private and instant transactions using the Cashu protocol. Your funds are held by mints you interact with, and Ecash is stored locally on your device.",
"explainer2": "Cashu is a new Ecash protocol for custodial Bitcoin apps, where mints are Lightning nodes performing Bitcoin transactions and offer you Ecash. Rest assured, the mint remains unaware of your Ecash payments.",
"explainer3": "Simply add a mint via URL, pay a Lightning invoice to get Ecash. eNuts guides you, lets you receive from anyone instantly and with your permission, automatically adds related mints. Swap funds between mints and send Ecash once you have a balance.",
"explainer3": "Simply add a mint via URL and pay a Lightning invoice to get Ecash. eNuts guides you, lets you receive from anyone instantly and with your permission, automatically adds related mints. Swap funds between mints and send Ecash once you have a balance.",
"send&receive": "Send & receive",
"contactsNostr": "Contacts & NOSTR",
"nostrExplainer": "eNuts allows Ecash transfers via NOSTR DMs and seamless contact syncing using your NPUB. No need to enter your private key, as eNuts generates a new one for you. Your NOSTR profile and data are displayed using your public key, while the new generated private key enables smooth interaction with NOSTR DMs.",
"nostrExplainer": "The NOSTR implementation enables seamless synchronization of your contacts without the need for you to enter your private key, as we generate a new one for you. Your data is displayed using the public key, while the new private key encrypts/decrypts your messages.",
"send": "Send",
"FoundNoLnurl": "Found no LNURL",
"invalidNpub": "NPUB invalid!",
Expand All @@ -195,7 +204,12 @@
"totalDmsReceived": "You received {{totalDms}} Cashu token.",
"swapNow": "Swap now",
"emptyMint": "Mint has no funds",
"zapSoon": "Zaps will be added soon..."
"zapSoon": "Zaps will be added soon...",
"enutsPub": "eNuts public key: ",
"seeFullHistory": "See full transaction history",
"hideLatestTxs": "Hide your latest transactions",
"hiddenTxs": "Latest transactions hidden",
"next": "Next"
},
"error": {
"addAllMintIdsErr": "Error while getting keyset ids from mint",
Expand Down Expand Up @@ -315,15 +329,15 @@
"general": "General"
},
"wallet": {
"cashuContent": "Although the author of Cashu is not a cryptographer and the protocol is still under review, it raises concerns about the potential existence of fatal flaws. As a result, Cashu is not yet production-ready.",
"cashuContent": "The author of Cashu is not a cryptographer and the protocol is still under review. It raises concerns about the potential existence of fatal flaws. As a result, Cashu is not yet production-ready.",
"cashuExperiment": "Cashu is still experimental.",
"claiming": "Claiming...",
"createLnInvoice": "Create Lightning invoice",
"custodialRisk": "Custodial risk, mints hold the keys.",
"custodialRiskContent": "With eNuts, you don't hold the keys to the Bitcoin; the mint acts as the custodian. Therefore, if you lack trust in a mint, it's advisable to avoid interacting with it.",
"disclaimer": "Please note that this is an alpha version in its early stage and is still undergoing testing before its official release. The software and all content found on it are provided on an “as is” and “as available” basis. We do not give any warranties, whether express or implied, as to the suitability or usability of the software or any of its content.",
"enutsDisclaimer": "eNuts is unfinished alpha software.",
"lossContent": "Cashu tokens are bearer tokens, implying that if you lose access to them, there is no recovery option. eNuts stores your tokens in your device. Before deleting the app, ensure you back up your tokens.",
"disclaimer": "Please note that this is beta version in its early stage and is still undergoing testing before its official release. The software and all content found on it are provided on an “as is” and “as available” basis. We do not give any warranties, whether express or implied, as to the suitability or usability of the software or any of its content.",
"enutsDisclaimer": "eNuts is unfinished beta software.",
"lossContent": "Cashu tokens are bearer tokens, implying that if you lose access to them, there is no recovery option implemented yet. eNuts stores your tokens in your device. Before deleting the app, ensure you back up your tokens.",
"lossOfTokens": "Loss of funds.",
"paidOut": "Paid out",
"pasteToken": "Paste & redeem Ecash",
Expand Down
Loading

0 comments on commit ab295a6

Please sign in to comment.