// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; import {INftF} from "./interfaces/INftF.sol"; import {ANftF} from "./core/ANftF.sol"; contract NftF is ANftF { function __NftF_init( bool isTransferable_, address slc_, address regulatoryCompliance_, address kycCompliance_, bytes memory initRegulatory_, bytes memory initKYC_ ) external initializer(DIAMOND_ERC721_STORAGE_SLOT) initializer(DIAMOND_ACCESS_CONTROL_STORAGE_SLOT) initializer(AGENT_ACCESS_CONTROL_STORAGE_SLOT) initializer(TOKEN_F_STORAGE_SLOT) { __DiamondAccessControl_init(); __DiamondERC721_init("NftF Token", "NT"); __AgentAccessControl_init(); __ANftF_init( isTransferable_, slc_, regulatoryCompliance_, kycCompliance_, initRegulatory_, initKYC_ ); } /// @inheritdoc INftF function diamondCut(Facet[] memory modules_) public virtual override onlyRole(AGENT_ROLE) { diamondCut(modules_, address(0), ""); } /// @inheritdoc INftF function diamondCut( Facet[] memory modules_, address initModule_, bytes memory initData_ ) public virtual override onlyRole(AGENT_ROLE) { _diamondCut(modules_, initModule_, initData_); } }