ETH Price: $2,506.73 (+0.35%)

Transaction Decoder

Block:
12968866 at Aug-06-2021 03:00:35 AM +UTC
Transaction Fee:
0.028312304 ETH $70.97
Gas Used:
690,544 Gas / 41 Gwei

Emitted Events:

Account State Difference:

  Address   Before After State Difference Code
0x24E89bDf...63623DAFA
0 Eth
Nonce: 0
0 Eth
Nonce: 1
From: 0 To: 591091663153241783962965495942250965025361634320739992647136107389440710628779970498386010076595428518031839200286686379006788877749253268910203005839854966431601201272343613126343681969720573226468601899474839819079376603388304598972406842392445730882244082829593958177764175898081413385164689906433051606605828765785281139847337255397385150219062955811424027483852344580566122118418081947607462094217345226829565837526764812747146325073547668728914449270202453949915138123722722416642441728596178036010774162557451111004318184969614448028238373372755676090200177352943151518357726915141268496098019919500549712608960267502697585275649404321192599879672596203052980077060180117502414817789829949258959169970581590501316733756379741186983089914083717511466268963759749833600833696046065893280666939846668945733758818296488306561924840885626543484849070210876067640546364152942272868946587491664149762379579174284216178186451025044048160980728683594035466463730213212301806242358952142751614060129245205818341769728953791780642930659178671743582086603500474256057210476232008769011047032520929737558787667188050202488610509191711702706941293720443270750166427362298124836038623479262775261880544345181134223662408482988455878681537592565964917837436068928346458804730729473286657828503296162514073948453183288587337409040787780680312878869875138437631091715348298253802355024920797477123218317151180216328605030287842576623574701785975311286668485663957779363351065175519437296193769326738836425346470381223224785111936522153586099924180089435738403608966013976360782168673118542254635794955735121605051859669070108929399887827129417419458825621956966199614022496087204377341394198861525655101856712148659502276069462502254403546577929175054550976016712958493369105050084506832584673679494924635937581876490187214590806921071599136206510020137480553467671973828225018583643543246346290577310393063726846220826695661798687100706265663513180927886615141773530185542531432667335391800196131218997283100496900763593568659234889283851479048830057400503611018659813603933138537745008239908244728420412468355973935913656744284652211229606705942471246536820869985068333281002713176327633266297024494352827656180170312552009241378677441448271987748987268400500616125877060461514570502355375902088135782395245216876653989423696789961416022566838361576971185472990925855069121336681222314764906456191607482445669752121560924198389155692643604107253994516137778901377833525343274367037946465879794063476216062612088123302851772836935436182003052713993859012585158308677212151291233127950464642018295550067122329176679242686377618377086961149660331012575626360740801746571430926576169925704945752472676124357077716075813120258671231416705731115103121955148889679522447212187143797765335195101735219613267096312255894115990957098642021139593617156535788430356870675822570742610098151812944323190709167489838534350741430038916032999195345516025977241881315924863032970351506686086323884257688833251460731399088926905556525738737227577538610847833959074482617195385306561437563909967359367811736189001081352256975031919143840512527042918577831031431493750983102225844963171022960843965092914968950886481086726211800096993889426993938020847100563702497549779041694594580011434473233673282275075428071453925689945157816656713926945337164435860829799008990984286200835415578387615109008019883767682091546416109706502964035701572422503357629020579617305037815944685272197353068429044378742447274546648095535673552837688957039365087226455644971501377383023329136993942986032504780911326496470091258594946421793180281772339912720375341018642502775652426862753571500725265501809838078994161594714404901518306331834076803785668127180929073985676703244774148382329727143845365656528292623435137033702159392708678847944983433346210563673645483735483529185649064687607010955444254721285040605482758239205759989608129300635694081842474771002587411230418508423424620530862649728483747472554952614364272899278941066669260952915020989006613246196134505658680563600264322030237754863071528022427847197065323374889762953520227407328889115427037851120390058788195148470080088485526985264380822380530430963335189472912631371560207114431877155010887292546842054901052092535110764084536852168648548787427648513516959148793276463476313149909518958996385857640780815051109668764285001252305040507322739980801258692757268940695410380830412565134177859136506898278718146913467544383383054385723288609591401655194262078935131574781389458279213832165549810152333827291557994792976719914397450279594787603349637003827178113736723545710513958836451237183599345308703671178900435301315872251262545000002646690169228125780362134317280867836913684793760056633200503442366148908577700952802959571241609419983844676960998902778565744769144364612023846158859508667376583222918063639722567954230527744816072790118134254853456228957205149083280646198471021516925268925564777485085979961555321800266305393737302560022536465528195605400360122987222663138018155932285717992253391342387891750410077349962704984804546687671047404720589174249286608860958446054662716471883801429855353468201369653051854699186981295718908996741928701428668940676138961943713987684392476053989873342070549952792103973569078883849464438875985731174580632132032942703295865005584306504911423098022538242182521735354820492699905803857228621956218237623641501849785584376666951623827801392724865878487632091229828441520215579853926569040633805632990021976565732630742954213427
0x35abb2a3...b26C0d1f1
0.22512 Eth
Nonce: 0
0.096807696 Eth
Nonce: 1
0.128312304
0x51e46fDD...d0A82582a 9.679445641877785665 Eth9.779445641877785665 Eth0.1
(Spark Pool)
50.662610605992922285 Eth50.666160363694829469 Eth0.003549757701907184

Execution Trace

