Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update README.md and CONTRIBUTING.md #313

Merged
merged 6 commits into from
Mar 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 45 additions & 32 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,47 +1,60 @@
<div align="center">
<p>
<img src="https://i.imgur.com/EI7Uvg1.jpeg">
</p>
<h2>A Cashu wallet for Android and iOS</h2>
<div style="display: flex; align-items: center; justify-content: center">

[![codecov](https://codecov.io/gh/cashubtc/eNuts/branch/main/graph/badge.svg?token=MGBC95KGHQ)](https://codecov.io/gh/cashubtc/eNuts)
![example workflow](https://github.com/cashubtc/eNuts/actions/workflows/node.js.yml/badge.svg)
![ts](https://badgen.net/badge/Built%20with/TypeScript/blue)
[![runs with Expo Go](https://img.shields.io/badge/Runs%20with%20Expo%20Go-4630EB.svg?style=flat-square&logo=EXPO&labelColor=f3f3f3&logoColor=000)](https://expo.dev/client)

</div>
</div>

## 👏 Contribute
# 👏 Contribute

There are ways you can contribute without writing a single line of code. Here are a few things you can do to help out:

- **Replying and handling open issues**
- **Replying and handling open issues**
Some issues may lack necessary information. You can help out by guiding people through the process of filling out the issue template, asking for clarifying information, or pointing them to existing issues that match their description of the problem.
- **Reviewing pull requests for the docs**
- **Reviewing pull requests for the docs**
Reviewing Pull requests that contains documentation updates (marked with a documentation label) can be as simple as checking for spelling and grammar. If you encounter situations that can be explained better in the docs, just write a comment or edit the file right away to get started with your own contribution.
- **Providing translations**
- **Providing translations**
The translation files are located in [assets/translations](https://github.com/cashubtc/eNuts/tree/main/assets/translations). There are 2 ways to contribute your translation and in both cases, we will take care of adding your language into the app shortly.
1. You can either just [copy](https://github.com/cashubtc/eNuts/blob/main/assets/translations/en.json) the content of an available translation file and send us the modified `.json` file with your language of choice via our [Telegram group](https://t.me/eNutsWallet).
2. You can fork the repo and create a pull request with your additional translation file.
- **Passionate about design?**
Explore our [Figma](https://www.figma.com/file/GWk1KbXXSUvd7sEHlFKBvD/eNuts?type=design&node-id=472-11122&mode=design&t=pWFMCeHzP2sBnvuQ-0), suggest tweaks, or bring your own designs to the table!
- **Share feedback and ideas with us**
- **Recommend eNuts to friends and family**
- **Star the project on GitHub**
- **Leave a review on the app store or Google Play**

Each of these tasks is highly impactful, and maintainers will greatly appreciate your help.

If you are eager to start contributing code right away, we have a list of [good first issues](https://github.com/cashubtc/eNuts/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) that contain bugs which have a relatively limited scope. We use GitHub [issues](https://github.com/cashubtc/eNuts/issues) and [pull requests](https://github.com/cashubtc/eNuts/pulls) to keep track of bug reports and contributions from the community. Pull request have to pass the tests and to be reviewed by a maintainer.

The process of proposing a change to eNuts can be summarized as follows:

1. Verify the open [issues](https://github.com/cashubtc/eNuts/issues) and [discussions](https://github.com/cashubtc/eNuts/discussions) to see if a related topic is available.
2. Fork the repository and create your branch from `main`
3. Make the desired changes to the sources and add tests if required.
4. Ensure the test suite passes, either locally with `npm run test` or on CI once you opened a pull request.
5. Make sure your code lints with `npm run lint`
6. Push the changes to your fork.
7. Create a pull request to the eNuts repository.
8. Request a review, link a related issue and describe your pull request.
9. If changes are requested and addressed, please request a new review to notify reviewers to take another look.

If all goes well, your pull request will be merged. If it is not merged, maintainers will do their best to explain the reason why.
## 📋 Requirements

- eNuts is built using the managed workflow provided by Expo, so the easiest way to run a development environment is their [Expo Go](https://expo.dev/client) app.
- **NodeJS 18** or higher.

## 🚀 Getting started

The [**cashu-ts**](https://github.com/cashubtc/cashu-ts) library and SQLite are used to manage the Cashu related features.

1. Fork this repository and create a local clone.
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.
- **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.

**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
// 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.
{
...
extra: {
// Delete the following line to fix the issue:
eas: { projectId: 'edb75ccd-71ac-4934-9147-baf1c7f2b068' },
...
}
...
}
```

If you have any questions, do not hesitate to join the R&D group on [Telegram](https://t.me/eNutsWallet).
76 changes: 18 additions & 58 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
<div align="center">
<p>
<img src="https://i.imgur.com/yVlwtmz.jpeg">
<img src="https://www.enuts.cash/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fhero.110e6c49.png&w=3840&q=100" style="max-width:660px; width: 100%; height: auto;">
</p>
<h2>eNuts – A Cashu wallet for Android and iOS</h2>
<div style="display: flex; align-items: center; justify-content: center">
<p>
<a href="https://apps.apple.com/de/app/enuts/id6477824421">
<img src="https://www.enuts.cash/_next/image?url=%2F_next%2Fstatic%2Fmedia%2FappStore.91dc53dd.webp&w=3840&q=75" width="160" height="52">
</a>
</p>
<div style="display: flex; align-items: center; justify-content: center;">

[![Website eNuts](https://img.shields.io/badge/Website-eNuts-%230088cc?style=plastic&logo=WebMoney&logoColor=white&labelColor=%23666&color=%235DB075)](https://www.enuts.cash)
[![codecov](https://codecov.io/gh/cashubtc/eNuts/branch/main/graph/badge.svg?token=MGBC95KGHQ)](https://codecov.io/gh/cashubtc/eNuts)
Expand All @@ -14,20 +19,13 @@
</div>
</div>

**eNuts** is a strictly typed mobile [**Cashu**](https://github.com/cashubtc) wallet that has Lightning support and can connect to multiple mints. The [**Nostr**](https://nostr-resources.com/) integration allows seemless transactions between you and your contacts. We aim to provide a great user experience by implementing features that make the usage of Ecash easier and safer at the same time. The [**cashu-ts**](https://github.com/cashubtc/cashu-ts) library and SQLite are used to manage the Cashu related features. This project is in early stage and we **strongly** encourage you to exercise caution and only use it for **experimental** or **educational** purposes. Read more about Cashu at [https://docs.cashu.space/](https://docs.cashu.space/) or learn more about eNuts via the **eNuts website** at [https://www.enuts.cash/](https://www.enuts.cash/)

## 🐿️ Join the research and development groups

[![Cashu R&D](https://img.shields.io/badge/Cashu_R&D-Telegram-0088cc.svg)](https://t.me/CashuBTC)
[![eNuts R&D](https://img.shields.io/badge/eNuts_R&D-Telegram-0088cc.svg)](https://t.me/eNutsWallet)
**eNuts** is a strictly typed mobile [**Cashu**](https://github.com/cashubtc) wallet that has Lightning support and can connect to multiple mints. The [**Nostr**](https://nostr-resources.com/) integration allows seemless transactions between you and your contacts. We aim to provide a great user experience by implementing features that make the usage of Ecash easier and safer at the same time. This project is in early stage and we **strongly** encourage you to exercise caution and only use it for **experimental** or **educational** purposes. Read more about Cashu at [https://docs.cashu.space/](https://docs.cashu.space/) or learn more about eNuts via the [**eNuts website**](https://enuts.cash/get-started)

## Contents

- ⚠️ [Disclaimer](#%EF%B8%8F-disclaimer)
- 🥜 [Implemented NUTs](#-implemented-nuts)
- 📋 [Requirements](#-requirements)
- 🚀 [Getting started](#-getting-started)
- 👏 [Contribute](#-contribute)
- 🥜 [Implemented NUTs](#-implemented-nuts)
- 🎉 [Releases](#-releases)
- 🔐 [Verify releases](#-verify-releases)
- 📄 [License](#-license)
Expand All @@ -42,21 +40,25 @@ The entire db (database) layer of this system has not fully undergone thorough t

The untested db layer poses potential risks and uncertainties, including but not limited to:

- **Data integrity**
- **Data integrity**
There is a possibility of data corruption, loss, or inconsistency due to unverified interactions with the db layer.
- **Performance issues**
- **Performance issues**
The untested db layer might have suboptimal performance characteristics, such as slow query execution or inefficient resource utilization.
- **Compatibility problems**
- **Compatibility problems**
Interoperability issues might arise when integrating with other components or services that rely on the db layer.
- **Security vulnerabilities**
- **Security vulnerabilities**
The untested db layer might contain security weaknesses, exposing sensitive information or allowing unauthorized access.

Remember that the use of this untested db layer is entirely at your discretion, and the developers, contributors, or maintainers of this software cannot be held liable for any damages, losses, or adverse effects arising from its usage. If you choose to proceed with the untested db layer, exercise extreme caution and consider seeking expert advice or assistance to mitigate potential risks effectively.

Please note that this disclaimer should be taken seriously and should not be ignored or underestimated. We appreciate your interest in this project and will continue to work on improving it.
Please note that this disclaimer should be taken seriously and should not be ignored or underestimated. We appreciate your interest in this project and will continue to work on improving it. Should you identify a security vulnerability, we kindly ask you to consult our [security policy](https://github.com/cashubtc/eNuts/blob/main/SECURITY.md).

Thank you for your understanding.

## 👏 Contribute

The main purpose of this repository is to continue evolving and pushing the adoption of Ecash for Bitcoin using the Cashu protocol. We want to make contributing to this project as easy and transparent as possible, and we are grateful to the community for contributing bug fixes and improvements. Read more on [how to contribute](https://github.com/cashubtc/eNuts/blob/main/CONTRIBUTING.md).

## 🥜 Implemented NUTs

The NUT documents (**N**otation, **U**sage and **T**erminology) each specify parts of the Cashu protocol.
Expand All @@ -74,48 +76,6 @@ The NUT documents (**N**otation, **U**sage and **T**erminology) each specify par
- [ ] [NUT-10](https://github.com/cashubtc/nuts/blob/main/10.md)
- [ ] [NUT-11](https://github.com/cashubtc/nuts/blob/main/11.md)

## 📋 Requirements

- eNuts is built using the managed workflow provided by Expo, so the easiest way to run a development environment is their [Expo Go](https://expo.dev/client) app.
- NodeJS 16 or higher.

## 🚀 Getting started

1. Fork this repository and create a local clone.
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.
- **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
// 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.
{
...
extra: {
// Delete the following line to fix the issue:
eas: { projectId: 'edb75ccd-71ac-4934-9147-baf1c7f2b068' },
...
}
...
}
```

## 👏 Contribute

The main purpose of this repository is to continue evolving and pushing the adoption of Ecash for Bitcoin using the Cashu protocol. We want to make contributing to this project as easy and transparent as possible, and we are grateful to the community for contributing bug fixes and improvements. Read more on [how to contribute](https://github.com/cashubtc/eNuts/blob/main/CONTRIBUTING.md).

## 🎉 Releases

[https://github.com/cashubtc/eNuts/releases](https://github.com/cashubtc/eNuts/releases)
Expand Down
Loading