Skip to content

chr1sn0/Oystr

Repository files navigation

Oystr

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

Installation

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).

Config folder

The data folder for Oystr is stored in other places:

  • Windows %APPDATA%\Oystr
  • macOS ~/Library/Application\ Support/Oystr
  • Linux ~/.config/Oystr

Development

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.

Dependencies

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

Initialisation

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

Run Oystr

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

Run the Wallet

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

Connecting to node via HTTP instead of IPC

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

Passing options to Pirl

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

Creating a local private net

See this guide to quickly set up a local private network on your computer: https://gist.github.com/evertonfraga/9d65a9f3ea399ac138b3e40641accf23

Using Oystr with a privatenet

To run a private network you will need to set the IPC path, network id and data folder:

$ electron . --rpc ~/Library/Ethereum/pirl.ipc --node-networkid 1234 --node-datadir ~/Library/Pirl/privatenet

NOTE: since ipcpath is also a Oystr option you do not need to also include a --node-ipcpath option.

You can also launch pirl separately with the same options prior starting Oystr.

Deployment

Our build system relies on gulp and electron-builder.

Dependencies

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

Generate packages

To generate the binaries for Oystr run:

$ gulp

To generate the Ethereum 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.

Options

platform

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
walletSource

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

Checksums

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]

Testing

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.

Releases

No releases published

Packages

No packages published