The version field(constant) in SmartVaultV3 is set to "2", when it should be "3".
SmartVaultV3 contract is an upgrade for previous version - SmartVaultV2, which itself is an upgrade for SmartVault. All these contracts utilize the version field for versioning.
version later used in the ISmartVault.Status object, to describe current status of a SmartVault.
In the following code we can see the version field set for two previous versions of SmartVault (the code is taken from TheStandard main repo):
And here is (in scope) version of SmartVaultV3:
As we can see, SmartVaultV3 incorrectly specifies its version.
The affected version field is used in two places:
It's a part of the data returned by an external function SmartVaultManagerV5.vaults (which provides information about all current vaults managed by the VaultManager).
Also, it's used by NFTMetadataGenerator.generateNFTMetadata to generate NFT metadata for a particular SmartVault. This NFT data used in the smart vault dashboard UI (like here) and allows borrowers to manage/sell their vaults.
Basically, incorrect SmartVault version will likely break mentioned protocol's integrations, because the version is expected to be used to differentiate between different versions of deployed contracts. And since the version of a vault can't be updated after creation, borrowers will experience issues with managing/selling their vaults.
Update version field in SmartVaultV3 to correctly match current version:
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.