CryndexFactory.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;
interface ICryndexFactory {
/// @notice Emitted when a new asset contract is created
/// @param name The name of the asset
/// @param symbol The symbol of the asset
/// @param assetClass The class of asset (commodity, equity, etc.)
/// @param aggregators Chainlink aggregator addresses for the asset
/// @param proportionalities The proportionality of each price feed
/// @param asset The address of the newly created asset contract
event AssetCreated(
string name,
string symbol,
string assetClass,
address[] aggregators,
uint256[] proportionalities,
address asset
);
/// @notice Creates new asset contracts
/// @param name The name of the asset
/// @param symbol The symbol of the asset
/// @param assetClass The class of asset (commodity, equity, etc.)
/// @param aggregator Chainlink aggregator address for the asset
/// @param borrowRate The initial borrow rate
/// @param savingsRate The initial savings rate
/// @param governor The address of the governor
function createAsset(
string memory name,
string memory symbol,
string memory assetClass,
address[] memory aggregator,
uint256[] memory proportionalities,
uint112 borrowRate,
uint112 savingsRate,
address governor
) external returns (address);
/// @notice Returns all asset addresses
/// @return Array of asset contract addresses
function getAssets() external view returns (address[] memory);
/// @notice Sets the address for the treasury
/// @param _treasury Address of the treasury
function initialise(address _treasury) external;
}
Last updated