Poollotto Token (PLT) is a new generation of lottery token-based smart contracts for non-centralized management of the global community-driven lottery pools, automated and safe payments.
The PLT Token project was launched to create a blockchain platform and token economy that gives transparency and fair outcomes to users around the globe. At the same time, token distribution is defined to provide a required level of development, promotion, and support of the PLT Ecosystem.
Contract name (Poollotto.finance) 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.
ECDSA.recover(bytes32,bytes) (#604-637) uses assembly
- INLINE ASM (#617-621)
- INLINE ASM (#626-631)
Do not use evm assembly.
Additional information: link
Context._msgData() (#131-134) is never used and should be removed
Counters.decrement(Counters.Counter) (#827-833) is never used and should be removed
ECDSA.recover(bytes32,bytes) (#604-637) is never used and should be removed
ECDSA.toEthSignedMessageHash(bytes32) (#671-675) is never used and should be removed
ERC20Capped._mint(address,uint256) (#517-520) is never used and should be removed
Remove unused functions.
Additional information: link
Redundant expression "this (#132)" inContext (#126-135)
Remove redundant statements if they congest code but offer no value.
Additional information: link
ERC20Permit.permit(address,address,uint256,uint256,uint8,bytes32,bytes32) (#876-897) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(block.timestamp <= deadline,ERC20Permit: expired deadline) (#878)
Avoid relying on block.timestamp.
Additional information: link
ERC20Permit.constructor(string).name (#870) shadows:
- ERC20.name() (#197-199) (function)
- IERC20Metadata.name() (#97) (function)
Rename the local variables that shadow another component.
Additional information: link
Function IERC20Permit.DOMAIN_SEPARATOR() (#574) is not in mixedCase
Variable EIP712._CACHED_DOMAIN_SEPARATOR (#721) is not in mixedCase
Variable EIP712._CACHED_CHAIN_ID (#722) is not in mixedCase
Variable EIP712._HASHED_NAME (#724) is not in mixedCase
Variable EIP712._HASHED_VERSION (#725) is not in mixedCase
Variable EIP712._TYPE_HASH (#726) is not in mixedCase
Function ERC20Permit.DOMAIN_SEPARATOR() (#910-912) is not in mixedCase
Variable ERC20Permit._PERMIT_TYPEHASH (#863) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
name() should be declared external:
- ERC20.name() (#197-199)
symbol() should be declared external:
- ERC20.symbol() (#205-207)
balanceOf(address) should be declared external:
- ERC20.balanceOf(address) (#236-238)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (#248-251)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (#267-270)
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (#285-293)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (#307-310)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (#326-332)
burn(uint256) should be declared external:
- ERC20Burnable.burn(uint256) (#462-464)
burnFrom(address,uint256) should be declared external:
- ERC20Burnable.burnFrom(address,uint256) (#477-482)
permit(address,address,uint256,uint256,uint8,bytes32,bytes32) should be declared external:
- ERC20Permit.permit(address,address,uint256,uint256,uint8,bytes32,bytes32) (#876-897)
nonces(address) should be declared external:
- ERC20Permit.nonces(address) (#902-904)
Use the external attribute for functions never called from the contract.
Additional information: link
Unable to find Youtube account