FandomDAO

CertiKRepository at commit efb5877

CertiK reviewed Fandomdao on 25 Mar 2024: 9 findings, 0 critical; 5 acknowledged, 4 open.

No open critical findings
Open the reportOpen Fandomdao’s security record

Report hosted on skynet.certik.com.

Trustblock does not review code.

Findings9

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

SeverityOpenAcknowledgedFixed
Critical000
High040
Medium010
Low400
LowInefficient Memory ParameterOpen

One or more parameters with `memory` data location are never modified in their functions and those functions are never called internally within the contract. Thus, their data location can be changed to `calldata` to avoid the gas consumption copying from calldata to memory. ```solidity=16 function createContract( ``` `createContract` has memory location parameters: `initData`. --- ```solidity=28 function upgradeContract( ``` `upgradeContract` has memory location parameters: `initData`.

LowInsufficient Access Control in `withdrawAccount()Open

The `TokenWrapper` contract contains two critical functions, `withdrawAccount()` and `withdrawExcessByAdmin()`, which are currently accessible by any external caller. This poses a significant security risk as it allows unauthorized users to withdraw tokens from any account and withdraw excess tokens from the contract.

LowPotential Out-of-Gas ExceptionOpen

When a loop allows an arbitrary number of iterations or accesses state variables in its body, the function may run out of gas and revert the transaction. ```solidity=145 for (uint256 i = startIndex; i < endIndex; i++) { ``` Function `DpPool.getStakeholders` contains a loop and its loop condition depends on parameters: `endIndex`, `startIndex`. --- ```solidity=163 for (uint256 i = startIndex; i < endIndex; i++) { ``` Function `DpPool.getStakeholderDetails` contains a loop and its loop condition depends on parameters: `endIndex`, `startIndex`.

LowThird-Party Dependency UsageOpen

The contract is serving as the underlying entity to interact with one or more third party protocols. The scope of the audit treats third party entities as black boxes and assumes their functional correctness. However, in the real world, third parties can be compromised and this may lead to lost or stolen assets. In addition, upgrades of third parties can possibly create severe impacts, such as increasing fees of third parties, migrating to new LP pools, etc. ```solidity=17 IERC20 public stakeToken; ``` - The contract `TokenWrapper` interacts with third party contract with `IERC20` interface via `stakeToken`.

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

  • https://github.com/STAIRGLOBAL/fandom-pool-contract/contracts/DpPool.sol at commit efb587750a9c4eeed7ccfdb8b73f331f958734d1
  • https://github.com/STAIRGLOBAL/fandom-pool-contract/contracts/TransparentFactory.sol at commit efb587750a9c4eeed7ccfdb8b73f331f958734d1

Part of Fandomdao’s security record

Fandomdao
Audits1 audit by 1 firmLast audit Mar 2024, by CertiK.
Critical findingsNo open critical findingsIn 1 report.
Open Fandomdao’s security record

Security firm

CertiK

1,044 projects reviewed · 1,375 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