CRITICAL ISSUES (critical, high severity): 0
Critical and harmful access for owners, user block ability, Bugs and vulnerabilities that enable theft of funds, lock access to funds without possibility to restore it, or lead to any other loss of funds to be transferred to any party.
ERRORS, BUGS AND WARNINGS (medium, low severity): 0
Bugs can negatively affect the usability of a program, errors that can trigger a contract failure, Lack of necessary security precautions, other warnings for owners and users, warning codes that are valid code but the compiler thinks are suspicious.
OPTIMIZATION (low severity): 1
Methods to decrease the cost of transactions in Smart-Contract.
RECOMMENDATIONS (very low severity): 0
Hint and tips to improve contract functionality and trustworthy.
1- Loop on the dynamic variable (low severity).
If the user gets more parallel deposits his withdraw transaction going to cost more transaction fee, because the loop on the dynamic variable is used in the ‘withdraw’ function.
In case of exceeding TRON limit of the size of transaction withdraw is not possible.
This comment is relevant only if a user creates an excessive amount of parallel deposits (more than 100).
INDEPENDENT DESCRIPTION OF THE SMART-CONTRACT FUNCTIONALITY
The TRONHERO.IO smart-contract provides the opportunity to invest any amount in TRX (from 100 TRX) in the contract and get a 200% return on investment in 8 days if the contract balance has enough funds for payment.
- Dividends are paid from deposits of users.
- All dividends are calculated at the moment of request and available for withdrawal every 24 hours.
- Each subsequent Deposit is kept separately in the contract, in order to maintain the payment amount for each Deposit.
Contract Owners Fee
25% daily profit for 8 days. A User can get 200% return totally.
- Minimum deposit amount is 100 TRX
Referral System (Match Bonus)
This contract paid referrals in three level totally 18%
- Level one: 10%
- Level two: 5%
- Level three: 3%
- Referral should be an active user, it means referral address has at least one deposit
- A referrer is specified once at the time of the first deposit and is assigned to the user without the possibility of changing. From each subsequent Deposit, the referrer will get his percent.
- Users can not withdraw their referral reward directly to their wallets, the user must reinvest it upon “Reinvest All” method.
Withdraw & Reinvest System
- A user can use withdraw or reinvest all function just one in every 24 hours
- In every withdraw:
- 50% of withdrawable amount transfer directly to user wallet
- 50% of withdrawable amount save on reinvest wallet which user should use it in reinvest all
- Like as invest method, equal to 8% of withdrawable amount transfer to owners as owners fee
- Users can not withdraw during 0am to 4am in UTC TimeZone
- There is a contract balance variable which can be update maximum once a day, “updateBalance” is a public function which can be called by everyone
- Contract protect 80% of contract balance and users can not withdraw totally more than 20% of it.
- New investment increase balance and if it goes more than 80% withdraw get available again
- For withdraws bigger than 90,000 TRX, just 45,000 TRX transfer directly to user wallet and the remain amount will save in reinvest wallet
In this method all below amount make a new deposit.
- Reinvest wallet
- Withdrawable amount
- Referral rewards
TRONHERO.IO SMART-CONTRACT FUNCTIONS
Constructor: initial developer, marketing and call “_init” function at the deployment of the contract in main net.
- setMarketingAccount: set marketing address, only owners can call.
- getMarketingAccount: return marketing address, only owners can call.
- setDeveloperAccount: set developer address, only owners can call.
- getDeveloperAccount: return developer address, only owners can call.
- _init: define owner as a first user of contract
- getBalance: return contract balance
- getUIDByAddress: return user ID based on user address
- getInvestorInfoByUID: return all stats of a user
- getInvestmentPlanByUID: return all user’s investments
- _addInvestor: create new user and set referrals
- _invest: make a new deposit
- _reinvestAll: make a new deposit by reinvest wallet and referrals and available dividends
- invest: call _invest and make a new deposit
- withdraw: transfer 50% of withdrawable to user wallet and save 50% in reinvest wallet
- reinvest: calculate reinvest amount and call _reinvestAll function to make a new deposit
- _calculateDividends: calculate dividends of a investment
- _calculateReferrerReward: calculate referrals rewards
- updateBalance: public function which save contract balance amount
- getHour: return current time hour
- withdrawAllowance: return false between 0 am to 4 am
- onlyOwner: a modifier which allows only owners to calls a function