Dtec Audit

CertiKFiles named in the report

CertiK reviewed The Dtec World (Dtec Audit) on 12 Dec 2023: 18 findings, 0 critical; 13 marked fixed, 5 open.

No open critical findings
Open the reportOpen The Dtec World’s security record

Report hosted on skynet.certik.com.

Trustblock does not review code.

Findings18

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

SeverityOpenAcknowledgedFixed
Critical000
High201
Medium003
Low309
HighCentralization Related RisksOpen

### DTECTokenSale.sol In the contract `DTECTokenSale` the role `_owner` has authority over the functions listed below. - addMods(): add addresses into `mods` role. - togglePause(): pause or unpause the buying tokens. - setStableAddresses(): set the `USDC` and `USDT`. - setImmediateReleaseRate(): set `immediateReleaseRate`. - setPaymentReceiver(): set `paymentReceiver`. - setSalePrice(): set `salePrice`. - pullTokens(): transfer `DTEC` to `_owner`. - transferOwnership(): transfer ownership to a new account. - renounceOwnership(): renounce the ownership of the contract. Any compromise to the `_owner` account may allow the hacker to take advantage of this authority, manage the configuration of the contract, and transfer `DTEC` to `_owner`. ### DTECPreSale.sol In the contract `DTECPreSale` the role `_owner` has authority over the functions listed below. - addMods(): add addresses into `mods` role. - togglePause(): pause or unpause the buying tokens. - setStableAddresses(): set the `USDC` and `USDT`. - setImmediateReleaseRate(): set `immediateReleaseRate`. - setPaymentReceiver(): set `paymentReceiver`. - setSalePrice(): set `salePrice`. - pullTokens(): transfer `DTEC` to `_owner`. - transferOwnership(): transfer ownership to a new account. - renounceOwnership(): renounce the ownership of the contract. Any compromise to the `_owner` account may allow the hacker to take advantage of this authority, manage the configuration of the contract, and transfer `DTEC` to `_owner`. ### DTECPrivateSale.sol In the contract `DTECPrivateSale` the role `_owner` has authority over the functions listed below. - addMods(): add addresses into `mods` role. - togglePause(): pause or unpause the buying tokens. - setStableAddresses(): set the `USDC` and `USDT`. - setImmediateReleaseRate(): set `immediateReleaseRate`. - setPaymentReceiver(): set `paymentReceiver`. - setSalePrice(): set `salePrice`. - pullTokens(): transfer `DTEC` to `_owner`. - transferOwnership(): transfer ownership to a new account. - renounceOwnership(): renounce the ownership of the contract. Any compromise to the `_owner` account may allow the hacker to take advantage of this authority, manage the configuration of the contract, and transfer `DTEC` to `_owner`. In the contract `DTECPrivateSale` the role `mods` has authority over the functions listed below. - addWLs(): add addresses into private sale whitelist. Any compromise to the `mods` account may allow the hacker to take advantage of this authority, manage the configuration of the contract. ### DTECPublicSale.sol In the contract `DTECPublicSale` the role `_owner` has authority over the functions listed below. - addMods(): add addresses into `mods` role. - togglePause(): pause or unpause the buying tokens. - setStableAddresses(): set the `USDC` and `USDT`. - setImmediateReleaseRate(): set `immediateReleaseRate`. - setPaymentReceiver(): set `paymentReceiver`. - setSalePrice(): set `salePrice`. - pullTokens(): transfer `DTEC` to `_owner`. - transferOwnership(): transfer ownership to a new account. - renounceOwnership(): renounce the ownership of the contract. Any compromise to the `_owner` account may allow the hacker to take advantage of this authority, manage the configuration of the contract, and transfer `DTEC` to `_owner`. ### LinearLock.sol In the contract `LinearLock` the role `_owner` has authority over the functions listed below. - setReleaseInfo(): set `lockStartTime` and `releaseRate`. - setTokenLocker(): set `tokenLocker`. - setPeriod(): set `period`. - transferOwnership(): transfer ownership to a new account. - renounceOwnership(): renounce the ownership of the contract. Any compromise to the `_owner` account may allow the hacker to take advantage of this authority and manage the configuration of the contract. In the contract `LinearLock` the role `tokenLocker` has authority over the functions listed below. - lockTokens(): increase locked amount of `_user`. Any compromise to the `tokenLocker` account may allow the hacker to take advantage of this authority and manage the data of the contract. ### PreSaleLock.sol In the contract `PreSaleLock` the role `_owner` has authority over the functions listed below. - setReleaseInfo(): set `lockStartTime` and `releaseRate`. - setTokenLocker(): set `tokenLocker`. - setPeriod(): set `period`. - transferOwnership(): transfer ownership to a new account. - renounceOwnership(): renounce the ownership of the contract. Any compromise to the `_owner` account may allow the hacker to take advantage of this authority and manage the configuration of the contract. In the contract `PreSaleLock` the role `tokenLocker` has authority over the functions listed below. - lockTokens(): increase locked amount of `_user`. Any compromise to the `tokenLocker` account may allow the hacker to take advantage of this authority and manage the data of the contract. ### PrivateSaleLock.sol In the contract `PrivateSaleLock` the role `_owner` has authority over the functions list

HighInitial Token DistributionOpen

All of the `DTEC` tokens are sent to the contract deployer or one or several externally-owned account (EOA) addresses. This is a centralization risk because the deployer or the owner(s) of the EOAs can distribute tokens without obtaining the consensus of the community. Any compromise to these addresses may allow a hacker to steal and sell tokens on the market, resulting in severe damage to the project.

Low`USDC` and `USDT` Share The Same PriceOpen

In the contract `DTECTokenSale`, the function `transferFundsAndCalculateReleaseAmounts()` uses the identical `salePrice` for `USDC` and `USDT` tokens. This assumes these two tokens have the same value and decimal.

LowDiscussion on `lockStartTime`Open

In the lock contracts, it is noted that the corresponding contract uses unified variable `lockStartTime` to calculate the claimable `DTEC` amount for all users. As a result, after a certain and long period and the `lockStartTime` is not updated by `_owner` in time, users can immediately claim the purchased tokens after buying, and lock contracts may not work well as intended.

LowHardcode AddressesOpen

The `USDC` and `USDT` are hardcoded in the codebase.

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

  • contracts/LinearLock.sol
  • contracts/PublicSaleLock.sol
  • contracts/DTECPublicSale.sol
  • contracts/DTECPrivateSale.sol
  • contracts/DTECTokenSale.sol
  • PreSaleLock.sol
  • contracts/Vesting.sol
  • PublicSaleLock.sol
  • contracts/PreSaleLock.sol
  • Vesting.sol
  • contracts/DTEC.sol
  • contracts/PrivateSaleLock.sol
  • contracts/DTECPreSale.sol
  • LinearLock.sol
  • PrivateSaleLock.sol

Part of The Dtec World’s security record

The Dtec World
Audits2 audits by 1 firmLast audit Jul 2024, by CertiK.
Critical findingsNo open critical findingsAcross 2 reports.
Open The Dtec World’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