Please note that this repository is the Electron host for the Meteor based wallet dapp whose repository is located here: https://github.com/pirl/Oystr-Wallet-dApp
If you want to install the app from a pre-built version on the release page, you can simply run the executeable after download.
For updating simply download the new version and copy it over the old one (keep a backup of the old one if you want to be sure).
The data folder for Oystr is stored in other places:
- Windows
%APPDATA%\Oystr
- macOS
~/Library/Application\ Support/Oystr
- Linux
~/.config/Oystr
For development, a Meteor server will need to be started to assist with live reload and CSS injection.
Once a Oystr version is released the Meteor frontend part is bundled using the meteor-build-client
npm package to create pure static files.
To run Oystr in development you need:
- Node.js
v7.x
(use the prefered installation method for your OS) - Meteor javascript app framework
- Yarn package manager
- Electron
v1.4.15
cross platform desktop app framework - Gulp build and automation system
Install the latter ones via:
$ curl https://install.meteor.com/ | sh
$ curl -o- -L https://yarnpkg.com/install.sh | bash
$ yarn global add electron@1.4.15
$ yarn global add gulp
Now you're ready to initialise Oystr for development:
$ git clone https://github.com/pirl/Oystr.git
$ cd Oystr
$ yarn
To update Oystr in the future, run:
$ cd Oystr
$ git pull
$ yarn
For development we start the interface with a Meteor server for autoreload etc. Start the interface in a separate terminal window:
$ cd Oystr/interface && meteor --no-release-check
In the original window you can then start Oystr with:
$ cd Oystr
$ electron .
NOTE: client-binaries (e.g. pirl) specified in clientBinaries.json will be checked during every startup and downloaded if out-of-date, binaries are stored in the config folder
NOTE: use --help
to display available options, e.g. --loglevel debug
(or trace
) for verbose output
Start the wallet app for development, in a separate terminal window:
$ cd Oystr/interface && meteor --no-release-check
// and in another terminal
$ cd my/path/Oystr-Wallet-dApp/app && meteor --port 3050
In the original window you can then start Oystr using wallet mode:
$ cd Oystr
$ electron . --mode wallet
This is useful if you have a node running on another machine, though note that it's less secure than using the default IPC method.
$ electron . --rpc http://localhost:8545
You can pass command-line options directly to Pirl by prefixing them with --node-
in
the command-line invocation:
$ electron . --mode Oystr --node-rpcport 19343 --node-networkid 2
The --rpc
Oystr option is a special case. If you set this to an IPC socket file
path then the --ipcpath
option automatically gets set, i.e.:
$ electron . --rpc /my/pirl.ipc
...is the same as doing...
$ electron . --rpc /my/pirl.ipc --node-ipcpath /my/pirl.ipc
Our build system relies on gulp and electron-builder.
meteor-build-client bundles the meteor-based interface. Install it via:
$ npm install -g meteor-build-client
Furthermore cross-platform builds require additional electron-builder
dependencies. On macOS those are:
// windows deps
$ brew install wine --without-x11 mono makensis
// linux deps
$ brew install gnu-tar libicns graphicsmagick xz
To generate the binaries for Oystr run:
$ gulp
To generate the Pirl Wallet (this will pack the one Ðapp from https://github.com/pirl/Oystr-Wallet-dApp):
$ gulp --wallet
The generated binaries will be under dist_mist/release
or dist_wallet/release
.
To build binaries for specific platforms (default: all available) use the following flags:
// on mac
$ gulp --win --linux --mac
// on linux
$ gulp --win --linux
// on win
$ gulp --win
With the walletSource
you can specify the Wallet branch to use, default is master
:
$ gulp --wallet --walletSource develop
Options are:
master
develop
local
Will try to build the wallet from [oystr/]../Oystr-Wallet-dApp/app
Note: applicable only when combined with --wallet
Spits out the MD5 checksums of distributables.
It expects installer/zip files to be in the generated folders e.g. dist_mist/release
$ gulp checksums [--wallet]
Tests are ran using Spectron, a webdriver.io runner built for Electron.
First make sure to build Mist with:
$ gulp
Then run the tests:
$ gulp test
Note: Integration tests are not yet supported on Windows.