// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; import {ANftF} from "../core/ANftF.sol"; import {AbstractModule} from "./AbstractModule.sol"; /** * @notice `AbstractRegulatoryModule` contract is the standard base implementation for regulatory modules. */ abstract contract AbstractRegulatoryModule is AbstractModule { modifier onlyANftF() { _onlyANftF(); _; } function __AbstractRegulatoryModule_init() internal onlyInitializing {} function transferred(ANftF.Context memory ctx_) public virtual onlyANftF {} function canTransfer(ANftF.Context memory ctx_) public view virtual returns (bool) { return _handle(ctx_); } function _onlyANftF() internal view { require(msg.sender == getANftF(), "ARModule: not ANftF"); } uint256[50] private _gap; }