ETH Price: $1,865.05 (-0.69%)

Transaction Decoder

Block:
15605404 at Sep-24-2022 07:48:11 PM +UTC
Transaction Fee:
0.0040536184769432 ETH $7.56
Gas Used:
789,580 Gas / 5.13389204 Gwei

Emitted Events:

11 CHIMERA.Transfer( from=0x0000000000000000000000000000000000000000, to=[Sender] 0xcbae8a44cde90cd74e679d2545a98b9d1ac48094, value=1000000000000000000000000000000000 )

Account State Difference:

  Address   Before After State Difference Code
0xCBae8A44...D1AC48094
2.2 Eth
Nonce: 0
2.1959463815230568 Eth
Nonce: 1
0.0040536184769432
0xDc94594A...af380c3eA
0 Eth
Nonce: 0
0 Eth
Nonce: 1
From: 0 To: 18299361178576440285422293874196176120539213079558583265753390750045666518438560272333015003093743608295669434083372001236851278357290385641853926173534412325777000060393961621649800954568465164282120643065758457484818950114549881952693612718626585970441783955363463186948207764848965506156038708608750864934518641584491048803057721077404708260227276481612647427457627454327364073390117575122570920570318651730613582476427226312782152743184082968392230812513268797157530541043735074760140978789080223352073521057785662317921175077311246536851265804066659972476808213535569438629001814636662387684018394519141723517422217328686029092036213205431950775687080783395402738742784399646699991354813694403643440498003796252684688354365767249334280860796582781030586446203458273354778174420074857359659457478708035132199258374435896988596289952412233896246769124355670997156352983162149666386615405756526540035114550956287852540788621758302216695004455287900643942627102419470205861138232872103573455485406361224369906852379993814015510223817535659491267223543966391403619940133828214418738649630285421519425580206197406568167146043371303241605054154374466374055517869844713181357380075055663306188529824814602767547782097360962635941144190282487681147429250365734455252969834131935941606670300434058259381910774881410043117383649770617782973752777638745049029001607284684289499998151024866209449552159157910437467775393004946506135648884294331110213130059441566608046668935209207353911233773643993309610630245126737868671343173444705003865696021073541864418924796647582171612246259095149109659757085647302888750397971945074435925311453717039885497487876781622646121758682704856984762618996384798055259418674718265450199149643408365831679649966007839484924404633524826676593842400413193194333411939722442148776506150566534024853683837826164098639572852873610924044819828370790048268500700864571947413504466078038409557897132938099516646494226977372429370014962570181074028608698687611775314151449090686771454364046247390721121684513901531753579541840661568956122584387176878788355825813142023543516552593672774059509343992854077308660446917834435774066000608904729291963997578374642583875519608378290894829811318426919999215709958689093257137408829226807544088988147411186656815148271064059279552815293805022717649241584535760036700473827606868204796843948462137177478558909677883289898199586419520912436121568902936239932465574655661450546781842510936628531910158739732103858470921890398167816096793053315421841438552747432840601160346218374473105100734469058579469469969356689045273687554035052939980333079299859826213003289717018730622511159732395977087228408477835332142302751117341914828926606670649633806186656222003126715910672686544768491815822190550353371288686086905989593432176489182731240666648350792483151189856410942728927628520605067717840526727160679323491939913701537613189739896381692838086748254592028989456734876290002065567518309069582016556775392853044629209267372473089939753777836425854585606664213033269330967902852805678022977629114888584064049304614816284467132058236430923965977505387594660595236122830900129993440742315482802031761240390490116182883825910701201834860214171266832445486911151665462517657818212674268064292174504657182413099980769036403926627198582052092184354884622839872807008479911522486436524505740408006050101022919394264059462819758614984251440977348026941723874396281188821952073631243164223982887768887517294864373374643563329844193664501853027085785224564065930940065034732809346983473424432754095027802647261258731234330212301389506756183771889109326010521243175612226662961560970582185346862262678504939837024020549744342805807893159427079260374508622727422669297895686948526600838164406241636177892802631414162567395220393781684472242956205945883294793033295871652401355014742102996437355273042346167932041322971629102412571706202609922908306402997194558541003242867464955818028735296706252193438792977770297820587770011865390062544848792403635855978910685601805263329247608326224991826747379797729547241433655696038904587649192665931975804455816012481519675960324547495016118742145283815875840143854536183923018236904241925894909993036899539238844643794237436281567806880504601884783261867142866617606321718678458246522976301072474793022176682314180148655263129261183375071796090226198661653332561857126433352343363499229778422818816437158110827056909810971630016211947164767141200339374119680465957363986094526094919688412316311975131375654377683933633899523301021200446936800231555537008390307830748969923400777402613964571873373828811726026493005030050408890408544024636228484423618356402401152032801467809158591801809293862618547713413356156232974314335065775420303618081001703246438547241760663905480543248473520957178945960607857176394647173518640558292254235649992636739284257825123292553411321659175445947621855888604681007066630419054098873369593316684760650256134769015743585422044353511759212401755284126270695046755586397738165867422177819839414807907983012877102775932138521073829008185273828314927730980094495841413004283695389040252076721600451484248731585810439447095006475149062883348157921927210903573277855848148595252906557419616967506731319216795830139619945366672184283548957685543531479621708566172976342412413609561513980956441296549536681788421095577248690952834782682741747170557558628385954173213149260669205731349660451903842269094241721994775951570553089973079239357446358415112576744376152644206698441915954541285400919709994342668590298761426377663696212516744692728991043181616775032539260633766870469620612475103810277362333993599720925807722956175974094983437765199765524518400879451705722584962689917735489858450207953362865690030317724892558772745892223877796575088279685763253480197003124192184958393346098984434009181962536284972142291815624073386647949929623270956214986211173521021434512082842136585965074108016060267641737659598887422777677647985383851955059080105913830346276838486627357001426341596598377931480651615637952836614738308205921709319622908381862215363100000710020743896933014280298302396444451685041302745505337339350235172903404263508419374075534024349712979919362987011002424621719036797408232142640826434794538577820930095482995739777570449645049945226889979611727978044606981847760902912234048239090116621179843159820779721017169816801515508704990852420281825372507586431939028373546104015642740495512265816933088175579436944426597215279753188896716643623354694876169981267975598807947557671963072821594648167549949412812558459183703892120689589973833237850466758302517780848342105741026962358054569204906045681477997755329242078343059423392931718373230364793773220413801167988545928791865599196800626789469293877975355920825448015271612105935369207893921614309804365285958050140770220203217322025
(Fee Recipient: 0xeBe...Acf)
492.517422522310954982 Eth492.519001682310954982 Eth0.00157916

