Skip to main content

Build from source

Epic Cash Desktop and Epic Cash Mobile are built from three repositories:

RepositoryWhat it is
wallet-for-epic (available soon)The Flutter app and its build scripts
lepic-flutter (available soon)The Flutter binding, the Dart package lepic
LEPIC (available soon)The Rust wallet core, built into a native library

See Architecture for how they work together at run time.

How a build uses them​

The app pins the other two by commit:

  • tools/lepic-flutter.rev holds the lepic-flutter commit.
  • tools/lepic.rev holds the LEPIC commit. It must equal the lepic.rev inside the pinned lepic-flutter; the scripts stop when the two differ.

Clone the app; tools/lepic.sh sync then clones LEPIC and lepic-flutter at the pinned commits into app/third_party/ (git-ignored), and build builds the native library:

git clone https://github.com/BTLabs-EPIC/wallet-for-epic
cd wallet-for-epic
. tools/env.sh
tools/lepic.sh sync # clone or move both repositories to the pinned commits
tools/lepic.sh build linux # the native library for this host
tools/lepic.sh build android # the three Android ABIs (needs the NDK and cargo-ndk)

To build from local checkouts of LEPIC or lepic-flutter instead, point LEPIC_REPO and LEPIC_FLUTTER_REPO at them (a path or a git URL) before sync.

build refuses to run when a clone is not at its pin or has local changes. To work on LEPIC itself, see Dev environment and LEPIC.

Quick dev run​

. tools/env.sh
tools/lepic.sh sync
tools/lepic.sh build linux

cd app
flutter pub get
flutter run -d linux -t lib/main_desktop.dart # desktop
flutter run -t lib/main.dart # phone or emulator

For an Android device or emulator, run tools/lepic.sh build android first.

Release builds​

PlatformPageScript
Linux (AppImage)Linuxscripts/build-linux.sh
Windows (installer)Windowsapp/tool/build_windows_release.ps1
Android (APK, App Bundle)Androidapp/tool/build_android_release.sh
macOS and iOS (previews)Apple platformstools/build-apple.sh
Without Tor, store buildsBuild variantsWFE_TOR, WFE_DIST

Related: Dev environment, Testing, Releases, Contributing.