Etherice security record

Ethereumetherice.app

As of 3 Nov 2026, Etherice has 1 audit report on Trustblock, by CertiK, dated 7 Nov 2022. That report lists no open critical findings.

Critical findings
No open critical findings
In 1 report.
Open the latest report
Your label, live
Get the label for your site

Record last updated . It holds audits and findings, contracts and incidents up to Nov 2026. Trustblock does not review code.

Audits1

Newest first

AuditSecurity firmDateScopeCritical findingsReport
EthericeSecurity firm: CertiKDate: Scope: Files named in the reportNo open critical findingsOpen · skynet.certik.com

Findings31

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

SeverityOpenAcknowledgedFixed
Critical000
High301
Medium003
Low6018
HighLack of Validation `_duration` in `fillLoan()` FuEtherice · CertiK · 7 Nov 2022Fixed

The lack of `_duration` validation in the `fillLoan()` function allows to take a loan whose duration will be exceeded of `_stake.endDay`.

Open the report
MediumA Participant Can Always Win the Lottery by CalliEtherice · CertiK · 7 Nov 2022Fixed

A Participant can always win the lottery by calling `doDailyUpdate()`. To do this, the participant must: 1. Wait until the end of the day; 2. Place the highest bet; 3. Call `doDailyUpdate()` before anyone makes a big bet.

Open the report
MediumThe `_loan` value is not updated before the checkEtherice · CertiK · 7 Nov 2022Fixed

The `_loan` value is not updated before the check which causes the check of `_loan.filledBy` and `_loan.requestedBy` values to be incorrect.

Open the report
MediumThe `calcTokenValue()` will not work if `currentDEtherice · CertiK · 7 Nov 2022Fixed

The `calcTokenValue()` will not work if `currentDay` is not updated.

Open the report
LowComment is inconsistent with codeEtherice · CertiK · 7 Nov 2022Fixed

The event `BiggestBuyCompWinner` is emitted from `EthericeBiggestBuyFlat.sol`.

Open the report
LowCommented Out CodeEtherice · CertiK · 7 Nov 2022Fixed

Commented out code is redundant.

Open the report
LowDeclaration Naming ConventionEtherice · CertiK · 7 Nov 2022Fixed

Internal and private function names don't start with "_".

Open the report
LowDivide Before MultiplyEtherice · CertiK · 7 Nov 2022Fixed

Performing integer division before multiplication truncates the low bits, losing the precision of calculation. ```solidity=897 uint256 _marketingTax = (_amount / _totalTax) * marketing_percentage; ``` --- ```solidity=898 uint256 _rewardsTax = (_amount / _totalTax) * rewards_percentage; ``` --- ```solidity=899 uint256 _buybackTax = (_amount / _totalTax) * buyback_percentage; ``` --- ```solidity=900 uint256 _buyCompTax = (biggestBuy_percent > 0) ? (_amount / _totalTax) * biggestBuy_percent : 0; ```

Open the report
LowFee Denominator Should Be Declared as ConstantEtherice · CertiK · 7 Nov 2022Fixed

The magic number `1000` is used as fee denominator across different contracts.

Open the report
LowFunction Should Be Declared ExternalEtherice · CertiK · 7 Nov 2022Fixed

The functions which are never called internally within the contract should have external visibility for gas optimization.

Open the report
Show 10 more
LowInconsistency in the description in the `StakeSolEtherice · CertiK · 7 Nov 2022Fixed

In the event `StakeSold` one of the fields is `price` but when filling the event in the function `buyStake()` use `_sellAmount`.

Open the report
LowLack of `mapStakes[_stakeId].forSalePrice` ValidaEtherice · CertiK · 7 Nov 2022Fixed

The `cancelStakeSellRequest()` function does not check that the value of `mapStakes[_stakeId].forSalePrice` is not zero, so it will emit event `CancelStakeSellRequest` even though there was no request.

Open the report
LowMissing Error MessagesEtherice · CertiK · 7 Nov 2022Fixed

The **require** can be used to check for conditions and throw an exception if the condition is not met. It is better to provide a string message containing details about the error that will be passed back to the caller.

Open the report
LowMissing Zero Address ValidationEtherice · CertiK · 7 Nov 2022Fixed

Addresses should be checked before assignment or external call to make sure they are not zero addresses. ```solidity=793 _stakingContract = _stakingCa; ``` - `_stakingCa` is not zero-checked before being used. ```solidity=333 _tokenContract = TokenContractInterface(_address); ``` - `_address` is not zero-checked before being used. ```solidity=240 _tokenContract = EthericeTokenInterface(_tokenAddress); ``` - `_tokenAddress` is not zero-checked before being used.

Open the report
LowPotential Reentrancy AttackEtherice · CertiK · 7 Nov 2022Fixed

A reentrancy attack can occur when the contract creates a function that makes an external call to another untrusted contract before resolving any effects. If the attacker can control the untrusted contract, they can make a recursive call back to the original function, repeating interactions that would have otherwise not run after the external call resolved the effects.

Open the report
LowThe `_val` naming is not informativeEtherice · CertiK · 7 Nov 2022Fixed

The `_val` naming is not informative.

Open the report
LowThe `TODO` CommentEtherice · CertiK · 7 Nov 2022Fixed

The aforementioned line has a TODO comment. It looks like there is uncompleted function according to the comment. If not, consider removing the redundant TODO comment. A good practice is that there is not TODO comment in product codes.

Open the report
LowTypo in Name `dayDivendPool`Etherice · CertiK · 7 Nov 2022Fixed

There is a typo in name `dayDivendPool`. Expected `dayDividendPool`.

Open the report
LowUnlocked Compiler VersionEtherice · CertiK · 7 Nov 2022Fixed

The contract has unlocked compiler version. An unlocked compiler version in the source code of the contract permits the user to compile it at or above a particular version. This, in turn, leads to differences in the generated bytecode between compilations due to differing compiler version numbers. This can lead to an ambiguity when debugging as compiler specific bugs may occur in the codebase that would be hard to identify over a span of multiple compiler versions rather than a specific one.

Open the report
LowUsage of `memory` Variable Over `storage`Etherice · CertiK · 7 Nov 2022Fixed

The whole structure will be retrieved from storage to memory yet only one field is needed.

Open the report
Show 2 more
LowUsage of `transfer`/`send` for sending EtherEtherice · CertiK · 7 Nov 2022Fixed

It is not recommended to use Solidity's `transfer()` and `send()` functions for transferring Ether, 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.

Open the report
LowUsage of Magic NumberEtherice · CertiK · 7 Nov 2022Fixed

The `fillLoan()` function uses the magic number `98` as development fees. The `buyStake()` function uses the magic number `90` as development fees.

Open the report

Contracts

No deployed address is recorded for these audits.

The reports name a repository or files. Open a report to see its scope.

The repositories and files the reports name

Show this on your site

Is this your project? Show this record on your own website. The label states what the record holds, links to this page and updates by itself. It is free and needs no sign-in.

Content

Facts

Automatic: the three strongest facts of this project’s own record (its last audit and two more), highlighted. They update with the record. Picking a fact turns Automatic off.

Fixed as
Language

Style

Layout
Theme
Accent
Corners

Format

Size
Date
Embed as
HTML
<head>
<script src="https://widget.trustblock.run/project-widget.min.js" defer></script>
</head>
<body>
<div
data-tb-project-widget
data-tb-project-slug="etherice"
></div>
</body>

Paste the code where the label should appear. It uses no API credit and updates by itself.

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