Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Reentrancy in Sole_Fianance._transfer(address,address,uint256) (SoleFinance.sol#486-541):
External calls:
- swapAndSendToFees(contractTokenBalance) (SoleFinance.sol#522)
- (success) = recipient.call{value: amount}() (Address.sol#9)
- liquidityWallet.sendValue(transferBalance * appliedFees.liquidityFee / appliedFees.swapFee) (SoleFinance.sol#547)
- airdropWallet.sendValue(transferBalance * appliedFees.airdropFee / appliedFees.swapFee) (SoleFinance.sol#548)
- burnWallet.sendValue(transferBalance * appliedFees.burnFee / appliedFees.swapFee) (SoleFinance.sol#549)
- pancakeRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (SoleFinance.sol#587-593)
- marketingWallet.sendValue(address(this).balance) (SoleFinance.sol#550)
External calls sending eth:
- swapAndSendToFees(contractTokenBalance) (SoleFinance.sol#522)
- (success) = recipient.call{value: amount}() (Address.sol#9)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee,isSale) (SoleFinance.sol#540)
- _rOwned[address(this)] += rSwap (SoleFinance.sol#375)
- _rOwned[sender] -= s.rAmount (SoleFinance.sol#619)
- _rOwned[recipient] += s.rTransferAmount (SoleFinance.sol#620)
- _tokenTransfer(from,to,amount,takeFee,isSale) (SoleFinance.sol#540)
- _rTotal = _rTotal - rFee (SoleFinance.sol#317)
- _tokenTransfer(from,to,amount,takeFee,isSale) (SoleFinance.sol#540)
- _tOwned[address(this)] += tSwap (SoleFinance.sol#377)
- _tOwned[sender] -= amount (SoleFinance.sol#614)
- _tOwned[recipient] += s.tTransferAmount (SoleFinance.sol#617)
- _tokenTransfer(from,to,amount,takeFee,isSale) (SoleFinance.sol#540)
- appliedFees = sellFees (SoleFinance.sol#602)
- appliedFees.totFees += getAntiwhaleFee(_totSells[sender]) (SoleFinance.sol#603)
- appliedFees = buyFees (SoleFinance.sol#607)
Reentrancy in Sole_Fianance.transferFrom(address,address,uint256) (SoleFinance.sol#192-202):
External calls:
- _transfer(sender,recipient,amount) (SoleFinance.sol#193)
- (success) = recipient.call{value: amount}() (Address.sol#9)
- liquidityWallet.sendValue(transferBalance * appliedFees.liquidityFee / appliedFees.swapFee) (SoleFinance.sol#547)
- airdropWallet.sendValue(transferBalance * appliedFees.airdropFee / appliedFees.swapFee) (SoleFinance.sol#548)
- burnWallet.sendValue(transferBalance * appliedFees.burnFee / appliedFees.swapFee) (SoleFinance.sol#549)
- pancakeRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (SoleFinance.sol#587-593)
- marketingWallet.sendValue(address(this).balance) (SoleFinance.sol#550)
External calls sending eth:
- _transfer(sender,recipient,amount) (SoleFinance.sol#193)
- (success) = recipient.call{value: amount}() (Address.sol#9)
State variables written after the call(s):
- _approve(sender,_msgSender(),currentAllowance - amount) (SoleFinance.sol#198)
- _allowances[owner][spender] = amount (SoleFinance.sol#466)
Apply the check-effects-interactions pattern.
Additional information: link
Sole_Fianance.txBEP20(address,uint256) (SoleFinance.sol#635-638) ignores return value by IBEP20(tokenAddress).transfer(_owner,tokenAmount) (SoleFinance.sol#637)
Use SafeERC20, or ensure that the transfer/transferFrom return value is checked.
Additional information: link
Sole_Fianance._totSells (SoleFinance.sol#21) is never initialized. It is used in:
- Sole_Fianance._tokenTransfer(address,address,uint256,bool,bool) (SoleFinance.sol#598-629)
Initialize all the variables. If a variable is meant to be initialized to zero, explicitly set it to zero to improve code readability.
Additional information: link
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.
Contract ticker (SOLE FIN) contains non-alphanumeric characters.
Not a direct threat, but may indicate unreliable intentions of developer. Non-alphanumeric chars (,.;!#*&") are extremely rare among low risk tokens.
Reentrancy in Sole_Fianance.setRouterAddress(address) (SoleFinance.sol#658-671):
External calls:
- pancakePair = IFactory(_newRouter.factory()).createPair(address(this),_newRouter.WETH()) (SoleFinance.sol#665)
State variables written after the call(s):
- pancakeRouter = _newRouter (SoleFinance.sol#670)
Apply the check-effects-interactions pattern.
Additional information: link
Sole_Fianance.allowance(address,address).owner (SoleFinance.sol#181) shadows:
- Ownable.owner() (Ownable.sol#31-33) (function)
Sole_Fianance._approve(address,address,uint256).owner (SoleFinance.sol#462) shadows:
- Ownable.owner() (Ownable.sol#31-33) (function)
Sole_Fianance.txBNB()._owner (SoleFinance.sol#632) shadows:
- Ownable._owner (Ownable.sol#20) (state variable)
Sole_Fianance.txBEP20(address,uint256)._owner (SoleFinance.sol#636) shadows:
- Ownable._owner (Ownable.sol#20) (state variable)
Rename the local variables that shadow another component.
Additional information: link
Sole_Fianance.setMaxTrAmountPerDay(uint256) (SoleFinance.sol#432-434) should emit an event for:
- maxTrPerDay = amount * 10 ** 9 (SoleFinance.sol#433)
Sole_Fianance.setNumTokensTosSwap(uint256) (SoleFinance.sol#448-450) should emit an event for:
- minTokensToSwap = amount * 10 ** 9 (SoleFinance.sol#449)
Sole_Fianance.setMaxTxAmount(uint256) (SoleFinance.sol#452-454) should emit an event for:
- maxTxAmount = amount * 10 ** 9 (SoleFinance.sol#453)
Emit an event for critical parameter changes.
Additional information: link
Sole_Fianance.setBurnWallet(address)._address (SoleFinance.sol#379) lacks a zero-check on :
- burnWallet = _address (SoleFinance.sol#380)
Sole_Fianance.setMarketingWallet(address)._address (SoleFinance.sol#384) lacks a zero-check on :
- marketingWallet = _address (SoleFinance.sol#385)
Sole_Fianance.setLiquidityWallet(address)._address (SoleFinance.sol#389) lacks a zero-check on :
- liquidityWallet = _address (SoleFinance.sol#390)
Sole_Fianance.setAirdropWallet(address)._address (SoleFinance.sol#394) lacks a zero-check on :
- airdropWallet = _address (SoleFinance.sol#395)
Sole_Fianance.txBNB()._owner (SoleFinance.sol#632) lacks a zero-check on :
- _owner.transfer(address(this).balance) (SoleFinance.sol#633)
Check that the address is not zero.
Additional information: link
Sole_Fianance.swapTokensForBNB(uint256) (SoleFinance.sol#575-594) has external calls inside a loop: path[1] = pancakeRouter.WETH() (SoleFinance.sol#580)
Sole_Fianance.swapTokensForBNB(uint256) (SoleFinance.sol#575-594) has external calls inside a loop: pancakeRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (SoleFinance.sol#587-593)
Address.sendValue(address,uint256) (Address.sol#6-11) has external calls inside a loop: (success) = recipient.call{value: amount}() (Address.sol#9)
Favor pull over push strategy for external calls.
Additional information: link
Reentrancy in Sole_Fianance._transfer(address,address,uint256) (SoleFinance.sol#486-541):
External calls:
- swapAndSendToFees(contractTokenBalance) (SoleFinance.sol#522)
- (success) = recipient.call{value: amount}() (Address.sol#9)
- liquidityWallet.sendValue(transferBalance * appliedFees.liquidityFee / appliedFees.swapFee) (SoleFinance.sol#547)
- airdropWallet.sendValue(transferBalance * appliedFees.airdropFee / appliedFees.swapFee) (SoleFinance.sol#548)
- burnWallet.sendValue(transferBalance * appliedFees.burnFee / appliedFees.swapFee) (SoleFinance.sol#549)
- pancakeRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (SoleFinance.sol#587-593)
- marketingWallet.sendValue(address(this).balance) (SoleFinance.sol#550)
External calls sending eth:
- swapAndSendToFees(contractTokenBalance) (SoleFinance.sol#522)
- (success) = recipient.call{value: amount}() (Address.sol#9)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee,isSale) (SoleFinance.sol#540)
- _tFeeTotal = _tFeeTotal + tFee (SoleFinance.sol#318)
Reentrancy in Sole_Fianance.constructor() (SoleFinance.sol#121-147):
External calls:
- pancakePair = IFactory(_pancakeRouter.factory()).createPair(address(this),_pancakeRouter.WETH()) (SoleFinance.sol#128-129)
State variables written after the call(s):
- _isExcludedFromFee[owner()] = true (SoleFinance.sol#135)
- _isExcludedFromFee[burnWallet] = true (SoleFinance.sol#136)
- _isExcludedFromFee[marketingWallet] = true (SoleFinance.sol#137)
- _isExcludedFromFee[liquidityWallet] = true (SoleFinance.sol#138)
- _isExcludedFromFee[airdropWallet] = true (SoleFinance.sol#139)
- _isExcludedFromFee[address(this)] = true (SoleFinance.sol#140)
- antiwhale_measures[0] = antiwhale(_tTotal * 25 / 100000,1) (SoleFinance.sol#142)
- antiwhale_measures[1] = antiwhale(_tTotal * 50 / 100000,2) (SoleFinance.sol#143)
- antiwhale_measures[2] = antiwhale(_tTotal * 75 / 100000,3) (SoleFinance.sol#144)
- pancakeRouter = _pancakeRouter (SoleFinance.sol#132)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in Sole_Fianance._transfer(address,address,uint256) (SoleFinance.sol#486-541):
External calls:
- swapAndSendToFees(contractTokenBalance) (SoleFinance.sol#522)
- (success) = recipient.call{value: amount}() (Address.sol#9)
- liquidityWallet.sendValue(transferBalance * appliedFees.liquidityFee / appliedFees.swapFee) (SoleFinance.sol#547)
- airdropWallet.sendValue(transferBalance * appliedFees.airdropFee / appliedFees.swapFee) (SoleFinance.sol#548)
- burnWallet.sendValue(transferBalance * appliedFees.burnFee / appliedFees.swapFee) (SoleFinance.sol#549)
- pancakeRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (SoleFinance.sol#587-593)
- marketingWallet.sendValue(address(this).balance) (SoleFinance.sol#550)
External calls sending eth:
- swapAndSendToFees(contractTokenBalance) (SoleFinance.sol#522)
- (success) = recipient.call{value: amount}() (Address.sol#9)
Event emitted after the call(s):
- Transfer(sender,address(this),s.tSwap) (SoleFinance.sol#626)
- _tokenTransfer(from,to,amount,takeFee,isSale) (SoleFinance.sol#540)
- Transfer(sender,recipient,s.tTransferAmount) (SoleFinance.sol#628)
- _tokenTransfer(from,to,amount,takeFee,isSale) (SoleFinance.sol#540)
Reentrancy in Sole_Fianance.constructor() (SoleFinance.sol#121-147):
External calls:
- pancakePair = IFactory(_pancakeRouter.factory()).createPair(address(this),_pancakeRouter.WETH()) (SoleFinance.sol#128-129)
Event emitted after the call(s):
- Transfer(address(0),_msgSender(),_tTotal) (SoleFinance.sol#146)
Reentrancy in Sole_Fianance.transferFrom(address,address,uint256) (SoleFinance.sol#192-202):
External calls:
- _transfer(sender,recipient,amount) (SoleFinance.sol#193)
- (success) = recipient.call{value: amount}() (Address.sol#9)
- liquidityWallet.sendValue(transferBalance * appliedFees.liquidityFee / appliedFees.swapFee) (SoleFinance.sol#547)
- airdropWallet.sendValue(transferBalance * appliedFees.airdropFee / appliedFees.swapFee) (SoleFinance.sol#548)
- burnWallet.sendValue(transferBalance * appliedFees.burnFee / appliedFees.swapFee) (SoleFinance.sol#549)
- pancakeRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (SoleFinance.sol#587-593)
- marketingWallet.sendValue(address(this).balance) (SoleFinance.sol#550)
External calls sending eth:
- _transfer(sender,recipient,amount) (SoleFinance.sol#193)
- (success) = recipient.call{value: amount}() (Address.sol#9)
Event emitted after the call(s):
- Approval(owner,spender,amount) (SoleFinance.sol#467)
- _approve(sender,_msgSender(),currentAllowance - amount) (SoleFinance.sol#198)
Apply the check-effects-interactions pattern.
Additional information: link
Sole_Fianance._transfer(address,address,uint256) (SoleFinance.sol#486-541) uses timestamp for comparisons
Dangerous comparisons:
- block.timestamp < _firstTransfer[from] + 24 * 3600 (SoleFinance.sol#501)
Avoid relying on block.timestamp.
Additional information: link
Sole_Fianance.includeInReward(address) (SoleFinance.sol#284-295) has costly operations inside a loop:
- _excluded.pop() (SoleFinance.sol#291)
Sole_Fianance.lockTheSwap() (SoleFinance.sol#115-119) has costly operations inside a loop:
- inSwap = true (SoleFinance.sol#116)
Sole_Fianance.lockTheSwap() (SoleFinance.sol#115-119) has costly operations inside a loop:
- inSwap = false (SoleFinance.sol#118)
Sole_Fianance._tokenTransfer(address,address,uint256,bool,bool) (SoleFinance.sol#598-629) has costly operations inside a loop:
- appliedFees = sellFees (SoleFinance.sol#602)
Sole_Fianance._reflectFee(uint256,uint256) (SoleFinance.sol#316-319) has costly operations inside a loop:
- _rTotal = _rTotal - rFee (SoleFinance.sol#317)
Sole_Fianance._reflectFee(uint256,uint256) (SoleFinance.sol#316-319) has costly operations inside a loop:
- _tFeeTotal = _tFeeTotal + tFee (SoleFinance.sol#318)
Sole_Fianance._tokenTransfer(address,address,uint256,bool,bool) (SoleFinance.sol#598-629) has costly operations inside a loop:
- appliedFees = buyFees (SoleFinance.sol#607)
Use a local variable to hold the loop computation result.
Additional information: link
Context._msgData() (Context.sol#10-13) is never used and should be removed
Remove unused functions.
Additional information: link
Sole_Fianance._rTotal (SoleFinance.sol#35) is set pre-construction with a non-constant function or state variable:
- (MAX - (MAX % _tTotal))
Sole_Fianance.appliedFees (SoleFinance.sol#73) is set pre-construction with a non-constant function or state variable:
- buyFees
Sole_Fianance.maxSellPerDay (SoleFinance.sol#94) is set pre-construction with a non-constant function or state variable:
- _tTotal / 1000
Sole_Fianance.maxTrPerDay (SoleFinance.sol#95) is set pre-construction with a non-constant function or state variable:
- _tTotal / 1000
Sole_Fianance.maxTxAmount (SoleFinance.sol#110) is set pre-construction with a non-constant function or state variable:
- _tTotal / 100
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
Pragma version^0.8.0 (Address.sol#2) allows old versions
Pragma version^0.8.0 (Context.sol#2) allows old versions
Pragma version^0.8.0 (IBEP20.sol#2) allows old versions
Pragma version^0.8.0 (IERC20.sol#2) allows old versions
Pragma version^0.8.0 (IFactory.sol#2) allows old versions
Pragma version^0.8.0 (IRouter.sol#2) allows old versions
Pragma version^0.8.0 (Ownable.sol#2) allows old versions
Pragma version^0.8.0 (SoleFinance.sol#2) allows old versions
solc-0.8.12 is not recommended for deployment
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) (Address.sol#6-11):
- (success) = recipient.call{value: amount}() (Address.sol#9)
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() (IRouter.sol#5) is not in mixedCase
Contract Sole_Fianance (SoleFinance.sol#12-673) is not in CapWords
Struct Sole_Fianance.feeRatesStruct (SoleFinance.sol#43-51) is not in CapWords
Struct Sole_Fianance.antiwhale (SoleFinance.sol#76-79) is not in CapWords
Struct Sole_Fianance.valuesFromGetValues (SoleFinance.sol#83-91) is not in CapWords
Event Sole_FiananceswapEnabledUpdated(bool) (SoleFinance.sol#113) is not in CapWords
Parameter Sole_Fianance.setBurnWallet(address)._address (SoleFinance.sol#379) is not in mixedCase
Parameter Sole_Fianance.setMarketingWallet(address)._address (SoleFinance.sol#384) is not in mixedCase
Parameter Sole_Fianance.setLiquidityWallet(address)._address (SoleFinance.sol#389) is not in mixedCase
Parameter Sole_Fianance.setAirdropWallet(address)._address (SoleFinance.sol#394) is not in mixedCase
Parameter Sole_Fianance.setTotalBuyFees(uint256)._totFees (SoleFinance.sol#420) is not in mixedCase
Parameter Sole_Fianance.setTotalSellFees(uint256)._totSellFees (SoleFinance.sol#424) is not in mixedCase
Parameter Sole_Fianance.setAntiwhaleMeasure(uint256[3],uint256[3]).selling_thresholds (SoleFinance.sol#436) is not in mixedCase
Parameter Sole_Fianance.setAntiwhaleMeasure(uint256[3],uint256[3]).extra_taxes (SoleFinance.sol#436) is not in mixedCase
Parameter Sole_Fianance.setSwapEnabled(bool)._enabled (SoleFinance.sol#443) is not in mixedCase
Parameter Sole_Fianance.airdrop(address[],uint256[])._contributors (SoleFinance.sol#554) is not in mixedCase
Parameter Sole_Fianance.airdrop(address[],uint256[])._balances (SoleFinance.sol#554) is not in mixedCase
Parameter Sole_Fianance.multisend(address[],uint256[])._contributors (SoleFinance.sol#560) is not in mixedCase
Parameter Sole_Fianance.multisend(address[],uint256[])._balances (SoleFinance.sol#560) is not in mixedCase
Parameter Sole_Fianance.preSale(address[],uint256[])._contributors (SoleFinance.sol#567) is not in mixedCase
Parameter Sole_Fianance.preSale(address[],uint256[])._balances (SoleFinance.sol#567) is not in mixedCase
Variable Sole_Fianance.antiwhale_measures (SoleFinance.sol#81) is not in mixedCase
Variable Sole_Fianance.ERC20Token (SoleFinance.sol#105) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (Context.sol#11)" inContext (Context.sol#4-14)
Redundant expression "i (SoleFinance.sol#556)" inSole_Fianance (SoleFinance.sol#12-673)
Redundant expression "i (SoleFinance.sol#562)" inSole_Fianance (SoleFinance.sol#12-673)
Redundant expression "i (SoleFinance.sol#569)" inSole_Fianance (SoleFinance.sol#12-673)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Sole_Fianance.constructor() (SoleFinance.sol#121-147) uses literals with too many digits:
- antiwhale_measures[0] = antiwhale(_tTotal * 25 / 100000,1) (SoleFinance.sol#142)
Sole_Fianance.constructor() (SoleFinance.sol#121-147) uses literals with too many digits:
- antiwhale_measures[1] = antiwhale(_tTotal * 50 / 100000,2) (SoleFinance.sol#143)
Sole_Fianance.constructor() (SoleFinance.sol#121-147) uses literals with too many digits:
- antiwhale_measures[2] = antiwhale(_tTotal * 75 / 100000,3) (SoleFinance.sol#144)
Sole_Fianance._getTValues(uint256,bool) (SoleFinance.sol#329-338) uses literals with too many digits:
- s.tFee = tAmount * appliedFees.totFees * appliedFees.taxFee / 1000000 (SoleFinance.sol#334)
Sole_Fianance._getTValues(uint256,bool) (SoleFinance.sol#329-338) uses literals with too many digits:
- s.tSwap = tAmount * appliedFees.totFees * appliedFees.swapFee / 1000000 (SoleFinance.sol#335)
Sole_Fianance.setAntiwhaleMeasure(uint256[3],uint256[3]) (SoleFinance.sol#436-441) uses literals with too many digits:
- antiwhale_measures[0] = antiwhale(_tTotal * selling_thresholds[0] / 100000,extra_taxes[0]) (SoleFinance.sol#438)
Sole_Fianance.setAntiwhaleMeasure(uint256[3],uint256[3]) (SoleFinance.sol#436-441) uses literals with too many digits:
- antiwhale_measures[1] = antiwhale(_tTotal * selling_thresholds[1] / 100000,extra_taxes[1]) (SoleFinance.sol#439)
Sole_Fianance.setAntiwhaleMeasure(uint256[3],uint256[3]) (SoleFinance.sol#436-441) uses literals with too many digits:
- antiwhale_measures[2] = antiwhale(_tTotal * selling_thresholds[2] / 100000,extra_taxes[2]) (SoleFinance.sol#440)
Sole_Fianance.slitherConstructorVariables() (SoleFinance.sol#12-673) uses literals with too many digits:
- _tTotal = 220000000 * 10 ** 9 (SoleFinance.sol#34)
Sole_Fianance.slitherConstructorVariables() (SoleFinance.sol#12-673) uses literals with too many digits:
- minTokensToSwap = 200000 * 10 ** 9 (SoleFinance.sol#109)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
Sole_Fianance._firstSell (SoleFinance.sol#20) is never used in Sole_Fianance (SoleFinance.sol#12-673)
Sole_Fianance.previousFees (SoleFinance.sol#74) is never used in Sole_Fianance (SoleFinance.sol#12-673)
Remove unused state variables.
Additional information: link
Sole_Fianance._decimals (SoleFinance.sol#41) should be constant
Sole_Fianance._name (SoleFinance.sol#39) should be constant
Sole_Fianance._symbol (SoleFinance.sol#40) should be constant
Sole_Fianance._tTotal (SoleFinance.sol#34) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (Ownable.sol#42-44)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (Ownable.sol#47-50)
name() should be declared external:
- Sole_Fianance.name() (SoleFinance.sol#149-151)
symbol() should be declared external:
- Sole_Fianance.symbol() (SoleFinance.sol#154-156)
decimals() should be declared external:
- Sole_Fianance.decimals() (SoleFinance.sol#159-161)
totalSupply() should be declared external:
- Sole_Fianance.totalSupply() (SoleFinance.sol#164-166)
transfer(address,uint256) should be declared external:
- Sole_Fianance.transfer(address,uint256) (SoleFinance.sol#175-178)
approve(address,uint256) should be declared external:
- Sole_Fianance.approve(address,uint256) (SoleFinance.sol#186-189)
transferFrom(address,address,uint256) should be declared external:
- Sole_Fianance.transferFrom(address,address,uint256) (SoleFinance.sol#192-202)
increaseAllowance(address,uint256) should be declared external:
- Sole_Fianance.increaseAllowance(address,uint256) (SoleFinance.sol#205-208)
decreaseAllowance(address,uint256) should be declared external:
- Sole_Fianance.decreaseAllowance(address,uint256) (SoleFinance.sol#211-219)
isExcludedFromReward(address) should be declared external:
- Sole_Fianance.isExcludedFromReward(address) (SoleFinance.sol#222-224)
totalFeesCharged() should be declared external:
- Sole_Fianance.totalFeesCharged() (SoleFinance.sol#227-229)
deliver(uint256) should be declared external:
- Sole_Fianance.deliver(uint256) (SoleFinance.sol#232-239)
excludeFromReward(address) should be declared external:
- Sole_Fianance.excludeFromReward(address) (SoleFinance.sol#261-268)
excludeFromReward(address[]) should be declared external:
- Sole_Fianance.excludeFromReward(address[]) (SoleFinance.sol#270-281)
excludeFromFee(address) should be declared external:
- Sole_Fianance.excludeFromFee(address) (SoleFinance.sol#297-299)
includeInFee(address) should be declared external:
- Sole_Fianance.includeInFee(address) (SoleFinance.sol#301-303)
excludeFromPass(address) should be declared external:
- Sole_Fianance.excludeFromPass(address) (SoleFinance.sol#304-306)
includeInPass(address) should be declared external:
- Sole_Fianance.includeInPass(address) (SoleFinance.sol#308-310)
setSwapEnabled(bool) should be declared external:
- Sole_Fianance.setSwapEnabled(bool) (SoleFinance.sol#443-446)
isExcludedFromFee(address) should be declared external:
- Sole_Fianance.isExcludedFromFee(address) (SoleFinance.sol#456-458)
isExcludedFromPass(address) should be declared external:
- Sole_Fianance.isExcludedFromPass(address) (SoleFinance.sol#459-461)
checkBadActor(address) should be declared external:
- Sole_Fianance.checkBadActor(address) (SoleFinance.sol#654-656)
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