livnev / UniversalLoginSDK

Universal Login SDK

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CircleCI

Universal-Login

Ethereum Universal Login

Universal Login is a design pattern for storing funds and connecting to Ethereum applications, aiming to simplify new users on-boarding.

This repository is a monorepo including sdk, relayer, smart contracts and example. Each public sub-package is independently published to NPM.

Documentation

Documentation is available at universalloginsdk.readthedocs.io

Disclaimer

This is a work in progress. Expect breaking changes. The code has not been audited and therefore can not be considered secure.

Technical concepts

Technically Universal Login utilizes four major concepts:

  • Personal multi-sig wallet - a smart contract used to store personal funds. A user gets his wallet created in a bearly noticeable manner. The user then gets engaged incrementally to add authorization factors and recovery options.
  • Meta-transactions - that give user ability to interact with his wallet from multiple devices easily, without a need to store ether on each of those devices. Meta-transactions, also allow paying for execution with tokens.
  • ENS names - naming your wallet with easy-to-remember human-readable name
  • Universal login - ability to use the wallet as authorization layer to numerous web applications dapps

Structure

Packages maintained with this monorepo are listed below.

  • Contracts - all contracts used in this project
  • Relayer - node.js server application that allows interacting with blockchain without a wallet
  • SDK - a JS library, that helps to communicate with relayer
  • Example - example application written in React
  • OPS - scripts for development and deployment

Contributing

Contributions are always welcome, no matter how large or small. Before contributing, please read the code of conduct and contribution policy.

Before you issue pull request:

  • Create an issue and discuss with us to see if feature fits the project
  • For bigger PRs - setup a pair programing session with us :)
  • Split big PRs into multiple smaller PRs
  • Make sure all tests and linters pass.
  • Make sure you have test coverage for any new features.

Running linting/tests

You can run lint via:

yarn lint

Running tests:

yarn test

To clean the project:

yarn clean

To emulate the full CI process:

yarn clean
yarn
yarn ci

Building documentation:

cd docs
make html

Documentation will be compile to docs/build/html.

License

Universal Login SDK is released under the MIT License except for smart contracts in common and proxies released under the LGPL-v3 License.

About

Universal Login SDK

License:MIT License


Languages

Language:JavaScript 66.1%Language:TypeScript 23.2%Language:CSS 10.1%Language:GCC Machine Description 0.2%Language:Makefile 0.2%Language:HTML 0.2%