项目名: EtherChain
玩法: 通过将ETH存入合约地址,您将被激活并获得合约中310%的ETH返还,分发将基于智能合约算法进行。
官方网站: https://etherchain.io/
合约地址: 0xfa85069e3d1ca1b09945cf11d2365386b1e4430a
浏览器地址: https://etherscan.io/address/0xfa85069e3d1ca1b09945cf11d2365386b1e4430a
智能合约源码: https://etherscan.io/address/0xfa85069e3d1ca1b09945cf11d2365386b1e4430a#code
当前合约余额: 18,292.077997768458695804 Ether
游戏规则
至少存入0.1 ETH或0.1ETH的倍数到智能合约,您现在有资格获得310%的投资回报(例如:投入10 ETH, 回报310 ETH),在1至310天内将您的资金增加三倍。
累积310%将以4种方式(1种被动和3种主动)返回310%的投资回报率
通过4种方式中的任何一种,当收到310%的款项时,必须进行新的存款以继续通过4种方式中的任何一种来赚钱/接收
1、每日1%的投资回报率(最多310天),100%被动。
2、10%直接推荐奖金分享和发展社区基金。
3、高达135%的匹配合作伙伴赠金,每日ROI收入
4、每日最高4名推荐人,享受所有存款的5%
直接佣金
直推合作伙伴进行投资或重新投资时授予推荐人,投资金额的10%
投资回报率匹配奖金
每日ROI匹配奖金是基于您合作伙伴的每日存款回报,并在任何合作伙伴收到和提取每日收入时获得奖励。在这里我们
有15个等级的匹配奖励。
直推1级30% ,2-5级10%,6-10级8%,11-15级5% ,每个直接合作伙伴激活1个新级别,最多15个级别
EtherChain 核心数据结构体
struct User { //会员结构体
uint256 cycle; //投资循环次数
address upline; //推荐地址
uint256 referrals; //直推人数
uint256 payouts; //已产生收益
uint256 direct_bonus; //直推收益
uint256 pool_bonus; //奖池收益
uint256 match_bonus; //匹配收益
uint256 deposit_amount; //充值数量
uint256 deposit_payouts; //充值收益
uint40 deposit_time; //充值时间
uint256 total_deposits; //累计充值
uint256 total_payouts; //累计产生收益
uint256 total_structure; //累计产生收益
}
mapping(address => User) public users; 地址用户结构体映射
uint256[] public cycles; // ether 循环投资最大投资数量
uint8[] public ref_bonuses; // 1 => 1% // 匹配奖励,等级对应比例
uint8[] public pool_bonuses; // 1 => 1% //奖池奖励,等级对应比例
uint40 public pool_last_draw = uint40(block.timestamp); //最后提现时间
uint256 public pool_cycle; //池当前轮
uint256 public pool_balance; //池余额
mapping(uint256 => mapping(address => uint256)) public pool_users_refs_deposits_sum; //用户投资数量
mapping(uint8 => address) public pool_top; //当前投资最多地址
uint256 public total_withdraw;
event Upline(address indexed addr, address indexed upline); //推荐人事件
event NewDeposit(address indexed addr, uint256 amount); //充值事件
event DirectPayout(address indexed addr, address indexed from, uint256 amount); //直推事件
event MatchPayout(address indexed addr, address indexed from, uint256 amount); //匹配事件
event PoolPayout(address indexed addr, uint256 amount); //池支付事件
event Withdraw(address indexed addr, uint256 amount); //提现事件
event LimitReached(address indexed addr, uint256 amount); //到达收益极限事件
//充值加入游戏
function deposit(address _upline) payable external whenNotPaused {
_setUpline(msg.sender, _upline); //设置上线
_deposit(msg.sender, msg.value); //充值
}
//设置上线 、设置团队人数
function _setUpline(address _addr, address _upline) private {
if(users[_addr].upline == address(0) && _upline != _addr && (users[_upline].deposit_time > 0 || _upline == owner())) {
users[_addr].upline = _upline; //设置上线
users[_upline].referrals++; //设置直推人数 +1
emit Upline(_addr, _upline);
for(uint8 i = 0; i < ref_bonuses.length; i++) {
if(_upline == address(0)) break;
users[_upline].total_structure++; //设置团队人数 +1
_upline = users[_upline].upline;
}
}
}
//充值
function _deposit(address _addr, uint256 _amount) private {
require(users[_addr].upline != address(0) || _addr == owner(), "No upline"); //推荐地址不能为空或推荐人是合约所有者
if(users[_addr].deposit_time > 0) { //最近一轮充值时间
users[_addr].cycle++; //循环次数
require(users[_addr].payouts >= this.maxPayoutOf(users[_addr].deposit_amount), "Deposit already exists"); //提现收益数量大于本轮最大可获取收益
require(_amount >= users[_addr].deposit_amount && _amount <= cycles[users[_addr].cycle > cycles.length - 1 ? cycles.length - 1 : users[_addr].cycle], "Bad amount"); //投资数量要大于上轮同时要少于本轮最大可投数量
}
else require(_amount >= 0.1 ether && _amount <= cycles[0], "Bad amount"); //投资数量不有少于 0.1 ether 或大于本轮最大可投数量
users[_addr].payouts = 0;
users[_addr].deposit_amount = _amount; //充值数量
users[_addr].deposit_payouts = 0;
users[_addr].deposit_time = uint40(block.timestamp); //充值时间
users[_addr].total_deposits += _amount; //累计投资
emit NewDeposit(_addr, _amount);
if(users[_addr].upline != address(0)) { //如果上线不是空
users[users[_addr].upline].direct_bonus += _amount / 10; //直推10%
emit DirectPayout(users[_addr].upline, _addr, _amount / 10);
}
_pollDeposits(_addr, _amount);
if(pool_last_draw + 1 days < block.timestamp) { //奖励池
_drawPool();
}
payable(owner()).transfer(_amount / 100); //合约开发者1%收益
}在这里插入代码片
//匹配奖励发放
function _refPayout(address _addr, uint256 _amount) private {
address up = users[_addr].upline; //直推
for(uint8 i = 0; i < ref_bonuses.length; i++) {
if(up == address(0)) break; //如果没有直推退出
if(users[up].referrals >= i + 1) { //判断直推人数是否能熟悉等级奖励
uint256 bonus = _amount * ref_bonuses[i] / 100; //计算资金
users[up].match_bonus += bonus; //累计匹配奖励
emit MatchPayout(up, _addr, bonus);
}
up = users[up].upline; //查找上一线
}
}
//发放最佳推荐人奖励
function _drawPool() private {
pool_last_draw = uint40(block.timestamp); //当前区块链时间
pool_cycle++; //轮数
uint256 draw_amount = pool_balance / 10; //奖励池的10%
for(uint8 i = 0; i < pool_bonuses.length; i++) { //奖励池
if(pool_top[i] == address(0)) break; //如果地址不存在
uint256 win = draw_amount * pool_bonuses[i] / 100; //奖励池的10%按比例分
users[pool_top[i]].pool_bonus += win; //累加奖励池数量
pool_balance -= win; //奖励数量减少
emit PoolPayout(pool_top[i], win);
}
for(uint8 i = 0; i < pool_bonuses.length; i++) {
pool_top[i] = address(0); //清空最佳推荐人
}
}
//会员提现
function withdraw() external whenNotPaused {
(uint256 to_payout, uint256 max_payout) = this.payoutOf(msg.sender); //投资可获取最大收益
require(users[msg.sender].payouts < max_payout, "Full payouts"); //超过投资可获取最大收益
// Deposit payout
if(to_payout > 0) { //当前可获取收益大于0
if(users[msg.sender].payouts + to_payout > max_payout) { 累计收益加当前可获取收益 大于最大可获收益
to_payout = max_payout - users[msg.sender].payouts; 最大收益 - 已经获取收益 = 本次还可以领取收益
}
users[msg.sender].deposit_payouts += to_payout; //充值收益
users[msg.sender].payouts += to_payout; //累计收益
_refPayout(msg.sender, to_payout); //发放匹配奖励
}
// Direct payout //直推收益
if(users[msg.sender].payouts < max_payout && users[msg.sender].direct_bonus > 0) {
uint256 direct_bonus = users[msg.sender].direct_bonus;
if(users[msg.sender].payouts + direct_bonus > max_payout) {
direct_bonus = max_payout - users[msg.sender].payouts;
}
users[msg.sender].direct_bonus -= direct_bonus;
users[msg.sender].payouts += direct_bonus;
to_payout += direct_bonus;
}
// Pool payout //最佳推荐人
if(users[msg.sender].payouts < max_payout && users[msg.sender].pool_bonus > 0) {
uint256 pool_bonus = users[msg.sender].pool_bonus;
if(users[msg.sender].payouts + pool_bonus > max_payout) {
pool_bonus = max_payout - users[msg.sender].payouts;
}
users[msg.sender].pool_bonus -= pool_bonus;
users[msg.sender].payouts += pool_bonus;
to_payout += pool_bonus;
}
// Match payout //匹配奖励
if(users[msg.sender].payouts < max_payout && users[msg.sender].match_bonus > 0) {
uint256 match_bonus = users[msg.sender].match_bonus;
if(users[msg.sender].payouts + match_bonus > max_payout) {
match_bonus = max_payout - users[msg.sender].payouts;
}
users[msg.sender].match_bonus -= match_bonus;
users[msg.sender].payouts += match_bonus;
to_payout += match_bonus;
}
require(to_payout > 0, "Zero payout");
users[msg.sender].total_payouts += to_payout; //累计提现
total_withdraw += to_payout; //系统累计提现
payable(msg.sender).transfer(to_payout); //转帐
emit Withdraw(msg.sender, to_payout);
if(users[msg.sender].payouts >= max_payout) { //超过可获取最大收益
emit LimitReached(msg.sender, users[msg.sender].payouts);
}
}
转载 https://www.recoverybtc.com/d/12-etherchain 以太分析是覆盖数字货币相关日常工作的网络社区,这里有权威的分析师提供ETH 、TRX、EOS、BSV等主链智能合约游戏分析资讯,也提供各种智能合约游戏仿盘开发,游戏制度分析、游戏安全等交流平台。智能合约市场团队合作对接 WeChat: recoverybtc 、 Telegram: recoverybtc