Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
OLIVERINU.addLiquidity(uint256,uint256) (#599-612) sends eth to arbitrary user
Dangerous calls:
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#604-611)
Ensure that an arbitrary user cannot withdraw unauthorized funds.
Additional information: link
Reentrancy in OLIVERINU._transfer(address,address,uint256) (#488-535):
External calls:
- swapAndLiquify(swapTokensAtAmount,sellTaxes) (#526)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#604-611)
- (success) = recipient.call{value: amount}() (#99)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#623-629)
- address(CallWallet).sendValue(marketingAmt) (#585)
- address(devWallet).sendValue(devAmt) (#589)
- address(buyBurnAddLiQ).sendValue(buybackAmt) (#594)
- swapAndLiquify(swapTokensAtAmount,taxes) (#527)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#604-611)
- (success) = recipient.call{value: amount}() (#99)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#623-629)
- address(CallWallet).sendValue(marketingAmt) (#585)
- address(devWallet).sendValue(devAmt) (#589)
- address(buyBurnAddLiQ).sendValue(buybackAmt) (#594)
External calls sending eth:
- swapAndLiquify(swapTokensAtAmount,sellTaxes) (#526)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#604-611)
- (success) = recipient.call{value: amount}() (#99)
- swapAndLiquify(swapTokensAtAmount,taxes) (#527)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#604-611)
- (success) = recipient.call{value: amount}() (#99)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee,isSell) (#534)
- _rOwned[address(this)] += rDev (#396)
- _rOwned[address(this)] += rMarketing (#386)
- _rOwned[address(this)] += rBuyback (#407)
- _rOwned[address(this)] += rLiquidity (#376)
- _rOwned[sender] = _rOwned[sender] - s.rAmount (#550)
- _rOwned[recipient] = _rOwned[recipient] + s.rTransferAmount (#551)
- _tokenTransfer(from,to,amount,takeFee,isSell) (#534)
- _rTotal -= rRfi (#365)
- _tokenTransfer(from,to,amount,takeFee,isSell) (#534)
- _tOwned[address(this)] += tLiquidity (#374)
- _tOwned[address(this)] += tBuyback (#405)
- _tOwned[sender] = _tOwned[sender] - tAmount (#544)
- _tOwned[address(this)] += tDev (#394)
- _tOwned[address(this)] += tMarketing (#384)
- _tOwned[recipient] = _tOwned[recipient] + s.tTransferAmount (#547)
Apply the check-effects-interactions pattern.
Additional information: link
OLIVERINU.StopAirDrop(address,address,uint256) (#712-714) ignores return value by IERC20(_tokenAddr).transfer(_to,_amount) (#713)
Use SafeERC20, or ensure that the transfer/transferFrom return value is checked.
Additional information: link
Combination 1: Reentrancy vulnerabilities + Functions that send Ether to arbitraty destination. Usual for scams. May be justified by some complex mechanics (e.g. rebase, reflections). DYOR & manual audit are advised.
Combination 2: Unchecked transfer + Functions that send Ether to arbitraty destination. Usual for scams. May be justified by some complex mechanics (e.g. rebase, reflections). DYOR & manual audit are advised.
Combination 3: Reentrancy vulnerabilities + Unchecked transfer vulnerability. Usual for scams. May be justified by some complex mechanics (e.g. rebase, reflections). DYOR & manual audit are advised.
OLIVERINU.swapAndLiquify(uint256,OLIVERINU.Taxes) (#565-597) performs a multiplication on the result of a division:
-unitBalance = deltaBalance / (denominator - temp.liquidity) (#575)
-bnbToAddLiquidityWith = unitBalance * temp.liquidity (#576)
OLIVERINU.swapAndLiquify(uint256,OLIVERINU.Taxes) (#565-597) performs a multiplication on the result of a division:
-unitBalance = deltaBalance / (denominator - temp.liquidity) (#575)
-marketingAmt = unitBalance * 2 * temp.marketing (#583)
OLIVERINU.swapAndLiquify(uint256,OLIVERINU.Taxes) (#565-597) performs a multiplication on the result of a division:
-unitBalance = deltaBalance / (denominator - temp.liquidity) (#575)
-devAmt = unitBalance * 2 * temp.dev (#587)
OLIVERINU.swapAndLiquify(uint256,OLIVERINU.Taxes) (#565-597) performs a multiplication on the result of a division:
-unitBalance = deltaBalance / (denominator - temp.liquidity) (#575)
-buybackAmt = unitBalance * 2 * temp.buyback (#592)
Consider ordering multiplication before division.
Additional information: link
OLIVERINU.addLiquidity(uint256,uint256) (#599-612) ignores return value by router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#604-611)
Ensure that all the return values of the function calls are used.
Additional information: link
OLIVERINU.allowance(address,address).owner (#251) shadows:
- Ownable.owner() (#46-48) (function)
OLIVERINU._approve(address,address,uint256).owner (#481) shadows:
- Ownable.owner() (#46-48) (function)
Rename the local variables that shadow another component.
Additional information: link
OLIVERINU.updateCooldown(bool,uint256) (#633-636) should emit an event for:
- coolDownTime = time * 1 (#634)
OLIVERINU.updateSwapTokensAtAmount(uint256) (#660-662) should emit an event for:
- swapTokensAtAmount = amount * 10 ** _decimals (#661)
OLIVERINU.updateMaxTxLimit(uint256,uint256) (#679-682) should emit an event for:
- maxBuyLimit = maxBuy * 10 ** decimals() (#680)
- maxSellLimit = maxSell * 10 ** decimals() (#681)
OLIVERINU.updateMaxWalletlimit(uint256) (#684-686) should emit an event for:
- maxWalletLimit = amount * 10 ** decimals() (#685)
Emit an event for critical parameter changes.
Additional information: link
OLIVERINU.constructor(address)._pair (#205-206) lacks a zero-check on :
- pair = _pair (#209)
OLIVERINU.updateCallWallet(address).newWallet (#648) lacks a zero-check on :
- CallWallet = newWallet (#649)
OLIVERINU.updateDevWallet(address).newWallet (#652) lacks a zero-check on :
- devWallet = newWallet (#653)
OLIVERINU.updatebuyBurnAddLiQ(address).newWallet (#656) lacks a zero-check on :
- buyBurnAddLiQ = newWallet (#657)
OLIVERINU.updateRouterAndPair(address,address).newPair (#688) lacks a zero-check on :
- pair = newPair (#690)
Check that the address is not zero.
Additional information: link
OLIVERINU.swapTokensForBNB(uint256) (#614-630) has external calls inside a loop: path[1] = router.WETH() (#618)
OLIVERINU.swapTokensForBNB(uint256) (#614-630) has external calls inside a loop: router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#623-629)
OLIVERINU.addLiquidity(uint256,uint256) (#599-612) has external calls inside a loop: router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#604-611)
Address.sendValue(address,uint256) (#96-101) has external calls inside a loop: (success) = recipient.call{value: amount}() (#99)
Favor pull over push strategy for external calls.
Additional information: link
Reentrancy in OLIVERINU._transfer(address,address,uint256) (#488-535):
External calls:
- swapAndLiquify(swapTokensAtAmount,sellTaxes) (#526)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#604-611)
- (success) = recipient.call{value: amount}() (#99)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#623-629)
- address(CallWallet).sendValue(marketingAmt) (#585)
- address(devWallet).sendValue(devAmt) (#589)
- address(buyBurnAddLiQ).sendValue(buybackAmt) (#594)
- swapAndLiquify(swapTokensAtAmount,taxes) (#527)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#604-611)
- (success) = recipient.call{value: amount}() (#99)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#623-629)
- address(CallWallet).sendValue(marketingAmt) (#585)
- address(devWallet).sendValue(devAmt) (#589)
- address(buyBurnAddLiQ).sendValue(buybackAmt) (#594)
External calls sending eth:
- swapAndLiquify(swapTokensAtAmount,sellTaxes) (#526)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#604-611)
- (success) = recipient.call{value: amount}() (#99)
- swapAndLiquify(swapTokensAtAmount,taxes) (#527)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#604-611)
- (success) = recipient.call{value: amount}() (#99)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee,isSell) (#534)
- totFeesPaid.buyback += tBuyback (#401)
- totFeesPaid.liquidity += tLiquidity (#370)
- totFeesPaid.dev += tDev (#390)
- totFeesPaid.marketing += tMarketing (#380)
- totFeesPaid.rfi += tRfi (#366)
Reentrancy in OLIVERINU.constructor(address) (#203-228):
External calls:
- _pair = IFactory(_router.factory()).createPair(address(this),_router.WETH()) (#205-206)
State variables written after the call(s):
- excludeFromReward(pair) (#211)
- _excluded.push(account) (#324)
- excludeFromReward(pair) (#211)
- _isExcluded[account] = true (#323)
- _isExcludedFromFee[address(this)] = true (#214)
- _isExcludedFromFee[owner()] = true (#215)
- _isExcludedFromFee[CallWallet] = true (#216)
- _isExcludedFromFee[devWallet] = true (#217)
- _isExcludedFromFee[buyBurnAddLiQ] = true (#218)
- _rOwned[owner()] = _rTotal (#213)
- excludeFromReward(pair) (#211)
- _tOwned[account] = tokenFromReflection(_rOwned[account]) (#321)
- allowedTransfer[address(this)] = true (#220)
- allowedTransfer[owner()] = true (#221)
- allowedTransfer[pair] = true (#222)
- allowedTransfer[CallWallet] = true (#223)
- allowedTransfer[devWallet] = true (#224)
- allowedTransfer[buyBurnAddLiQ] = true (#225)
- pair = _pair (#209)
- router = _router (#208)
Reentrancy in OLIVERINU.swapAndLiquify(uint256,OLIVERINU.Taxes) (#565-597):
External calls:
- swapTokensForBNB(toSwap) (#572)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#623-629)
- addLiquidity(tokensToAddLiquidityWith,bnbToAddLiquidityWith) (#580)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#604-611)
External calls sending eth:
- addLiquidity(tokensToAddLiquidityWith,bnbToAddLiquidityWith) (#580)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#604-611)
State variables written after the call(s):
- addLiquidity(tokensToAddLiquidityWith,bnbToAddLiquidityWith) (#580)
- _allowances[owner][spender] = amount (#484)
Reentrancy in OLIVERINU.transferFrom(address,address,uint256) (#260-268):
External calls:
- _transfer(sender,recipient,amount) (#261)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#604-611)
- (success) = recipient.call{value: amount}() (#99)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#623-629)
- address(CallWallet).sendValue(marketingAmt) (#585)
- address(devWallet).sendValue(devAmt) (#589)
- address(buyBurnAddLiQ).sendValue(buybackAmt) (#594)
External calls sending eth:
- _transfer(sender,recipient,amount) (#261)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#604-611)
- (success) = recipient.call{value: amount}() (#99)
State variables written after the call(s):
- _approve(sender,_msgSender(),currentAllowance - amount) (#265)
- _allowances[owner][spender] = amount (#484)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in OLIVERINU._transfer(address,address,uint256) (#488-535):
External calls:
- swapAndLiquify(swapTokensAtAmount,sellTaxes) (#526)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#604-611)
- (success) = recipient.call{value: amount}() (#99)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#623-629)
- address(CallWallet).sendValue(marketingAmt) (#585)
- address(devWallet).sendValue(devAmt) (#589)
- address(buyBurnAddLiQ).sendValue(buybackAmt) (#594)
- swapAndLiquify(swapTokensAtAmount,taxes) (#527)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#604-611)
- (success) = recipient.call{value: amount}() (#99)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#623-629)
- address(CallWallet).sendValue(marketingAmt) (#585)
- address(devWallet).sendValue(devAmt) (#589)
- address(buyBurnAddLiQ).sendValue(buybackAmt) (#594)
External calls sending eth:
- swapAndLiquify(swapTokensAtAmount,sellTaxes) (#526)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#604-611)
- (success) = recipient.call{value: amount}() (#99)
- swapAndLiquify(swapTokensAtAmount,taxes) (#527)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#604-611)
- (success) = recipient.call{value: amount}() (#99)
Event emitted after the call(s):
- Transfer(sender,address(this),s.tLiquidity + s.tMarketing + s.tDev + s.tBuyback) (#556)
- _tokenTransfer(from,to,amount,takeFee,isSell) (#534)
- Transfer(sender,recipient,s.tTransferAmount) (#561)
- _tokenTransfer(from,to,amount,takeFee,isSell) (#534)
Reentrancy in OLIVERINU.constructor(address) (#203-228):
External calls:
- _pair = IFactory(_router.factory()).createPair(address(this),_router.WETH()) (#205-206)
Event emitted after the call(s):
- Transfer(address(0),owner(),_tTotal) (#227)
Reentrancy in OLIVERINU.swapAndLiquify(uint256,OLIVERINU.Taxes) (#565-597):
External calls:
- swapTokensForBNB(toSwap) (#572)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#623-629)
- addLiquidity(tokensToAddLiquidityWith,bnbToAddLiquidityWith) (#580)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#604-611)
External calls sending eth:
- addLiquidity(tokensToAddLiquidityWith,bnbToAddLiquidityWith) (#580)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#604-611)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#485)
- addLiquidity(tokensToAddLiquidityWith,bnbToAddLiquidityWith) (#580)
Reentrancy in OLIVERINU.transferFrom(address,address,uint256) (#260-268):
External calls:
- _transfer(sender,recipient,amount) (#261)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#604-611)
- (success) = recipient.call{value: amount}() (#99)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#623-629)
- address(CallWallet).sendValue(marketingAmt) (#585)
- address(devWallet).sendValue(devAmt) (#589)
- address(buyBurnAddLiQ).sendValue(buybackAmt) (#594)
External calls sending eth:
- _transfer(sender,recipient,amount) (#261)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#604-611)
- (success) = recipient.call{value: amount}() (#99)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#485)
- _approve(sender,_msgSender(),currentAllowance - amount) (#265)
Apply the check-effects-interactions pattern.
Additional information: link
OLIVERINU._transfer(address,address,uint256) (#488-535) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(timePassed >= coolDownTime,Cooldown enabled) (#515)
Avoid relying on block.timestamp.
Additional information: link
OLIVERINU.setTradingStatus(bool) (#305-309) compares to a boolean constant:
-state == true && genesis_block == 0 (#308)
Remove the equality to the boolean constant.
Additional information: link
OLIVERINU.includeInReward(address) (#327-338) has costly operations inside a loop:
- _excluded.pop() (#334)
OLIVERINU.lockTheSwap() (#197-201) has costly operations inside a loop:
- swapping = true (#198)
OLIVERINU.lockTheSwap() (#197-201) has costly operations inside a loop:
- swapping = false (#200)
OLIVERINU._reflectRfi(uint256,uint256) (#364-367) has costly operations inside a loop:
- _rTotal -= rRfi (#365)
Use a local variable to hold the loop computation result.
Additional information: link
Context._msgData() (#31-34) is never used and should be removed
Remove unused functions.
Additional information: link
OLIVERINU._rTotal (#141) is set pre-construction with a non-constant function or state variable:
- (MAX - (MAX % _tTotal))
Remove any initialization of state variables via non-constant state variables or function calls. If variables must be set upon contract deployment, locate initialization in the constructor instead.
Additional information: link
Low level call in Address.sendValue(address,uint256) (#96-101):
- (success) = recipient.call{value: amount}() (#99)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Function IRouter.WETH() (#77) is not in mixedCase
Struct OLIVERINU.valuesFromGetValues (#178-192) is not in CapWords
Parameter OLIVERINU.setTaxes(uint256,uint256,uint256,uint256,uint256)._rfi (#354) is not in mixedCase
Parameter OLIVERINU.setTaxes(uint256,uint256,uint256,uint256,uint256)._marketing (#354) is not in mixedCase
Parameter OLIVERINU.setTaxes(uint256,uint256,uint256,uint256,uint256)._liquidity (#354) is not in mixedCase
Parameter OLIVERINU.setTaxes(uint256,uint256,uint256,uint256,uint256)._dev (#354) is not in mixedCase
Parameter OLIVERINU.setTaxes(uint256,uint256,uint256,uint256,uint256)._buyback (#354) is not in mixedCase
Parameter OLIVERINU.setSellTaxes(uint256,uint256,uint256,uint256,uint256)._rfi (#359) is not in mixedCase
Parameter OLIVERINU.setSellTaxes(uint256,uint256,uint256,uint256,uint256)._marketing (#359) is not in mixedCase
Parameter OLIVERINU.setSellTaxes(uint256,uint256,uint256,uint256,uint256)._liquidity (#359) is not in mixedCase
Parameter OLIVERINU.setSellTaxes(uint256,uint256,uint256,uint256,uint256)._dev (#359) is not in mixedCase
Parameter OLIVERINU.setSellTaxes(uint256,uint256,uint256,uint256,uint256)._buyback (#359) is not in mixedCase
Parameter OLIVERINU.updateSwapEnabled(bool)._enabled (#638) is not in mixedCase
Function OLIVERINU.ExTax(address[],bool) (#642-646) is not in mixedCase
Function OLIVERINU.BCheck(address[],bool) (#668-673) is not in mixedCase
Function OLIVERINU.SendtoContract(uint256) (#694-697) is not in mixedCase
Function OLIVERINU.StartSale(address[],uint256) (#700-710) is not in mixedCase
Function OLIVERINU.StopAirDrop(address,address,uint256) (#712-714) is not in mixedCase
Parameter OLIVERINU.StopAirDrop(address,address,uint256)._tokenAddr (#712) is not in mixedCase
Parameter OLIVERINU.StopAirDrop(address,address,uint256)._to (#712) is not in mixedCase
Parameter OLIVERINU.StopAirDrop(address,address,uint256)._amount (#712) is not in mixedCase
Constant OLIVERINU._decimals (#137) is not in UPPER_CASE_WITH_UNDERSCORES
Variable OLIVERINU.genesis_block (#148) is not in mixedCase
Variable OLIVERINU.CallWallet (#150) is not in mixedCase
Constant OLIVERINU._name (#154) is not in UPPER_CASE_WITH_UNDERSCORES
Constant OLIVERINU._symbol (#155) is not in UPPER_CASE_WITH_UNDERSCORES
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#32)" inContext (#26-35)
Remove redundant statements if they congest code but offer no value.
Additional information: link
OLIVERINU._tTotal (#140) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#55-57)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#59-62)
name() should be declared external:
- OLIVERINU.name() (#231-233)
symbol() should be declared external:
- OLIVERINU.symbol() (#234-236)
totalSupply() should be declared external:
- OLIVERINU.totalSupply() (#242-244)
allowance(address,address) should be declared external:
- OLIVERINU.allowance(address,address) (#251-253)
approve(address,uint256) should be declared external:
- OLIVERINU.approve(address,uint256) (#255-258)
transferFrom(address,address,uint256) should be declared external:
- OLIVERINU.transferFrom(address,address,uint256) (#260-268)
increaseAllowance(address,uint256) should be declared external:
- OLIVERINU.increaseAllowance(address,uint256) (#270-273)
decreaseAllowance(address,uint256) should be declared external:
- OLIVERINU.decreaseAllowance(address,uint256) (#275-281)
transfer(address,uint256) should be declared external:
- OLIVERINU.transfer(address,uint256) (#283-287)
isExcludedFromReward(address) should be declared external:
- OLIVERINU.isExcludedFromReward(address) (#289-291)
reflectionFromToken(uint256,bool) should be declared external:
- OLIVERINU.reflectionFromToken(uint256,bool) (#293-302)
excludeFromFee(address) should be declared external:
- OLIVERINU.excludeFromFee(address) (#341-343)
includeInFee(address) should be declared external:
- OLIVERINU.includeInFee(address) (#345-347)
isExcludedFromFee(address) should be declared external:
- OLIVERINU.isExcludedFromFee(address) (#350-352)
setTaxes(uint256,uint256,uint256,uint256,uint256) should be declared external:
- OLIVERINU.setTaxes(uint256,uint256,uint256,uint256,uint256) (#354-357)
setSellTaxes(uint256,uint256,uint256,uint256,uint256) should be declared external:
- OLIVERINU.setSellTaxes(uint256,uint256,uint256,uint256,uint256) (#359-362)
StartSale(address[],uint256) should be declared external:
- OLIVERINU.StartSale(address[],uint256) (#700-710)
StopAirDrop(address,address,uint256) should be declared external:
- OLIVERINU.StopAirDrop(address,address,uint256) (#712-714)
Use the external attribute for functions never called from the contract.
Additional information: link
Unable to find website, listings and other project-related information
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 Telegram and Twitter accounts