Note: Before completing this guide, make sure you have completed the general onboarding guide in the base mojaloop repository.
- Prerequisites
- Service Overview
- Installing and Building
- Running Locally
- Running Inside Docker
- Testing
- Common Errors/FAQs
If you have followed the general onboarding guide, you should already have the following cli tools installed:
brew
(macOS), [todo: windows package manager]curl
,wget
docker
+docker-compose
node
,npm
and (optionally)nvm
The Transfers BC consists of the following packages;
public-types-lib
- Public shared types. README
domain-lib
- Domain library types. README
infrastructure-lib
- Infrastructure library. README
transfers-api-svc
- HTTP service for Transfers BC. README
event-handler-svc
- Event handler service for Transfers BC. README
command-handler-svc
- Command handler service for Transfers BC. README
transfers-config-lib
- Transfer configuration library for Transfers BC. README
shared-mocks-lib
- Mock implementation used for testing. README
Firstly, clone your fork of the transfers-bc
onto your local machine:
git clone https://github.com/<your_username>/transfers-bc.git
Then cd
into the directory and install the node modules:
cd transfers-bc
More information on how to install NVM: https://github.com/nvm-sh/nvm
nvm install
nvm use
npm install
npm run build
In this method, we will run all of the core dependencies inside of docker containers, while running the settlement-bc
server on your local machine.
Alternatively, you can run the
transfers-bc
inside ofdocker-compose
with the rest of the dependencies to make the setup a little easier: Running Inside Docker.
Use platform-shared-tools docker-compose files:
Follow instructions in the README.md
files to run the supporting services. Make sure you have the following services up and running:
- infra services : docker-compose-infra
- mongo
- kafka
- zoo
- cross-cutting services : docker-compose-cross-cutting
- auditing-svc
- authentication-svc
- authorization-svc
- identity-svc
- platform-configuration-svc
- apps services : docker-compose-apps
- accounts_and_balances_builtin-ledger-grpc-svc
- accounts_and_balances_coa-grpc-svc
- participants-svc
- scheduling-command-handler-svc
- settlements-command-handler-svc
- settlements-event-handler-svc
This will do the following:
docker pull
down any dependencies defined in eachdocker-compose.yml
file, and the services.- run all of the containers together
- ensure that all dependencies have started for each services.
# set the MONGO_URL* environment variable (required):
export MONGO_URL=mongodb://root:mongoDbPas42@localhost:27017/";
# set the AUDIT_KEY_FILE_PATH
export AUDIT_KEY_FILE_PATH=./dist/auditing_cert
See the README.md file on each services for more Environment Variable Configuration options.
npm run start:transfers-api-svc
We use npm
scripts as a common entrypoint for running the tests. Tests include unit, functional, and integration.
# unit tests:
npm run test:unit
# check test coverage
npm run test:coverage
# integration tests
npm run test:integration
Here you can find a complete Postman collection, in a json file, ready to be imported to Postman.