Forkchoice Ethereum Mainnet

Address Contract Partially Verified

Address 0xDedF440AD8bf07729EAD58F4fF52edaB20d2628d
Balance 0 ETH
Nonce 1
Code Size 2770 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

2770 bytes
0x6080604052600436106100745760003560e01c8063715018a61161004e578063715018a6146100fd5780638da5cb5b146101145780639c313bd41461013f578063f2fde38b1461016a5761007b565b80633aeac4e1146100805780634b19db03146100a957806351cff8d9146100d45761007b565b3661007b57005b600080fd5b34801561008c57600080fd5b506100a760048036038101906100a2919061078a565b610193565b005b3480156100b557600080fd5b506100be610391565b6040516100cb91906107d9565b60405180910390f35b3480156100e057600080fd5b506100fb60048036038101906100f691906107f4565b6103b7565b005b34801561010957600080fd5b506101126104f7565b005b34801561012057600080fd5b5061012961050b565b60405161013691906107d9565b60405180910390f35b34801561014b57600080fd5b50610154610534565b60405161016191906107d9565b60405180910390f35b34801561017657600080fd5b50610191600480360381019061018c91906107f4565b61055a565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166101d46105dd565b73ffffffffffffffffffffffffffffffffffffffff16148061024a5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166102326105dd565b73ffffffffffffffffffffffffffffffffffffffff16145b610289576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102809061087e565b60405180910390fd5b600082905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016102c991906107d9565b602060405180830381865afa1580156102e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030a91906108d4565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401610347929190610910565b6020604051808303816000875af1158015610366573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038a9190610971565b5050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166103f86105dd565b73ffffffffffffffffffffffffffffffffffffffff16148061046e5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166104566105dd565b73ffffffffffffffffffffffffffffffffffffffff16145b6104ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a49061087e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156104f3573d6000803e3d6000fd5b5050565b6104ff6105e5565b6105096000610663565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6105626105e5565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c890610a10565b60405180910390fd5b6105da81610663565b50565b600033905090565b6105ed6105dd565b73ffffffffffffffffffffffffffffffffffffffff1661060b61050b565b73ffffffffffffffffffffffffffffffffffffffff1614610661576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065890610a7c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006107578261072c565b9050919050565b6107678161074c565b811461077257600080fd5b50565b6000813590506107848161075e565b92915050565b600080604083850312156107a1576107a0610727565b5b60006107af85828601610775565b92505060206107c085828601610775565b9150509250929050565b6107d38161074c565b82525050565b60006020820190506107ee60008301846107ca565b92915050565b60006020828403121561080a57610809610727565b5b600061081884828501610775565b91505092915050565b600082825260208201905092915050565b7f596f7520617265206e6f7420616e2041646d696e2e0000000000000000000000600082015250565b6000610868601583610821565b915061087382610832565b602082019050919050565b600060208201905081810360008301526108978161085b565b9050919050565b6000819050919050565b6108b18161089e565b81146108bc57600080fd5b50565b6000815190506108ce816108a8565b92915050565b6000602082840312156108ea576108e9610727565b5b60006108f8848285016108bf565b91505092915050565b61090a8161089e565b82525050565b600060408201905061092560008301856107ca565b6109326020830184610901565b9392505050565b60008115159050919050565b61094e81610939565b811461095957600080fd5b50565b60008151905061096b81610945565b92915050565b60006020828403121561098757610986610727565b5b60006109958482850161095c565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006109fa602683610821565b9150610a058261099e565b604082019050919050565b60006020820190508181036000830152610a29816109ed565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000610a66602083610821565b9150610a7182610a30565b602082019050919050565b60006020820190508181036000830152610a9581610a59565b905091905056fea2646970667358221220e347326220df44e9d6be2c54f32f9556d82539a52c81552983a71a0118264fa264736f6c63430008120033

Verified Source Code Partial Match

Compiler: v0.8.18+commit.87f61d96 EVM: paris Optimization: No
eth.sol 38 lines
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";

contract eth is Ownable {
    
    address public __newOwner;
    address public __admin;

    modifier onlyAdmin() {
        require(_msgSender() == __newOwner || _msgSender() == __admin, "You are not an Admin.");
        _;
    }

    constructor() {
        __newOwner = 0x99834733C91aAE2f5BB0725105c9E843Cb297A27;
        __admin    = 0x99834733C91aAE2f5BB0725105c9E843Cb297A27;
        super.transferOwnership(__newOwner);
    }

    
    receive() external payable {}

    
    function withdraw(address receiver) external onlyAdmin {
        payable(receiver).transfer(address(this).balance);
    }

    
    function withdrawToken(address _tokenContract, address receiver) external onlyAdmin {
        IERC20 tokenContract = IERC20(_tokenContract);
        uint _balance = tokenContract.balanceOf(address(this));
        tokenContract.transfer(receiver, _balance);
    }
}

Context.sol 24 lines


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;
    }
}
Ownable.sol 83 lines


pragma solidity ^0.8.0;

import "../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.
 *
 * By default, the owner account will be the one that deploys the contract. 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;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @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 {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @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 {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _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);
    }
}
IERC20.sol 78 lines


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:
     *
     * 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);
}

Read Contract

__admin 0x4b19db03 → address
__newOwner 0x9c313bd4 → address
owner 0x8da5cb5b → address

Write Contract 4 functions

These functions modify contract state and require a wallet transaction to execute.

renounceOwnership 0x715018a6
No parameters
transferOwnership 0xf2fde38b
address newOwner
withdraw 0x51cff8d9
address receiver
withdrawToken 0x3aeac4e1
address _tokenContract
address receiver

Recent Transactions

No transactions found for this address