147 lines
5.5 KiB
TypeScript
147 lines
5.5 KiB
TypeScript
|
|
/**
|
||
|
|
* @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
|
||
|
|
}
|
||
|
|
};
|