function verifyTransferProxy(
        address token,
        address from,
        address to,
        uint256 amount
        )
        internal
        returns (bool)
    {
        bytes memory callData = abi.encodeWithSelector(
            ERC20(token).verifyTransfer.selector,
            from,
            to,
            amount,
            new bytes(0)
        );
        (bool success, bytes memory returnData) = token.call(callData);
        
        if (success && returnData.length == 32) {
            
            assembly {
                success := mload(add(returnData, 32))
            }
            return success;
        } else {
            
            return true;
        }
    }