Quarashi Network smart contract security audit report performed by Callisto Security Audit Department
https://etherscan.io/address/0x0aff88b4cf3015c9c17f1da1fccb88c632f3505e#code
In total, 3 issues were reported including:
-
0 high severity issues.
-
0 medium severity issues.
-
2 low severity issues.
-
0 notes.
-
1 owner privileges.
No critical security issues were found.
Lack of transaction handling mechanism issue. WARNING! This is a very common issue and it already caused millions of dollars losses for lots of token users! More details here.
Add the following code to the transfer(_to address, ...)
function:
require( _to != address(this) );
The functions freezingCount()
, getFreezing()
, freezeTo()
, releaseAll()
use lops of indefinite length and can use a lot of gas.
Try to rebuild functions logic to avoid long loop in functions.
Contract owner has right:
- Mint any amount of tokens to any address
- Pause/unpause tokens transfer.
- Open-source contact.
- The contract should pass a bug bounty after the completion of the security audit.
- Public testing.
- Automated anomaly detection systems. - NOT IMPLEMENTED. A simple anomaly detection algorithm is recommended to be implemented to detect behavior that is atypical compared to normal for this contract. For instance the contract must halt deposits in case a large amount is being withdrawn in short period of time until the owner or the community of the contract approves further operationing.
- Multisig owner account.
- Stnadard ERC20-related issues. - NOT IMPLEMENTED. It is known that every contract can potentially receive unintended ERC20-token deposit without the ability to reject it even if the contract is not intended to receive or hold tokens. As the result it is recommended to implement a function that will allow to extract any arbitrary number of tokens from the contract.
The audited smart contract can be deployed. Only low severity issues were found during the audit.
It is recommended to adhere to the security practices described in pt. 4 of this report in order to ensure the operability of the contract and prevent any issues which are not directly related to the code of this smart-contract.