GreedyArt

QuillAuditsFiles named in the report

Audit · firm’s term: audit report

QuillAudits reviewed GreedyArt on 16 Nov 2023: 6 findings, 0 critical; 5 marked fixed, 1 open.

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

Report hosted on quillaudits.com.

Trustblock does not review code.

Findings6

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

SeverityOpenAcknowledgedFixed
Critical000
High001
Medium101
Low003
HighPrecision Loss in Fee CalculationFixed

We used a specific technique for analyzing these: manually expanding the function calls & variables in an equation to expose hidden division before multiplication. The code snippet shown above exhibits a potential precision loss issue in the calculation of the partnerFee and then dividing the result by 10000. This sequence of operations can lead to precision loss. Precision loss in financial calculations can result in inaccurate fee distributions, potentially leading to financial discrepancies and unintended outcomes.Simplified equation: partnerFee = (((amountIn_ * uint256(PROJECT_FEE_RATE)) / 10000 * uint256(partners[codes[code_]].rewardRate)) / 10000)

MediumFunds can be lost if any partner, projectFeeReceiver addresses is blacklistedFixed

Popular tokens such as USDT may implement a blocklist of addresses that are not allowed to send or receive that token. This will cause a function to revert when attempting to transfer to one of these addresses.If any of the partner, projectFeeReceiver addresses is blacklisted (due to illegal activities, using Tornado Cash for privacy reasons, etc.), depending on the implementation this could lock funds in a contract indefinitely.

LowLack of Check for Existing Whitelisting StatusFixed

The functions addToWhitelist and removeFromWhitelist lack checks to verify whether an address is already whitelisted or not before attempting to add or remove it. Without this verification, redundant operations may occur, potentially leading to increased gas costs or unintended changes in the whitelist status. The absence of a check for existing whitelisting status could result in inefficiencies and unnecessary state modifications.

LowSingle-step ownership transfer pattern is dangerousFixed

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 onlyOwner 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.

LowState-changing methods are missing event emissionsFixed

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.

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)

  • GreedyMarket.sol
  • GreedyToken.sol

Part of GreedyArt’s security record

GreedyArt
Audits1 audit by 1 firmLast audit Nov 2023, by QuillAudits.
Critical findingsNo open critical findingsIn 1 report.
Open GreedyArt’s security record

Security firm

QuillAudits

350 projects reviewed · 459 reports · latest Apr 2025

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