Backend for Ethereum & ERC-20 tokens
Clone or download
ddevilbb Merge pull request #71 from secret-tech/feature/issue-52-fix
Fixed getting language parameter from request header
Latest commit b6bd1eb Jun 26, 2018
Permalink
Failed to load latest commit information.
contracts Feature/issue 9 (#14) Feb 1, 2018
docs Merge branch 'develop' of https://github.com/secret-tech/backend-toke… May 16, 2018
recovery Feature/issue 11 (#20) Feb 7, 2018
reset-payment-password Add reset password payment tool. Mar 2, 2018
src Fixed errors format Jun 25, 2018
test Added balances of the first 5 tokens and total non-zero assets to eac… May 22, 2018
.dockerignore Add reset password payment tool. Mar 2, 2018
.env.test [ Closes #66 ] Added functionality for getting 0.1 test ETH after cre… Jun 13, 2018
.gitignore Feature/issue 1 (#4) Jan 25, 2018
.npmrc Feature/issue 1 (#4) Jan 25, 2018
.nycrc Reduce functions coverage Mar 14, 2018
.travis.yml [ Closes #69 ]Fixed errors and travis config Jun 8, 2018
CHANGELOG.md Version in changelog Mar 16, 2018
CONTRIBUTING.md Create CONTRIBUTING.md Mar 16, 2018
Dockerfile Add git package only for building time. #67 Jun 8, 2018
Dockerfile.local Fixed mhart/alpine-node version in Docker files Jun 8, 2018
Dockerfile.test [ Closes #64 ] Jun 7, 2018
LICENSE Quick fix of readme, formatting of sec.key, add license. Mar 1, 2018
README.md Change Travis build status image url Mar 28, 2018
apiary.apib Merge branch 'develop' of https://github.com/secret-tech/backend-toke… May 16, 2018
build.sh Feature/issue 9 (#14) Feb 1, 2018
docker-compose.test.yml Add common tests. Closes #12 Feb 14, 2018
package-lock.json [ Closes #64 ] Jun 7, 2018
package.json [ Closes #64 ] Jun 7, 2018
tsconfig.build.json Feature/issue 1 (#4) Jan 25, 2018
tsconfig.json Feature/issue 1 (#4) Jan 25, 2018
tslint.json Feature/issue 1 (#4) Jan 25, 2018

README.md

Moon Wallet Backend module

Build Status

This is backend module of Moon Wallet backed with ❤️ and ☕️ 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