Quantstamp reviewed Voyager (Voyager Token) on 12 Feb 2021: 10 findings, 0 critical; 6 marked fixed, 2 acknowledged, 2 open.
Report hosted on certificate.quantstamp.com.
Trustblock does not review code.
Statuses are the security firm’s own, from its report.
| Severity | Open | Acknowledged | Fixed |
|---|---|---|---|
| Critical | 0 | 0 | 0 |
| High | 0 | 0 | 2 |
| Medium | 0 | 0 | 2 |
| Low | 2 | 2 | 2 |
In the `Staking` contract constructor, `_lastInterestAccruedTimestamp` could be set to be in the past, i.e., when `startingTimestamp < block.timestamp`. This seems incorrect, and could lead to unknown side effects.
The integer division in Solidity leads to a loss in precision due to the truncation of decimal digits. Therefore division should be always performed as the last arithmetic operation in any computation where this is possible. 1. `Staking._calculateAccruedInterest()` performs a multiplication on the result of a division: - `newBalance = newBalance.mul((uint256(1000000).add(_interestRateDaily)) ** daysRemain).div(1000000 ** daysRemain)` on L228 - `newBalance = newBalance.mul((uint256(1000000).add(_interestRateDaily)) ** 10).div(1000000 ** 10)` on L231 2. `Staking._calculateAccruedInterest()` performs a multiplication on the result of a division: - `daysElapsed = (block.timestamp.sub(_lastInterestAccruedTimestamp)).div(86400)` on L222 - `timestamp = _lastInterestAccruedTimestamp.add(daysElapsed.mul(86400))` on L237.
The report names a repository or files. Open the report to see its scope.
Repository and files the report names (8)
236 projects reviewed · 332 reports · latest Oct 2026
See Quantstamp’s auditsSomething 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