Files
smom-dbis-138/contracts/registry/GRUAssetRegistryFacet.sol
2026-03-02 12:14:09 -08:00

39 lines
1.5 KiB
Solidity

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "./UniversalAssetRegistry.sol";
/**
* @title GRUAssetRegistryFacet
* @notice ERC-2535 Diamond facet adapter: delegates to UniversalAssetRegistry so M00 Diamond exposes GRU/c* asset registry.
* @dev Attach to M00 Diamond; set registry via setRegistry. All c* registered via registerGRUCompliantAsset are then queryable via this facet.
*/
contract GRUAssetRegistryFacet {
UniversalAssetRegistry public registry;
event RegistrySet(address indexed registry);
/// @notice Set the UniversalAssetRegistry to delegate to. Call from Diamond cut init (only Diamond owner can execute cut).
function setRegistry(address _registry) external {
require(_registry != address(0), "Zero registry");
registry = UniversalAssetRegistry(_registry);
emit RegistrySet(_registry);
}
function getAsset(address token) external view returns (UniversalAssetRegistry.UniversalAsset memory) {
return registry.getAsset(token);
}
function getAssetType(address token) external view returns (UniversalAssetRegistry.AssetType) {
return registry.getAssetType(token);
}
function getAssetsByType(UniversalAssetRegistry.AssetType assetType) external view returns (address[] memory) {
return registry.getAssetsByType(assetType);
}
function isAssetActive(address token) external view returns (bool) {
return registry.isAssetActive(token);
}
}