Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
VaultOwned.setVault(address) (contracts/tokens/WALTToken.sol#859-863) should emit an event for:
- _vault = vault_ (contracts/tokens/WALTToken.sol#860)
Emit an event for critical parameter changes.
Additional information: link
VaultOwned.setVault(address).vault_ (contracts/tokens/WALTToken.sol#859) lacks a zero-check on :
- _vault = vault_ (contracts/tokens/WALTToken.sol#860)
Check that the address is not zero.
Additional information: link
ERC20Permit.permit(address,address,uint256,uint256,uint8,bytes32,bytes32) (contracts/tokens/WALTToken.sol#787-808) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(block.timestamp <= deadline,Permit: expired deadline) (contracts/tokens/WALTToken.sol#796)
Avoid relying on block.timestamp.
Additional information: link
ERC20Permit.constructor() (contracts/tokens/WALTToken.sol#770-785) uses assembly
- INLINE ASM (contracts/tokens/WALTToken.sol#772-774)
Do not use evm assembly.
Additional information: link
Counters.decrement(Counters.Counter) (contracts/tokens/WALTToken.sol#740-742) is never used and should be removed
EnumerableSet._add(EnumerableSet.Set,bytes32) (contracts/tokens/WALTToken.sol#33-43) is never used and should be removed
EnumerableSet._at(EnumerableSet.Set,uint256) (contracts/tokens/WALTToken.sol#109-112) is never used and should be removed
EnumerableSet._contains(EnumerableSet.Set,bytes32) (contracts/tokens/WALTToken.sol#88-90) is never used and should be removed
EnumerableSet._getValues(EnumerableSet.Set) (contracts/tokens/WALTToken.sol#114-116) is never used and should be removed
EnumerableSet._insert(EnumerableSet.Set,uint256,bytes32) (contracts/tokens/WALTToken.sol#123-129) is never used and should be removed
EnumerableSet._length(EnumerableSet.Set) (contracts/tokens/WALTToken.sol#95-97) is never used and should be removed
EnumerableSet._remove(EnumerableSet.Set,bytes32) (contracts/tokens/WALTToken.sol#51-83) is never used and should be removed
EnumerableSet.add(EnumerableSet.AddressSet,address) (contracts/tokens/WALTToken.sol#272-274) is never used and should be removed
EnumerableSet.add(EnumerableSet.Bytes32Set,bytes32) (contracts/tokens/WALTToken.sol#205-207) is never used and should be removed
EnumerableSet.add(EnumerableSet.Bytes4Set,bytes4) (contracts/tokens/WALTToken.sol#141-143) is never used and should be removed
EnumerableSet.add(EnumerableSet.UInt256Set,uint256) (contracts/tokens/WALTToken.sol#398-400) is never used and should be removed
EnumerableSet.add(EnumerableSet.UintSet,uint256) (contracts/tokens/WALTToken.sol#346-348) is never used and should be removed
EnumerableSet.at(EnumerableSet.AddressSet,uint256) (contracts/tokens/WALTToken.sol#310-312) is never used and should be removed
EnumerableSet.at(EnumerableSet.Bytes32Set,uint256) (contracts/tokens/WALTToken.sol#243-245) is never used and should be removed
EnumerableSet.at(EnumerableSet.Bytes4Set,uint256) (contracts/tokens/WALTToken.sol#179-181) is never used and should be removed
EnumerableSet.at(EnumerableSet.UInt256Set,uint256) (contracts/tokens/WALTToken.sol#436-438) is never used and should be removed
EnumerableSet.at(EnumerableSet.UintSet,uint256) (contracts/tokens/WALTToken.sol#384-386) is never used and should be removed
EnumerableSet.contains(EnumerableSet.AddressSet,address) (contracts/tokens/WALTToken.sol#289-291) is never used and should be removed
EnumerableSet.contains(EnumerableSet.Bytes32Set,bytes32) (contracts/tokens/WALTToken.sol#222-224) is never used and should be removed
EnumerableSet.contains(EnumerableSet.Bytes4Set,bytes4) (contracts/tokens/WALTToken.sol#158-160) is never used and should be removed
EnumerableSet.contains(EnumerableSet.UInt256Set,uint256) (contracts/tokens/WALTToken.sol#415-417) is never used and should be removed
EnumerableSet.contains(EnumerableSet.UintSet,uint256) (contracts/tokens/WALTToken.sol#363-365) is never used and should be removed
EnumerableSet.getValues(EnumerableSet.AddressSet) (contracts/tokens/WALTToken.sol#318-327) is never used and should be removed
EnumerableSet.getValues(EnumerableSet.Bytes32Set) (contracts/tokens/WALTToken.sol#247-255) is never used and should be removed
EnumerableSet.getValues(EnumerableSet.Bytes4Set) (contracts/tokens/WALTToken.sol#183-189) is never used and should be removed
EnumerableSet.insert(EnumerableSet.AddressSet,uint256,address) (contracts/tokens/WALTToken.sol#329-331) is never used and should be removed
EnumerableSet.insert(EnumerableSet.Bytes32Set,uint256,bytes32) (contracts/tokens/WALTToken.sol#257-259) is never used and should be removed
EnumerableSet.insert(EnumerableSet.Bytes4Set,uint256,bytes4) (contracts/tokens/WALTToken.sol#191-193) is never used and should be removed
EnumerableSet.length(EnumerableSet.AddressSet) (contracts/tokens/WALTToken.sol#296-298) is never used and should be removed
EnumerableSet.length(EnumerableSet.Bytes32Set) (contracts/tokens/WALTToken.sol#229-231) is never used and should be removed
EnumerableSet.length(EnumerableSet.Bytes4Set) (contracts/tokens/WALTToken.sol#165-167) is never used and should be removed
EnumerableSet.length(EnumerableSet.UInt256Set) (contracts/tokens/WALTToken.sol#422-424) is never used and should be removed
EnumerableSet.length(EnumerableSet.UintSet) (contracts/tokens/WALTToken.sol#370-372) is never used and should be removed
EnumerableSet.remove(EnumerableSet.AddressSet,address) (contracts/tokens/WALTToken.sol#282-284) is never used and should be removed
EnumerableSet.remove(EnumerableSet.Bytes32Set,bytes32) (contracts/tokens/WALTToken.sol#215-217) is never used and should be removed
EnumerableSet.remove(EnumerableSet.Bytes4Set,bytes4) (contracts/tokens/WALTToken.sol#151-153) is never used and should be removed
EnumerableSet.remove(EnumerableSet.UInt256Set,uint256) (contracts/tokens/WALTToken.sol#408-410) is never used and should be removed
EnumerableSet.remove(EnumerableSet.UintSet,uint256) (contracts/tokens/WALTToken.sol#356-358) is never used and should be removed
SafeMath.average(uint256,uint256) (contracts/tokens/WALTToken.sol#590-593) is never used and should be removed
SafeMath.bondingCurve(uint256,uint256) (contracts/tokens/WALTToken.sol#599-601) is never used and should be removed
SafeMath.div(uint256,uint256) (contracts/tokens/WALTToken.sol#544-546) is never used and should be removed
SafeMath.div(uint256,uint256,string) (contracts/tokens/WALTToken.sol#548-554) is never used and should be removed
SafeMath.mod(uint256,uint256) (contracts/tokens/WALTToken.sol#556-558) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (contracts/tokens/WALTToken.sol#560-563) is never used and should be removed
SafeMath.mul(uint256,uint256) (contracts/tokens/WALTToken.sol#532-542) is never used and should be removed
SafeMath.percentageAmount(uint256,uint8) (contracts/tokens/WALTToken.sol#578-580) is never used and should be removed
SafeMath.percentageOfTotal(uint256,uint256) (contracts/tokens/WALTToken.sol#586-588) is never used and should be removed
SafeMath.quadraticPricing(uint256,uint256) (contracts/tokens/WALTToken.sol#595-597) is never used and should be removed
SafeMath.sqrrt(uint256) (contracts/tokens/WALTToken.sol#565-576) is never used and should be removed
SafeMath.substractPercentage(uint256,uint8) (contracts/tokens/WALTToken.sol#582-584) is never used and should be removed
Remove unused functions.
Additional information: link
Variable ERC20._balances (contracts/tokens/WALTToken.sol#612) is not in mixedCase
Variable ERC20._allowances (contracts/tokens/WALTToken.sol#615) is not in mixedCase
Variable ERC20._totalSupply (contracts/tokens/WALTToken.sol#618) is not in mixedCase
Variable ERC20._name (contracts/tokens/WALTToken.sol#621) is not in mixedCase
Variable ERC20._symbol (contracts/tokens/WALTToken.sol#624) is not in mixedCase
Variable ERC20._decimals (contracts/tokens/WALTToken.sol#627) is not in mixedCase
Variable ERC20Permit.DOMAIN_SEPARATOR (contracts/tokens/WALTToken.sol#768) is not in mixedCase
Variable Ownable._owner (contracts/tokens/WALTToken.sol#825) is not in mixedCase
Variable VaultOwned._vault (contracts/tokens/WALTToken.sol#857) is not in mixedCase
Function WALTToken._burnFrom(address,uint256) (contracts/tokens/WALTToken.sol#895-904) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
ERC20.ERC20TOKEN_ERC1820_INTERFACE_ID (contracts/tokens/WALTToken.sol#609) is never used in WALTToken (contracts/tokens/WALTToken.sol#876-906)
Remove unused state variables.
Additional information: link
symbol() should be declared external:
- ERC20.symbol() (contracts/tokens/WALTToken.sol#639-641)
decimals() should be declared external:
- ERC20.decimals() (contracts/tokens/WALTToken.sol#643-645)
totalSupply() should be declared external:
- ERC20.totalSupply() (contracts/tokens/WALTToken.sol#647-649)
balanceOf(address) should be declared external:
- ERC20.balanceOf(address) (contracts/tokens/WALTToken.sol#651-653)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (contracts/tokens/WALTToken.sol#655-658)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (contracts/tokens/WALTToken.sol#664-667)
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (contracts/tokens/WALTToken.sol#669-673)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (contracts/tokens/WALTToken.sol#675-678)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (contracts/tokens/WALTToken.sol#680-683)
permit(address,address,uint256,uint256,uint8,bytes32,bytes32) should be declared external:
- ERC20Permit.permit(address,address,uint256,uint256,uint8,bytes32,bytes32) (contracts/tokens/WALTToken.sol#787-808)
nonces(address) should be declared external:
- ERC20Permit.nonces(address) (contracts/tokens/WALTToken.sol#810-812)
owner() should be declared external:
- Ownable.owner() (contracts/tokens/WALTToken.sol#834-836)
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (contracts/tokens/WALTToken.sol#843-846)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (contracts/tokens/WALTToken.sol#848-852)
vault() should be declared external:
- VaultOwned.vault() (contracts/tokens/WALTToken.sol#865-867)
burn(uint256) should be declared external:
- WALTToken.burn(uint256) (contracts/tokens/WALTToken.sol#887-889)
burnFrom(address,uint256) should be declared external:
- WALTToken.burnFrom(address,uint256) (contracts/tokens/WALTToken.sol#891-893)
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 price dump / death
Token has no active CoinGecko listing / rank
Token has no active CoinMarketCap listing / rank
Unable to find Telegram and Twitter accounts