This is the report from a security audit performed on Gigzi by Il Kadyrov.
The audit focused primarily on the security of Gigzi contracts.
- https://github.com/GigziProject/GigziContracts/blob/master/contracts/FeeableToken.sol
- https://github.com/GigziProject/GigziContracts/blob/master/contracts/GigBlack.sol
- https://github.com/GigziProject/GigziContracts/blob/master/contracts/GigCrowdsale.sol
- https://github.com/GigziProject/GigziContracts/blob/master/contracts/GigGold.sol
- https://github.com/GigziProject/GigziContracts/blob/master/contracts/GigPlatinum.sol
- https://github.com/GigziProject/GigziContracts/blob/master/contracts/GigSilver.sol
- https://github.com/GigziProject/GigziContracts/blob/master/contracts/Migrations.sol
- https://github.com/GigziProject/GigziContracts/blob/master/contracts/helper/MessageHelper.sol
In total, 6 issues were reported including:
-
2 high severity issues.
-
2 medium severity issues.
-
1 low severity issues.
-
1 minor observation.
Account reward calculated as balance multiplied to reward time in millis (lines 147, 189). It's a very large number, because we multiply on millis. And after a long period accounts' balance will be more than totalSupply.
Need to rewrite logic
In comment before function written that rewards will calculated in percent(line 130). But it calculated as balance multiplied to time difference between last reward calculation and now
Need to rewrite logic.
Modifier restricted(line 8) will not work correctly, it will pass if msg.sender not owner too.
Rewrite restricted modifier.
modifier restricted() {
require(msg.sender == owner);
_;
}
Not in all operations there used SafeMath, for example lines: 97, 147, 150, 189.
Need to use SafeMath in all operations for protecting yourself from over- or under- flow.
Used solidity version is old.
Need to use one of the latest version of solidity.
Left TODO comments in code. Lines 114, 205, 206
Need to remove all TODO comments or to finish your code.
This smart contract has some high severity vulnerabilities.
Any further changes to the contracts will leave them in unaudited state.
Two high severity vulnerabilities were detected. The reported issues can directly hurt the Gigzi smart contracts.
You need to fix all high severity issues and we highly recommend you to complete other bug bounty before use.