/** * @file tokenization.config.example.ts * @notice Example tokenization configuration file * @description Copy this file to tokenization.config.ts and fill in your values */ export const tokenizationConfig = { // Fabric Configuration fabric: { networkName: process.env.FABRIC_NETWORK || 'fabric-network', channelName: process.env.FABRIC_CHANNEL || 'mychannel', chaincodeIds: { tokenizedAsset: process.env.FABRIC_CHAINCODE_TOKENIZED_ASSET || 'tokenized-asset', reserveManager: process.env.FABRIC_CHAINCODE_RESERVE_MANAGER || 'reserve-manager' }, peerAddress: process.env.FABRIC_PEER_ADDRESS || 'peer0.org1.example.com:7051', ordererAddress: process.env.FABRIC_ORDERER_ADDRESS || 'orderer.example.com:7050' }, // Besu Configuration (Chain 138) besu: { rpcUrl: process.env.CHAIN_138_RPC_URL || 'http://localhost:8545', wsUrl: process.env.CHAIN_138_WS_URL || 'ws://localhost:8546', chainId: 138, tokenizedEURAddress: process.env.TOKENIZED_EUR_ADDRESS || '', tokenRegistryAddress: process.env.TOKEN_REGISTRY_ADDRESS || '', deployerPrivateKey: process.env.DEPLOYER_PRIVATE_KEY || '', adminAddress: process.env.ADMIN_ADDRESS || '' }, // FireFly Configuration firefly: { apiUrl: process.env.FIREFLY_API_URL || 'http://localhost:5000', apiKey: process.env.FIREFLY_API_KEY || '', namespace: process.env.FIREFLY_NAMESPACE || 'default' }, // Cacti Configuration cacti: { apiUrl: process.env.CACTI_API_URL || 'http://localhost:4000', fabricConnectorId: process.env.CACTI_FABRIC_CONNECTOR_ID || 'fabric-connector-1', besuConnectorId: process.env.CACTI_BESU_CONNECTOR_ID || 'besu-connector-1', fabricNetworkId: process.env.CACTI_FABRIC_NETWORK_ID || 'fabric-tokenization', besuNetworkId: process.env.CACTI_BESU_NETWORK_ID || 'besu-tokenization' }, // SolaceNet Configuration solacenet: { apiUrl: process.env.SOLACENET_API_URL || 'http://localhost:3000', apiKey: process.env.SOLACENET_API_KEY || '', capabilities: { mint: 'tokenization.mint', transfer: 'tokenization.transfer', redeem: 'tokenization.redeem', view: 'tokenization.view' } }, // Indy Configuration indy: { apiUrl: process.env.INDY_API_URL || 'http://localhost:9000', poolName: process.env.INDY_POOL_NAME || 'dbis-pool', walletName: process.env.INDY_WALLET_NAME || 'tokenization-wallet', walletKey: process.env.INDY_WALLET_KEY || '' }, // HSM Configuration hsm: { enabled: process.env.HSM_ENABLED === 'true', endpoint: process.env.HSM_ENDPOINT || 'http://localhost:8080', apiKey: process.env.HSM_API_KEY || '', keyId: process.env.HSM_KEY_ID || '', minterKeyId: process.env.HSM_MINTER_KEY_ID || '', attestorKeyIds: process.env.HSM_ATTESTOR_KEY_IDS?.split(',') || [] }, // Banking Integration banking: { swift: { enabled: process.env.SWIFT_ENABLED === 'true', apiUrl: process.env.SWIFT_API_URL || '', apiKey: process.env.SWIFT_API_KEY || '', bic: process.env.SWIFT_BIC || '' }, target2: { enabled: process.env.TARGET2_ENABLED === 'true', apiUrl: process.env.TARGET2_API_URL || '', apiKey: process.env.TARGET2_API_KEY || '' } }, // Reserve Configuration reserve: { quorumThreshold: parseInt(process.env.RESERVE_QUORUM_THRESHOLD || '2'), // Minimum attestors attestationValidityHours: parseInt(process.env.RESERVE_ATTESTATION_VALIDITY_HOURS || '24'), minBackingRatio: parseFloat(process.env.RESERVE_MIN_BACKING_RATIO || '1.0') }, // Sub-Volume Integration subVolumes: { gas: { enabled: process.env.GAS_ENABLED !== 'false', apiUrl: process.env.GAS_API_URL || 'http://localhost:3001' }, gru: { enabled: process.env.GRU_ENABLED !== 'false', apiUrl: process.env.GRU_API_URL || 'http://localhost:3002' }, metaverse: { enabled: process.env.METAVERSE_ENABLED !== 'false', apiUrl: process.env.METAVERSE_API_URL || 'http://localhost:3003' } }, // Microservices Integration microservices: { isoCurrency: { apiUrl: process.env.ISO_CURRENCY_API_URL || 'http://localhost:4001' }, liquidityEngine: { apiUrl: process.env.LIQUIDITY_ENGINE_API_URL || 'http://localhost:4002' }, marketReporting: { apiUrl: process.env.MARKET_REPORTING_API_URL || 'http://localhost:4003' }, bridgeReserve: { apiUrl: process.env.BRIDGE_RESERVE_API_URL || 'http://localhost:4004' } }, // Observability Configuration observability: { prometheusEnabled: process.env.PROMETHEUS_ENABLED === 'true', prometheusPort: parseInt(process.env.PROMETHEUS_PORT || '9090'), logLevel: process.env.LOG_LEVEL || 'info', maxLogs: parseInt(process.env.MAX_LOGS || '10000'), metricsEnabled: process.env.METRICS_ENABLED !== 'false' }, // Tokenization Workflow Configuration workflow: { defaultTimeout: parseInt(process.env.WORKFLOW_TIMEOUT || '3600'), // 1 hour maxRetries: parseInt(process.env.WORKFLOW_MAX_RETRIES || '3'), retryDelay: parseInt(process.env.WORKFLOW_RETRY_DELAY || '5000') // 5 seconds } };