Execution Trace

CHIMERA.60806040( )
/*
$CHIMERA
He was the monster of divine origin,
lion head, goat chest, and dragon tail; 
and from the mouth hideous flames
he vomited with fire: 
and nevertheless,
with the favor of the Gods, the hero extinguished it.
$CHIMERA.
NO FEES NO OWNER. $CHIMERA IS A FREE SPIRIT.
https://t.me/ChimeraETH
*/
pragma solidity ^0.5.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP. Does not include
 * the optional functions; to access them see `ERC20Detailed`.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a `Transfer` event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through `transferFrom`. This is
     * zero by default.
     *
     * This value changes when `approve` or `transferFrom` are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * > Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an `Approval` event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a `Transfer` event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to `approve`. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

// File: contracts\open-zeppelin-contracts\math\SafeMath.sol

pragma solidity ^0.5.0;

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, "SafeMath: division by zero");
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0, "SafeMath: modulo by zero");
        return a % b;
    }
}

// File: contracts\open-zeppelin-contracts\token\ERC20\ERC20.sol

pragma solidity ^0.5.0;



/**
 * @dev Implementation of the `IERC20` interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using `_mint`.
 * For a generic mechanism see `ERC20Mintable`.
 *
 * *For a detailed writeup see our guide [How to implement supply
 * mechanisms](https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226).*
 *
 * We have followed general OpenZeppelin guidelines: functions revert instead
 * of returning `false` on failure. This behavior is nonetheless conventional
 * and does not conflict with the expectations of ERC20 applications.
 *
 * Additionally, an `Approval` event is emitted on calls to `transferFrom`.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard `decreaseAllowance` and `increaseAllowance`
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See `IERC20.approve`.
 */
