CZbnb is pegged via algorithm to BNB on the Binance Smart Chain and is part of the CZpegs protocol.
CZbnbToken.governanceRecoverUnsupported(IERC20) (#1529-1531) ignores return value by _token.transfer(owner(),_token.balanceOf(address(this))) (#1530)
Use SafeERC20, or ensure that the transfer/transferFrom return value is checked.
Additional information: link
Unable to verify that contract auditor is trusted: Certik, Quantstamp, Hacken, Solidity, Paladinsec, Openzeppelin, Verichains
Contract ownership is not renounced (belongs to a wallet)
Reentrancy in CZbnbToken._transfer(address,address,uint256) (#1470-1514):
External calls:
- ILiquidityFund(_taxFund).addLiquidity(_taxAmount) (#1497)
State variables written after the call(s):
- _burn(sender,_burnAmount) (#1506)
- _balances[account] = _balances[account].sub(amount,ERC20: burn amount exceeds balance) (#580)
- super._transfer(sender,recipient,_amount) (#1513)
- _balances[sender] = _balances[sender].sub(amount,ERC20: transfer amount exceeds balance) (#540)
- _balances[recipient] = _balances[recipient].add(amount) (#541)
Apply the check-effects-interactions pattern.
Additional information: link
CZbnbToken.setBurnRate(uint256) (#1335-1338) should emit an event for:
- burnRate = _burnRate (#1337)
CZbnbToken.setTaxRate(uint256) (#1340-1343) should emit an event for:
- taxRate = _taxRate (#1342)
Emit an event for critical parameter changes.
Additional information: link
CZbnbToken.constructor(string,string,uint8,address)._taxFund (#1318) lacks a zero-check on :
- taxFund = _taxFund (#1321)
CZbnbToken.setOracle(address)._oracle (#1327) lacks a zero-check on :
- oracle = _oracle (#1328)
Check that the address is not zero.
Additional information: link
Reentrancy in CZbnbToken._transfer(address,address,uint256) (#1470-1514):
External calls:
- ILiquidityFund(_taxFund).addLiquidity(_taxAmount) (#1497)
State variables written after the call(s):
- _burn(sender,_burnAmount) (#1506)
- _totalBurned = _totalBurned.add(_amount) (#1453)
- _burn(sender,_burnAmount) (#1506)
- _totalSupply = _totalSupply.sub(amount) (#581)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in CZbnbToken._transfer(address,address,uint256) (#1470-1514):
External calls:
- ILiquidityFund(_taxFund).addLiquidity(_taxAmount) (#1497)
Event emitted after the call(s):
- TaxAdded(sender,_taxFund,_taxAmount) (#1499)
- Transfer(account,address(0),amount) (#582)
- _burn(sender,_burnAmount) (#1506)
- Transfer(sender,recipient,amount) (#542)
- super._transfer(sender,recipient,_amount) (#1513)
Apply the check-effects-interactions pattern.
Additional information: link
Address.isContract(address) (#706-715) uses assembly
- INLINE ASM (#713)
Address._verifyCallResult(bool,bytes,string) (#851-868) uses assembly
- INLINE ASM (#860-863)
Do not use evm assembly.
Additional information: link
Different versions of Solidity is used:
- Version used: ['0.6.12', '>=0.6.0<0.8.0', '>=0.6.2<0.8.0']
- >=0.6.0<0.8.0 (#4)
- >=0.6.0<0.8.0 (#32)
- >=0.6.0<0.8.0 (#113)
- >=0.6.0<0.8.0 (#331)
- >=0.6.0<0.8.0 (#639)
- >=0.6.2<0.8.0 (#683)
- >=0.6.0<0.8.0 (#876)
- 0.6.12 (#953)
- >=0.6.0<0.8.0 (#1116)
- >=0.6.0<0.8.0 (#1123)
- 0.6.12 (#1194)
- 0.6.12 (#1236)
- 0.6.12 (#1251)
- 0.6.12 (#1273)
Use one Solidity version.
Additional information: link
Address._verifyCallResult(bool,bytes,string) (#851-868) is never used and should be removed
Address.functionCall(address,bytes) (#759-761) is never used and should be removed
Address.functionCall(address,bytes,string) (#769-771) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#784-786) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#794-801) is never used and should be removed
Address.functionDelegateCall(address,bytes) (#833-835) is never used and should be removed
Address.functionDelegateCall(address,bytes,string) (#843-849) is never used and should be removed
Address.functionStaticCall(address,bytes) (#809-811) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (#819-825) is never used and should be removed
Address.isContract(address) (#706-715) is never used and should be removed
Address.sendValue(address,uint256) (#733-739) is never used and should be removed
Context._msgData() (#21-24) is never used and should be removed
SafeERC20._callOptionalReturn(IERC20,bytes) (#935-945) is never used and should be removed
SafeERC20.safeApprove(IERC20,address,uint256) (#908-917) is never used and should be removed
SafeERC20.safeDecreaseAllowance(IERC20,address,uint256) (#924-927) is never used and should be removed
SafeERC20.safeIncreaseAllowance(IERC20,address,uint256) (#919-922) is never used and should be removed
SafeERC20.safeTransfer(IERC20,address,uint256) (#893-895) is never used and should be removed
SafeERC20.safeTransferFrom(IERC20,address,address,uint256) (#897-899) is never used and should be removed
SafeMath.div(uint256,uint256,string) (#300-303) is never used and should be removed
SafeMath.mod(uint256,uint256) (#262-265) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#320-323) is never used and should be removed
SafeMath.tryAdd(uint256,uint256) (#134-138) is never used and should be removed
SafeMath.tryDiv(uint256,uint256) (#170-173) is never used and should be removed
SafeMath.tryMod(uint256,uint256) (#180-183) is never used and should be removed
SafeMath.tryMul(uint256,uint256) (#155-163) is never used and should be removed
SafeMath.trySub(uint256,uint256) (#145-148) is never used and should be removed
SafeMath8.add(uint8,uint8) (#979-984) is never used and should be removed
SafeMath8.div(uint8,uint8) (#1053-1055) is never used and should be removed
SafeMath8.div(uint8,uint8,string) (#1069-1075) is never used and should be removed
SafeMath8.mod(uint8,uint8) (#1089-1091) is never used and should be removed
SafeMath8.mod(uint8,uint8,string) (#1105-1108) is never used and should be removed
SafeMath8.mul(uint8,uint8) (#1027-1039) is never used and should be removed
SafeMath8.sub(uint8,uint8) (#996-998) is never used and should be removed
SafeMath8.sub(uint8,uint8,string) (#1010-1015) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version>=0.6.0<0.8.0 (#4) is too complex
Pragma version>=0.6.0<0.8.0 (#32) is too complex
Pragma version>=0.6.0<0.8.0 (#113) is too complex
Pragma version>=0.6.0<0.8.0 (#331) is too complex
Pragma version>=0.6.0<0.8.0 (#639) is too complex
Pragma version>=0.6.2<0.8.0 (#683) is too complex
Pragma version>=0.6.0<0.8.0 (#876) is too complex
Pragma version>=0.6.0<0.8.0 (#1116) is too complex
Pragma version>=0.6.0<0.8.0 (#1123) is too complex
Deploy with any of the following Solidity versions: 0.5.16 - 0.5.17, 0.6.11 - 0.6.12, 0.7.5 - 0.7.6 Use a simple pragma version that allows any of these versions. Consider using the latest version of Solidity for testing.
Additional information: link
Low level call in Address.sendValue(address,uint256) (#733-739):
- (success) = recipient.call{value: amount}() (#737)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (#794-801):
- (success,returndata) = target.call{value: value}(data) (#799)
Low level call in Address.functionStaticCall(address,bytes,string) (#819-825):
- (success,returndata) = target.staticcall(data) (#823)
Low level call in Address.functionDelegateCall(address,bytes,string) (#843-849):
- (success,returndata) = target.delegatecall(data) (#847)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Parameter CZbnbToken.setOracle(address)._oracle (#1327) is not in mixedCase
Parameter CZbnbToken.setBurnRate(uint256)._burnRate (#1335) is not in mixedCase
Parameter CZbnbToken.setTaxRate(uint256)._taxRate (#1340) is not in mixedCase
Parameter CZbnbToken.setTaxFund(address)._taxFund (#1345) is not in mixedCase
Parameter CZbnbToken.setExcludeFromFee(address,bool)._account (#1350) is not in mixedCase
Parameter CZbnbToken.setExcludeFromFee(address,bool)._status (#1350) is not in mixedCase
Parameter CZbnbToken.setExcludeToFee(address,bool)._account (#1357) is not in mixedCase
Parameter CZbnbToken.setExcludeToFee(address,bool)._status (#1357) is not in mixedCase
Parameter CZbnbToken.setExcludeBothDirectionsFee(address,bool)._account (#1364) is not in mixedCase
Parameter CZbnbToken.setExcludeBothDirectionsFee(address,bool)._status (#1364) is not in mixedCase
Parameter CZbnbToken.isExcludedFromFee(address)._account (#1398) is not in mixedCase
Parameter CZbnbToken.isExcludedToFee(address)._account (#1402) is not in mixedCase
Parameter CZbnbToken.distributeReward(address)._genesisPool (#1519) is not in mixedCase
Parameter CZbnbToken.governanceRecoverUnsupported(IERC20)._token (#1529) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#22)" inContext (#16-25)
Remove redundant statements if they congest code but offer no value.
Additional information: link
name() should be declared external:
- ERC20.name() (#390-392)
symbol() should be declared external:
- ERC20.symbol() (#398-400)
decimals() should be declared external:
- ERC20.decimals() (#415-417)
totalSupply() should be declared external:
- ERC20.totalSupply() (#422-424)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (#441-444)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (#460-463)
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (#478-482)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (#496-499)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (#515-518)
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#1173-1176)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#1182-1186)
operator() should be declared external:
- Operator.operator() (#1207-1209)
isOperator() should be declared external:
- Operator.isOperator() (#1216-1218)
transferOperator(address) should be declared external:
- Operator.transferOperator(address) (#1220-1222)
getTokenPrice() should be declared external:
- CZbnbToken.getTokenPrice() (#1382-1388)
mint(address,uint256) should be declared external:
- CZbnbToken.mint(address,uint256) (#1414-1424)
Use the external attribute for functions never called from the contract.
Additional information: link
BscScan page for the token does not contain additional info: website, socials, description, etc.
Additional information: link
Unable to find token on CoinMarketCap
Additional information: link
Unable to find KYC or doxxing proof
Unable to find whitepaper link on the website
Token is not listed at Mobula.Finance
Additional information: link
Unable to find token on CoinHunt
Additional information: link
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of scam / price dump / death
Token has no active CoinGecko listing / rank
Token has no active CoinMarketCap listing / rank
Unable to find Blog account (Reddit or Medium)
Unable to find Youtube account