Transaction Hash:
Block:
5927937 at Jul-08-2018 03:15:46 PM +UTC
Transaction Fee:
0.00101859 ETH
$2.22
Gas Used:
67,906 Gas / 15 Gwei
Emitted Events:
83 |
TBEToken.Transfer( from=[Receiver] TBECrowdsale, to=[Sender] 0x8b442c5b6907c69078c442ac25b64818e683af0b, value=100000000000000000000 )
|
84 |
TBECrowdsale.FundTransfer( backer=[Sender] 0x8b442c5b6907c69078c442ac25b64818e683af0b, amount=100000000000000000000, isContribution=True )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x5A0b54D5...D3E029c4c
Miner
| (Spark Pool) | 4,072.779407931820769613 Eth | 4,072.780426521820769613 Eth | 0.00101859 | |
0x700635ad...529af8323 | (TowerBee: Deployer) | 0.88949119 Eth | 0.8894912 Eth | 0.00000001 | |
0x8b442c5B...8E683aF0b |
0.004139530864641901 Eth
Nonce: 334
|
0.003120930864641901 Eth
Nonce: 335
| 0.0010186 | ||
0xf18b97b3...B7c65Cf96 |
Execution Trace
[TBECrowdsale (ln:63)]
transfer[TBECrowdsale (ln:72)]
FundTransfer[TBECrowdsale (ln:73)]
transfer[TBECrowdsale (ln:74)]
File 1 of 2: TBECrowdsale
File 2 of 2: TBEToken
pragma solidity ^0.4.24; interface Token { function transfer(address _to, uint256 _value) external; } contract TBECrowdsale { Token public tokenReward; uint256 public price; address public creator; address public owner = 0x700635ad386228dEBCfBb5705d2207F529af8323; uint256 public startDate; uint256 public endDate; mapping (address => bool) public tokenAddress; mapping (address => uint256) public balanceOfEther; mapping (address => uint256) public balanceOf; modifier isCreator() { require(msg.sender == creator); _; } event FundTransfer(address backer, uint amount, bool isContribution); function TBECrowdsale() public { creator = msg.sender; price = 100; startDate = now; endDate = startDate + 3 days; tokenReward = Token(0xf18b97b312EF48C5d2b5C21c739d499B7c65Cf96); } function setOwner(address _owner) isCreator public { owner = _owner; } function setStartDate(uint256 _startDate) isCreator public { startDate = _startDate; } function setEndtDate(uint256 _endDate) isCreator public { endDate = _endDate; } function setPrice(uint256 _price) isCreator public { price = _price; } function setToken(address _token) isCreator public { tokenReward = Token(_token); } function sendToken(address _to, uint256 _value) isCreator public { tokenReward.transfer(_to, _value); } function () payable public { require(now > startDate); require(now < endDate); uint256 amount = price; balanceOfEther[msg.sender] += msg.value / 1 ether; tokenReward.transfer(msg.sender, amount); FundTransfer(msg.sender, amount, true); owner.transfer(msg.value); } }
File 2 of 2: TBEToken
pragma solidity ^0.4.21; contract TBEToken { string public name; string public symbol; uint8 public decimals = 18; uint256 public totalSupply; mapping (address => uint256) public balanceOf; mapping (address => mapping (address => uint256)) public allowance; event Transfer(address indexed from, address indexed to, uint256 value); event Burn(address indexed from, uint256 value); function TBEToken() public { totalSupply = 500000000 * 10 ** uint256(decimals); balanceOf[msg.sender] = totalSupply; name = "TowerBee"; symbol = "TBE"; } function _transfer(address _from, address _to, uint _value) internal { require(_to != 0x0); require(balanceOf[_from] >= _value); require(balanceOf[_to] + _value > balanceOf[_to]); uint previousBalances = balanceOf[_from] + balanceOf[_to]; balanceOf[_from] -= _value; balanceOf[_to] += _value; Transfer(_from, _to, _value); assert(balanceOf[_from] + balanceOf[_to] == previousBalances); } function transfer(address _to, uint256 _value) public { _transfer(msg.sender, _to, _value); } function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) { require(_value <= allowance[_from][msg.sender]); allowance[_from][msg.sender] -= _value; _transfer(_from, _to, _value); return true; } function approve(address _spender, uint256 _value) public returns (bool success) { allowance[msg.sender][_spender] = _value; return true; } function burn(uint256 _value) public returns (bool success) { require(balanceOf[msg.sender] >= _value); balanceOf[msg.sender] -= _value; totalSupply -= _value; Burn(msg.sender, _value); return true; } function burnFrom(address _from, uint256 _value) public returns (bool success) { require(balanceOf[_from] >= _value); require(_value <= allowance[_from][msg.sender]); balanceOf[_from] -= _value; allowance[_from][msg.sender] -= _value; totalSupply -= _value; Burn(_from, _value); return true; } }