Meta Demos Audit

CertiKFiles named in the report

CertiK reviewed Meta Demos (Meta Demos Audit) on 27 Sep 2022: 7 findings, 0 critical; 3 marked fixed, 4 open.

No open critical findings
Open the reportOpen Meta Demos’s security record

Report hosted on skynet.certik.com.

Trustblock does not review code.

Findings7

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

SeverityOpenAcknowledgedFixed
Critical000
High200
Medium001
Low202
HighCentralization Related Risks in `Coin.sol`Open

In the contract `Coin`, the role `MANAGER_ROLE` has authority over the following function(s): - function `revokeVested()`, `revokeVestedAll()` and `revokeVestedAllBatch()`, to revoke vesting. - function `distribute()` and `distributeVested()`, to distribute the token in normal or vested way. - function `setExcludedFee()`, `setForcedFee()` and `setFees()`, to manage the fee rules. - function `withdrawFee()`, to withdraw the fee from the contract. - function `togglePause()`, to pause or unpause the contract. The role `DEFAULT_ADMIN_ROLE` has authority over the following function(s): - function `_authorizeUpgrade()`, to change the proxy contract. Any compromise to the privileged accounts may allow a hacker to take advantage of this authority and bring unpredictable damages to the project.

HighCentralized Control of Contract UpgradeOpen

The mentioned contracts are upgradeable contracts, the owner can upgrade the contract without the community's commitment. If an attacker compromises the account, he can change the implementation of the contract and drain tokens from the contract.

LowCostly Operation Inside LoopOpen

Accessing storage variables in a loop can be costly in terms of gas consumption. ```solidity=291 _reservedAmount += fee; ```

LowOverlap of checksOpen

The checking `nonTransferable == 0 || transferable >= amount + nonTransferable` can be simplified. Logically, checking if `nonTransferable == 0` makes no sense, as the function does not have special strategy for the condition. All that should be checked is `transferable >= amount + nonTransferable`. And it is more demanding than the outer checking `fromBalance >= amount`.

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/lib/ERC20Vesting.sol
  • contracts/Coin.sol
  • contracts/lib/ERC20Fee.sol

Part of Meta Demos’s security record

Meta Demos
Audits1 audit by 1 firmLast audit Sep 2022, by CertiK.
Critical findingsNo open critical findingsIn 1 report.
Open Meta Demos’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