The Youwho is an Crypto-Based On-Demand Services Ecosystem powered by blockchain. The platform allows people to obtain services from providers worldwide and pay with crypto. Simultaneously, it’s a decentralized marketplace platform. So, many different professionals like mechanics, cleaners, plumbers, electricians, doctors, nurses, engineers, designers, software programmers, architects, tutors and so many more professions can use it to earn a living full-time or part-time. Also, the developers plan to divide the store into a hard store and a soft store. As a result, clients could buy and sell tangible and intangible goods from one another.
The YOU is a BEP20 (BSC) token serving as an integral part of the Youwho’s system. So, the team plans to reward early adopters and testers. Moreover, users will be able to claim a share of the platform’s fees. Also, token-holders can vote inside the DAO and participate in the arbitration to solve buyer-seller disputes. Besides, the management aims to provide $YOU with a bridge among BSC, Avalanche, Polygon, and Ethereum blockchains.
Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
AccessControlEnumerable._grantRole(bytes32,address) (#918-921) ignores return value by _roleMembers[role].add(account) (#920)
AccessControlEnumerable._revokeRole(bytes32,address) (#926-929) ignores return value by _roleMembers[role].remove(account) (#928)
Ensure that all the return values of the function calls are used.
Additional information: link
EnumerableSet.values(EnumerableSet.AddressSet) (#276-285) uses assembly
- INLINE ASM (#280-282)
EnumerableSet.values(EnumerableSet.UintSet) (#349-358) uses assembly
- INLINE ASM (#353-355)
Do not use evm assembly.
Additional information: link
Pragma version^0.8.0 (#1145) allows old versions
Pragma version^0.8.0 (#425) allows old versions
Pragma version^0.8.0 (#6) allows old versions
Pragma version^0.8.0 (#871) allows old versions
Pragma version^0.8.0 (#1605) allows old versions
Pragma version^0.8.0 (#394) allows old versions
Pragma version^0.8.0 (#1565) allows old versions
Pragma version^0.8.0 (#366) allows old versions
solc-0.8.12 is not recommended for deployment
Pragma version^0.8.0 (#1115) allows old versions
Pragma version^0.8.0 (#1030) allows old versions
Pragma version^0.8.0 (#586) allows old versions
Pragma version^0.8.0 (#1530) allows old versions
Pragma version^0.8.0 (#619) allows old versions
Pragma version^0.8.0 (#646) allows old versions
Pragma version^0.8.0 (#495) allows old versions
Pragma version^0.8.0 (#937) 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
EnumerableSet.values(EnumerableSet.Bytes32Set) (#210-212) is never used and should be removed
AccessControl._setRoleAdmin(bytes32,bytes32) (#835-839) is never used and should be removed
EnumerableSet.length(EnumerableSet.Bytes32Set) (#184-186) is never used and should be removed
EnumerableSet.at(EnumerableSet.Bytes32Set,uint256) (#198-200) is never used and should be removed
EnumerableSet.remove(EnumerableSet.UintSet,uint256) (#309-311) is never used and should be removed
EnumerableSet.contains(EnumerableSet.Bytes32Set,bytes32) (#177-179) is never used and should be removed
Strings.toHexString(uint256) (#461-472) is never used and should be removed
EnumerableSet.contains(EnumerableSet.UintSet,uint256) (#316-318) is never used and should be removed
EnumerableSet.values(EnumerableSet.AddressSet) (#276-285) is never used and should be removed
Strings.toString(uint256) (#436-456) is never used and should be removed
EnumerableSet.contains(EnumerableSet.AddressSet,address) (#243-245) is never used and should be removed
EnumerableSet.add(EnumerableSet.Bytes32Set,bytes32) (#160-162) is never used and should be removed
EnumerableSet._values(EnumerableSet.Set) (#144-146) is never used and should be removed
EnumerableSet.values(EnumerableSet.UintSet) (#349-358) is never used and should be removed
Context._msgData() (#636-638) is never used and should be removed
EnumerableSet.length(EnumerableSet.UintSet) (#323-325) is never used and should be removed
EnumerableSet.at(EnumerableSet.UintSet,uint256) (#337-339) is never used and should be removed
EnumerableSet.add(EnumerableSet.UintSet,uint256) (#299-301) is never used and should be removed
EnumerableSet.remove(EnumerableSet.Bytes32Set,bytes32) (#170-172) is never used and should be removed
Remove unused functions.
Additional information: link
Variable YouToken._cap (#1635) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (#1298-1307)
burnFrom(address,uint256) should be declared external:
- ERC20Burnable.burnFrom(address,uint256) (#1595-1598)
pause() should be declared external:
- YouToken.pause() (#1676-1679)
getRoleMemberCount(bytes32) should be declared external:
- AccessControlEnumerable.getRoleMemberCount(bytes32) (#911-913)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (#1341-1350)
unpause() should be declared external:
- YouToken.unpause() (#1690-1693)
symbol() should be declared external:
- ERC20.symbol() (#1210-1212)
balanceOf(address) should be declared external:
- ERC20.balanceOf(address) (#1241-1243)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (#1253-1257)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (#1321-1325)
getRoleMember(bytes32,uint256) should be declared external:
- AccessControlEnumerable.getRoleMember(bytes32,uint256) (#903-905)
name() should be declared external:
- ERC20.name() (#1202-1204)
grantRole(bytes32,address) should be declared external:
- AccessControl.grantRole(bytes32,address) (#771-773)
revokeRole(bytes32,address) should be declared external:
- AccessControl.revokeRole(bytes32,address) (#784-786)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (#1276-1280)
renounceRole(bytes32,address) should be declared external:
- AccessControl.renounceRole(bytes32,address) (#802-806)
burn(uint256) should be declared external:
- ERC20Burnable.burn(uint256) (#1580-1582)
mint(address,uint256) should be declared external:
- YouToken.mint(address,uint256) (#1661-1665)
Use the external attribute for functions never called from the contract.
Additional information: link
Average 30d PancakeSwap liquidity is less than $100. Token is either dead or inactive.
Average 30d PancakeSwap volume is less than $100. Token is either dead or inactive.
Average 30d number of PancakeSwap swaps is less than 1. Token is either dead or inactive.
Average PancakeSwap trading volume, liqudity, number of swaps are extremely low. Token seems to be dead.
Token has only one trading pair
Unable to find token contract audit
Unable to find audit link on the website
Unable to find whitepaper link on the website
Unable to find Telegram link on the website
Token is not listed at Mobula.Finance
Additional information: link
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of scam / price dump / death
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
Twitter account link seems to be invalid
Telegram account has relatively few subscribers
Unable to find Youtube account