Edge Core Javascript implementation. Provides Edge account and wallet functionality for NodeJS/HTML/React Native apps
Fetching latest commit…
Cannot retrieve the latest commit at this time.

README.md

Edge Core

This library implements the Edge login system. It runs inside a client application, and provides zero-knowledge backup for cryptographic keys and other secrets via a familiar password-based login system.

JavaScript Style Guide code style: prettier

Documentation

See https://developer.airbitz.co/javascript/

Account Management UI

To quickly get up and running with the UI for account creation, login, and management, use edge-login-ui-web for the web or edge-login-ui-rn for React Native.

Setup

Just use npm install --save edge-core-js to add this library to your project.

If you are on React Native, you must also do:

# Install native support libraries:
npm install --save react-native-fast-crypto react-native-fs
npm install --save git://github.com/EdgeApp/react-native-randombytes.git
npm install --save git://github.com/EdgeApp/react-native-tcp.git

# Link support libraries into the native project files:
react-native link react-native-fast-crypto
react-native link react-native-fs
react-native link react-native-randombytes
react-native link react-native-tcp

The bundled library uses only ES5 features thanks to Babel, but we do require the following ES2015 features either natively or as polyfills:

  • Object.assign
  • Promise
  • Uint8Array

If you want to run in the browser, you must also have:

  • fetch
  • localStorage
  • Window.crypto.getRandomNumbers

Contributing

Run yarn to download dependencies and build the library, then run yarn test to run the unit tests, and yarn flow to check for type errors.

All sources are in the JavaScript Standard Style + Prettier. We check files prior to each commit, so if you have formatting issues, you can run yarn format to fix them automatically.

If you use Visual Studio Code, consider installing the prettier-vscode extension. You'll want to enable the prettier.eslintIntegration configuration option for this to work seamlessly with Standard.

If you use Atom, you can use prettier-atom. You'll want to check the "ESLint Integration" setting for this to work seamlessly with Standard.