    function _wrap(
        address _fromAddress,
        address _toAddress,
        uint256 _amount
    ) internal virtual {
        if (_fromAddress != msg.sender) {
            require(
                allowance(_fromAddress, msg.sender) >= _amount,
                "TOFT_allowed"
            );
        }
        IERC20(erc20).safeTransferFrom(_fromAddress, address(this), _amount);
        _mint(_toAddress, _amount);
    }
diff --git a/contracts/tOFT/BaseTOFT.sol b/contracts/tOFT/BaseTOFT.sol
index 5658a0a..e8b7f63 100644
--- a/contracts/tOFT/BaseTOFT.sol
+++ b/contracts/tOFT/BaseTOFT.sol
@@ -350,12 +350,7 @@ contract BaseTOFT is BaseTOFTStorage, ERC20Permit {
         address _toAddress,
         uint256 _amount
     ) internal virtual {
-        if (_fromAddress != msg.sender) {
-            require(
-                allowance(_fromAddress, msg.sender) >= _amount,
-                "TOFT_allowed"
-            );
-        }
+        require (_fromAddress == msg.sender, "TOFT_allowed");
         IERC20(erc20).safeTransferFrom(_fromAddress, address(this), _amount);
         _mint(_toAddress, _amount);
     }
