Configuration

Settings.js

Configuration File Format

{
    // operating chain list
    chainList: [
        'eth',
        'klaytn',
        'icon',
    ],

    // Bridge Addresses
    BridgeAddress: {
        OrbitHubContract: "0x0000000000000000000000000000000000000000",
        OrbitBridgeHubContract: "0x0000000000000000000000000000000000000000",
        EthBridgeContract: "0x0000000000000000000000000000000000000000",
        KlaytnBridgeContract: "0x0000000000000000000000000000000000000000",
        IconBridgeContract: "0x0000000000000000000000000000000000000000",
        MessageMultiSigWallet: {
            Hub: "0x0000000000000000000000000000000000000000",
            Eth: "0x0000000000000000000000000000000000000000",
            Klaytn: "0x0000000000000000000000000000000000000000",
            Icon: "0x0000000000000000000000000000000000000000"
        },
        Eth: {
            EthVaultContract: "0x0000000000000000000000000000000000000000",
        },
        Klay: {
            KlaytnMinterContract: "0x0000000000000000000000000000000000000000",
            MessageMultiSigWallet: "0x0000000000000000000000000000000000000000",
        },
        Icon: {
            IconMinterContract: "cx0000000000000000000000000000000000000000",
            MessageMultiSigWallet: "cx0000000000000000000000000000000000000000",
        },
        Governance: {
            Chain: "ETH",
            Address: "0x0000000000000000000000000000000000000000",
            Bytes: "0x0000000000000000000000000000000000000000",
            Id: "0x0000000000000000000000000000000000000000000000000000000000000000",
        }
    },

    // Node Endpoints
    Endpoints : {
        Orbit: {
            rpc : "http://orbitchain",
            socket: "ws://orbitchain",
        },
        Eth : {
            rpc : "http://infura",
            socket : "ws://infura",
        },
        Klaytn: {
            // false: Using your node (not public EN), true: Using Kas node
            isKas: false,
    
            // your node configuration (not public EN)
            rpc: "",
            socket: "",

            // Kas configuration
            Kas: {
                // KAS Default
                rpc: "https://node-api.klaytnapi.com/v1/klaytn",
                chainId: 8217,

                // Your Credential
                accessKeyId: "",
                secretAccessKey: ""
            }
        },
        Icon: {
            api: 'https://ctz.solidwallet.io/api/v3',
            debug: 'https://ctz.solidwallet.io/api/debug/v3',
            version: 3,
            nid: 1
        },
        Parser: {
            api: "http://localhost:8084",
        },
        Syncer: {
            api: "http://localhost:9797/v1", 
        },
    },

    DEBUG: true,
    LOGLEVEL: 'debug',

    // WIP: validator things.
    VALIDATOR_ACCOUNT: {
        TYPE: "PK",
        DATA: "0000000000000000000000000000000000000000000000000000000000000000",
    },

    // WIP: operator things.
    OPERATOR_ACCOUNTS: {
        Klay: {
            TYPE: "PK",
            FEE_PAYER_ADDRESS : "0x0000000000000000000000000000000000000000",
            DATA: "0x0000000000000000000000000000000000000000000000000000000000000000",
        },
        Eth: {
            RELEASE: {
                TYPE: "PK",
                ADDRESS: "0x0000000000000000000000000000000000000000",
                DATA: "0000000000000000000000000000000000000000000000000000000000000000",
            },
        },
        Icon: {
            RELEASE: {
                TYPE: "PK",
                ADDRESS: "hx0000000000000000000000000000000000000000",
                DATA: "0000000000000000000000000000000000000000000000000000000000000000",
            },
        },
    },

    // WIP: Parser things.
    REDIS_HOST: "redis",
    REDIS_PORT: 6379,
    REDIS_EXPIRE: 7200,
    REDIS_DB : 1,

    // WIP: syncer things.
    REDIS_EVENT_HOST: 'redis',
    REDIS_EVENT_PORT: 6379,
    REDIS_EVENT_DB: 1,

    REDIS_EVENT_CHANNEL: process.env.PROFILE + 'priestNewBlock',
    REDIS_ETHEVENT_CHANNEL: process.env.PROFILE + 'ethNewBlock',
    REDIS_TERRAEVENT_CHANNEL: process.env.PROFILE + 'terraNewBlock',
    REDIS_KLAYTNEVENT_CHANNEL: process.env.PROFILE + 'klaytnNewBlock',

    REDIS_PUBLISHER_HOST: 'redis',
    REDIS_PUBLISHER_PORT: 6379,
    REDIS_PUBLISHER_DB: 1,

    REDIS_ETH_BRIDGE_CHANNEL: 'ethbridge',
    REDIS_TERRA_BRIDGE_CHANNEL: 'terrabridge',
    REDIS_ORBIT_BRIDGE_CHANNEL: 'orbitbridge',
    REDIS_KLAYTN_BRIDGE_CHANNEL: 'klaytnbridge',

    MIGRATE_BOTTOM_INCLUDE: 10000000,
    MIGRATE_TOP_EXCLUDE: 12785269,

    RPC_SERVER: 'http://localhost:8084',

    TERRA_BALANCE_INQUIRY_ENDPOINT: '/v1/terra/balance',

    ERC20_BALANCE_INQUIRY_ENDPOINT: '/v1/eth/getBalance',

    DB_CLIENT: 'mysql',
    DB_HOST: 'mysql',
    DB_PORT: '3306',
    DB_USER: 'root',
    DB_PASSWORD: 'password',
    DB_DATABASE: 'bridge',
    DB_CHARSET: 'utf8mb4',
    DB_MIN_POOL_SIZE: 2,
    DB_MAX_POOL_SIZE: 10,
    DB_MIGRATION_TABLE_NAME: 'knex_migrations',

    // dev 30 seconds
    REGISTER_INTERVAL: 30,
}

Properties

The configuration file has the following configurable properties:

Name

Description

chainList

List of chains to provide bridging services.

BridgeAddress

Information such as contract and wallet address deployed to each chain for bridging service

Endpoints

Public node endpoints to use for transaction verification

VALIDATOR_ACCOUNT

Validator private key for bridging transaction signing

OPERATOR_ACCOUNTS

Account information to pay the tx fee when generating a transaction

REDIS_%

Redis instance related information to support communication and simple caching between parser/ syncer/ operator

MIGRATE_%

Settings for syncer DB management

DB_%

DB-related settings to be used in syncer. Note that editing this section may lead to discrepancies with docker-compose.yml.

RPC_SERVER, REGISTER_INTERVAL, etc...

will be removed soon.

Last updated