Configure the Bridge Client
Attention
The XRPL EVM compatible sidechain implementation is a proof of concept extension to the XRP Ledger protocol and is for development purposes only. There is no official amendment currently and it is not available on the production Mainnet. The EVM compatible sidechain bridge is connected to the XRP Ledger Devnet. Do not send transactions in Mainnet.
The client requires separate configuration files for the backend frontend. Each environment setting also requires its own configuration files.
Backend Configuration
The client backend is configured in src/config
. The folder holds multiple files that configure properties related to the:
- Server
- Logger
- Database (TypeORM)
- EVM
- XRPL
- XUMM
These configuration files use the buildConfig()
function, taking an object with the configuration properties and a second optional parameter to perform validations. Configuration properties can have a static value or an object specifying values for each environment. The following environments are available:
-
default
-
production
-
development
-
test
-
staging
Configuration values can be constants, environment variables or AWS Secrets. Environment variables are defined in a .env file in the root of the backend. AWS Secrets add an extra layer of customisation and security. To load AWS secrets, the AWS_REGION
and AWS_SECRET_ID
environment variables must be defined.
Warning: Never use constants for sensitive data, such as keys or secrets in production environments.
Server Options
Key | Description | EVN Key | AWS Secret | Example |
---|---|---|---|---|
port | Server port to receive requests. | APP_PORT |
3000 |
|
secretKey | Secret key used to generate JWT tokens. | APP_JWT_KEY |
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" |
|
enableSwagger | Enable Swagger. | true |
||
enableCor | Enable CORS. | true |
Logger Options
Key | Description | EVN Key | AWS Secret | Example |
---|---|---|---|---|
logLevel | Log level used by the server logger. | "info" |
||
logFileName | File name to store logs. | "app.log" |
Database (TypeORM) Options
Key | Description | EVN Key | AWS Secret | Example |
---|---|---|---|---|
host | Database host. | DB_HOST |
DB_HOST |
"db" |
port | Database port. | DB_PORT |
DB_PORT |
5432 |
username | Database username. | DB_USER |
DB_USER |
"db_user" |
password | Database password. | DB_PASSWORD |
DB_PASSWORD |
"db_password" |
database | Database name. | DB_DATABASE |
DB_DATABASE |
"db_database" |
Note: This configuration also extends Nest TypeORM properties.
EVM Option
Key | Description | EVN Key | AWS Secret | Example |
---|---|---|---|---|
server | EVM chain RPC. | "https://rpc-evm-sidechain.xrpl.org" |
XRPL Option
Key | Description | EVN Key | AWS Secret | Example |
---|---|---|---|---|
server | XRPL chain WebSocket. | "wss://sidechain-net1.devnet.rippletest.net" |
XUMM Options
Key | Description | EVN Key | AWS Secret | Example |
---|---|---|---|---|
appKey | XUMM app key. | XUMM_API_KEY |
XUMM_API_KEY |
"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" |
appSecret | XUMM app secret. | XUMM_SECRET_KEY |
XUMM_SECRET_KEY |
"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" |
Frontend Configuration
The frontend configuration doesn't contain sensitive data and can be modified at src/common/config
. There's one JSON file for each environment:
File | Description |
---|---|
config.base.json | Common configuration used in all environments. |
config.prod.json | Configuration used in the production environment. |
config.dev.json | Configuration used in the development environment. |
config.test.json | Configuration used in the test environment. |
config.staging.json | Configuration used in the staging environment. |
Configuration Options
Key | Description | Example |
---|---|---|
projectName | The name of the project. | "bridge-client" |
publicUrl | React Router's BrowserRouter basename . |
"/" |
backendUrl | Bridge client backend URL. | "" |
nativeToken | The symbol of the blockchain's native token. | "XRP" |
network | The network of the chains in the bridge. | "Devnet" |
xrpNodeUrl | XRPL node WebSocket URL. | "wss://sidechain-net1.devnet.rippletest.net" |
evmWsNodeUrl | EVM node WebSocket URL. | "wss://ws-evm-poa-sidechain.peersyst.tech" |
evmRpcUrl | EVM node RPC URL. | "https://rpc-evm-sidechain.xrpl.org/" |
xrpExplorerUrl | XRPL explorer URL. | "https://custom.xrpl.org/sidechain-net1.devnet.rippletest.net/" |
evmExplorerUrl | EVM explorer URL. | "https://evm-sidechain.xrpl.org/" |
xrpFaucetHost | XRPL faucet host. | "sidechain-faucet.devnet.rippletest.net" |
xrpChainName | XRP chain name. | "XRPL" |
evmChainName | EVM chain name. | "EVM Sidechain" |
evmChain | EVM chain ID. | 1440002 |
evmDecimals | EVM chain decimals. | 18 |
pctCommission | PCT commission. | 0 |
minCommission | Minimum commission. | 1 |
maxCommission | Maximum commission. | 1 |
xumm | The XUMM configuration options. | |
enableXumm | Enable a XUMM. Uses an auto-generated XRP faucet wallet if false . |
false |
maxNumberDecimals | Maximum number of decimals to display in the UI. | 6 |
txValidationPolling | Polling Options for awaiting transaction validations. | |
attestationsValidationPolling | Polling Options for awaiting attestations. | |
transactionsRefetchInterval | The interval to refetch transaction history in ms. | 10000 |
balanceRefetchInterval | The interval to refetch balances in ms. | 5000 |
peersystUrl | The Peersyst web page URL. | "https://peersyst.com/" |
Frontend XUMM Options
Key | Description | Example |
---|---|---|
statusInterval | The interval to poll the client's backend for XUMM request updates in ms. | 3000 |
maxNumberOfRetries | The maximum number of attempts to poll the client's backend for XUMM request updates. | 40 |
Polling Options
Key | Description | Example |
---|---|---|
delay | Polling delay in ms. | 3000 |
maxIterations | The maximum number of polling iterations. | 10 |
timeout | The timeout of the request being polled in ms. | 1000 |