This is the directory for the desktop application of Firefly - IOTA's new official wallet.
The following must be installed on all platforms:
- Xcode Command Line Tools
It is highly recommended to use Chocolatey as a package manager for Windows. There are a few dependencies that Chocolatey handles smoothly, which otherwise are often troublesome to install and configure. Read installation steps here.
PowerShell in administrator mode is recommended for the following steps.
- Install dependencies for
wallet.rs
:
choco install cmake llvm openssl
NOTE: llvm
can also be downloaded and installed with snapshot builds.
- Install and configure dependencies for Windows:
choco install python visualstudio2019-workload-vctools -y
npm config set msvs_version 2019
NOTE: Alternatively, you can download Microsoft C++ Build Tools. You must check boxes for "Node.js development" and "Desktop development with C++" within the Visual Studio Installer (use the 2019 version).
- Add environment variable definitions in
~/.bash_profile
or~/.bashrc
:
## wallet.rs sub-dependencies
export OPENSSL_DIR="C:\Program Files\OpenSSL-Win64"
## ensure SODIUM_LIB_DIR points to folder with .lib file (and not .dll)
export SODIUM_LIB_DIR="$HOME\.cargo\registry\src\github.com-1ecc6299db9ec823\libsodium-sys-0.2.7\msvc\x64\Release\v142"
## tell rustc to link library dynamically (use .dll - "dynamic-link library")
export SODIUM_SHARED=1
## path to clang binaries (*.dll/*.lib files)
export LIBCLANG_PATH="C:\Program Files\LLVM\bin"
- Snapcraft (
sudo snap install snapcraft --classic
) - Multipass (
sudo snap install multipass
) or LXD (snap install lxd
) are necessary for Snap compilation (to bypass this requirement and build on the host, setSNAP_DESTRUCTIVE_MODE="true"
) clang
(on some older distros, you may need to add LLVM APT repos)libsecret
(Debian/Ubuntu:libsecret-1-dev
, Red Hat:libsecret-devel
, Arch Linux:libsecret
)libssl
(Debian/Ubuntu:libssl-dev
, Red Hat:openssl-devel
, Arch Linux:openssl
)libusb
(Debian/Ubuntu:libusb-1.0-0-dev
)libudev
(Debian/Ubuntu:libudev-dev
)gnome-keyring
,keepassxc
, or another secrets manager that implements the freedesktop.org Secrets API
Install yarn dependencies:
## in the root directory
yarn
Build desktop app:
## in packages/desktop
yarn build
# in packages/desktop
yarn start
# in packages/desktop
yarn compile:<platform>
Change <platform>
as necessary (win
, mac
, and linux
).
MacOS users must set an environment variable in order to skip notarization (MACOS_SKIP_NOTARIZATION=true
).
To run the Firefly snap properly on Linux, you may need to run the following commands:
Install the snap when built locally:
snap install --dangerous path/to/firefly-desktop-0.0.1.snap
Connect the password-manager-service
interface:
snap connect firefly-wallet:password-manager-service