CertiK reviewed Kissantoken (Kissantoken - Audit) on 20 Dec 2022: 5 findings, 0 critical; 1 marked fixed, 4 open.
Report hosted on skynet.certik.com.
Trustblock does not review code.
Statuses are the security firm’s own, from its report.
| Severity | Open | Acknowledged | Fixed |
|---|---|---|---|
| Critical | 0 | 0 | 0 |
| High | 1 | 0 | 1 |
| Medium | 0 | 0 | 0 |
| Low | 3 | 0 | 0 |
All of the KSN tokens are sent to the contract deployer when deploying the contract. This could be a centralization risk as the deployer can distribute KSN tokens without obtaining the consensus of the community. The deployer(0x1601410d5b6e841718a19c10433901121add9f7e) transferred those tokens to another address 0xf451aa1aeb7275a02359b53a3693098c856f1c7a, which currently holds 44.83% of the total supply.
The functions which are never called internally within the contract should have external visibility for gas optimization. ```solidity=321 function name() public view virtual returns (string memory) { ``` --- ```solidity=329 function symbol() public view virtual returns (string memory) { ``` --- ```solidity=353 function totalSupply() public view virtual override returns (uint256) { ``` --- ```solidity=360 function balanceOf(address account) public view virtual override returns (uint256) { ``` --- ```solidity=372 function transfer(address recipient, uint256 amount) public virtual override returns (bool) { ``` --- ```solidity=380 function allowance(address owner, address spender) public view virtual override returns (uint256) { ``` --- ```solidity=391 function approve(address spender, uint256 amount) public virtual override returns (bool) { ``` --- ```solidity=409 function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { ``` --- ```solidity=427 function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { ``` --- ```solidity=446 function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { ``` --- ```solidity=593 function transferOwnership(address newOwner) public onlyOwner { ``` --- ```solidity=602 function renounceOwnership() public onlyOwner { ```
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.
It is highly recommended NOT to include OpenZeppelin library code directly in the source code, but import the original library to minimize risk because even slight changes to the library code may lead to critical/major vulnerabilities/bugs. For Solidity version 0.6.x, the latest OpenZeppelin version 3.4.2 should be used.
| Address | Chain | Source code |
|---|---|---|
| 0xc8a1…06bd0xc8a11f433512c16ed895245f34bcc2ca44eb06bd | Chain: BNB Chain | Source code: Verified source |
1,044 projects reviewed · 1,375 reports · latest May 2025
See CertiK’s auditsSomething 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