// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; /** * @title IRWATokenFactory * @notice Deploy and register M00 Li* RWA index tokens. */ interface IRWATokenFactory { struct RWAProductConfig { string indexTicker; string name; string symbol; uint8 decimals; string assetClass; string assetGroup; string instrumentType; string underlyingAsset; string gruLayer; string jurisdiction; address initialOwner; address complianceAdmin; address indexPublisher; uint256 initialIndexValue; uint256 initialSupply; bytes32 methodologyDocumentHash; bool registerInUniversalAssetRegistry; } function deployRWAIndex(RWAProductConfig calldata config) external returns (address token); function rwaTokenRegistry() external view returns (address); function universalAssetRegistry() external view returns (address); event RWAIndexDeployed( string indexed indexTicker, address indexed token, string symbol, address indexed owner ); }