---
# System prepended metadata

title: '`InterfaceDetectionStorage.sol`: Unused import `ProxyInitialization`'

---

# `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`.



