ETH Price: $2,248.83 (-1.41%)

Transaction Decoder

Block:
15682911 at Oct-05-2022 03:51:35 PM +UTC
Transaction Fee:
0.00263422481764428 ETH $5.92
Gas Used:
51,702 Gas / 50.95015314 Gwei

Account State Difference:

  Address   Before After State Difference Code
0xbF647b8E...86F075517
2.397335030288011296 Eth
Nonce: 780
2.394700805470367016 Eth
Nonce: 781
0.00263422481764428
(Flashbots: Builder)
2.629242288756494912 Eth2.629293990756494912 Eth0.000051702
0xf2B57Fdf...7De726233

Execution Trace

RainbowBaby.transfer( _to=0xa3aB14bFa5d43fD0ED1d93c9d6B4CB80F3B0F6dD, _value=19720990000 ) => ( success=True )
pragma solidity 0.8.6;

abstract contract Token {
    function name() virtual public view returns (string memory);
    function symbol() virtual public view returns (string memory);
    function decimals() virtual public view returns (uint8);
    function totalSupply() virtual public view returns (uint256);
    function balanceOf(address _owner) virtual public view returns (uint256 balance);
    function transfer(address _to, uint256 _value) virtual public returns (bool success);
    function transferFrom(address _from, address _to, uint256 _value) virtual public returns (bool success);
    function approve(address _spender, uint256 _value) virtual public returns (bool success);
    function allowance(address _owner, address _spender) virtual public view returns (uint256 remaining);

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

contract Owned {
    address public owner;
    address public newOwner;

    event OwnershipTransferred(address indexed _from, address indexed _to);

    constructor() {
        owner = msg.sender;
    }

    function transferOwnership(address _to) public {
        require(msg.sender == owner);
        newOwner = _to;
    }

    function acceptOwnership() public {
        require(msg.sender == newOwner);
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
        newOwner = address(0);
    }
}

contract RainbowBaby is Token, Owned {

    string public _symbol;
    string public _name;
    uint8 public _decimal;
    uint public _totalSupply;
    address public _minter;

    mapping(address => uint) balances;

    constructor () {
        _symbol = "RBB";
        _name = "RainbowBaby";
        _decimal = 8;
        _totalSupply = 3333333300000000;
        _minter = 0x79Ab23822CF89d7A25d6810Bd2023e3Fb8CA3C27;

        balances[_minter] = _totalSupply;
        emit Transfer(address(0), _minter, _totalSupply);
    }

    function name() public override view returns (string memory) {
        return _name;
    }

    function symbol() public override view returns (string memory) {
        return _symbol;
    }

    function decimals() public override view returns (uint8) {
        return _decimal;
    }

    function totalSupply() public override view returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address _owner) public override view returns (uint256 balance) {
        return balances[_owner];
    }

    function transferFrom(address _from, address _to, uint256 _value) public override returns (bool success) {
        require(balances[_from] >= _value);
        balances[_from] -= _value; 
        balances[_to] += _value;
        emit Transfer(_from, _to, _value);
        return true;
    }

    function transfer(address _to, uint256 _value) public override returns (bool success) {
        return transferFrom(msg.sender, _to, _value);
    }

    function approve(address _spender, uint256 _value) public override returns (bool success) {
        return true;
    }

    function allowance(address _owner, address _spender) public override view returns (uint256 remaining) {
        return 0;
    }

}