NSBC Token - Smart Contract Audit Report
Audit Summary
NSBC Token ($NSBC) is a new BEP-20 token on the Binance Smart Chain.We reviewed the NSBC contract at 0x64A886C78bDe80cA03B621cE7282f05B180F1FD6 on the Binance Smart Chain mainnet.
Audit Findings
Please ensure trust in the team as they have substantial control in the ecosystem.
Date: January 28th, 2022.Finding #1 - NSBC - Informational
Description: Several functions are declared public, but are never called internally.Recommendation: We recommend declaring these functions external for additional gas savings on each call.setLockingStatus, name, symbol, decimals, totalSupply, maxSupply, minted, balanceOf, transfer, allowance, approve, transferFrom, increaseAllowance, decreaseAllowance, mint
Finding #2 - NSBC - Informational
Description: The setManager() function is redundant as the onlyManager() modifier is never used in the contract.
Recommendation: The setManager() function and onlyManager() modifier can be removed to reduce contract size and deployment costs.Finding #3 - NSBC - Informational
Description: In the _transfer() function, the second condition in the first require statement is redundant.Recommendation: The second condition should either be removed or altered to fit the project team's intended functionality.require((lockingAddressStatus[sender] == false) || (lockingAddressStatus[sender] == false && lockingStatus == false));
Contracts Overview
- The total supply of the token is currently 400 million $NSBC [400,000,000].
- The owner can mint any amount of tokens to any address up to the maximum supply cap of 1 billion tokens.
- Any address that the owner mints tokens to (with the exception of their own address) is permanently blacklisted from initiating transfers and their tokens are essentially locked.
- No burn functions are present; though the circulating supply can be reduced by sending tokens to the 0x..dead address if desired.
- At the time of writing this report, 100% of the total supply belongs to the owner.
- There are no fees associated with transferring tokens.
- The contract utilizes the SafeMath library to protect against overflows/underflows.
- The contract complies with the BEP-20 token standard.
External Threat Results
Vulnerability Category | Notes | Result |
---|---|---|
Arbitrary Storage Write | N/A | PASS |
Arbitrary Jump | N/A | PASS |
Centralization of Control | WARNING | |
Delegate Call to Untrusted Contract | N/A | PASS |
Dependence on Predictable Variables | N/A | PASS |
Deprecated Opcodes | N/A | PASS |
Ether Thief | N/A | PASS |
Exceptions | N/A | PASS |
External Calls | N/A | PASS |
Flash Loans | N/A | PASS |
Integer Over/Underflow | N/A | PASS |
Logical Issues | N/A | PASS |
Multiple Sends | N/A | PASS |
Oracles | N/A | PASS |
Suicide | N/A | PASS |
State Change External Calls | N/A | PASS |
Unchecked Retval | N/A | PASS |
User Supplied Assertion | N/A | PASS |
Critical Solidity Compiler | N/A | PASS |
Overall Contract Safety | PASS |
Function Graph
Inheritance Chart
Functions Overview
($) = payable function
# = non-constant function
+ [Lib] SafeMath
- [Int] add
- [Int] sub
- [Int] sub
- [Int] mul
- [Int] div
- [Int] div
- [Int] mod
- [Int] mod
+ [Int] IBEP20
- [Ext] totalSupply
- [Ext] decimals
- [Ext] symbol
- [Ext] name
- [Ext] getOwner
- [Ext] balanceOf
- [Ext] transfer #
- [Ext] allowance
- [Ext] approve #
- [Ext] transferFrom #
+ Context
- [Int] _msgSender
- [Int] _msgData
+ Ownable (Context)
- [Pub] #
- [Pub] owner
- [Pub] renounceOwnership #
- modifiers: onlyOwner
- [Pub] transferOwnership #
- modifiers: onlyOwner
+ NSBC (Context, IBEP20, Ownable)
- [Pub] #
- [Pub] setManager #
- modifiers: onlyManager
- [Pub] setLockingStatus #
- [Ext] getOwner
- [Pub] name
- [Pub] symbol
- [Pub] decimals
- [Pub] totalSupply
- [Pub] maxSupply
- [Pub] minted
- [Pub] balanceOf
- [Pub] transfer #
- [Pub] allowance
- [Pub] approve #
- [Pub] transferFrom #
- [Pub] increaseAllowance #
- [Pub] decreaseAllowance #
- [Pub] mint #
- modifiers: onlyOwner
- [Int] _transfer #
- [Int] _mint #
- [Int] _burn #
- [Int] _approve #
- [Int] _burnFrom #