NSignatureTypes enum value bypasses Solidity safety checks  Won't Fix
The `ISignatureValidator` contract defines an enum `SignatureType` to represent the different types of signatures recognized within the exchange. The final enum value, `NSignatureTypes`, is not a valid signature type. Instead, it is used by `MixinSignatureValidator` to check that the value read from the signature is a valid enum value. However, Solidity now includes its own check for enum casting, and casting a value over the maximum enum size to an enum is no longer possible.\\nBecause of the added `NSignatureTypes` value, Solidity's check now recognizes `0x08` as a valid `SignatureType` value.\\nThe check is made here:\\n```\\n// Ensure signature is supported\\nif (uint8(signatureType) >= uint8(SignatureType.NSignatureTypes)) {\\n    LibRichErrors.rrevert(LibExchangeRichErrors.SignatureError(\\n        LibExchangeRichErrors.SignatureErrorCodes.UNSUPPORTED,\\n        hash,\\n        signerAddress,\\n        signature\\n    ));\\n}\\n```\\n
The check should be removed, as should the `SignatureTypes.NSignatureTypes` value.
```\\n// Ensure signature is supported\\nif (uint8(signatureType) >= uint8(SignatureType.NSignatureTypes)) {\\n    LibRichErrors.rrevert(LibExchangeRichErrors.SignatureError(\\n        LibExchangeRichErrors.SignatureErrorCodes.UNSUPPORTED,\\n        hash,\\n        signerAddress,\\n        signature\\n    ));\\n}\\n```\\n