Secure, low-slippage stable swapping on BNB chain
EllipsisToken2.migrate(address,uint256) (EllipsisToken2.sol#89-100) ignores return value by oldToken.transferFrom(msg.sender,address(0),_amount) (EllipsisToken2.sol#90)
Use SafeERC20, or ensure that the transfer/transferFrom return value is checked.
Additional information: link
Pragma version^0.8.0 (Ownable.sol#4) allows old versions
Pragma version^0.8.0 (Context.sol#4) allows old versions
solc-0.8.12 is not recommended for deployment
Pragma version^0.8.0 (SafeERC20.sol#4) allows old versions
Pragma version^0.8.0 (IERC20.sol#4) allows old versions
Pragma version0.8.12 (EllipsisToken2.sol#1) necessitates a version too recent to be trusted. Consider deploying with 0.6.12/0.7.6/0.8.7
Pragma version^0.8.1 (Address.sol#4) 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
Low level call in Address.sendValue(address,uint256) (Address.sol#60-65):
- (success) = recipient.call{value: amount}() (Address.sol#63)
Low level call in Address.functionStaticCall(address,bytes,string) (Address.sol#157-166):
- (success,returndata) = target.staticcall(data) (Address.sol#164)
Low level call in Address.functionDelegateCall(address,bytes,string) (Address.sol#184-193):
- (success,returndata) = target.delegatecall(data) (Address.sol#191)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (Address.sol#128-139):
- (success,returndata) = target.call{value: value}(data) (Address.sol#137)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
EllipsisToken2._transfer(address,address,uint256) (EllipsisToken2.sol#109-115) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(block.timestamp >= startTime,Transfers not yet enabled) (EllipsisToken2.sol#110)
Avoid relying on block.timestamp.
Additional information: link
Address.verifyCallResult(bool,bytes,string) (Address.sol#201-221) uses assembly
- INLINE ASM (Address.sol#213-216)
Do not use evm assembly.
Additional information: link
transferFrom(address,address,uint256) should be declared external:
- EllipsisToken2.transferFrom(address,address,uint256) (EllipsisToken2.sol#135-151)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (Ownable.sol#62-65)
transfer(address,uint256) should be declared external:
- EllipsisToken2.transfer(address,uint256) (EllipsisToken2.sol#123-126)
Use the external attribute for functions never called from the contract.
Additional information: link
Reentrancy in EllipsisToken2.migrate(address,uint256) (EllipsisToken2.sol#89-100):
External calls:
- oldToken.transferFrom(msg.sender,address(0),_amount) (EllipsisToken2.sol#90)
State variables written after the call(s):
- balanceOf[_receiver] += newAmount (EllipsisToken2.sol#94)
- totalMigrated += _amount (EllipsisToken2.sol#93)
- totalSupply += newAmount (EllipsisToken2.sol#95)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in EllipsisToken2.migrate(address,uint256) (EllipsisToken2.sol#89-100):
External calls:
- oldToken.transferFrom(msg.sender,address(0),_amount) (EllipsisToken2.sol#90)
Event emitted after the call(s):
- TokensMigrated(msg.sender,_receiver,_amount,newAmount) (EllipsisToken2.sol#98)
- Transfer(address(0),_receiver,newAmount) (EllipsisToken2.sol#97)
Apply the check-effects-interactions pattern.
Additional information: link
Different versions of Solidity are used:
- Version used: ['0.8.12', '^0.8.0', '^0.8.1']
- ^0.8.1 (Address.sol#4)
- ^0.8.0 (Context.sol#4)
- 0.8.12 (EllipsisToken2.sol#1)
- ^0.8.0 (IERC20.sol#4)
- ^0.8.0 (Ownable.sol#4)
- ^0.8.0 (SafeERC20.sol#4)
Use one Solidity version.
Additional information: link
Address.verifyCallResult(bool,bytes,string) (Address.sol#201-221) is never used and should be removed
Address.sendValue(address,uint256) (Address.sol#60-65) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (Address.sol#114-120) is never used and should be removed
SafeERC20._callOptionalReturn(IERC20,bytes) (SafeERC20.sol#88-98) is never used and should be removed
Address.functionDelegateCall(address,bytes,string) (Address.sol#184-193) is never used and should be removed
SafeERC20.safeTransfer(IERC20,address,uint256) (SafeERC20.sol#21-27) is never used and should be removed
Address.functionDelegateCall(address,bytes) (Address.sol#174-176) is never used and should be removed
SafeERC20.safeIncreaseAllowance(IERC20,address,uint256) (SafeERC20.sol#60-67) is never used and should be removed
SafeERC20.safeApprove(IERC20,address,uint256) (SafeERC20.sol#45-58) is never used and should be removed
SafeERC20.safeTransferFrom(IERC20,address,address,uint256) (SafeERC20.sol#29-36) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (Address.sol#128-139) is never used and should be removed
Context._msgData() (Context.sol#21-23) is never used and should be removed
Address.functionStaticCall(address,bytes) (Address.sol#147-149) is never used and should be removed
SafeERC20.safeDecreaseAllowance(IERC20,address,uint256) (SafeERC20.sol#69-80) is never used and should be removed
Address.functionCall(address,bytes,string) (Address.sol#95-101) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (Address.sol#157-166) is never used and should be removed
Address.functionCall(address,bytes) (Address.sol#85-87) is never used and should be removed
Remove unused functions.
Additional information: link
Parameter EllipsisToken2.transferFrom(address,address,uint256)._value (EllipsisToken2.sol#138) is not in mixedCase
Parameter EllipsisToken2.transferFrom(address,address,uint256)._to (EllipsisToken2.sol#137) is not in mixedCase
Parameter EllipsisToken2.transfer(address,uint256)._value (EllipsisToken2.sol#123) is not in mixedCase
Parameter EllipsisToken2.approve(address,uint256)._spender (EllipsisToken2.sol#102) is not in mixedCase
Parameter EllipsisToken2.mint(address,uint256)._to (EllipsisToken2.sol#71) is not in mixedCase
Parameter EllipsisToken2.migrate(address,uint256)._amount (EllipsisToken2.sol#89) is not in mixedCase
Parameter EllipsisToken2.addMinter(address)._minter (EllipsisToken2.sol#60) is not in mixedCase
Parameter EllipsisToken2.transferFrom(address,address,uint256)._from (EllipsisToken2.sol#136) is not in mixedCase
Parameter EllipsisToken2.approve(address,uint256)._value (EllipsisToken2.sol#102) is not in mixedCase
Parameter EllipsisToken2.mint(address,uint256)._value (EllipsisToken2.sol#71) is not in mixedCase
Parameter EllipsisToken2.transfer(address,uint256)._to (EllipsisToken2.sol#123) is not in mixedCase
Parameter EllipsisToken2.migrate(address,uint256)._receiver (EllipsisToken2.sol#89) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
BscScan page for the token does not contain additional info: website, socials, description, etc.
Additional information: link
Unable to verify token contract address on the website
Unable to find audit link on the website
Token is not listed at Mobula.Finance
Additional information: link
Unable to find token on CoinHunt
Additional information: link
Token has no active CoinGecko listing / rank
Twitter account link seems to be invalid
Unable to find Youtube account
Unable to find Discord account