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.