DIVIDEND_TRACKER Token Logo

DIVIDEND_TRACKER Token

ALERT: dead

About DIVIDEND_TRACKER

Listings

Not Found
Token 2 years

Website

Not Found

Description

Not Found

Social

Not Found

Laser Scorebeta Last Audit: 20 December 2023

report
Token seems to be unmaintained (no trading, inactive website, inactive socials, etc.).


Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)

Contract name (DIVIDEND_TRACKER) 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 DividendPayingToken._withdrawDividendOfUser(address) (contracts/baby/BabyTokenDividendTracker.sol#143-169):
External calls:
- success = IERC20(rewardToken).transfer(user,_withdrawableDividend) (contracts/baby/BabyTokenDividendTracker.sol#153-156)
State variables written after the call(s):
- withdrawnDividends[user] = withdrawnDividends[user].sub(_withdrawableDividend) (contracts/baby/BabyTokenDividendTracker.sol#159-161)
Apply the check-effects-interactions pattern.

Additional information: link

Parameter DividendPayingToken.__DividendPayingToken_init(address,string,string)._name (contracts/baby/BabyTokenDividendTracker.sol#114) is not in mixedCase
Variable ContextUpgradeable.__gap (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#30) is not in mixedCase
Parameter BABYTOKENDividendTracker.getAccount(address)._account (contracts/baby/BabyTokenDividendTracker.sol#378) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (contracts/interfaces/IUniswapV2Pair.sol#20) is not in mixedCase
Function OwnableUpgradeable.__Ownable_init() (@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#28-31) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (contracts/interfaces/IUniswapV2Pair.sol#37) is not in mixedCase
Parameter DividendPayingToken.__DividendPayingToken_init(address,string,string)._rewardToken (contracts/baby/BabyTokenDividendTracker.sol#113) is not in mixedCase
Constant DividendPayingToken.magnitude (contracts/baby/BabyTokenDividendTracker.sol#92) is not in UPPER_CASE_WITH_UNDERSCORES
Variable OwnableUpgradeable.__gap (@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#77) is not in mixedCase
Function IUniswapV2Pair.DOMAIN_SEPARATOR() (contracts/interfaces/IUniswapV2Pair.sol#19) is not in mixedCase
Function ERC20Upgradeable.__ERC20_init_unchained(string,string) (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#59-62) is not in mixedCase
Function ERC20Upgradeable.__ERC20_init(string,string) (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#54-57) is not in mixedCase
Function ContextUpgradeable.__Context_init_unchained() (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#21-22) is not in mixedCase
Variable ERC20Upgradeable.__gap (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#361) is not in mixedCase
Parameter DividendPayingToken.dividendOf(address)._owner (contracts/baby/BabyTokenDividendTracker.sol#174) is not in mixedCase
Parameter DividendPayingToken.withdrawnDividendOf(address)._owner (contracts/baby/BabyTokenDividendTracker.sol#193) is not in mixedCase
Parameter DividendPayingToken.__DividendPayingToken_init(address,string,string)._symbol (contracts/baby/BabyTokenDividendTracker.sol#115) is not in mixedCase
Parameter DividendPayingToken.withdrawableDividendOf(address)._owner (contracts/baby/BabyTokenDividendTracker.sol#181) is not in mixedCase
Function OwnableUpgradeable.__Ownable_init_unchained() (@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#33-35) is not in mixedCase
Function IUniswapV2Router01.WETH() (contracts/interfaces/IUniswapV2Router02.sol#7) is not in mixedCase
Parameter DividendPayingToken.accumulativeDividendOf(address)._owner (contracts/baby/BabyTokenDividendTracker.sol#207) is not in mixedCase
Function ContextUpgradeable.__Context_init() (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#17-19) is not in mixedCase
Function DividendPayingToken.__DividendPayingToken_init(address,string,string) (contracts/baby/BabyTokenDividendTracker.sol#112-120) is not in mixedCase
Follow the Solidity naming convention.

Additional information: link

Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (contracts/interfaces/IUniswapV2Router02.sol#12) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (contracts/interfaces/IUniswapV2Router02.sol#13)
Variable DividendPayingToken.__DividendPayingToken_init(address,string,string)._rewardToken (contracts/baby/BabyTokenDividendTracker.sol#113) is too similar to BABYTOKENDividendTracker.initialize(address,uint256).rewardToken_ (contracts/baby/BabyTokenDividendTracker.sol#305)
Variable DividendPayingToken._withdrawDividendOfUser(address)._withdrawableDividend (contracts/baby/BabyTokenDividendTracker.sol#147) is too similar to BABYTOKENDividendTracker.getAccount(address).withdrawableDividends (contracts/baby/BabyTokenDividendTracker.sol#385)
Prevent variables from having similar names.

Additional information: link

DividendPayingToken.__DividendPayingToken_init(address,string,string)._name (contracts/baby/BabyTokenDividendTracker.sol#114) shadows:
- ERC20Upgradeable._name (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#42) (state variable)
DividendPayingToken.dividendOf(address)._owner (contracts/baby/BabyTokenDividendTracker.sol#174) shadows:
- OwnableUpgradeable._owner (@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#21) (state variable)
DividendPayingToken.withdrawnDividendOf(address)._owner (contracts/baby/BabyTokenDividendTracker.sol#193) shadows:
- OwnableUpgradeable._owner (@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#21) (state variable)
DividendPayingToken.accumulativeDividendOf(address)._owner (contracts/baby/BabyTokenDividendTracker.sol#207) shadows:
- OwnableUpgradeable._owner (@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#21) (state variable)
DividendPayingToken.__DividendPayingToken_init(address,string,string)._symbol (contracts/baby/BabyTokenDividendTracker.sol#115) shadows:
- ERC20Upgradeable._symbol (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#43) (state variable)
DividendPayingToken.withdrawableDividendOf(address)._owner (contracts/baby/BabyTokenDividendTracker.sol#181) shadows:
- OwnableUpgradeable._owner (@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#21) (state variable)
Rename the local variables that shadow another component.

Additional information: link

DividendPayingToken._withdrawDividendOfUser(address) (contracts/baby/BabyTokenDividendTracker.sol#143-169) has external calls inside a loop: success = IERC20(rewardToken).transfer(user,_withdrawableDividend) (contracts/baby/BabyTokenDividendTracker.sol#153-156)
Favor pull over push strategy for external calls.

Additional information: link

Reentrancy in BABYTOKENDividendTracker.processAccount(address,bool) (contracts/baby/BabyTokenDividendTracker.sol#529-543):
External calls:
- amount = _withdrawDividendOfUser(account) (contracts/baby/BabyTokenDividendTracker.sol#534)
- success = IERC20(rewardToken).transfer(user,_withdrawableDividend) (contracts/baby/BabyTokenDividendTracker.sol#153-156)
State variables written after the call(s):
- lastClaimTimes[account] = block.timestamp (contracts/baby/BabyTokenDividendTracker.sol#537)
Apply the check-effects-interactions pattern.

Additional information: link

Reentrancy in BABYTOKENDividendTracker.processAccount(address,bool) (contracts/baby/BabyTokenDividendTracker.sol#529-543):
External calls:
- amount = _withdrawDividendOfUser(account) (contracts/baby/BabyTokenDividendTracker.sol#534)
- success = IERC20(rewardToken).transfer(user,_withdrawableDividend) (contracts/baby/BabyTokenDividendTracker.sol#153-156)
Event emitted after the call(s):
- Claim(account,amount,automatic) (contracts/baby/BabyTokenDividendTracker.sol#538)
Apply the check-effects-interactions pattern.

Additional information: link

BABYTOKENDividendTracker.canAutoClaim(uint256) (contracts/baby/BabyTokenDividendTracker.sol#450-456) uses timestamp for comparisons
Dangerous comparisons:
- lastClaimTime > block.timestamp (contracts/baby/BabyTokenDividendTracker.sol#451)
- block.timestamp.sub(lastClaimTime) >= claimWait (contracts/baby/BabyTokenDividendTracker.sol#455)
BABYTOKENDividendTracker.getAccount(address) (contracts/baby/BabyTokenDividendTracker.sol#378-425) uses timestamp for comparisons
Dangerous comparisons:
- nextClaimTime > block.timestamp (contracts/baby/BabyTokenDividendTracker.sol#422-424)
Avoid relying on block.timestamp.

Additional information: link

Different versions of Solidity are used:
- Version used: ['=0.8.4', '>=0.5.0', '>=0.6.2', '^0.8.0']
- ^0.8.0 (@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#3)
- ^0.8.0 (@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#3)
- ^0.8.0 (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#3)
- ^0.8.0 (@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol#3)
- ^0.8.0 (@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol#3)
- ^0.8.0 (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#3)
- ^0.8.0 (@openzeppelin/contracts/access/Ownable.sol#3)
- ^0.8.0 (@openzeppelin/contracts/token/ERC20/ERC20.sol#3)
- ^0.8.0 (@openzeppelin/contracts/token/ERC20/IERC20.sol#3)
- ^0.8.0 (@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol#3)
- ^0.8.0 (@openzeppelin/contracts/utils/Context.sol#3)
- ^0.8.0 (@openzeppelin/contracts/utils/math/SafeMath.sol#3)
- =0.8.4 (contracts/baby/BabyTokenDividendTracker.sol#2)
- =0.8.4 (contracts/baby/IterableMapping.sol#2)
- >=0.5.0 (contracts/interfaces/IUniswapV2Factory.sol#2)
- >=0.5.0 (contracts/interfaces/IUniswapV2Pair.sol#2)
- >=0.6.2 (contracts/interfaces/IUniswapV2Router02.sol#2)
- =0.8.4 (contracts/libs/SafeMathInt.sol#2)
- =0.8.4 (contracts/libs/SafeMathUint.sol#2)
Use one Solidity version.

Additional information: link

ContextUpgradeable._msgData() (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#27-29) is never used and should be removed
SafeMathInt.div(int256,int256) (contracts/libs/SafeMathInt.sol#27-33) is never used and should be removed
SafeMath.tryDiv(uint256,uint256) (@openzeppelin/contracts/utils/math/SafeMath.sol#63-68) is never used and should be removed
SafeMathInt.abs(int256) (contracts/libs/SafeMathInt.sol#56-59) is never used and should be removed
SafeMath.tryMod(uint256,uint256) (@openzeppelin/contracts/utils/math/SafeMath.sol#75-80) is never used and should be removed
SafeMath.sub(uint256,uint256,string) (@openzeppelin/contracts/utils/math/SafeMath.sol#167-176) is never used and should be removed
SafeMathInt.mul(int256,int256) (contracts/libs/SafeMathInt.sol#15-22) is never used and should be removed
SafeMath.tryAdd(uint256,uint256) (@openzeppelin/contracts/utils/math/SafeMath.sol#21-27) is never used and should be removed
ERC20._burn(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#274-289) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (@openzeppelin/contracts/utils/math/SafeMath.sol#216-225) is never used and should be removed
SafeMath.div(uint256,uint256,string) (@openzeppelin/contracts/utils/math/SafeMath.sol#190-199) is never used and should be removed
Context._msgData() (@openzeppelin/contracts/utils/Context.sol#20-22) is never used and should be removed
ERC20Upgradeable._transfer(address,address,uint256) (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#226-246) is never used and should be removed
SafeMath.mod(uint256,uint256) (@openzeppelin/contracts/utils/math/SafeMath.sol#150-152) is never used and should be removed
SafeMath.div(uint256,uint256) (@openzeppelin/contracts/utils/math/SafeMath.sol#134-136) is never used and should be removed
SafeMath.tryMul(uint256,uint256) (@openzeppelin/contracts/utils/math/SafeMath.sol#46-56) is never used and should be removed
SafeMath.trySub(uint256,uint256) (@openzeppelin/contracts/utils/math/SafeMath.sol#34-39) is never used and should be removed
DividendPayingToken._transfer(address,address,uint256) (contracts/baby/BabyTokenDividendTracker.sol#226-241) is never used and should be removed
ERC20._mint(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#251-261) is never used and should be removed
ContextUpgradeable.__Context_init() (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#17-19) is never used and should be removed
Remove unused functions.

Additional information: link

Pragma version^0.8.0 (@openzeppelin/contracts/token/ERC20/ERC20.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/token/ERC20/IERC20.sol#3) allows old versions
Pragma version>=0.6.2 (contracts/interfaces/IUniswapV2Router02.sol#2) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/utils/Context.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20MetadataUpgradeable.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/access/Ownable.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol#3) allows old versions
Pragma version>=0.5.0 (contracts/interfaces/IUniswapV2Factory.sol#2) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/utils/math/SafeMath.sol#3) allows old versions
Pragma version>=0.5.0 (contracts/interfaces/IUniswapV2Pair.sol#2) allows old versions
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

SafeMathInt.MAX_INT256 (contracts/libs/SafeMathInt.sol#10) is never used in SafeMathInt (contracts/libs/SafeMathInt.sol#8-65)
OwnableUpgradeable.__gap (@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#77) is never used in BABYTOKENDividendTracker (contracts/baby/BabyTokenDividendTracker.sol#280-544)
Remove unused state variables.

Additional information: link

transferFrom(address,address,uint256) should be declared external:
- ERC20Upgradeable.transferFrom(address,address,uint256) (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#155-169)
distributeCAKEDividends(uint256) should be declared external:
- DividendPayingToken.distributeCAKEDividends(uint256) (contracts/baby/BabyTokenDividendTracker.sol#122-133)
get(IterableMapping.Map,address) should be declared external:
- IterableMapping.get(IterableMapping.Map,address) (contracts/baby/IterableMapping.sol#13-15)
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#149-163)
getKeyAtIndex(IterableMapping.Map,uint256) should be declared external:
- IterableMapping.getKeyAtIndex(IterableMapping.Map,uint256) (contracts/baby/IterableMapping.sol#28-34)
transferOwnership(address) should be declared external:
- OwnableUpgradeable.transferOwnership(address) (@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#67-70)
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (@openzeppelin/contracts/access/Ownable.sol#53-55)
name() should be declared external:
- ERC20Upgradeable.name() (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#67-69)
decimals() should be declared external:
- ERC20.decimals() (@openzeppelin/contracts/token/ERC20/ERC20.sol#86-88)
dividendOf(address) should be declared external:
- DividendPayingToken.dividendOf(address) (contracts/baby/BabyTokenDividendTracker.sol#174-176)
getIndexOfKey(IterableMapping.Map,address) should be declared external:
- IterableMapping.getIndexOfKey(IterableMapping.Map,address) (contracts/baby/IterableMapping.sol#17-26)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#196-204)
symbol() should be declared external:
- ERC20.symbol() (@openzeppelin/contracts/token/ERC20/ERC20.sol#69-71)
balanceOf(address) should be declared external:
- ERC20.balanceOf(address) (@openzeppelin/contracts/token/ERC20/ERC20.sol#100-102)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#112-115)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#177-180)
symbol() should be declared external:
- ERC20Upgradeable.symbol() (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#75-77)
increaseAllowance(address,uint256) should be declared external:
- ERC20Upgradeable.increaseAllowance(address,uint256) (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#183-186)
size(IterableMapping.Map) should be declared external:
- IterableMapping.size(IterableMapping.Map) (contracts/baby/IterableMapping.sol#36-38)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (@openzeppelin/contracts/access/Ownable.sol#61-64)
withdrawDividend() should be declared external:
- BABYTOKENDividendTracker.withdrawDividend() (contracts/baby/BabyTokenDividendTracker.sol#325-330)
- DividendPayingToken.withdrawDividend() (contracts/baby/BabyTokenDividendTracker.sol#137-139)
name() should be declared external:
- ERC20.name() (@openzeppelin/contracts/token/ERC20/ERC20.sol#61-63)
approve(address,uint256) should be declared external:
- ERC20Upgradeable.approve(address,uint256) (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#137-140)
decreaseAllowance(address,uint256) should be declared external:
- ERC20Upgradeable.decreaseAllowance(address,uint256) (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#202-210)
renounceOwnership() should be declared external:
- OwnableUpgradeable.renounceOwnership() (@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol#59-61)
decimals() should be declared external:
- ERC20Upgradeable.decimals() (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#92-94)
totalSupply() should be declared external:
- ERC20.totalSupply() (@openzeppelin/contracts/token/ERC20/ERC20.sol#93-95)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#131-134)
allowance(address,address) should be declared external:
- ERC20Upgradeable.allowance(address,address) (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#126-128)
process(uint256) should be declared external:
- BABYTOKENDividendTracker.process(uint256) (contracts/baby/BabyTokenDividendTracker.sol#475-527)
isExcludedFromDividends(address) should be declared external:
- BABYTOKENDividendTracker.isExcludedFromDividends(address) (contracts/baby/BabyTokenDividendTracker.sol#342-348)
withdrawnDividendOf(address) should be declared external:
- DividendPayingToken.withdrawnDividendOf(address) (contracts/baby/BabyTokenDividendTracker.sol#193-200)
getAccountAtIndex(uint256) should be declared external:
- BABYTOKENDividendTracker.getAccountAtIndex(uint256) (contracts/baby/BabyTokenDividendTracker.sol#427-448)
transfer(address,uint256) should be declared external:
- ERC20Upgradeable.transfer(address,uint256) (@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol#118-121)
allowance(address,address) should be declared external:
- ERC20.allowance(address,address) (@openzeppelin/contracts/token/ERC20/ERC20.sol#120-122)
Use the external attribute for functions never called from the contract.

Additional information: link


Contract ownership is semi-renounced (passed to a contract)

Contract ticker (DIVIDEND_TRACKER) 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.

Contract ticker (DIVIDEND_TRACKER) has length of 16 chars.
Not a direct threat, but may indicate unreliable intentions of developer.

Holders:


Token seems to be untradeable: there is no PancakeSwap trading pair and no trading volumes. Ignore for presale.


Token has no transactions for more than 100 days. It seems dead / abandoned.


Number of Binance Smart Chain (BSC) token holders is low.


Unable to find Telegram and Twitter accounts


Unable to find website, listings and other project-related information


Token has a considerable age, but we're still unable to find its website


Token is marked as risky (blacklisted creator, fake name, dead project, etc.)

Additional information: link


Token has a considerable age, but social accounts / website are missing or have few users


Token has a considerable age, but average PancakeSwap 30d trading volume is low


Token has no active CoinGecko listing / rank


Token has no active CoinMarketCap listing / rank

Price for DIVIDEND_TRACKER