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): 0
Methods to decrease the cost of transactions in Smart-Contract.
RECOMMENDATIONS (very low severity): 1
Hint and tips to improve contract functionality and trustworthy.
1- Gift Bonus (low severity)
Based on the code, in the “setNmpRandomDevider” function owner has access to change all parameters which are related to Gift Bonus mechanism. Rarely, it can make access to owners set parameters in specific amounts and try in a predictable time to use “donated” amount in the contract as a gift for a new deposit. Donated amount is 25% of all withdrawals.
- this comment doesn’t affect the main functionality of the smart-contract.
- Max gift bonus can be 26% of the deposit amount
- This is just an announcement of possible situations and these parameters can be used to protect contract from whale attacks.
INDEPENDENT DESCRIPTION OF THE SMART-CONTRACT FUNCTIONALITY
The TronBTCApp smart-contract provides the opportunity to invest any amount in TRX (from 100 TRX) in the contract and get a 300% return on investment if the contract balance has enough funds for payment and users earn TBXC Token equal to 10% of deposit based on user type.
- Dividends are paid from deposits of users.
- All dividends are calculated at the moment of request and available for withdrawal anytime.
- all subsequent Deposit is kept in one Deposit.
Contract Owners Fee Owner gets fee on below functions:
- Deposit: 10% TRX
- Reinvest: 10% TRX
- Token Issuance: 10% TBXC
- Daily Profit: 1% fixed plus contract bonus which is between 0% to 1% at the beginning until capital reached. after capital returned it will be 1% fixed.
- Contract Bonus: increase 0.1% each 1m contract balance to max 1%
||Total TRX return
||Should return 10% of tokens and burned them
||Should return 90% of tokens and burned them
- Minimum deposit amount is 100 TRX
- If a medium user does not return 10% of received tokens to contract cannot withdraw profits
- If an advanced user does not return 90% of received tokens to contract cannot withdraw profits
- contract address is not allowed to deposit
Donated 25% of all withdraw amounts will transfer to a variable which is named as “donated” which used for Gift Bonus and buying TBXC token and burning it.
- In each gift bonus, remain donated amount after gift deduction, will be exchanged. “trxToTokenTransferInput” function is an interface of JustSwap contract which exchange TRX to TBXC.
- Finally bought TBXC Tokens will be burned to increase the value of the token
New User Gift Based on contract code, new users for their first deposit will get gift based on below conditions:
- donated amount be greater than NMP_MIN_DONATED
- deposit amount be greater than NMP_MIN_DEPOSIT
- deposit amount be the greatest amount in random time from last time which a user got a gift
- based on two parameters NMP_RANDOM_DEVIDER and NMP_RANDOM_BASE and deposit function codes, a user will be gifted randomly between 10 to 20 minutes
- gift amount is NMP_DEPOSIT_PERCENT percent of the deposit amount which default value is 25%
- gift amount should not be greater than NMP_DONATED_PERCENT percent of the donated amount which default is 25%
- all mentioned parameters can be changed by the owner.
- NMP_DEPOSIT_PERCENT can be changed only between 0 to 26
Referral System (Match Bonus) This contract paid referrals in Four-level totally 10%.
- Level one: 5%
- Level two: 3%
- Level two: 1%
- Level two: 1%
- 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.
- If a user has not a referrer or a valid referrer the owner will be set as his upline.
- In each deposit remain the amount of total 10% referral bonus will transfer to the owner.
- A referral can not withdraw directly and it will be added to total deposits.
- A referral will be calculated in both deposit and reinvest
- Token will be issued in deposit equal to the deposit amount
- Token will be issued in reinvesting after 2m TRX investment and equal to 10% of reinvesting the amount
- Token Issue Rate: it is a parameter to calculate a number of tokens based on TRX amount. The default amount is 1.
Formula: Number of Tokens = TRX amount / Token Issue Rate
|Total TRX Investment
|Token Issue Rate
- Token issuance is different based on user type
- In issuance function, first tokens “mint”, it means to generate and then a specific number of them based on user type “burn”, it means to delete
- All users should return 90% of issued Tokens to the contract to be allowed to withdraw their profits
- User can choose a number between 1 to 100 as percent of his profit to withdraw
- If profit be greater than contract balance, the amount of contract balance will be withdrawn
- Users medium and advanced type can withdraw if return 90% of the tokens to the contract
- Basic users have no limitation to withdraw
- In each withdraw 25% of profit transfer to “donated” and 75% transfer to user wallet
- Total deposit of the user will decrease 25%, it means user receive capital amount related to the profit amount in each withdraw. E.g. user deposit 100 TRX and he withdraw 50 TRX, 12.5 TRX transfer to “donated”, 37.5 TRX transfer to user wallet, total deposit decrease to 87.5 TRX
- After each withdraws profit speed rate will decrease because of the deduction of 25% capital, but total return does not change and it is 300%
- Reinvest amount should be less than the contract balance
- Reinvest add 50% of gained profit to total deposit
- After 2m investment in the contract, equal to 10% of reinvestment amount TBXC Token will be issued for the user. This issuance follows the user type rules which mentioned.
Burn Token Medium and advanced users should burn their tokens to return 90% of issued tokens and have access to withdraw allowance. Start Of project “startTheProject” is a variable which is 0 at first deploy of contract. There is just one function which can set it to 1 and start contract activity. The owner cannot stop it. TBXC Token
- Based on token contract codes, Token can only have one “Minter”, it means just one address can have access to “mint” and “burn” token.
- The only Minter of TBXC token is TronBTCApp contract.
- If a user sends TRX directly to the contract, deposit function will be called and his address will be for upline and Basic user type.
TRONBTCAPP SMART-CONTRACT FUNCTIONS
- Constructor: initial contract owner and platform owner, set NPM parameters, set justswap address, set token address
- Function: call deposit
- setContractOwner: change contract owner, only owner can call it
- setStartTheProject: activate project
- setNmpRandomDevider: update NPM parameters
- setTokenIssueRate: return token issue rate
- register: set user upline
- issueTokens: burn and mint tokens bases on user type
- burnTokensAmount: burn token
- deposit: make a new deposit
- tokenBurn: exchange TRX to token and burn tokens
- withdraw: transfer user profits to user wallet
- reinvest: make a new deposit from gained profits
- updateProfits: calculate profits
- transferProfitGained: transfer profits to user wallet
- calculateSystemBurnRate: return contract burn rate
- calculateMyBurnRate: return user burn rate
- getProfit: return user profit
- getContractBalanceRate: return contract balance rate
- getRateMultiplier: return user profit rate
- getterGlobal: return contract info
- getterGlobal1: return contract info
- getterInvestor1: return user info
- getterInvestor2: return user info
- getterInvestor3: return user info
- getterInvestor4: return user info
- payUplines: calculate uplines referrals
- isItContract: check address is contract or not
- interface IERC20: IERC20 functions interface
- library SafeERC20: ERC20 Special functions (does not use in contract)
- interface IJustswapExchange: JustSwap interface, “trxToTokenTransferInput” function to buy token with TRX.