Giter VIP home page Giter VIP logo

backend-token-wallets's Introduction

Moon Wallet Backend module

Build Status

This is backend module of Moon Wallet backed with :heart: and :coffee: for the crypto community by secret_tech

Moon Wallet

This backend module can be used to build a typical ETH and ERC-20 tokens wallet. Currently it has the following functionality

  1. Registration & Authorization
  2. Register any Token by specified contract address
  3. Generate and manage multiple Ethereum wallets by one account
  4. Transfer ETH / ERC-20
  5. Transferring is protected by payment password
  6. Displaying transaction history for ETH/ERC-20
  7. Notification management
  8. All important actions are protected with 2FA (email or google authenticator) by integration with Jincor Backend Verify You can disable some kind of verifications as well.

For more info check API DOCS

Moon Wallet Screenshot

Technology stack

  1. Typescript, Express, InversifyJS (DI), Mongoose
  2. Web3JS - interaction with Ethereum client. Backend supports any JSON-RPC compliant client. For development and testing purpose you can use Infura.io
  3. Mocha/chai - unit/functional tests
  4. Jincor Backend Verify - all kind of verifications
  5. Jincor Backend Auth - all kind of Authorization
  6. secrettech Backend Notify - notifications
  7. Docker

Changelog

Closed issues

  • Fix wallets creation #47
  • Payments add gas limit settings #38
  • Preferences: add an ability to disable 2FA #35
  • Preferences: changing password for the same should fail #34
  • Preferences: save email notification settings #33
  • Sending: address check is case-sensetive #29
  • Registration: email check is case-sensetive #28
  • Add ability to control notifications and verifications #19
  • Add ability to retrieve all transactions for wallets. #16
  • Add tests #12
  • Ability to store encrypted privateKey in this service #11
  • Fix emails #10
  • Work with set of tokens #9
  • Add documentation. #8
  • Add integration with backend-notify #5
  • Implement methods for sending eth and any erc20 #3
  • Test any smart contract #2
  • First project adaptation #1

Full changelog available here

How to start development and run tests?

  1. Clone this repo.
  2. Run $ docker-compose -f docker-compose.test.yml build --no-cache
  3. Run $ docker-compose -f docker-compose.test.yml run api /bin/sh
  4. To install dependencies run $ npm i
  5. Run tests watch mode $ npm run start:test

Contributing

Contributions are appreciated. If you found any bugs or in trouble with installing or running this module, feel free to open new issues.

Contributing guideline can be found here

How to generate API docs?

  1. Modify apiary.apib to match your API
  2. Install aglio npm install -g aglio
  3. Run mkdir /usr/local/lib/node_modules/aglio/node_modules/aglio-theme-olio/cache
  4. Generate aglio --theme-variables cyborg --theme-template triple -i apiary.apib -o ./docs/index.html

License

Apache 2.0 license

More details

backend-token-wallets's People

Contributors

alekns avatar aleserche avatar hlogeon avatar

Watchers

 avatar

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.