ETH Price: $2,184.14 (-4.32%)

Transaction Decoder

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 Code
(Spark Pool)
4,072.779407931820769613 Eth4,072.780426521820769613 Eth0.00101859
0x700635ad...529af8323
(TowerBee: Deployer)
0.88949119 Eth0.8894912 Eth0.00000001
0x8b442c5B...8E683aF0b
0.004139530864641901 Eth
Nonce: 334
0.003120930864641901 Eth
Nonce: 335
0.0010186
0xf18b97b3...B7c65Cf96

Execution Trace

ETH 0.00000001 TBECrowdsale.CALL( )
  • TBEToken.transfer( _to=0x8b442c5B6907C69078c442ac25B64818E683aF0b, _value=100000000000000000000 )
  • ETH 0.00000001 TowerBee: Deployer.CALL( )
    File 1 of 2: TBECrowdsale
    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;
        }
    }