DIGIKA - Audit

CertiK1 address on Ethereum

CertiK reviewed DIGIKA (DIGIKA - Audit) on 27 Feb 2025: 9 findings, 0 critical; 7 acknowledged, 2 open.

No open critical findings
Open the reportOpen DIGIKA’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
High200
Medium010
Low060
MediumConcerns on the Design of Transaction Cooldown PeAcknowledged

As per the design, there's a cooldown period for transferring tokens from an account, initially set at 15 seconds. This prevents the sender from making continuous transfers, which could cause unexpected issues. For instance, if the token is listed on an exchange like `Uniswap`, transferring tokens from the pool to a target address requires a 15-second wait when users purchase tokens or remove liquidity. Frequent transactions could result in failures due to this delay. ```solidity function _transfer(address sender, address recipient, uint256 amount) internal virtual override { ... // Anti-MEV : impose un cooldown entre les transactions de la même adresse. require( block.timestamp >= lastTransactionTime[sender] + transactionCooldown, "Anti-MEV cooldown" ); lastTransactionTime[sender] = block.timestamp; ... } ```

LowClarification on Fee Exclusion DesignAcknowledged

According to the design, when an account does not meet specific conditions and the fee is non-zero, a transaction fee is applied. ```solidity bool skipFee = (sender == address(this) || recipient == address(this) || isFeeExempt[sender] || isFeeExempt[recipient]); ```

LowConcerns on The `ERC20Mock` and `Lock` ContractsAcknowledged

The `ERC20Mock` and `Lock` contracts appear to lack meaningful functionality, as they do not offer any significant features.

LowInconsistent Solidity VersionsAcknowledged

The codebase contains multiple Solidity versions, which can lead to unexpected behavior, potential vulnerabilities, difficulties in maintaining the code, and inconsistencies in the execution of the smart contract. Using different versions may also result in increased complexity during code auditing, as different security features and bug fixes are present in different versions of the compiler. Versions used: `^0.8.0`, `^0.8.1`, `^0.8.18` ```solidity=1093 pragma solidity ^0.8.0; ``` `^0.8.0` is used in DGKToken.sol file. ```solidity=1093 pragma solidity ^0.8.0; ``` ```solidity=700 pragma solidity ^0.8.1; ``` `^0.8.1` is used in DGKToken.sol file. ```solidity=700 pragma solidity ^0.8.1; ``` ```solidity=1331 pragma solidity ^0.8.18; ``` `^0.8.18` is used in DGKToken.sol file. ```solidity=1331 pragma solidity ^0.8.18; ```

LowMinting to a Blacklist Leads to Non-TransferabiliAcknowledged

According to the design, blacklisted addresses cannot receive or send tokens. ```solidity function _transfer(address sender, address recipient, uint256 amount) internal virtual override { require(!paused, "Token is paused"); require(!blacklisted[sender], "Sender blacklisted"); require(!blacklisted[recipient], "Recipient blacklisted"); ... } ``` However, there is no blacklist check for the target address when minting tokens, which may result in these minted tokens being non-transferable.

LowMissing Emit EventsAcknowledged

There should always be events emitted in the sensitive functions that are controlled by centralization roles.

LowUsage of `transfer`/`send` for Sending Native TokAcknowledged

It is not recommended to use Solidity's `transfer()` and `send()` functions for transferring native tokens, since some contracts may not be able to receive the funds. Those functions forward only a fixed amount of gas (2300 specifically) and the receiving contracts may run out of gas before finishing the transfer. Also, EVM instructions' gas costs may increase in the future. Thus, some contracts that can receive now may stop working in the future due to the gas limitation. ```solidity=1361 owner.transfer(address(this).balance); ``` - `Lock.withdraw` uses `transfer()`.

Contracts in scope1

AddressChainSource code
0xf4445049080ae2fde75aaf0c6e603fb55875f02cChain: EthereumSource code: Verified source

Part of DIGIKA’s security record

DIGIKA
Audits1 audit by 1 firmLast audit Feb 2025, by CertiK.
Critical findingsNo open critical findingsIn 1 report.
Open DIGIKA’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