ETH Price: $3,784.16 (+0.08%)

Transaction Decoder

Block:
22730921 at Jun-18-2025 10:58:47 AM +UTC
Transaction Fee:
0.000242245694043273 ETH $0.92
Gas Used:
57,131 Gas / 4.240179483 Gwei

Account State Difference:

  Address   Before After State Difference Code
0x4791Eb22...d5a805fF6
1.491939647320777015 Eth
Nonce: 7314
1.491697401626733742 Eth
Nonce: 7315
0.000242245694043273
(Titan Builder)
13.276692891710645378 Eth13.276837112727544895 Eth0.000144221016899517

Execution Trace

0x1bae1077c6b0a438c1f5b3c9239384fcb9e52cab.0c89a0df( )
  • BNB.balanceOf( 0x1BAe1077C6b0a438c1F5B3c9239384Fcb9E52CAB ) => ( 1556272509058491 )
  • BNB.transfer( _to=0x77dd9A93d7a1Ab9Dd3bdD4A70A51B2E8C9b2350D, _value=1556272509058491 )
    pragma solidity ^0.4.8;
    
    /**
     * Math operations with safety checks
     */
    contract SafeMath {
      function safeMul(uint256 a, uint256 b) internal returns (uint256) {
        uint256 c = a * b;
        assert(a == 0 || c / a == b);
        return c;
      }
    
      function safeDiv(uint256 a, uint256 b) internal returns (uint256) {
        assert(b > 0);
        uint256 c = a / b;
        assert(a == b * c + a % b);
        return c;
      }
    
      function safeSub(uint256 a, uint256 b) internal returns (uint256) {
        assert(b <= a);
        return a - b;
      }
    
      function safeAdd(uint256 a, uint256 b) internal returns (uint256) {
        uint256 c = a + b;
        assert(c>=a && c>=b);
        return c;
      }
    
      function assert(bool assertion) internal {
        if (!assertion) {
          throw;
        }
      }
    }
    contract BNB is SafeMath{
        string public name;
        string public symbol;
        uint8 public decimals;
        uint256 public totalSupply;
    	address public owner;
    
        /* This creates an array with all balances */
        mapping (address => uint256) public balanceOf;
    	mapping (address => uint256) public freezeOf;
        mapping (address => mapping (address => uint256)) public allowance;
    
        /* This generates a public event on the blockchain that will notify clients */
        event Transfer(address indexed from, address indexed to, uint256 value);
    
        /* This notifies clients about the amount burnt */
        event Burn(address indexed from, uint256 value);
    	
    	/* This notifies clients about the amount frozen */
        event Freeze(address indexed from, uint256 value);
    	
    	/* This notifies clients about the amount unfrozen */
        event Unfreeze(address indexed from, uint256 value);
    
        /* Initializes contract with initial supply tokens to the creator of the contract */
        function BNB(
            uint256 initialSupply,
            string tokenName,
            uint8 decimalUnits,
            string tokenSymbol
            ) {
            balanceOf[msg.sender] = initialSupply;              // Give the creator all initial tokens
            totalSupply = initialSupply;                        // Update total supply
            name = tokenName;                                   // Set the name for display purposes
            symbol = tokenSymbol;                               // Set the symbol for display purposes
            decimals = decimalUnits;                            // Amount of decimals for display purposes
    		owner = msg.sender;
        }
    
        /* Send coins */
        function transfer(address _to, uint256 _value) {
            if (_to == 0x0) throw;                               // Prevent transfer to 0x0 address. Use burn() instead
    		if (_value <= 0) throw; 
            if (balanceOf[msg.sender] < _value) throw;           // Check if the sender has enough
            if (balanceOf[_to] + _value < balanceOf[_to]) throw; // Check for overflows
            balanceOf[msg.sender] = SafeMath.safeSub(balanceOf[msg.sender], _value);                     // Subtract from the sender
            balanceOf[_to] = SafeMath.safeAdd(balanceOf[_to], _value);                            // Add the same to the recipient
            Transfer(msg.sender, _to, _value);                   // Notify anyone listening that this transfer took place
        }
    
        /* Allow another contract to spend some tokens in your behalf */
        function approve(address _spender, uint256 _value)
            returns (bool success) {
    		if (_value <= 0) throw; 
            allowance[msg.sender][_spender] = _value;
            return true;
        }
           
    
        /* A contract attempts to get the coins */
        function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
            if (_to == 0x0) throw;                                // Prevent transfer to 0x0 address. Use burn() instead
    		if (_value <= 0) throw; 
            if (balanceOf[_from] < _value) throw;                 // Check if the sender has enough
            if (balanceOf[_to] + _value < balanceOf[_to]) throw;  // Check for overflows
            if (_value > allowance[_from][msg.sender]) throw;     // Check allowance
            balanceOf[_from] = SafeMath.safeSub(balanceOf[_from], _value);                           // Subtract from the sender
            balanceOf[_to] = SafeMath.safeAdd(balanceOf[_to], _value);                             // Add the same to the recipient
            allowance[_from][msg.sender] = SafeMath.safeSub(allowance[_from][msg.sender], _value);
            Transfer(_from, _to, _value);
            return true;
        }
    
        function burn(uint256 _value) returns (bool success) {
            if (balanceOf[msg.sender] < _value) throw;            // Check if the sender has enough
    		if (_value <= 0) throw; 
            balanceOf[msg.sender] = SafeMath.safeSub(balanceOf[msg.sender], _value);                      // Subtract from the sender
            totalSupply = SafeMath.safeSub(totalSupply,_value);                                // Updates totalSupply
            Burn(msg.sender, _value);
            return true;
        }
    	
    	function freeze(uint256 _value) returns (bool success) {
            if (balanceOf[msg.sender] < _value) throw;            // Check if the sender has enough
    		if (_value <= 0) throw; 
            balanceOf[msg.sender] = SafeMath.safeSub(balanceOf[msg.sender], _value);                      // Subtract from the sender
            freezeOf[msg.sender] = SafeMath.safeAdd(freezeOf[msg.sender], _value);                                // Updates totalSupply
            Freeze(msg.sender, _value);
            return true;
        }
    	
    	function unfreeze(uint256 _value) returns (bool success) {
            if (freezeOf[msg.sender] < _value) throw;            // Check if the sender has enough
    		if (_value <= 0) throw; 
            freezeOf[msg.sender] = SafeMath.safeSub(freezeOf[msg.sender], _value);                      // Subtract from the sender
    		balanceOf[msg.sender] = SafeMath.safeAdd(balanceOf[msg.sender], _value);
            Unfreeze(msg.sender, _value);
            return true;
        }
    	
    	// transfer balance to owner
    	function withdrawEther(uint256 amount) {
    		if(msg.sender != owner)throw;
    		owner.transfer(amount);
    	}
    	
    	// can accept ether
    	function() payable {
        }
    }