Ğ1nkgo
Ğ1nkgo (aka Ginkgo) is a lightweight Ğ1 wallet for Duniter v1 written in Flutter. The app allows users to manage their Ğ1 currency on their mobile device using just a browser.
Features
- Introduction for beginners
- Generation of Cesium wallet and persistence (if you refresh the page, it should display the same wallet address).
- A point-of-sale device that generates a QR code for the public address and other QR codes with amounts (which lightweight wallets will understand).
- Internationalization (i18n)
- Some contextual help (for example, by tapping on "Validity").
- QR code reader
Work in progress
- Automatic selection of nodes
- Send and receive Ğ1 transactions
- View transaction history
- View Ğ1 balance and currency conversion rate
- Connectivity detection (to retry transactions, and other net operations)
Demo
Prerequisites
This repository requires Flutter to be installed and present in your development environment.
Clone the project and enter the project folder.
git clone https://git.duniter.org/vjrj/ginkgo.git
cd ginkgo
Get the dependencies.
flutter pub get
Build & deploy
Something like this should work:
flutter test
flutter build web --release
rsync --progress=info2 --delete -aH build/web/ youruser@yourserver:/var/www/ginkgo/
Development
Run the app via command line or through your development environment.
flutter run lib/main.dart
Pub packages
This repository makes use of the following pub packages:
Package | Version | Usage |
---|---|---|
Durt | ^0.1.6 | Duniter crypto lib |
Bloc | ^8.1.0 | State management |
Flutter Bloc | ^8.1.1 | State management |
Hydrated Bloc | ^9.0.0 | Persists Bloc state with Hive |
Equatable | ^2.0.5 | Easily compare custom classes, used for Bloc states* |
Flutter Lints | ^2.0.1 | Stricter linting rules |
Path Provider | ^2.0.11 | Get the save path for Hive |
Flutter Displaymode | ^0.5.0 | Support high refresh rate displays |
Easy Localization | ^3.0.1 | Makes localization easy |
Hive | ^2.2.3 | Platform independent storage. |
Url Launcher | ^6.1.7 | Open urls in Browser |
Ionicons | ^0.2.2 | Modern icon library |
Easy Localization
To add translations, add it to assets/translations
and enable it in main.dart
. Also go
to ios/Runner/Info.plist and update the following code:
<key>CFBundleLocalizations</key>
<array>
<string>en</string>
<string>es</string>
</array>
``
Screenshots
Wallet | Terminal card |
---|---|
![]() |
![]() |
Credits
- Ğ1 logo from duniter.org used in the card
- undraw intro images: https://undraw.co/license
- Chipcard https://commons.wikimedia.org/wiki/File:Chipcard.svg under the Creative Commons Attribution-Share Alike 3.0 Unported license.
Thanks!
License
GNU AGPL v3 (see LICENSE)