Skip to content

rsksmart/2wp-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Quality Gate Status

2wp-api

This is the API component for 2-Way-Peg solution.

The solution will be a web interface, which integrates with a Rest API (this application), which in turn communicates with internal services such as the blockchain node and databases. In addition, a daemon/worker will be created that will be responsible for obtaining data from the blockchain and changing the status of the transaction.

Development Mode

The 2wp-api application will run on 3000 port.

Include a .env file with the required environment variables listed in .env.test file (you can copy that file).

NOTE: You must have access to a Blockbook server running in the required network and provide its url in the .env file. If you want to setup locally please read the instructions.

Check npm and node versions

Install and run the use command to get the needed npm and node version

nvm use

Install dependencies

To only install resolved dependencies in package-lock.json:

npm ci

Session DB

Move to the SessionDB folder and run:

docker-compose up -d

RSK DB

Move to the rsk-database folder, copy your .env file in it and then run:

docker-compose up -d

For some reason passing --env-file argument to docker-compose doesn't seem to be working fine. That's why we need to copy the .env file here too.

Environment Variables

To verify all environment variables, please click here for environment variables details.

Create user with admin permissions to connect without errors to mongoDB

To connect without authentication errors to mongodb, in root directory run:

$ docker exec -it 2wp-rsk-mongo-database bash
$ mongosh
$ use rsk
$ db.createUser(
    {
      user: "api-user",
      pwd: "pwd",
      roles: [
        { role: "userAdmin" , db:"rsk"  }
      ]
    }
  )

Using npm to run the application

If you want to start the API alongside the daemon run:

npm start

If you prefer to execute just the API run:

npm run start-api

Open http://127.0.0.1:3000 in your browser to discover the API capabilities

If you prefer to execute just the daemon run:

npm run start-daemon

Fix code style and formatting issues

npm run eslint

To automatically fix such issues:

npm run eslint:fix

Build & test project

npm ci
npm run unit-test
npm run eslint
npm run only-coverage

Deployment

In the root directory run:

docker-compose up

Other useful commands

  • npm run openapi-spec: Generate OpenAPI spec into a file

LoopBack

Report Security Vulnerabilities

To report a vulnerability, please use the vulnerability reporting guideline for details on how to do it.