Transaction Hash:
Block:
7673650 at May-01-2019 06:43:13 AM +UTC
Transaction Fee:
0.000178914 ETH
$0.43
Gas Used:
59,638 Gas / 3 Gwei
Emitted Events:
63 |
minereum.Transfer( from=[Sender] 0x6e66779bc116d431789888705894dc15af3cf7af, to=0x69a3510902B7DEb6A290667D6514F5b82829DD77, value=9600000000 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x1a95B271...612b52946 | |||||
0x5A0b54D5...D3E029c4c
Miner
| (Spark Pool) | 5,192.661946167604500703 Eth | 5,192.662125081604500703 Eth | 0.000178914 | |
0x6e66779b...5af3CF7AF |
0.0007331332 Eth
Nonce: 49
|
0.0005542192 Eth
Nonce: 50
| 0.000178914 |
Execution Trace
minereum.transfer( _to=0x69a3510902B7DEb6A290667D6514F5b82829DD77, _value=9600000000 )
transfer[minereum (ln:95)]
Transfer[minereum (ln:120)]
contract minereum { string public name; string public symbol; uint8 public decimals; uint256 public initialSupplyPerAddress; uint256 public initialBlockCount; uint256 public rewardPerBlockPerAddress; uint256 public totalGenesisAddresses; address public genesisCallerAddress; uint256 private availableAmount; uint256 private availableBalance; uint256 private minedBlocks; uint256 private totalMaxAvailableAmount; uint256 private balanceOfAddress; mapping (address => uint256) public balanceOf; mapping (address => bool) public genesisAddress; event Transfer(address indexed from, address indexed to, uint256 value); function minereum() { name = "minereum"; symbol = "MNE"; decimals = 8; initialSupplyPerAddress = 3200000000000; initialBlockCount = 3516521; rewardPerBlockPerAddress = 32000; totalGenesisAddresses = 4268; genesisCallerAddress = 0x0000000000000000000000000000000000000000; } function currentEthBlock() constant returns (uint256 blockNumber) { return block.number; } function currentBlock() constant returns (uint256 blockNumber) { return block.number - initialBlockCount; } function setGenesisAddressArray(address[] _address) public returns (bool success) { if (block.number <= 3597381) { if (msg.sender == genesisCallerAddress) { for (uint i = 0; i < _address.length; i++) { balanceOf[_address[i]] = initialSupplyPerAddress; genesisAddress[_address[i]] = true; } return true; } } return false; } function availableBalanceOf(address _address) constant returns (uint256 Balance) { if (genesisAddress[_address]) { minedBlocks = block.number - initialBlockCount; if (minedBlocks >= 100000000) return balanceOf[_address]; availableAmount = rewardPerBlockPerAddress*minedBlocks; totalMaxAvailableAmount = initialSupplyPerAddress - availableAmount; availableBalance = balanceOf[_address] - totalMaxAvailableAmount; return availableBalance; } else return balanceOf[_address]; } function totalSupply() constant returns (uint256 totalSupply) { minedBlocks = block.number - initialBlockCount; availableAmount = rewardPerBlockPerAddress*minedBlocks; return availableAmount*totalGenesisAddresses; } function maxTotalSupply() constant returns (uint256 maxSupply) { return initialSupplyPerAddress*totalGenesisAddresses; } function transfer(address _to, uint256 _value) { if (genesisAddress[_to]) throw; if (balanceOf[msg.sender] < _value) throw; if (balanceOf[_to] + _value < balanceOf[_to]) throw; if (genesisAddress[msg.sender]) { minedBlocks = block.number - initialBlockCount; if (minedBlocks < 100000000) { availableAmount = rewardPerBlockPerAddress*minedBlocks; totalMaxAvailableAmount = initialSupplyPerAddress - availableAmount; availableBalance = balanceOf[msg.sender] - totalMaxAvailableAmount; if (_value > availableBalance) throw; } } balanceOf[msg.sender] -= _value; balanceOf[_to] += _value; Transfer(msg.sender, _to, _value); } function setGenesisCallerAddress(address _caller) public returns (bool success) { if (genesisCallerAddress != 0x0000000000000000000000000000000000000000) return false; genesisCallerAddress = _caller; return true; } }