ETH 0.1 CoinToken.60806040( )
  • ETH 0.1 0x51e46fddf884518d96ebea18023f7b2d0a82582a.CALL( )
    // SPDX-License-Identifier: MIT
    
    
    // File: @openzeppelin/contracts/token/ERC20/IERC20.sol
    
    
    pragma solidity ^0.8.0;
    
    /**
     * @dev Interface of the ERC20 standard as defined in the EIP.
     */
    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.
         *
         * IMPORTANT: 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: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol
    
    
    
    pragma solidity ^0.8.0;
    
    
    /**
     * @dev Interface for the optional metadata functions from the ERC20 standard.
     *
     * _Available since v4.1._
     */
    interface IERC20Metadata is IERC20 {
        /**
         * @dev Returns the name of the token.
         */
        function name() external view returns (string memory);
    
        /**
         * @dev Returns the symbol of the token.
         */
        function symbol() external view returns (string memory);
    
        /**
         * @dev Returns the decimals places of the token.
         */
        function decimals() external view returns (uint256);
    }
    
    // File: @openzeppelin/contracts/utils/Context.sol
    
    
    
    pragma solidity ^0.8.0;
    
    
    abstract contract Context {
        function _msgSender() internal view virtual returns (address) {
            return msg.sender;
        }
    
        function _msgData() internal view virtual returns (bytes calldata) {
            this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
            return msg.data;
        }
    }
    
    // File: @openzeppelin/contracts/token/ERC20/ERC20.sol
    
    
    
    pragma solidity ^0.8.0;
    
    
    
    contract ERC20 is Context, IERC20, IERC20Metadata {
        mapping (address => uint256) private _balances;
    
        mapping (address => mapping (address => uint256)) private _allowances;
    
        uint256 private _totalSupply;
        uint256 private _decimals;
        string private _name;
        string private _symbol;
    
        /**
         * @dev Sets the values for {name} and {symbol}.
         *
         * The defaut value of {decimals} is 18. To select a different value for
         * {decimals} you should overload it.
         *
         * All two of these values are immutable: they can only be set once during
         * construction.
         */
        constructor (string memory name_, string memory symbol_,uint256 initialBalance_,uint256 decimals_,address tokenOwner) {
            _name = name_;
            _symbol = symbol_;
            _totalSupply = initialBalance_* 10**decimals_;
            _balances[tokenOwner] = _totalSupply;
            _decimals = decimals_;
            emit Transfer(address(0), tokenOwner, _totalSupply);
        }
    
        /**
         * @dev Returns the name of the token.
         */
        function name() public view virtual override returns (string memory) {
            return _name;
        }
    
        /**
         * @dev Returns the symbol of the token, usually a shorter version of the
         * name.
         */
        function symbol() public view virtual override returns (string memory) {
            return _symbol;
        }
    
        /**
         * @dev Returns the number of decimals used to get its user representation.
         * For example, if `decimals` equals `2`, a balance of `505` tokens should
         * be displayed to a user as `5,05` (`505 / 10 ** 2`).
         *
         * Tokens usually opt for a value of 18, imitating the relationship between
         * Ether and Wei. This is the value {ERC20} uses, unless this function is
         * overridden;
         *
         * NOTE: This information is only used for _display_ purposes: it in
         * no way affects any of the arithmetic of the contract, including
         * {IERC20-balanceOf} and {IERC20-transfer}.
         */
        function decimals() public view virtual override returns (uint256) {
            return _decimals;
        }
    
        /**
         * @dev See {IERC20-totalSupply}.
         */
        function totalSupply() public view virtual override returns (uint256) {
            return _totalSupply;
        }
    
        /**
         * @dev See {IERC20-balanceOf}.
         */
        function balanceOf(address account) public view virtual override 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 virtual override returns (bool) {
            _transfer(_msgSender(), recipient, amount);
            return true;
        }
    
        /**
         * @dev See {IERC20-allowance}.
         */
        function allowance(address owner, address spender) public view virtual override returns (uint256) {
            return _allowances[owner][spender];
        }
    
        /**
         * @dev See {IERC20-approve}.
         *
         * Requirements:
         *
         * - `spender` cannot be the zero address.
         */
        function approve(address spender, uint256 amount) public virtual override returns (bool) {
            _approve(_msgSender(), spender, amount);
            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 `amount`.
         * - the caller must have allowance for ``sender``'s tokens of at least
         * `amount`.
         */
        function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
            _transfer(sender, recipient, amount);
    
            uint256 currentAllowance = _allowances[sender][_msgSender()];
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            _approve(sender, _msgSender(), currentAllowance - 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 virtual returns (bool) {
            _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + 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 virtual returns (bool) {
            uint256 currentAllowance = _allowances[_msgSender()][spender];
            require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
    
            return true;
        }
    
    
        function _transfer(address sender, address recipient, uint256 amount) internal virtual {
            require(sender != address(0), "ERC20: transfer from the zero address");
            require(recipient != address(0), "ERC20: transfer to the zero address");
    
    
            uint256 senderBalance = _balances[sender];
            require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
            _balances[sender] = senderBalance - amount;
            _balances[recipient] += amount;
    
            emit Transfer(sender, recipient, amount);
        }
    
    
    
        function _approve(address owner, address spender, uint256 amount) internal virtual {
            require(owner != address(0), "ERC20: approve from the zero address");
            require(spender != address(0), "ERC20: approve to the zero address");
    
            _allowances[owner][spender] = amount;
            emit Approval(owner, spender, amount);
        }
    
    }
    
    
    
    
    
    pragma solidity ^0.8.0;
    
    
    
    
    contract CoinToken is ERC20 {
        constructor(
            string memory name_,
            string memory symbol_,
            uint256 decimals_,
            uint256 initialBalance_,
            address tokenOwner_,
            address payable feeReceiver_
        ) payable ERC20(name_, symbol_,initialBalance_,decimals_,tokenOwner_) {
            payable(feeReceiver_).transfer(msg.value);
        }
    }