ETH Price: $1,885.24 (-0.44%)

Transaction Decoder

Block:
11113706 at Oct-23-2020 04:40:40 PM +UTC
Transaction Fee:
0.0088594 ETH $16.70
Gas Used:
44,297 Gas / 200 Gwei

Emitted Events:

319 ROPEcontract.Approval( tokenOwner=[Sender] 0xef93b3fe19749650f933e75e3dc07ef3c657cd16, spender=0x7a250d56...659F2488D, tokens=115792089237316195423570985008687907853269984665640564039457584007913129639935 )

Account State Difference:

  Address   Before After State Difference Code
(xnpool)
200.944952850507569564 Eth200.953812250507569564 Eth0.0088594
0x9D47894f...ffe8B068B
0xEf93b3Fe...3C657CD16
0.070839699621806521 Eth
Nonce: 525
0.061980299621806521 Eth
Nonce: 526
0.0088594

Execution Trace

ROPEcontract.approve( delegate=0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D, numTokens=115792089237316195423570985008687907853269984665640564039457584007913129639935 ) => ( True )
pragma solidity >=0.4.22 <0.6.0;

contract ROPEcontract {

    string public constant name = "$ROPE";
    string public constant symbol = "$ROPE";
    uint8 public constant decimals = 18;  


    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
    event Transfer(address indexed from, address indexed to, uint tokens);


    mapping(address => uint256) balances;

    mapping(address => mapping (address => uint256)) allowed;
    
    uint256 totalSupply_;

    using SafeMath for uint256;


   constructor(uint256 total) public {  
	totalSupply_ = total;
	balances[msg.sender] = totalSupply_;
    }  

    function totalSupply() public view returns (uint256) {
	return totalSupply_;
    }
    
    function balanceOf(address tokenOwner) public view returns (uint) {
        return balances[tokenOwner];
    }

    function transfer(address receiver, uint numTokens) public returns (bool) {
        require(numTokens <= balances[msg.sender]);
        balances[msg.sender] = balances[msg.sender].sub(numTokens);
        balances[receiver] = balances[receiver].add(numTokens);
        emit Transfer(msg.sender, receiver, numTokens);
        return true;
    }

    function approve(address delegate, uint numTokens) public returns (bool) {
        allowed[msg.sender][delegate] = numTokens;
        emit Approval(msg.sender, delegate, numTokens);
        return true;
    }

    function allowance(address owner, address delegate) public view returns (uint) {
        return allowed[owner][delegate];
    }

    function transferFrom(address owner, address buyer, uint numTokens) public returns (bool) {
        require(numTokens <= balances[owner]);    
        require(numTokens <= allowed[owner][msg.sender]);
    
        balances[owner] = balances[owner].sub(numTokens);
        allowed[owner][msg.sender] = allowed[owner][msg.sender].sub(numTokens);
        balances[buyer] = balances[buyer].add(numTokens);
        emit Transfer(owner, buyer, numTokens);
        return true;
    }
}

library SafeMath { 
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
      assert(b <= a);
      return a - b;
    }
    
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
      uint256 c = a + b;
      assert(c >= a);
      return c;
    }
}