Dora Grant DAO V4

CertiKFiles named in the report

CertiK reviewed Dora Factory (Dora Grant DAO V4) on 6 Mar 2023: 11 findings, 0 critical; 4 marked fixed, 1 acknowledged, 6 open.

No open critical findings
Open the reportOpen Dora Factory’s security record

Report hosted on skynet.certik.com.

Trustblock does not review code.

Findings11

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

SeverityOpenAcknowledgedFixed
Critical000
High010
Medium000
Low604
LowStake Cannot Be Fully WithdrawnFixed

The function `exit()` requires the `_amount` less than the `stakingAmount` of users, which means users cannot withdraw all staked tokens. ```solidity=82 function exit(uint256 _amount) external nonReentrant { User storage u = user[msg.sender]; require(u.stakingAmount > _amount); u.stakingAmount -= _amount; u.exitAmount += _amount; u.exitTime = block.timestamp + EXIT_BUFFER_TIME; emit Exit(msg.sender, _amount); } ``` In the `slashTo`, users on the whitelist cannot withdraw all staked tokens from penalized accounts. ```solidity=143 function slashTo( address _slashed, address _to, uint256 _amount ) external { ... uint256 totalAmount = u.stakingAmount + u.exitAmount; require(_amount < totalAmount); require(slashedAmount[_slashed] + _amount < totalAmount); ... } ```

LowTypoFixed

The variable in the above lines should be named `_reentrancyLock`.

LowUnlocked Compiler VersionFixed

The contract has unlocked compiler version. An unlocked compiler version in the source code of the contract permits the user to compile it at or above a particular version. This, in turn, leads to differences in the generated bytecode between compilations due to different compiler versions. This can lead to an ambiguity when debugging as compiler specific bugs may occur in the codebase that would be hard to identify over a span of multiple compiler versions rather than a specific one.

LowUnprotected InitializerFixed

One or more logic contracts do not protect their initializers. An attacker can call the initializer and assume ownership of the logic contract, whereby she can perform privileged operations that trick unsuspecting users into believing that she is the owner of the upgradeable contract. ```solidity=7 contract BuidlDonation { ``` - `BuidlDonation` is an upgradeable contract that does not protect its initializer. ```solidity=66 function init(IERC20 _token, DoraChecker _checker) external { ``` - `init` is an unprotected initializer function. --- ```solidity=6 contract DoraChecker { ``` - `DoraChecker` is an upgradeable contract that does not protect its initializer. ```solidity=52 function init(IERC20 _token) public { ``` - `init` is an unprotected initializer function.

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 (3)

  • contracts/DoraChecker.sol
  • contracts/StakingEntry.sol
  • contracts/BuidlDonation.sol

Part of Dora Factory’s security record

Dora Factory
Audits4 audits by 2 firmsLast audit Jun 2024, by Oak Security.
Critical findings1 critical acknowledged, not fixedReported in “Dora Vota audit” by Oak Security, Jun 2024. The team acknowledged it.
Open Dora Factory’s security record

Security firm

CertiK

1,044 projects reviewed · 1,393 reports · latest May 2025

See CertiK’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