UniversalLoginSDK

Universal Login Monorepo

  • Owner: UniLogin/UniLogin
  • Platform:
  • License:: MIT License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

CircleCI

Universal-Login

Ethereum Universal Login

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

This repository is a monorepo including the sdk, relayer, smart contracts and examples. 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 barely noticeable manner. The user then incrementally adds authorization factors and recovery options.
  • Meta-transactions - these give users the ability to interact with their wallets from multiple devices easily, without a need to store ether on each of those devices. Meta-transactions, also allow one to pay for execution with tokens.
  • ENS names - naming your wallet with easy-to-remember human-readable names.
  • Universal login - ability to use the wallet as an 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
  • OPS - scripts for development and deployment
  • React - library of React components
  • Web3 - web3 provider connected allowing to use Universal Login without the need for modifying existing applications
  • Wallet - Jarvis web wallet that used Universal Login
  • Commons - standard functions and data structures used throughout the projects

Testing environment:

Ropsten:

  • Domains: poppularapp.test, my-login.test, universal-login.test
  • Relayer url: https://relayer-ropsten.universallogin.io
  • Jarvis Wallet (web wallet): wallet-ropsten.universallogin.io

Kovan:

  • Domain: poppularapp.test
  • Relayer url: https://relayer-kovan.universallogin.io

Rinkeby:

  • Domain: poppularapp.test
  • Relayer url: https://relayer-rinkeby.universallogin.io

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.

Building, running, linting & tests

To install dependencies:

yarn install

To build all projects:

yarn build

Running run tests for all projects:

yarn test

Running linter for all projects:

yarn lint

To clean the project:

yarn clean

You can run all of above scripts (install, build, test, lint, clean) from individual project directories.

To emulate the full CI process:

yarn ci

Building documentation:

cd docs
make html

Documentation will be compiled to docs/build/html.

License

Universal Login SDK is released under the MIT License.

Main metrics

Overview
Name With OwnerUniLogin/UniLogin
Primary LanguageTypeScript
Program languageJavaScript, CSS, HTML, TypeScript, Shell (Language Count: 7)
Platform
License:MIT License
所有者活动
Created At2018-07-15 07:53:10
Pushed At2023-01-11 02:00:53
Last Commit At2020-10-05 13:05:54
Release Count46
Last Release Name0.6.1 (Posted on )
First Release Namev0.1.1 (Posted on 2019-06-24 14:09:51)
用户参与
Stargazers Count290
Watchers Count18
Fork Count86
Commits Count2.4k
Has Issues Enabled
Issues Count74
Issue Open Count24
Pull Requests Count2342
Pull Requests Open Count28
Pull Requests Close Count189
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private