-
Notifications
You must be signed in to change notification settings - Fork 37
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Refactor code. * Update deps. packages. * Next step of refactoring. * Prepare to implement custom transactions. * Rename investor to user. * Remove referral, whitelist, ico. * Split web3 into several services. * Add verification for transaction (to remove double sending for verify). * Add loggers. * Fix unnecessary await. * Fix processing of pending transactions. * Fix email queue processing. * Fix gas price. * Add travis. Closes #1
- Loading branch information
Showing
102 changed files
with
25,580 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,8 @@ | ||
.git | ||
.vscode | ||
node_modules | ||
npm-debug.log | ||
coverage | ||
.nyc_output | ||
dist | ||
.env | ||
storage |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
LOGGING_LEVEL=debug | ||
LOGGING_FORMAT=text | ||
LOGGING_COLORIZE=false | ||
|
||
HTTP_IP= | ||
HTTP_PORT= | ||
ENVIRONMENT=test | ||
|
||
APP_API_PREFIX_URL=http://api:3000 | ||
APP_FRONTEND_PREFIX_URL=http://token-wallets.com | ||
|
||
THROTTLER_WHITE_LIST= | ||
THROTTLER_INTERVAL= | ||
THROTTLER_MAX=10000 | ||
THROTTLER_MIN_DIFF= | ||
|
||
MONGO_URL=mongodb://mongo:27017/test | ||
ORM_ENTITIES_DIR=src/entities/**/*.ts | ||
ORM_SUBSCRIBER_DIR=src/subscriber/**/*.ts | ||
ORM_MIGRATIONS_DIR=src/migrations/**/*.ts | ||
|
||
REDIS_URL=redis://redis:6379 | ||
|
||
AUTH_VERIFY_URL= | ||
AUTH_ACCESS_JWT= | ||
AUTH_TIMEOUT= | ||
|
||
VERIFY_BASE_URL=http://verify:3000 | ||
VERIFY_TIMEOUT= | ||
|
||
RPC_TYPE=http | ||
RPC_ADDRESS=https://ropsten.infura.io/ujGcHij7xZIyz2afx4h2 | ||
|
||
WEB3_RESTORE_START_BLOCK=2518791 | ||
|
||
ICO_SC_ADDRESS= | ||
ICO_SC_ABI_FILEPATH= | ||
WHITELIST_SC_ADDRESS= | ||
WHITELIST_SC_ABI_FILEPATH= | ||
WHITELIST_OWNER_PK_FILEPATH= | ||
ERC20_TOKEN_ADDRESS=0x7267e91c9dd6f402bea68a943374b7652575b989 | ||
ERC20_TOKEN_ABI_FILEPATH=test/abi/StandardToken.abi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,64 @@ | ||
node_modules | ||
npm-debug.log | ||
coverage | ||
.nyc_output | ||
# Logs | ||
logs | ||
*.log | ||
npm-debug.log* | ||
yarn-debug.log* | ||
yarn-error.log* | ||
dist | ||
ts-node | ||
|
||
.idea | ||
ts-node | ||
coverage | ||
|
||
# Runtime data | ||
pids | ||
*.pid | ||
*.seed | ||
*.pid.lock | ||
|
||
# Directory for instrumented libs generated by jscoverage/JSCover | ||
lib-cov | ||
|
||
# Coverage directory used by tools like istanbul | ||
coverage | ||
|
||
# nyc test coverage | ||
.nyc_output | ||
|
||
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) | ||
.grunt | ||
|
||
# Bower dependency directory (https://bower.io/) | ||
bower_components | ||
|
||
# node-waf configuration | ||
.lock-wscript | ||
|
||
# Compiled binary addons (http://nodejs.org/api/addons.html) | ||
build/Release | ||
|
||
# Dependency directories | ||
node_modules/ | ||
jspm_packages/ | ||
|
||
# Typescript v1 declaration files | ||
typings/ | ||
|
||
# Optional npm cache directory | ||
.npm | ||
|
||
# Optional eslint cache | ||
.eslintcache | ||
|
||
# Optional REPL history | ||
.node_repl_history | ||
|
||
# Output of 'npm pack' | ||
*.tgz | ||
|
||
# Yarn Integrity file | ||
.yarn-integrity | ||
|
||
# dotenv environment variables file | ||
.env | ||
.vscode | ||
storage | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
save-exact=true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
{ | ||
"lines": 80, | ||
"statements": 80, | ||
"functions": 80, | ||
"branches": 68, | ||
"include": [ | ||
"**/*.ts" | ||
], | ||
"exclude": [ | ||
"**/*.spec.ts", | ||
"coverage", | ||
"*.ts", | ||
"src/*.ts" | ||
], | ||
"reporter": [ | ||
"html", | ||
"text", | ||
"text-summary" | ||
], | ||
"require": [ | ||
"ts-node/register" | ||
], | ||
"extension": [ | ||
".ts" | ||
], | ||
"cache": false, | ||
"all": false, | ||
"check-coverage": true | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
sudo: required | ||
services: | ||
- docker | ||
script: | ||
- chmod ugo+x ./build.sh | ||
- export TAG=`if [ "$TRAVIS_BRANCH" == "master" ]; then echo "prod"; elif [ | ||
"$TRAVIS_BRANCH" == "dev" ]; then echo "stage"; else echo "dev-$(git rev-parse | ||
--short HEAD)"; fi` | ||
- "./build.sh $TAG" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
FROM mhart/alpine-node:8.6 | ||
|
||
WORKDIR /usr/src/app | ||
ADD . /usr/src/app | ||
|
||
RUN apk add --update --no-cache git python make g++ && \ | ||
npm install && \ | ||
npm run build && \ | ||
npm prune --production && \ | ||
apk del --purge git python make g++ && \ | ||
rm -rf ./src ./test | ||
|
||
CMD npm run serve |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
FROM mhart/alpine-node:8.9.1 | ||
|
||
RUN apk update && apk upgrade && apk add git && apk add python && apk add make && apk add g++ | ||
VOLUME /usr/src/app | ||
EXPOSE 3000 | ||
EXPOSE 4000 | ||
WORKDIR /usr/src/app |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
FROM mhart/alpine-node:8.6 | ||
|
||
WORKDIR /usr/src/app | ||
ADD . /usr/src/app | ||
|
||
RUN apk add --update --no-cache git python make g++ && \ | ||
npm install && \ | ||
apk del --purge git python make g++ | ||
|
||
CMD npm start |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,32 @@ | ||
# Backend Token Wallets | ||
# Jincor PC Backend | ||
This is backend module of Jincor ICO dashboard: https://contribute.jincor.com. | ||
|
||
Todo | ||
It was implemented to provide following functionality: | ||
1. ICO users sign up. | ||
1. Generation of Ethereum address upon user activation. | ||
1. Token purchase. | ||
1. Displaying User's transaction history. | ||
1. All important actions are protected with 2FA (email or google authenticator) by integration with Jincor Backend Verify service (https://github.com/JincorTech/backend-verify) | ||
1. For more info check API docs: https://jincortech.github.io/backend-ico-dashboard | ||
|
||
## Technology stack | ||
|
||
1. Typescript, Express, InversifyJS (DI), TypeORM (MongoDB interaction). | ||
1. Web3JS - interaction with Ethereum client. ICO backend supports any JSON-RPC compliant client. | ||
1. Mocha/chai - unit/functional tests. | ||
1. Docker. | ||
|
||
## How to start development and run tests? | ||
|
||
1. Clone this repo. | ||
1. Run `docker-compose build --no-cache`. | ||
1. Run `docker-compose up -d`. | ||
1. Run `cp .env.test .env`. | ||
1. To install dependencies run `docker-compose exec ico npm i`. | ||
1. Run tests `docker-compose exec ico npm test`. | ||
|
||
## How to generate docs? | ||
|
||
1. Install aglio `npm install -g aglio`. | ||
1. Run `mkdir /usr/local/lib/node_modules/aglio/node_modules/aglio-theme-olio/cache`. | ||
1. Generate `aglio --theme-variables cyborg --theme-template triple -i apiary.apib -o ./docs/index.html`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
#!/bin/bash | ||
|
||
set -ex | ||
IMAGE_NAME="jincort/backend-token-wallets" | ||
DOCKER_FILE="Dockerfile.$TAG" | ||
DOCKER_FILE=$( [ -e "$DOCKER_FILE" ] && echo $DOCKER_FILE || echo Dockerfile ) | ||
docker build -f $DOCKER_FILE -t ${IMAGE_NAME}:${TAG} . || exit 1 | ||
docker push ${IMAGE_NAME}:${TAG} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
version: '3.2' | ||
|
||
networks: | ||
backendTokenWalletsTests: | ||
|
||
services: | ||
api: | ||
image: jincort/backend-token-wallets:test | ||
networks: | ||
backendTokenWalletsTests: | ||
aliases: | ||
- api | ||
build: | ||
context: ./ | ||
dockerfile: Dockerfile.test | ||
env_file: | ||
- .env.test | ||
command: > | ||
sh -c ' | ||
apk add --update --no-cache curl && | ||
n=1; while [ -z "`nc -z auth 3000 && echo 1`" ] && [ "$$n" != "30" ]; do sleep 1; n=`expr $$n + 1`; echo "Wait auth $$n"; done && | ||
curl auth:3000/tenant -H "Accept: application/json" -H "Content-Type: application/json" \ | ||
-d "{\"email\":\"test@test.com\",\"password\":\"aA1qwerty\"}" ; | ||
export AUTH_ACCESS_JWT=`curl auth:3000/tenant/login -H "Accept: application/json" -H "Content-Type: application/json" \ | ||
-d "{\"email\":\"test@test.com\",\"password\":\"aA1qwerty\"}" | grep -oE "accessToken\":\"[^\"]+" | cut -d\" -f3` ; | ||
npm test | ||
' | ||
volumes: | ||
- ./src/:/usr/src/app/src:ro | ||
- ./test/:/usr/src/app/test:ro | ||
links: | ||
- mongo | ||
- redis | ||
- auth | ||
- verify | ||
|
||
auth: | ||
image: jincort/backend-auth:production | ||
networks: | ||
backendTokenWalletsTests: | ||
aliases: | ||
- auth | ||
environment: | ||
REDIS_HOST: redis | ||
REDIS_PORT: 6379 | ||
FORCE_HTTPS: disabled | ||
JWT_KEY: zd003d435e74b9150aa5573cb73ddfbe1 | ||
THROTTLER_WHITE_LIST: "127.0.0.1" | ||
TENANT_WHITE_LIST: "*" | ||
THROTTLER_MAX: "10000" | ||
links: | ||
- redis | ||
|
||
verify: | ||
image: jincort/backend-verify:stage | ||
networks: | ||
backendTokenWalletsTests: | ||
environment: | ||
REDIS_URL: 'redis://redis:6379' | ||
THROTTLER_WHITE_LIST: "127.0.0.1" | ||
THROTTLER_MAX: "10000" | ||
links: | ||
- redis | ||
- auth | ||
|
||
redis: | ||
image: jincort/backend-redis:latest | ||
networks: | ||
backendTokenWalletsTests: | ||
tmpfs: | ||
- /data | ||
|
||
mongo: | ||
image: jincort/backend-mongodb:production | ||
networks: | ||
backendTokenWalletsTests: | ||
tmpfs: | ||
- /data/db |
Oops, something went wrong.