Code Monkey home page Code Monkey logo

lunie's Introduction

Lunie logo — right half circle with dotted left circle

Welcome to Lunie.io!

CircleCI codecov Maintainability

👋 Welcome to Lunie. We're making staking accessible for everyone. This is the repo for the Lunie web app.

Development Dependencies

Install the following dependencies if you wish to run lunie on developer mode or contribute.

Node

Lunie requires Node.js >=10.13.0. If you have a different version of Node.js installed, you can use n to install the correct version. The following command will use n to install it alongside your current version of Node.js.

npm i -g n && n 10.13.0

Yarn

Yarn is a JS package manager we use to manage Lunie's dependencies. Download it here.

Docker

To run a local tesnet for Lunie you will need Docker installed. You can download it here.

Docker compose

To build the SSL certificates needed by Lunie you also will need Docker Compose installed. You can find installation instructions for your platform here.

Ledger Cosmos App

IMPORTANT: Only use Ledger devices that you bought factory new or trust fully.

Lunie supports sending transactions through the Cosmos app for Ledger Nano hardware wallet. To install the Cøsmos app on your device you'll have to:

  1. Download the Ledger Live app here
  2. Connect your Ledger via USB and update to the latest firmware
  3. Go to the Ledger Live App Store, and download the Cøsmos application (this can take a while). Note: You may have to enable Dev Mode in the Ledger Live Settings to be able to download the Cøsmos application
  4. Navigate to the Cøsmos app on your Ledger device

Check out Lunie

With Node, Yarn and Docker installed, you're ready to check out the source code:

git clone https://github.com/luniehq/lunie.git
cd lunie
yarn install

Lunie Development

Generate SSL certificates

First generate some SSL certificates and add them to your trusted certificates.

yarn certificates

Run local testnet

You can simply start a docker based testnet and the frontend.

yarn start

This will create a rich account. You need to import that account into Lunie:

  • Sign In
  • Import Account
  • Use mnemonic: release endorse scale across absurd trouble climb unaware actor elite fantasy chair license word rare length business kiss smoke tackle report february bid ginger

You should now have a bunch of stake to play with.

Deploy

Create the bundle to deploy Lunie you can run:

yarn build

If you want to set a particular Stargate (Cosmos SDK REST API) or Tendermint's RPC endpoints:

STARGATE=<https://StargateAddress:port> RPC=<https://RPCAddress:port> yarn build

Release

Lunie has a automated release process. Every night the CI creates a new release PR. To release manually, run

yarn release

Testing

If you would like to run all the tests you can run:

yarn test

Unit tests

Lunie uses Jest to run unit tests. You can run all the unit tests with the following command:

yarn test:unit

For a single test file (e.g. PageValidator.spec.js) run the unit tests like this to watch the tests whenever there are changes:

yarn watch PageValidator

End to end tests

If you want to run them locally first start a testnet:

MAX_NODES=4 yarn testnet:start

Then run the tests:

yarn test:e2e

To run only some tests, provide a filter:

yarn test:e2e:serve
yarn test:e2e:local --filter send.spec.js

To run the e2e tests on multiple browsers use Browserstack. You must set the environment variables BROWSERSTACK_USERNAME and BROWSERSTACK_ACCESS_KEY aquired from Browserstack first.

yarn test:e2e:serve
yarn test:e2e:browserstack

Finally stop the testnet when you are done:

yarn testnet:stop

Code coverage

To check test coverage locally run following. It will spin up a webserver and provide you with a link to the coverage report web page.

yarn test:coverage

Flags

A list of all environment variables and their purpose:

Variable Values default Purpose
NODE_ENV production, development
CI true, false false Adds better structured output, makes a screenshot and adds logs to files (used on CircleCI).
ALLOW_CONSOLE true, false false Unit tests fail if they use console.error or console.warn. To see the initial use/occurences of those callings, you can escape this behavior using this flag.

Thanks

Browserstack

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.