Skip to content

KomodoPlatform/komodo-wallet-mobile

Repository files navigation

Komodo Wallet - Open Source GitHub Repository πŸš€

GitHub Workflow Status GitHub release (latest SemVer) GitHub contributors GitHub last commit GitHub top language Discord GitHub code size in bytes GitHub repo size Twitter Follow

Welcome to the Komodo Wallet open-source repository! This cutting-edge project is brought to you by Komodo, providing a mighty non-custodial wallet and decentralised exchange all in one mobile app. Take control of your cryptocurrencies and trade seamlessly on your mobile phone or tablet with Komodo Wallet!

Unleashing the Power of Komodo DeFi Framework πŸ’‘

We've made this repository public to showcase the incredible potential of the Komodo DeFi Framework and to spark interest among companies looking to integrate this game-changing technology into their own applications. Our goal is to drive innovation and expand the reach of decentralised exchange technology worldwide.

Exciting Features 🌟

  • Non-custodial wallet: You're in control - only you can access your private keys.
  • Decentralized exchange: Trade cryptocurrencies effortlessly across blockchain networks with atomic swap technology, bypassing the need for a middleman.
  • 500+ Listed Cryptocurrencies: A vast and ever-growing list of supported cryptocurrencies.
  • Unlimited markets: Over 300,000 completed atomic swaps and a staggering 10,000+ trading pairs.
  • User support: Engage with our active Discord support channel, where official team members are ready to help. We'd also love to hear your feedback.
  • Most supported protocols: Komodo Wallet outshines the competition by supporting the most blockchain protocols of any decentralized exchange on the market.
  • Established team: Our pioneering Komodo developers have been at the forefront of DEX technology since 2014.
  • Frequent updates: Our dedicated developers are constantly working to enhance the app's user experience, security, and feature set.

Download Komodo Wallet πŸ“²

Embrace financial freedom at your fingertips by downloading the Komodo Wallet:

Get Involved 🀝

We welcome developers, designers, and testers' contributions to our open-source project. If you'd like to contribute, please review the contribution guidelines and code of conduct.

For any questions about the Komodo Wallet or the exchange, join our lively Discord Support channel. Official team members are identifiable by the "Komodo Team" role.

NB (Forkers/contributors):

This repository is currently in the process of undergoing safety and Flutter version upgrades. Expect major merge conflicts in the near future for any files updated from this repository. Please note that this software is under active development and provided "as is" without warranties or guarantees. Use at your own risk, as the authors and maintainers shall not be held liable for any issues, damages, or losses resulting from its use.

Getting Started

Build requires up-to-date version of coins file from https://github.com/KomodoPlatform/coins

Commit hash and sha256sum of coins file is specified in coins_ci.json. You may download one manually or use fetch_coins.sh script on Linux and macOS or fetch_coins.ps1 PowerShell script on Windows.

The fetch_coins script depends on sha256sum and jq utils:

Ubuntu: sudo apt-get update && sudo apt-get install -y coreutils jq

MacOS: brew install coreutils jq, Brew software

Windows: choco install jq, Choco software

Build and run

https://github.com/KomodoPlatform/AtomicDEX-mobile/wiki/Project-Setup#build-and-run

Run/Build with screenshot and video recording ON

flutter run --dart-define=screenshot=true

Komodo DeFi Framework Library Setup:

Komodo Wallet runs the Komodo DeFi Framework locally on the user's device. The API binary is platform-specific and must be manually set up by the developer instead of a typical Flutter dependency.

Ensure you run the most recent Komodo DeFi Framework stable release. Download the API binary for each platform and extract its libmm2.a file into the applicable platform's API folder.

API Build API Path*
android-aarch64 android/app/src/main/cpp/libs/arm64-v8a/libmm2.a
android-armv7 android/app/src/main/cpp/libs/armeabi-v7a/libmm2.a
iOS ios/libmm2.a

*Relative to the Flutter project's root folder. E.g. if your name was Bob and you cloned the flutter project into your macOS home directory, the full path for the iOS API would be /Users/Bob/atomicdex_mobile/ios/libmm2.a

See our wiki here for more thorough project setup steps. Besides installing the API binary, Komodo Wallet is set up similarly to any other cloned Flutter project.

Accessing the database

adb exec-out run-as com.komodoplatform.atomicdex cat /data/data/com.komodoplatform.atomicdex/app_flutter/AtomicDEX.db > AtomicDEX.db
sqlite3 AtomicDEX.db

Localization

  1. Extract messages to the .arb file:
flutter pub run intl_generator:extract_to_arb --output-dir=lib/l10n lib/localizations.dart
  1. Sync generated intl_messages.arb with existing locale intl_*.arb files:
dart run sync_arb_files.dart
  1. ARB files can be used for input to translation tools like Arbify, Localizely etc.
  2. The resulting translations can be used to generate a set of libraries:
flutter pub run intl_generator:generate_from_arb --output-dir=lib/l10n  lib/localizations.dart lib/l10n/intl_*.arb
  1. Manual editing of generated messages_*.dart files might be needed to delete nullable syntax (? symbol), since the app doesn't support it yet.

Generate latest coin config:

Clone the latest version of coins

Download and install the latest version of python3

Open the cloned repository and run the script below in the terminal in the repo folder.

python3 utils/generate_app_configs.py

Copy the generated coins_config.json file from the Utils folder and paste it inside the assets/ folder in the Komodo Wallet project.

Audio samples sources

Testing

1. Manual testing

Manual testing plan: https://docs.google.com/spreadsheets/d/1jeIkGe2CmJ7YmuoVi6Rlc9KRr3wiBPf44Qy0Nd8qtOY/edit?usp=sharing

2. Integration testing

Guide and coverage

3. Unit/Widget testing

Not supported

License πŸ“„

This project is released under the MIT License.