Middleware service for which transfer token from mainnet to sidechain and revert
This module is a part of middleware services. You can install it in 2 ways:
- through core middleware installer middleware installer
- by hands: just clone the repo, do 'npm install', set your .env - and you are ready to go
This module is used for interaction with middleware. This happens through the layer, which is built on node-red. So, you don't need to write any code - you can create your own flow with UI tool supplied by node-red itself. Access by this route:
/admin
The available routes are listed below:
| route | methods | params | description |
|---|---|---|---|
| /mainnet/swaps/:address | GET | {address: <string>} |
get list swaps in mainnet(transfer from mainnet to sidechain) for selected address, select only open by field isActive, Output: [ swap_id: {Number}, isActive: {Boolean}, created: {UnixTimestamp} ] |
| /mainnet/swap/obtain/:id | GET | {id: <Number>} |
get secret key by id swap in mainnet, get in encypt form by public key user, Output [ encrypt secret key by pubkey user] |
| /sidechain/swaps/:address | GET | {address: <string>} |
get list swaps in sidechain for selected address, select only open by field isActive, Output: [ swap_id: {Number}, isActive: {Boolean}, created: {UnixTimestamp} ] |
| /sidehcain/swap/obtain/:id | GET | {id: <Number>} |
get secret key by id swap in sidechain, get in encypt form by public key user, Output [ encrypt secret key by pubkey user] |
To apply your configuration, create a .env file in root folder of repo (in case it's not present already). Below is the expamle configuration:
MONGO_URI=mongodb://localhost:27017/data
MONGO_COLLECTION_PREFIX=eth_mainnet
SIDECHAIN_MONGO_DATA_URI=mongodb://localhost:27017/data
SIDECHAIN_MONGO_COLLECTION_PREFIX=eth_sidechain
NODERED_MONGO_URI=mongodb://localhost:27017/data
NODERED_MONGO_COLLECTION_PREFIX=nodered
RABBIT_URI=amqp://localhost:5672
RABBIT_SERVICE_NAME=app_eth_mainnet
SIDECHAIN_RABBIT_URI=amqp://localhost:5672
SIDECHAIN_RABBIT_SERVICE_NAME=app_eth_sidechain
WEB3_URI=http://localhost:8545
WEB3_SIDECHAIN_URI=http://localhost:8546
ORACLE_PRIVATE_KEY=
OWNER_ADDRESS=0x30e8dc8fb374f297d330aa1ed3ad55eed22782cf
SIDECHAIN_ORACEL_PRIVATE_KEY=
SIDECHAIN_OWNER_ADDRESS=0x30e8dc8fb374f297d330aa1ed3ad55eed22782cf
SIDECHAIN_MIDDLEWARE_ADDRESS=0xec723c98b4cff7383fd9dca22f2a9aafe174c600
REST_PORT=8081
USE_HTTP_SERVER=1
NODERED_AUTO_SYNC_MIGRATIONS=true
The options are presented below:
| name | description |
|---|---|
| MONGO_URI | the URI string for mongo connection(mainnet) |
| MONGO_COLLECTION_PREFIX | the default prefix for all mongo collections(mainnet). The default value is 'eth' |
| SIDECHAIN_MONGO_URI | the URI string for mongo connection(sidechain) |
| SIDECHAIN_MONGO_COLLECTION_PREFIX | the default prefix(sidechain) for all mongo collections. The default value is 'eth' |
| NODERED_MONGO_URI | the URI string for mongo connection, which holds data collections (for instance, processed block's height). In case, it's not specified, then default MONGO_URI connection will be used) |
| NODERED_MONGO_COLLECTION_PREFIX | the collection prefix for node-red collections in mongo (If not specified, then the collections will be created without prefix) |
| DOMAIN | rest plugin domain |
| REST_PORT | rest plugin port |
| USE_HTTP_SERVER | use http or https server |
| SIDECHAIN_WEB3_URI | uri for sidechain web3 |
| WEB3_URI | uri for mainnet web3 |
| RABBIT_URI | uri for rabbit mq messages in mainnet |
| RABBIT_SERVICE_NAME | prefix for rabbit mq messages in mainnet |
| SIDEHCAIN_RABBIT_URI | uri for rabbit mq messages in sidechain |
| SIDECHAIN_RABBIT_SERVICE_NAME | prefix for rabbit mq messages in sidechain |
| NETWORK | network name (alias)- is used for connecting via ipc (see block processor section) |
| SIDECHAIN_NETWORK | network name (alias)- is used for connecting via ipc (see block processor section) |
| NODERED_MONGO_URI | the URI string for mongo collection for keeping node-red users and flows (optional, if omitted - then default MONGO_URI will be used) |
| SMART_CONTRACTS_PATH | the path to compiled smart contracts (optional, if omitted - then the default dir from node_modules will be used) |
| SMART_ATOMIC_CONTRACTS_PATH | the path to compiled smart contracts atomic swap (optional, i omitted - the default dir from node_modules will be used) |
| NODERED_AUTO_SYNC_MIGRATIONS | autosync migrations on start (default = yes) |
| ORACLE_PRIVATE_KEY | private key for wallet provider in mainnet |
| SIDEHCAIN_ORACLE_PRIVATE_KEY | private key for wallet provider in sidechain |
| OWNER_ADDRESS | address owner of smart contracts in mainnet |
| SIDECHAIN_OWNER_ADDRESS | address owner of smart contracts in sidechain |
| SIDEHCAIN_MIDDLEWARE_ADDRESS | address middleware in sidechain, to transfer time tokens |
LaborX PTY