Transaction Hash:
Block:
10126123 at May-24-2020 03:24:57 AM +UTC
Transaction Fee:
0.001143736310056432 ETH
$3.37
Gas Used:
51,988 Gas / 22.000005964 Gwei
Emitted Events:
84 |
BroadcastChain.Transfer( _from=[Sender] 0x9d43c6e1a8ff20496512bd492ccfbdb41cbba3ba, _to=0xC0264666d72683B55606dbA22E8946C423803473, _value=3000000000000000000000 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x21384046...252Df7C0E | |||||
0x5A0b54D5...D3E029c4c
Miner
| (Spark Pool) | 87.541284007195337274 Eth | 87.542427743505393706 Eth | 0.001143736310056432 | |
0x9D43c6e1...41cbbA3bA |
1.961621003486996188 Eth
Nonce: 27
|
1.960477267176939756 Eth
Nonce: 28
| 0.001143736310056432 |
Execution Trace
BroadcastChain.transfer( _to=0xC0264666d72683B55606dbA22E8946C423803473, _value=3000000000000000000000 ) => ( success=True )
transfer[BroadcastChain (ln:49)]
Transfer[BroadcastChain (ln:53)]
pragma solidity ^0.4.24; contract BroadcastChain{ struct InvestRecord { address user; uint256 amount; uint256 addtime; uint withdraw; } struct UserInfo { address addr; address parent; uint256 amount; uint256 reward; uint256 rewardall; } address owner; address technology; address operator; InvestRecord[] public invests; UserInfo[] public users; mapping (address => uint256) public user_index; uint public rate =1000; uint public endTime=0; uint public sellTicketIncome=0; uint public investIncome=0; uint public sellTicketCount =0; uint public destoryTicketCount =0; uint256 constant private MAX_UINT256 = 2**256 - 1; mapping (address => uint256) public balances; mapping (address => mapping (address => uint256)) public allowed; uint256 public totalSupply; string public name; uint8 public decimals; string public symbol; event Transfer(address indexed _from, address indexed _to, uint256 _value); event Approval(address indexed _owner, address indexed _spender, uint256 _value); constructor() public{ owner = msg.sender; balances[msg.sender] = 5000000000000000000000000; totalSupply = 5000000000000000000000000; name = "Broadcast chain"; decimals = 18; symbol = "BDC"; } function transfer(address _to, uint256 _value) public returns (bool success) { require(balances[msg.sender] >= _value); balances[msg.sender] -= _value; balances[_to] += _value; emit Transfer(msg.sender, _to, _value); return true; } function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) { uint256 allowance = allowed[_from][msg.sender]; require(balances[_from] >= _value && allowance >= _value); balances[_to] += _value; balances[_from] -= _value; if (allowance < MAX_UINT256) { allowed[_from][msg.sender] -= _value; } emit Transfer(_from, _to, _value); return true; } function balanceOf(address _owner) public view returns (uint256 balance) { return balances[_owner]; } function approve(address _spender, uint256 _value) public returns (bool success) { allowed[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } function allowance(address _owner, address _spender) public view returns (uint256 remaining) { return allowed[_owner][_spender]; } function setTechnology(address addr) public returns (bool success) { require(msg.sender==owner); technology = addr; return true; } function setOperator(address addr) public returns (bool success) { require(msg.sender==owner); operator = addr; return true; } function setRate(uint r) public returns (bool success) { require(msg.sender==owner); rate = r; return true; } function contractBalance() public view returns (uint256) { return (address)(this).balance; } function investsLength() public view returns (uint256) { return invests.length; } function usersLength() public view returns (uint256) { return users.length; } function reward(address[] adarr,uint[] amarr) public payable returns (uint){ require(msg.sender==owner || msg.sender==operator); for(uint k=0;k<adarr.length;k++) { uint i = user_index[adarr[k]]; if(i>0) { i=i-1; uint r = amarr[k]; uint bs = 3; if(users[i].amount>30 ether) { bs=4;} if(users[i].amount>60 ether) { bs=5;} uint max = users[i].amount*bs; if(users[i].rewardall + r>max) { users[i].reward += max-users[i].rewardall; users[i].rewardall=max; } else { users[i].reward += r; users[i].rewardall +=r; } } } return 0; } function fix(address a,uint m) public payable returns (uint){ require(msg.sender==owner|| msg.sender==operator); a.transfer(m); return 0; } function invest(address addr) public payable returns (uint256){ if (msg.value <1 ether) {msg.sender.transfer(msg.value);return 1;} if(balances[msg.sender]<msg.value*rate/10){msg.sender.transfer(msg.value);return 3;} uint i = user_index[msg.sender]; if(i>0) { i=i-1; } else { users.push(UserInfo(msg.sender,0,0,0,0)); user_index[msg.sender]= users.length; i=users.length-1; } uint mbs = 3; if(users[i].amount>30 ether) { mbs=4;} if(users[i].amount>60 ether) { mbs=5;} if(users[i].amount*mbs>users[i].rewardall){msg.sender.transfer(msg.value);return 4;} invests.push(InvestRecord(msg.sender,msg.value,now,0)); balances[msg.sender] -= msg.value*rate/10; destoryTicketCount += msg.value*rate/10; if(technology!=0){technology.transfer(msg.value/100*3);} address p = users[i].parent; if(p==0){ if(addr==msg.sender){addr=0;} p=addr; users[i].parent = addr; } if(p!=0) { uint pi = user_index[p]; if(pi>0) { pi=pi-1; uint r = msg.value/10; uint bs = 3; if(users[pi].amount>30 ether) { bs=4;} if(users[pi].amount>60 ether) { bs=5;} uint max = users[pi].amount*bs; if(users[pi].rewardall + r>max) { users[pi].reward += max-users[pi].rewardall; users[pi].rewardall=max; } else { users[pi].reward += r; users[pi].rewardall +=r; } } } users[i].amount+=msg.value; investIncome+=msg.value; if(endTime==0||endTime<now){endTime=now;} uint tm = investIncome*3*3600; tm = tm/1 ether; endTime += tm; if(endTime>now+48 hours){endTime=now+48 hours;} return 0; } function withdraw() public payable returns(bool){ uint i = user_index[msg.sender]; if(i>0) { i=i-1; if(users[i].reward>0) { uint m=users[i].reward<=(address)(this).balance?users[i].reward:(address)(this).balance; users[i].addr.transfer(m); users[i].reward-=m; return true; } } return false; } function buyTicket() public payable returns (uint256){ uint tickets = msg.value*rate; if (balances[owner]<tickets) {msg.sender.transfer(msg.value);return 2;} balances[msg.sender] += tickets; balances[owner] -= tickets; sellTicketCount += msg.value*rate; sellTicketIncome += msg.value; uint ls = sellTicketIncome/(200 ether); rate = 1000 - ls; emit Transfer(owner, msg.sender, tickets); return 0; } }