Audit · firm’s term: audit report
QuillAudits reviewed ccFound on 19 Feb 2024: 7 findings, 0 critical; all marked fixed.
Report hosted on quillaudits.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 | 1 |
| Low | 0 | 0 | 4 |
The mintToken function incorrectly mints tokens without considering the token's decimal places. This can lead to a significant disparity between the intended and actual amount of tokens minted, potentially causing economic imbalances within the token ecosystem.
he Owner of the contract is usually the account that deploys the contract. As a result, the Owner is able to perform some privileged functions like mintToken(), includeInFees(), pause(), unpause() and blacklist() etc. In the FoundCoin.sol smart contract, the renounceOwnership function is used to renounce the Owner permission. Renouncing ownership before transferring would result in the contract having no Owner, eliminating the ability to call privileged functions.
Contracts have owners with privileged rights to perform admin tasks and need to be trusted to not perform malicious updates or drain funds.
Custom errors reduce the contract size and can provide easier integration with a protocol. Consider using those instead of require statements with string error.
Inheriting from OpenZeppelin's Ownable contract means you are using a single-step ownership transfer pattern. If an admin provides an incorrect address for the new owner this will result in none of the 'Operator' marked methods being callable again. The better way to do this is to use a two-step ownership transfer approach, where the new owner should first claim its new rights before they are transferred.
Critical functions within the contract lack the emission of events. Events play a vital role in providing transparency, enabling external systems to react to changes, and offering a way to track important contract activities. The absence of events can hinder monitoring and auditing efforts, making it difficult to detect and respond to critical contract actions.
The ERC-20 transfer function, according to the ERC-20 standard, returns a boolean value indicating the success or failure of the operation. Ignoring this return value can lead to situations where a transfer fails (due to reasons like insufficient balance, or transfer to a contract that doesn't accept tokens), but the contract continues execution as if it had succeeded. This oversight could cause discrepancies in the contract's internal accounting, leading to potential vulnerabilities or loss of funds under specific conditions.
| Address | Chain | Source code |
|---|---|---|
| 0x1acb…b4f40x1acbc7d9c40aa8955281ae29b581bcf002eeb4f4 | Chain: BNB Chain | Source code: Verified source |
350 projects reviewed · 459 reports · latest Apr 2025
See QuillAudits’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