contract ERC20 is IERC20 {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;

    mapping (address => mapping (address => uint256)) private _allowances;

    uint256 private _totalSupply;

    /**
     * @dev See `IERC20.totalSupply`.
     */
    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See `IERC20.balanceOf`.
     */
    function balanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See `IERC20.transfer`.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    /**
     * @dev See `IERC20.allowance`.
     */
    function allowance(address owner, address spender) public view returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See `IERC20.approve`.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 value) public returns (bool) {
        _approve(msg.sender, spender, value);
        return true;
    }

    /**
     * @dev See `IERC20.transferFrom`.
     *
     * Emits an `Approval` event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of `ERC20`;
     *
     * Requirements:
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `value`.
     * - the caller must have allowance for `sender`'s tokens of at least
     * `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount));
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to `approve` that can be used as a mitigation for
     * problems described in `IERC20.approve`.
     *
     * Emits an `Approval` event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue));
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to `approve` that can be used as a mitigation for
     * problems described in `IERC20.approve`.
     *
     * Emits an `Approval` event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue));
        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to `transfer`, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a `Transfer` event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(address sender, address recipient, uint256 amount) internal {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _balances[sender] = _balances[sender].sub(amount);
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a `Transfer` event with `from` set to the zero address.
     *
     * Requirements
     *
     * - `to` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

     /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a `Transfer` event with `to` set to the zero address.
     *
     * Requirements
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 value) internal {
        require(account != address(0), "ERC20: burn from the zero address");

        _totalSupply = _totalSupply.sub(value);
        _balances[account] = _balances[account].sub(value);
        emit Transfer(account, address(0), value);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens.
     *
     * This is internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an `Approval` event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(address owner, address spender, uint256 value) internal {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = value;
        emit Approval(owner, spender, value);
    }

    /**
     * @dev Destroys `amount` tokens from `account`.`amount` is then deducted
     * from the caller's allowance.
     *
     * See `_burn` and `_approve`.
     */
    function _burnFrom(address account, uint256 amount) internal {
        _burn(account, amount);
        _approve(account, msg.sender, _allowances[account][msg.sender].sub(amount));
    }
}

// File: contracts\ERC20\TokenMintERC20Token.sol

pragma solidity ^0.5.0;


/**
 * @title TokenMintERC20Token
 * @author TokenMint (visit https://tokenmint.io)
 *
 * @dev Standard ERC20 token with burning and optional functions implemented.
 * For full specification of ERC-20 standard see:
 * https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md
 */
contract CHIMERA is ERC20 {

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    /**
     * @dev Constructor.
     * @param name name of the token
     * @param symbol symbol of the token, 3-4 chars is recommended
     * @param decimals number of decimal places of one token unit, 18 is widely used
     * @param totalSupply total supply of tokens in lowest units (depending on decimals)
     * @param tokenOwnerAddress address that gets 100% of token supply
     */
    constructor(string memory name, string memory symbol, uint8 decimals, uint256 totalSupply, address tokenOwnerAddress) public payable {
      _name = name;
      _symbol = symbol;
      _decimals = decimals;

      // set tokenOwnerAddress as owner of all tokens
      _mint(tokenOwnerAddress, totalSupply);
    }

    /**
     * @dev Burns a specific amount of tokens.
     * @param value The amount of lowest token units to be burned.
     */
    function burn(uint256 value) public {
      _burn(msg.sender, value);
    }

    // optional functions from ERC20 stardard

    /**
     * @return the name of the token.
     */
    function name() public view returns (string memory) {
      return _name;
    }

    /**
     * @return the symbol of the token.
     */
    function symbol() public view returns (string memory) {
      return _symbol;
    }

    /**
     * @return the number of decimals of the token.
     */
    function decimals() public view returns (uint8) {
      return _decimals;
    }
}