Nirvana-Audit

CertiKFiles named in the report

CertiK reviewed NIRVANA (Nirvana-Audit) on 21 Dec 2022: 6 findings, 0 critical; 3 acknowledged, 3 open.

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

Report hosted on skynet.certik.com.

Trustblock does not review code.

Findings6

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

SeverityOpenAcknowledgedFixed
Critical000
High030
Medium000
Low300
HighCentralization Risks in VanaToken.solAcknowledged

In the contract `HasMinters` the role `_owner` has authority over the functions shown below. - addMinters(): add minters who can mint tokens. - removeMinters(): remove minters who can mint tokens. In the contract `VanaToken` the role `_owner` has authority over the functions shown below. - start(): unpause token transaction. - stop(): pause token transaction. In the contract `VanaToken` the role `minter` has authority over the functions shown below. - mint(): mint tokens, the token supply won't exceed the max supply. However, the cumulative number of tokens minted may exceed the max supply since token holders can burn a certain number of tokens. Any compromise to the `_owner` or `minter` account may allow the hacker to take advantage of this authority.

HighInitial Token DistributionAcknowledged

All **_amount** tokens are sent to the contract deployer when deploying the contract. This is a potential centralization risk as the deployer can distribute **_amount** tokens without the consensus of the community.

HighPotential Infinite LoopAcknowledged

The array’s `delete` function will only delete the data of the last item, but will not update the array length. As a result, the infinite loop would occur when removing minters. ### Infinite Loop Scenario 1. Add the following addresses to the `minters` collection. ```batch ["0xA", "0xB", "0xC"] ``` 2. Delete the first address from the `minters` collection. ```batch ["0xA"] ``` 3. After the execution of the codes from L38 to L45, the values of state variables, `minters` and `minter`, are as below: ```batch minters:["0xA", "0xB", "0xC"] minter:["0xA": false, "0xB": true, "0xC": true] ``` 4. Since the array’s `delete` function will not change the array length, the `minters.length` is still `3`. After the three loops of the `while` codes from L49 and L59, the values of state variables, `minters` and `minter`, are as below, and `i` equals `2`: ```batch minters:["0xC", "0xB", "0x0"] minter:["0xA": false, "0xB": true, "0xC": true] ``` 5. Now, the `while` loop enters an infinite loop because `i` always equals `2` and `minter[0x0]` always returns `false`.

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

  • VanaToken.sol

Part of NIRVANA’s security record

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