# `InterfaceDetectionStorage.sol`: Unused import `ProxyInitialization`
`ProxyInitialization` is not used in `InterfaceDetectionStorage` even though it is imported.
## Recommendation
Remove the unused import.
# `ForwarderRegistry.sol` and `ERC20PermitStorage.sol`: The Domain Separators in `_calculateDomainSeparator()` and `DOMAIN_SEPARATOR()` do not conform to EIP712
[EIP712 suggests the following fields when calculating a domain separator](https://eips.ethereum.org/EIPS/eip-712):
* `string name` the user readable name of signing domain, i.e. the name of the DApp or the protocol.
* `string version` the current major version of the signing domain. Signatures from different versions are not compatible.
* `uint256 chainId` the EIP-155 chain id. The user-agent should refuse signing if it does not match the currently active chain.
* `address verifyingContract` the address of the contract that will verify the signature. The user-agent may do contract specific phishing prevention.
* `bytes32 salt` an disambiguating salt for the protocol. This can be used as a domain separator of last resort.
## Recommendation
Include a `version` and `salt` when calculating the domain separator.
# `ERC721Storage.sol`: Typo in return variable name of `_tokenHasApproval()`
## Recommendation
`tokenSasApproval` should be `tokenHasApproval`.