Professional Documents
Culture Documents
Trononetxt
Trononetxt
Trononetxt
*
* TronOne
*
* http://tronone.me
contract TroneOnE {
using SafeMath for uint256;
struct PlayerDeposit {
uint256 amount;
uint256 totalWithdraw;
uint256 time;
}
struct PlayerWitdraw{
uint256 time;
uint256 amount;
}
struct Player {
address referral;
uint256 dividends;
uint256 referral_bonus;
uint256 last_payout;
uint256 total_invested;
uint256 total_withdrawn;
uint256 last_withdrawal;
uint256 withdrawal_excess;
PlayerWitdraw[] withdrawals;
uint256 total_referral_bonus;
PlayerDeposit[] deposits;
mapping(uint8 => uint256) referrals_per_level;
}
uint8 investment_days;
uint256 investment_perc;
uint256 total_investors;
uint256 total_invested;
uint256 total_withdrawn;
uint256 total_referral_bonus;
uint8[] referral_bonuses;
constructor() public {
owner = msg.sender;
investment_days = 8;
investment_perc = 300;
referral_bonuses.push(70);
referral_bonuses.push(50);
referral_bonuses.push(30);
_setReferral(msg.sender, _referral);
player.deposits.push(PlayerDeposit({
amount: msg.value,
totalWithdraw: 0,
time: uint256(block.timestamp)
}));
if(player.total_invested == 0x0){
total_investors += 1;
}
player.total_invested += msg.value;
total_invested += msg.value;
_referralPayout(msg.sender, msg.value);
owner.transfer(msg.value.mul(4).div(100));
players[ref].referral_bonus += bonus;
players[ref].total_referral_bonus += bonus;
total_referral_bonus += bonus;
player.dividends = 0;
player.referral_bonus = 0;
player.total_withdrawn += amount_withdrawable;
player.withdrawal_excess = excess;
total_withdrawn += amount_withdrawable;
uint256 _autoIreinvestPercentrage =
amount_withdrawable.mul(auto_reinvest_percentage).div(100);
uint256 withdrawableLessAutoReinvest =
amount_withdrawable.sub(_autoIreinvestPercentrage);
msg.sender.transfer(withdrawableLessAutoReinvest);
player.withdrawals.push(PlayerWitdraw({
time:uint256(block.timestamp),
amount: withdrawableLessAutoReinvest
}));
reinvest(msg.sender,_autoIreinvestPercentrage);
plyr.total_invested += _amount;
total_invested += _amount;
owner.transfer(msg.value.mul(4).div(100));
emit Deposit(_addrs, _amount);
}
if(payout > 0) {
_updateTotalPayout(_addr);
players[_addr].last_payout = uint256(block.timestamp);
players[_addr].dividends += payout;
}
}
return value;
}
_amounts[i] = dep.amount;
_totalWithdraws[i] = dep.totalWithdraw;
_endTimes[i] = dep.time + investment_days * 86400;
}
return (
_endTimes,
_amounts,
_totalWithdraws
);
}
}
library SafeMath {
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) { return 0; }
uint256 c = a * b;
require(c / a == b);
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
require(b > 0);
uint256 c = a / b;
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
require(b <= a);
uint256 c = a - b;
return c;
}
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a);
return c;
}
}