Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Contract ownership is not renounced (belongs to a wallet)
IOXPlatform._clcTokenValue(address,uint256) (#1319-1332) performs a multiplication on the result of a division:
-_tokenVlaue = ((lastLobbyPool) / lobbyEntry[entryDay]) * mapMemberLobby[_address][_Day].memberLobbyValue (#1326)
Consider ordering multiplication before division.
Additional information: link
IOXPlatform.do_changeMarketingAddress(address).adr (#1114) lacks a zero-check on :
- marketing_addr = adr (#1115)
Check that the address is not zero.
Additional information: link
IOXPlatform._updateDaily() (#1140-1175) uses timestamp for comparisons
Dangerous comparisons:
- currentDay != _clcDay() (#1145)
- currentDay < dividendsPoolCapDays (#1147)
IOXPlatform._sendDevShare() (#1206-1217) uses timestamp for comparisons
Dangerous comparisons:
- require(bool)(currentDay > 0) (#1207)
IOXPlatform._sendMarketingShare() (#1220-1225) uses timestamp for comparisons
Dangerous comparisons:
- require(bool)(currentDay > 0) (#1221)
IOXPlatform._buyLobbyBuybackShare() (#1228-1233) uses timestamp for comparisons
Dangerous comparisons:
- require(bool)(currentDay > 0) (#1229)
IOXPlatform.EnterLobby(address) (#1242-1275) uses timestamp for comparisons
Dangerous comparisons:
- require(bool)(currentDay > 0) (#1247)
IOXPlatform.ExitLobby(uint256) (#1282-1312) uses timestamp for comparisons
Dangerous comparisons:
- require(bool)(targetDay < currentDay) (#1285)
IOXPlatform._clcTokenValue(address,uint256) (#1319-1332) uses timestamp for comparisons
Dangerous comparisons:
- entryDay != 0 && entryDay < currentDay (#1325)
IOXPlatform.EndStake(uint256) (#1424-1461) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(mapMemberStake[msg.sender][stakeId].endDay <= currentDay,Stakes end day not reached yet) (#1425)
IOXPlatform.calcStakeCollecting(address,uint256) (#1469-1480) uses timestamp for comparisons
Dangerous comparisons:
- _day < _endDay && _day < currentDay (#1475)
IOXPlatform.sellStakeRequest(uint256,uint256) (#1536-1562) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(mapMemberStake[msg.sender][stakeId].endDay > currentDay,Target stake is ended) (#1543)
IOXPlatform.buyStakeRequest(address,uint256) (#1570-1614) uses timestamp for comparisons
Dangerous comparisons:
- require(bool)(mapMemberStake[sellerAddress][stakeId].endDay > currentDay) (#1580)
IOXPlatform.getLoanOnStake(uint256,uint256,uint256,uint256) (#1675-1716) uses timestamp for comparisons
Dangerous comparisons:
- require(bool)(mapMemberStake[msg.sender][stakeId].endDay - loanDuration > currentDay) (#1684)
IOXPlatform.lendOnStake(address,uint256) (#1746-1801) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(mapMemberStake[loanerAddress][stakeId].endDay > currentDay,Target stake duration is finished) (#1754)
IOXPlatform.updateFinishedLoan(address,address,uint256,uint256) (#1852-1873) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(currentDay >= mapRequestingLoans[loanerAddress][stakeId].lend_endDay,Due date not yet reached) (#1856)
Avoid relying on block.timestamp.
Additional information: link
IOXPlatform.launch() (#1067-1071) compares to a boolean constant:
-require(bool,string)(launched == false,contract already launched!) (#1068)
IOXPlatform.switchLoaningStatus() (#1075-1082) compares to a boolean constant:
-loaningIsPaused == false (#1079)
IOXPlatform.switchLoaningStatus() (#1075-1082) compares to a boolean constant:
-loaningIsPaused == true (#1076)
IOXPlatform.switchStakeSellingStatus() (#1085-1092) compares to a boolean constant:
-stakeSellingIsPaused == false (#1089)
IOXPlatform.switchStakeSellingStatus() (#1085-1092) compares to a boolean constant:
-stakeSellingIsPaused == true (#1086)
IOXPlatform.flushFirstDayLobbyEntry(uint256) (#1095-1100) compares to a boolean constant:
-require(bool)(firstDayFlushed == false) (#1096)
IOXPlatform.flushFirstDayLobbyEntrySwitch() (#1103-1110) compares to a boolean constant:
-firstDayFlushed == true (#1104)
IOXPlatform.flushFirstDayLobbyEntrySwitch() (#1103-1110) compares to a boolean constant:
-firstDayFlushed == false (#1107)
IOXPlatform.ExitLobby(uint256) (#1282-1312) compares to a boolean constant:
-require(bool,string)(mapMemberLobby[msg.sender][targetDay].hasCollected == false,ERR: Already collected) (#1283)
IOXPlatform.EndStake(uint256) (#1424-1461) compares to a boolean constant:
-require(bool,string)(mapMemberStake[msg.sender][stakeId].stakeCollected == false,has collected) (#1427)
IOXPlatform.EndStake(uint256) (#1424-1461) compares to a boolean constant:
-require(bool,string)(mapMemberStake[msg.sender][stakeId].stake_hasLoan == false,has loan) (#1428)
IOXPlatform.EndStake(uint256) (#1424-1461) compares to a boolean constant:
-require(bool,string)(mapMemberStake[msg.sender][stakeId].stake_hasSold == false,has sold) (#1429)
IOXPlatform.sellStakeRequest(uint256,uint256) (#1536-1562) compares to a boolean constant:
-mapMemberStake[msg.sender][stakeId].stake_forLoan == true (#1546)
IOXPlatform.sellStakeRequest(uint256,uint256) (#1536-1562) compares to a boolean constant:
-require(bool,string)(mapMemberStake[msg.sender][stakeId].stake_hasLoan == false,Target stake has an active loan on it) (#1541)
IOXPlatform.sellStakeRequest(uint256,uint256) (#1536-1562) compares to a boolean constant:
-require(bool)(mapMemberStake[msg.sender][stakeId].stake_forLoan == false) (#1550)
IOXPlatform.sellStakeRequest(uint256,uint256) (#1536-1562) compares to a boolean constant:
-require(bool,string)(mapMemberStake[msg.sender][stakeId].stake_hasSold == false,Target stake has been sold) (#1542)
IOXPlatform.sellStakeRequest(uint256,uint256) (#1536-1562) compares to a boolean constant:
-require(bool,string)(stakeSellingIsPaused == false,functionality is paused) (#1539)
IOXPlatform.buyStakeRequest(address,uint256) (#1570-1614) compares to a boolean constant:
-require(bool,string)(mapMemberStake[sellerAddress][stakeId].stake_forSell == true,Target stake is not for sell) (#1577)
IOXPlatform.buyStakeRequest(address,uint256) (#1570-1614) compares to a boolean constant:
-require(bool,string)(stakeSellingIsPaused == false,functionality is paused) (#1573)
IOXPlatform.buyStakeRequest(address,uint256) (#1570-1614) compares to a boolean constant:
-require(bool,string)(mapMemberStake[sellerAddress][stakeId].stake_hasSold == false,Target stake has been sold) (#1576)
IOXPlatform.getLoanOnStake(uint256,uint256,uint256,uint256) (#1675-1716) compares to a boolean constant:
-require(bool,string)(mapMemberStake[msg.sender][stakeId].stake_hasLoan == false,Target stake has an active loan on it) (#1682)
IOXPlatform.getLoanOnStake(uint256,uint256,uint256,uint256) (#1675-1716) compares to a boolean constant:
-require(bool)(mapMemberStake[msg.sender][stakeId].stake_forSell == false) (#1697)
IOXPlatform.getLoanOnStake(uint256,uint256,uint256,uint256) (#1675-1716) compares to a boolean constant:
-require(bool,string)(mapMemberStake[msg.sender][stakeId].stake_hasSold == false,Target stake has been sold) (#1683)
IOXPlatform.getLoanOnStake(uint256,uint256,uint256,uint256) (#1675-1716) compares to a boolean constant:
-mapMemberStake[msg.sender][stakeId].stake_forSell == true (#1693)
IOXPlatform.getLoanOnStake(uint256,uint256,uint256,uint256) (#1675-1716) compares to a boolean constant:
-require(bool,string)(loaningIsPaused == false,functionality is paused) (#1678)
IOXPlatform.cancelStakeLoanRequest(uint256) (#1723-1726) compares to a boolean constant:
-require(bool)(mapMemberStake[msg.sender][stakeId].stake_hasLoan == false) (#1724)
IOXPlatform.cancelSellStakeRequest(uint256) (#1732-1738) compares to a boolean constant:
-require(bool)(mapMemberStake[msg.sender][_stakeId].stake_forSell == true) (#1734)
IOXPlatform.cancelSellStakeRequest(uint256) (#1732-1738) compares to a boolean constant:
-require(bool)(mapMemberStake[msg.sender][_stakeId].stake_hasSold == false) (#1735)
IOXPlatform.lendOnStake(address,uint256) (#1746-1801) compares to a boolean constant:
-require(bool,string)(mapMemberStake[loanerAddress][stakeId].stake_forLoan == true,Target stake is not requesting a loan) (#1752)
IOXPlatform.lendOnStake(address,uint256) (#1746-1801) compares to a boolean constant:
-require(bool,string)(mapMemberStake[loanerAddress][stakeId].stake_hasSold == false,Target stake is sold) (#1753)
IOXPlatform.lendOnStake(address,uint256) (#1746-1801) compares to a boolean constant:
-require(bool,string)(loaningIsPaused == false,functionality is paused) (#1749)
IOXPlatform.lendOnStake(address,uint256) (#1746-1801) compares to a boolean constant:
-require(bool,string)(mapMemberStake[loanerAddress][stakeId].stake_hasLoan == false,Target stake has an active loan on it) (#1751)
IOXPlatform.updateFinishedLoan(address,address,uint256,uint256) (#1852-1873) compares to a boolean constant:
-require(bool,string)(mapMemberStake[loanerAddress][stakeId].stake_hasLoan == true,Target stake does not have an active loan on it) (#1855)
IOXPlatform.updateFinishedLoan(address,address,uint256,uint256) (#1852-1873) compares to a boolean constant:
-require(bool)(mapLenderInfo[lenderAddress][lenderStakeId].loanIsPaid == false) (#1857)
IOXPlatform.updateFinishedLoan(address,address,uint256,uint256) (#1852-1873) compares to a boolean constant:
-require(bool)(mapRequestingLoans[loanerAddress][stakeId].loanIsPaid == false) (#1858)
IOXPlatform.updateFinishedLoan(address,address,uint256,uint256) (#1852-1873) compares to a boolean constant:
-require(bool)(mapRequestingLoans[loanerAddress][stakeId].hasLoan == true) (#1859)
Remove the equality to the boolean constant.
Additional information: link
Context._msgData() (#19-22) is never used and should be removed
SafeMath.div(uint256,uint256) (#765-767) is never used and should be removed
SafeMath.div(uint256,uint256,string) (#821-830) is never used and should be removed
SafeMath.mod(uint256,uint256) (#781-783) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#847-856) is never used and should be removed
SafeMath.mul(uint256,uint256) (#751-753) is never used and should be removed
SafeMath.sqrrt(uint256) (#858-869) is never used and should be removed
SafeMath.sub(uint256,uint256,string) (#798-807) is never used and should be removed
SafeMath.tryAdd(uint256,uint256) (#652-658) is never used and should be removed
SafeMath.tryDiv(uint256,uint256) (#694-699) is never used and should be removed
SafeMath.tryMod(uint256,uint256) (#706-711) is never used and should be removed
SafeMath.tryMul(uint256,uint256) (#677-687) is never used and should be removed
SafeMath.trySub(uint256,uint256) (#665-670) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version0.8.0 (#1) allows old versions
solc-0.8.0 is not recommended for deployment
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
Struct IOXPlatform.memberLobby_overallData (#988-993) is not in CapWords
Struct IOXPlatform.memberLobby (#1018-1023) is not in CapWords
Struct IOXPlatform.memberStake (#1033-1046) is not in CapWords
Struct IOXPlatform.loanRequest (#1634-1645) is not in CapWords
Struct IOXPlatform.lendInfo (#1647-1655) is not in CapWords
Event IOXPlatformstake_sell_request(address,uint256,uint256,uint256,uint256) (#901-907) is not in CapWords
Event IOXPlatformstake_loan_request(address,uint256,uint256,uint256,uint256) (#909-915) is not in CapWords
Event IOXPlatformstake_lend(address,uint256,uint256) (#917-921) is not in CapWords
Event IOXPlatformstake_loan(address,uint256,uint256,uint256) (#923-928) is not in CapWords
Event IOXPlatformday_lobby_entry(uint256,uint256,uint256) (#930-934) is not in CapWords
Function IOXPlatform.do_changeMarketingAddress(address) (#1114-1116) is not in mixedCase
Function IOXPlatform._clcDay() (#1132-1134) is not in mixedCase
Function IOXPlatform._updateDaily() (#1140-1175) is not in mixedCase
Function IOXPlatform.EnterLobby(address) (#1242-1275) is not in mixedCase
Function IOXPlatform.ExitLobby(uint256) (#1282-1312) is not in mixedCase
Function IOXPlatform._clcTokenValue(address,uint256) (#1319-1332) is not in mixedCase
Parameter IOXPlatform._clcTokenValue(address,uint256)._address (#1319) is not in mixedCase
Parameter IOXPlatform._clcTokenValue(address,uint256)._Day (#1319) is not in mixedCase
Function IOXPlatform.EnterStake(uint256,uint256) (#1360-1402) is not in mixedCase
Parameter IOXPlatform.calcStakeCount(address)._address (#1409) is not in mixedCase
Function IOXPlatform.EndStake(uint256) (#1424-1461) is not in mixedCase
Parameter IOXPlatform.calcStakeCollecting(address,uint256)._address (#1469) is not in mixedCase
Parameter IOXPlatform.calcStakeCollecting(address,uint256)._stakeId (#1469) is not in mixedCase
Parameter IOXPlatform.calcBonusToken(uint256,uint256).StakeDuration (#1488) is not in mixedCase
Parameter IOXPlatform.calcBonusToken(uint256,uint256).StakeAmount (#1488) is not in mixedCase
Parameter IOXPlatform.cancelSellStakeRequest(uint256)._stakeId (#1732) is not in mixedCase
Parameter IOXPlatform.clcLenderStakeId(address)._address (#1821) is not in mixedCase
Constant IOXPlatform.Team_addr (#942) is not in UPPER_CASE_WITH_UNDERSCORES
Variable IOXPlatform.marketing_addr (#946) is not in mixedCase
Variable IOXPlatform.buyBack_addr (#947) is not in mixedCase
Constant IOXPlatform.DM_Team_percentage (#953) is not in UPPER_CASE_WITH_UNDERSCORES
Constant IOXPlatform.DM_marketing_percentage (#954) is not in UPPER_CASE_WITH_UNDERSCORES
Constant IOXPlatform.DM_buyBack_percentage (#955) is not in UPPER_CASE_WITH_UNDERSCORES
Constant IOXPlatform.lobby_pool_decrease_percentage (#958) is not in UPPER_CASE_WITH_UNDERSCORES
Constant IOXPlatform.bonus_calc_ratio (#961) is not in UPPER_CASE_WITH_UNDERSCORES
Constant IOXPlatform.max_stake_days (#964) is not in UPPER_CASE_WITH_UNDERSCORES
Constant IOXPlatform.ref_bonus_NR (#967) is not in UPPER_CASE_WITH_UNDERSCORES
Constant IOXPlatform.ref_bonus_NRR (#970) is not in UPPER_CASE_WITH_UNDERSCORES
Constant IOXPlatform.dividendsPoolCapDays (#973) is not in UPPER_CASE_WITH_UNDERSCORES
Constant IOXPlatform.defaultLobby (#984) is not in UPPER_CASE_WITH_UNDERSCORES
Variable IOXPlatform.mapMemberLobby_overallData (#995) is not in mixedCase
Variable IOXPlatform.overall_lobbyEntry (#997) is not in mixedCase
Variable IOXPlatform.overall_stakedTokens (#999) is not in mixedCase
Variable IOXPlatform.overall_collectedTokens (#1001) is not in mixedCase
Variable IOXPlatform.overall_collectedDivs (#1003) is not in mixedCase
Variable IOXPlatform.overall_collectedBonusTokens (#1005) is not in mixedCase
Variable IOXPlatform.LAUNCH_TIME (#1057) is not in mixedCase
Variable IOXPlatform.LoanedFunds (#1659) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#20)" inContext (#14-23)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Reentrancy in IOXPlatform.EndStake(uint256) (#1424-1461):
External calls:
- _updateDaily() (#1431)
- address(marketing_addr).transfer((lobbyEntry[currentDay - 1] * DM_marketing_percentage) / 100) (#1224)
- address(buyBack_addr).transfer((lobbyEntry[currentDay - 1] * DM_buyBack_percentage) / 100) (#1232)
- address(Team_addr).transfer(TeamPercentage) (#1213)
State variables written after the call(s):
- mapMemberLobby_overallData[msg.sender].overall_collectedDivs += profit (#1440)
- mapMemberStake[msg.sender][stakeId].stake_forSell = false (#1434)
- mapMemberStake[msg.sender][stakeId].stake_forLoan = false (#1435)
- mapMemberStake[msg.sender][stakeId].stakeCollected = true (#1442)
- overall_collectedDivs += profit (#1439)
Reentrancy in IOXPlatform.EndStake(uint256) (#1424-1461):
External calls:
- _updateDaily() (#1431)
- address(marketing_addr).transfer((lobbyEntry[currentDay - 1] * DM_marketing_percentage) / 100) (#1224)
- address(buyBack_addr).transfer((lobbyEntry[currentDay - 1] * DM_buyBack_percentage) / 100) (#1232)
- address(Team_addr).transfer(TeamPercentage) (#1213)
- address(msg.sender).transfer(profit) (#1443)
State variables written after the call(s):
- _mint(msg.sender,stakeReturn + bonusAmount) (#1453)
- _balances[account] += amount (#514)
- _mint(msg.sender,stakeReturn + bonusAmount) (#1453)
- _totalSupply += amount (#513)
- overall_collectedBonusTokens += bonusAmount (#1451)
Event emitted after the call(s):
- Transfer(address(0),account,amount) (#515)
- _mint(msg.sender,stakeReturn + bonusAmount) (#1453)
- UserStakeCollect(msg.sender,block.timestamp,profit) (#1456-1460)
Reentrancy in IOXPlatform.EnterLobby(address) (#1242-1275):
External calls:
- _updateDaily() (#1246)
- address(marketing_addr).transfer((lobbyEntry[currentDay - 1] * DM_marketing_percentage) / 100) (#1224)
- address(buyBack_addr).transfer((lobbyEntry[currentDay - 1] * DM_buyBack_percentage) / 100) (#1232)
- address(Team_addr).transfer(TeamPercentage) (#1213)
State variables written after the call(s):
- lobbyEntry[currentDay] += rawAmount (#1255)
- mapMemberLobby[msg.sender][currentDay].memberLobbyValue += rawAmount (#1259)
- mapMemberLobby[msg.sender][currentDay].memberLobbyEntryDay = currentDay (#1260)
- mapMemberLobby[msg.sender][currentDay].hasCollected = false (#1261)
- mapMemberLobby[msg.sender][currentDay].referrer = referrerAddr (#1265)
- mapMemberLobby[msg.sender][currentDay].referrer = address(0) (#1267)
- mapMemberLobby_overallData[msg.sender].overall_lobbyEnteries += rawAmount (#1254)
- overall_lobbyEntry += rawAmount (#1256)
- usersCount ++ (#1250)
- usersCountDaily[currentDay] ++ (#1251)
Event emitted after the call(s):
- UserLobby(msg.sender,block.timestamp,rawAmount) (#1270-1274)
Reentrancy in IOXPlatform.EnterStake(uint256,uint256) (#1360-1402):
External calls:
- _updateDaily() (#1366)
- address(marketing_addr).transfer((lobbyEntry[currentDay - 1] * DM_marketing_percentage) / 100) (#1224)
- address(buyBack_addr).transfer((lobbyEntry[currentDay - 1] * DM_buyBack_percentage) / 100) (#1232)
- address(Team_addr).transfer(TeamPercentage) (#1213)
State variables written after the call(s):
- _burn(msg.sender,amount) (#1394)
- _balances[account] = accountBalance - amount (#539)
- _burn(msg.sender,amount) (#1394)
- _totalSupply -= amount (#541)
- daysActiveInStakeTokensDecrase[currentDay + stakingDays + 1] += amount (#1391)
- daysActiveInStakeTokensIncrese[currentDay + 1] += amount (#1390)
- mapMemberLobby_overallData[msg.sender].overall_stakedTokens += amount (#1370)
- mapMemberStake[msg.sender][stakeId].stakeId = stakeId (#1372)
- mapMemberStake[msg.sender][stakeId].userAddress = msg.sender (#1373)
- mapMemberStake[msg.sender][stakeId].tokenValue = amount (#1374)
- mapMemberStake[msg.sender][stakeId].startDay = currentDay + 1 (#1375)
- mapMemberStake[msg.sender][stakeId].endDay = currentDay + 1 + stakingDays (#1376)
- mapMemberStake[msg.sender][stakeId].stakeCollected = false (#1377)
- mapMemberStake[msg.sender][stakeId].stake_hasSold = false (#1378)
- mapMemberStake[msg.sender][stakeId].stake_hasLoan = false (#1379)
- mapMemberStake[msg.sender][stakeId].stake_forSell = false (#1380)
- mapMemberStake[msg.sender][stakeId].stake_forLoan = false (#1381)
- overall_stakedTokens += amount (#1369)
- saveTotalToken += amount (#1389)
- totalTokensInActiveStake[i] += amount (#1386)
Event emitted after the call(s):
- Transfer(account,address(0),amount) (#543)
- _burn(msg.sender,amount) (#1394)
- UserStake(msg.sender,block.timestamp,amount,stakingDays) (#1396-1401)
Reentrancy in IOXPlatform.ExitLobby(uint256) (#1282-1312):
External calls:
- _updateDaily() (#1284)
- address(marketing_addr).transfer((lobbyEntry[currentDay - 1] * DM_marketing_percentage) / 100) (#1224)
- address(buyBack_addr).transfer((lobbyEntry[currentDay - 1] * DM_buyBack_percentage) / 100) (#1232)
- address(Team_addr).transfer(TeamPercentage) (#1213)
State variables written after the call(s):
- _mint(msg.sender,tokensToPay) (#1289)
- _balances[account] += amount (#514)
- _mint(referrerAddress,refBonus) (#1300)
- _balances[account] += amount (#514)
- _mint(msg.sender,tokensToPay / ref_bonus_NRR) (#1304)
- _balances[account] += amount (#514)
- _mint(msg.sender,tokensToPay) (#1289)
- _totalSupply += amount (#513)
- _mint(referrerAddress,refBonus) (#1300)
- _totalSupply += amount (#513)
- _mint(msg.sender,tokensToPay / ref_bonus_NRR) (#1304)
- _totalSupply += amount (#513)
- mapMemberLobby[msg.sender][targetDay].hasCollected = true (#1290)
- mapMemberLobby_overallData[msg.sender].overall_collectedTokens += tokensToPay (#1293)
- overall_collectedTokens += tokensToPay (#1292)
- referrerBonusesPaid[referrerAddress] += refBonus (#1301)
Event emitted after the call(s):
- Transfer(address(0),account,amount) (#515)
- _mint(msg.sender,tokensToPay / ref_bonus_NRR) (#1304)
- Transfer(address(0),account,amount) (#515)
- _mint(referrerAddress,refBonus) (#1300)
- Transfer(address(0),account,amount) (#515)
- _mint(msg.sender,tokensToPay) (#1289)
- UserLobbyCollect(msg.sender,block.timestamp,tokensToPay) (#1307-1311)
Reentrancy in IOXPlatform._updateDaily() (#1140-1175):
External calls:
- _sendDevShare() (#1162)
- address(Team_addr).transfer(TeamPercentage) (#1213)
- _sendMarketingShare() (#1164)
- address(marketing_addr).transfer((lobbyEntry[currentDay - 1] * DM_marketing_percentage) / 100) (#1224)
State variables written after the call(s):
- _sendMarketingShare() (#1164)
- _status = _ENTERED (#149)
- _status = _NOT_ENTERED (#155)
Reentrancy in IOXPlatform._updateDaily() (#1140-1175):
External calls:
- _sendDevShare() (#1162)
- address(Team_addr).transfer(TeamPercentage) (#1213)
- _sendMarketingShare() (#1164)
- address(marketing_addr).transfer((lobbyEntry[currentDay - 1] * DM_marketing_percentage) / 100) (#1224)
- _buyLobbyBuybackShare() (#1166)
- address(buyBack_addr).transfer((lobbyEntry[currentDay - 1] * DM_buyBack_percentage) / 100) (#1232)
State variables written after the call(s):
- _buyLobbyBuybackShare() (#1166)
- _status = _ENTERED (#149)
- _status = _NOT_ENTERED (#155)
Event emitted after the call(s):
- day_lobby_entry(block.timestamp,currentDay,lobbyEntry[currentDay - 1]) (#1168-1172)
Reentrancy in IOXPlatform.buyStakeRequest(address,uint256) (#1570-1614):
External calls:
- _updateDaily() (#1571)
- address(marketing_addr).transfer((lobbyEntry[currentDay - 1] * DM_marketing_percentage) / 100) (#1224)
- address(buyBack_addr).transfer((lobbyEntry[currentDay - 1] * DM_buyBack_percentage) / 100) (#1232)
- address(Team_addr).transfer(TeamPercentage) (#1213)
State variables written after the call(s):
- devShareOfStakeSellsAndLoanFee += (mapMemberStake[sellerAddress][stakeId].price * 2) / 100 (#1584)
- lobbyEntry[currentDay] += (mapMemberStake[sellerAddress][stakeId].price * 8) / 100 (#1583)
- mapMemberStake[sellerAddress][stakeId].stake_hasSold = true (#1590)
- mapMemberStake[sellerAddress][stakeId].stake_forSell = false (#1591)
- mapMemberStake[sellerAddress][stakeId].stakeCollected = true (#1592)
- mapMemberStake[msg.sender][newStakeId].userAddress = msg.sender (#1602)
- mapMemberStake[msg.sender][newStakeId].tokenValue = mapMemberStake[sellerAddress][stakeId].tokenValue (#1603)
- mapMemberStake[msg.sender][newStakeId].startDay = mapMemberStake[sellerAddress][stakeId].startDay (#1604)
- mapMemberStake[msg.sender][newStakeId].endDay = mapMemberStake[sellerAddress][stakeId].endDay (#1605)
- mapMemberStake[msg.sender][newStakeId].loansReturnAmount = mapMemberStake[sellerAddress][stakeId].loansReturnAmount (#1606)
- mapMemberStake[msg.sender][newStakeId].stakeId = newStakeId (#1607)
- mapMemberStake[msg.sender][newStakeId].stakeCollected = false (#1608)
- mapMemberStake[msg.sender][newStakeId].stake_hasSold = false (#1609)
- mapMemberStake[msg.sender][newStakeId].stake_hasLoan = false (#1610)
- mapMemberStake[msg.sender][newStakeId].stake_forSell = false (#1611)
- mapMemberStake[msg.sender][newStakeId].stake_forLoan = false (#1612)
- mapMemberStake[msg.sender][newStakeId].price = 0 (#1613)
- soldStakeFunds[sellerAddress] += (mapMemberStake[sellerAddress][stakeId].price * 90) / 100 (#1587)
- totalStakeTradeAmount[msg.sender] += msg.value (#1594)
- totalStakeTradeAmount[sellerAddress] += msg.value (#1595)
- totalStakesSold += 1 (#1597)
- totalTradeAmount += msg.value (#1598)
Reentrancy in IOXPlatform.flushdevShareOfStakeSells() (#1121-1126):
External calls:
- address(marketing_addr).transfer(devShareOfStakeSellsAndLoanFee) (#1124)
State variables written after the call(s):
- devShareOfStakeSellsAndLoanFee = 0 (#1125)
Reentrancy in IOXPlatform.getLoanOnStake(uint256,uint256,uint256,uint256) (#1675-1716):
External calls:
- _updateDaily() (#1676)
- address(marketing_addr).transfer((lobbyEntry[currentDay - 1] * DM_marketing_percentage) / 100) (#1224)
- address(buyBack_addr).transfer((lobbyEntry[currentDay - 1] * DM_buyBack_percentage) / 100) (#1232)
- address(Team_addr).transfer(TeamPercentage) (#1213)
State variables written after the call(s):
- cancelSellStakeRequest(stakeId) (#1694)
- mapMemberStake[msg.sender][_stakeId].stake_forSell = false (#1737)
- mapMemberStake[msg.sender][stakeId].stake_forLoan = true (#1699)
- mapRequestingLoans[msg.sender][stakeId].loanerAddress = msg.sender (#1702)
- mapRequestingLoans[msg.sender][stakeId].stakeId = stakeId (#1703)
- mapRequestingLoans[msg.sender][stakeId].loanAmount = loanAmount (#1704)
- mapRequestingLoans[msg.sender][stakeId].returnAmount = returnAmount (#1705)
- mapRequestingLoans[msg.sender][stakeId].duration = loanDuration (#1706)
- mapRequestingLoans[msg.sender][stakeId].loanIsPaid = false (#1707)
Event emitted after the call(s):
- stake_loan_request(msg.sender,block.timestamp,loanAmount,loanDuration,stakeId) (#1709-1715)
Reentrancy in IOXPlatform.lendOnStake(address,uint256) (#1746-1801):
External calls:
- _updateDaily() (#1747)
- address(marketing_addr).transfer((lobbyEntry[currentDay - 1] * DM_marketing_percentage) / 100) (#1224)
- address(buyBack_addr).transfer((lobbyEntry[currentDay - 1] * DM_buyBack_percentage) / 100) (#1232)
- address(Team_addr).transfer(TeamPercentage) (#1213)
State variables written after the call(s):
- LoanedFunds[loanerAddress] += (rawAmount * 98) / 100 (#1785)
- devShareOfStakeSellsAndLoanFee += theLoanFee / 2 (#1764)
- lobbyEntry[currentDay] += theLoanFee / 2 (#1765)
- mapLenderInfo[msg.sender][LenderStakeId].lenderAddress = msg.sender (#1778)
- mapLenderInfo[msg.sender][LenderStakeId].loanerAddress = loanerAddress (#1779)
- mapLenderInfo[msg.sender][LenderStakeId].stakeId = LenderStakeId (#1780)
- mapLenderInfo[msg.sender][LenderStakeId].loanAmount = loanAmount (#1781)
- mapLenderInfo[msg.sender][LenderStakeId].returnAmount = returnAmount (#1782)
- mapLenderInfo[msg.sender][LenderStakeId].endDay = mapRequestingLoans[loanerAddress][stakeId].lend_endDay (#1783)
- mapMemberStake[loanerAddress][stakeId].loansReturnAmount += returnAmount (#1767)
- mapMemberStake[loanerAddress][stakeId].stake_hasLoan = true (#1768)
- mapMemberStake[loanerAddress][stakeId].stake_forLoan = false (#1769)
- mapRequestingLoans[loanerAddress][stakeId].hasLoan = true (#1771)
- mapRequestingLoans[loanerAddress][stakeId].loanIsPaid = false (#1772)
- mapRequestingLoans[loanerAddress][stakeId].lenderAddress = msg.sender (#1773)
- mapRequestingLoans[loanerAddress][stakeId].lend_startDay = currentDay + 1 (#1774)
- mapRequestingLoans[loanerAddress][stakeId].lend_endDay = currentDay + 1 + mapRequestingLoans[loanerAddress][stakeId].duration (#1775)
- totalLoanedAmount += (rawAmount * 98) / 100 (#1786)
- totalLoanedCount += 1 (#1787)
Event emitted after the call(s):
- stake_lend(msg.sender,block.timestamp,LenderStakeId) (#1789-1793)
- stake_loan(loanerAddress,block.timestamp,stakeId,(rawAmount * 98) / 100) (#1795-1800)
Reentrancy in IOXPlatform.sellStakeRequest(uint256,uint256) (#1536-1562):
External calls:
- _updateDaily() (#1537)
- address(marketing_addr).transfer((lobbyEntry[currentDay - 1] * DM_marketing_percentage) / 100) (#1224)
- address(buyBack_addr).transfer((lobbyEntry[currentDay - 1] * DM_buyBack_percentage) / 100) (#1232)
- address(Team_addr).transfer(TeamPercentage) (#1213)
State variables written after the call(s):
- cancelStakeLoanRequest(stakeId) (#1547)
- mapMemberStake[msg.sender][stakeId].stake_forLoan = false (#1725)
- mapMemberStake[msg.sender][stakeId].stake_forSell = true (#1552)
- mapMemberStake[msg.sender][stakeId].price = price (#1553)
Event emitted after the call(s):
- stake_sell_request(msg.sender,block.timestamp,price,mapMemberStake[msg.sender][stakeId].tokenValue,stakeId) (#1555-1561)
Reentrancy in IOXPlatform.updateFinishedLoan(address,address,uint256,uint256) (#1852-1873):
External calls:
- _updateDaily() (#1853)
- address(marketing_addr).transfer((lobbyEntry[currentDay - 1] * DM_marketing_percentage) / 100) (#1224)
- address(buyBack_addr).transfer((lobbyEntry[currentDay - 1] * DM_buyBack_percentage) / 100) (#1232)
- address(Team_addr).transfer(TeamPercentage) (#1213)
State variables written after the call(s):
- lendersPaidAmount[lenderAddress] += toBePaid (#1868)
- mapLenderInfo[lenderAddress][lenderStakeId].loanIsPaid = true (#1862)
- mapMemberStake[loanerAddress][stakeId].stake_hasLoan = false (#1861)
- mapRequestingLoans[loanerAddress][stakeId].hasLoan = false (#1863)
- mapRequestingLoans[loanerAddress][stakeId].loanIsPaid = true (#1864)
- mapRequestingLoans[loanerAddress][stakeId].returnAmount = 0 (#1870)
Apply the check-effects-interactions pattern.
Additional information: link
IOXPlatform.slitherConstructorVariables() (#873-1876) uses literals with too many digits:
- lastLobbyPool = 3000000 * 1e18 (#950)
IOXPlatform.slitherConstructorConstantVariables() (#873-1876) uses literals with too many digits:
- defaultLobby = 3000000 * 1e18 (#984)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
ERC20._name (#293) should be constant
ERC20._symbol (#294) should be constant
IOXPlatform.buyBack_addr (#947) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#72-74)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#80-83)
name() should be declared external:
- ERC20.name() (#313-315)
symbol() should be declared external:
- ERC20.symbol() (#321-323)
decimals() should be declared external:
- ERC20.decimals() (#338-340)
totalSupply() should be declared external:
- ERC20.totalSupply() (#345-347)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (#364-368)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (#387-391)
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (#409-418)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (#432-436)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (#452-461)
launch() should be declared external:
- IOXPlatform.launch() (#1067-1071)
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 scam / price dump / death
Token has no active CoinGecko listing / rank
Token has no active CoinMarketCap listing / rank
Unable to find Telegram and Twitter accounts