KomodoWallet Mobile codebase https://komodoplatform.com
Find a file
Charl (Nitride) ce77f287b2
Merge pull [RC] 0.9.2: Docker support, minor fixes, and update coin assets/icons
[RC] 0.9.2: Docker support, minor fixes, and update coin assets/icons
2025-02-13 14:23:46 +01:00
.devcontainer ci(Devcontainers&Codespaces): rename mm2 to kdf (#156) 2025-01-23 14:14:42 +01:00
.docker ci(Devcontainers&Codespaces): rename mm2 to kdf (#156) 2025-01-23 14:14:42 +01:00
.github/workflows move workflow inline python into files 2023-12-27 20:45:22 +08:00
android bump target SDK 2024-05-04 22:54:00 +02:00
assets fix(dex): disable swap slide action and hide orderbooks tab (#167) 2025-01-31 14:43:04 +01:00
fonts Add swapDescription and swapStepData methods 2020-03-06 15:40:55 +01:00
integration_test Merge branch '0.6.0' into add_protocol_filters 2022-09-05 21:25:29 +01:00
ios iOS build fixes 2024-12-19 18:16:25 +01:00
lib fix(dex): disable swap slide action and hide orderbooks tab (#167) 2025-01-31 14:43:04 +01:00
test Remove prefix from QR code scans (#121) 2024-04-04 14:44:46 +02:00
test_units add mac to encryption method 2022-10-31 15:38:42 +01:00
utils move workflow inline python into files 2023-12-27 20:45:22 +08:00
.editorconfig Switch back to FlutterFragmentActivity but with notifications 2020-04-17 04:51:08 +03:00
.fvmrc iOS build fixes 2024-12-19 18:16:25 +01:00
.gitignore iOS build fixes 2024-12-19 18:16:25 +01:00
.metadata first commit 2019-02-08 10:45:43 +00:00
.ruby-version iOS build fixes 2024-12-19 18:16:25 +01:00
analysis_options.yaml WIP: Attempt to upgrade Flutter to 2.5.3 2021-11-17 14:19:53 -03:00
CODE_OF_CONDUCT.md Revamp public readme and contribution guide (#21) 2023-05-22 10:58:55 +02:00
coins_ci.json chore: disable trading features (#166) 2025-01-23 13:40:12 +01:00
CONTRIBUTING.md Revamp public readme and contribution guide (#21) 2023-05-22 10:58:55 +02:00
COPYING rename LICENSE to COPYING 2023-04-12 01:31:36 +02:00
execute_integration.sh Fix execute_integration.sh, update README.md 2022-06-21 15:10:52 +02:00
fetch_coins.ps1 Docker build image and devcontainer config (#147) 2024-07-13 12:29:18 +02:00
fetch_coins.sh Docker build image and devcontainer config (#147) 2024-07-13 12:29:18 +02:00
pubspec.lock Refactor share to share_plus and add home page log export 2023-11-21 19:16:43 +02:00
pubspec.yaml Update KDF and coins (#163) 2024-12-20 15:01:49 +01:00
README.md Docker build image and devcontainer config (#147) 2024-07-13 12:29:18 +02:00
sync_arb_files.dart WIP: Improve arb files sync logic 2022-02-15 13:49:32 +01:00

Komodo Wallet - Open Source GitHub Repository 🚀

Open in GitHub Codespaces

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

Build with docker

To build from a container without installing Flutter on an x86_64 machine (Linux or Windows) with Docker or Podman installed, you can use the provided Dockerfile.

sh .docker/build_apk_release.sh

You can also manually build using docker with the following commands:

docker build -f .docker/android-sdk.dockerfile . -t komodo/android-sdk:34
docker build -f .docker/android-apk-build.dockerfile . -t komodo/komodo-wallet-mobile
docker run --rm -v ./build:/app/build komodo/komodo-wallet-mobile:latest

The build output should be in the following directory: build/app/outputs/flutter-apk/app-release.apk

NOTE: There are known issues with building this repository using docker on ARM-based systems (e.g. M-series Macs, Raspberry Pi):

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.

Stable API releases

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.

Setup with Python script

You can use the provided Python script to download and extract the API binary for you. This script will download the latest release of the API binary from GitHub and extract it to the correct location.

python3 -m venv .venv
source .venv/bin/activate
pip install -r .docker/requirements.txt
python .docker/update_api.py --force

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.