Vaulty - Goal vault and Time Vault

QuillAuditsFiles named in the report

Audit · firm’s term: audit report

QuillAudits reviewed Vaulty - Goal vault and Time Vault on 20 Jun 2023: 9 findings, 0 critical; 5 marked fixed, 4 open.

No open critical findings
Open the reportOpen Vaulty - Goal vault and Time Vault’s security record

Report hosted on quillaudits.com.

Trustblock does not review code.

Findings9

Statuses are the security firm’s own, from its report.

SeverityOpenAcknowledgedFixed
Critical000
High001
Medium000
Low404
HighQualified Users May Lose Rewards when They Call Withdraw Function FirstFixed

To be qualified to earn rewards as a user, a vault must meet some requirement they get from the portion of the reward pool. Of course, the user calling the vault of which to claim reward must be the owner, other requirements are that users must have some tokens in the vault, must not have claimed the rewards before, and that the creation time for the vault must be lesser than the timestamps allotted for the rewards. The issue arises when users call the withdraw function first before calling the claimRewards function. This is because at the point of claiming rewards, users amount will already be made to zero, denying them the right to claim rewards even though they met other requirements before calling the withdraw function.

LowFunctions Certain to Revert When Called by Normal Users can be Marked PayableFixed

With the use of modifiers on some functions restrict the privilege of who can call them. This gives us the certainty of some functions reverting when called by users not allowed to call this function, it is recommended to mark these functions as payable as this will save gas when they are called by privileged addresses.

LowIncorrect Check in TransferVault FunctionFixed

Vaults are designed to be associated with owners and the system allows for these vaults to be transferred between different addresses. However, for vaults to be transferred, they are expected to have a non-zero balance. In the transferVault function, the check is otherwise; expecting that a vault must be zero balance before it can be transferred.

LowPrevent Gas Wastage on Transfer of Zero Value for Some TokensFixed

Some ERC20 tokens are designed to revert when called transferring zero values. There are some tokens that exempt this check and when they get whitelisted, it is possible for the contract owner to call the withdrawPenaltyFee function for these tokens and this won’t revert, causing a wastage of gas after the call.

LowUse != 0 to Minimize Gas Instead of >0 for Unsigned ComparisonFixed

For gas optimization purposes, there are some unsigned comparisons made in both contracts to ensure that a function is greater than zero.  This is recommended to use a check that ensures that a value is a non-zero value to save some gas rather than it being exactly greater than zero.

Contracts in scope

No deployed address is recorded for this audit.

The report names a repository or files. Open the report to see its scope.

Repository and files the report names (4)

  • ault.sol
  • VaultyGoalVault.sol
  • /docs.sol
  • VaultyTimeVault.sol

Part of Vaulty - Goal vault and Time Vault’s security record

Vaulty - Goal vault and Time Vault
Audits2 audits by 1 firmLast audit Jun 2023, by QuillAudits.
Critical findingsNo open critical findingsAcross 2 reports.
Open Vaulty - Goal vault and Time Vault’s security record

Security firm

QuillAudits

350 projects reviewed · 459 reports · latest Apr 2025

See QuillAudits’s audits

Something wrong on this page? A missing report, a wrong date, a finding that was fixed since. Tell us and we check it against its source.

Tell us