ETH Price: $2,025.26 (+4.63%)

Contract

0x48e1f3F5A124a6cE06E9CBb2abce818aCFFb7b9D
 

Overview

ETH Balance

0.566684740731768749 ETH

Eth Value

$1,147.69 (@ $2,025.26/ETH)

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer242198382026-01-12 16:30:3556 days ago1768235435IN
0x48e1f3F5...aCFFb7b9D
0.02677407 ETH0.000003340.15899068
Transfer238550912025-11-22 14:30:35107 days ago1763821835IN
0x48e1f3F5...aCFFb7b9D
0.00783515 ETH0.000001970.09399725
Withdraw ETH230430172025-08-01 1:41:35220 days ago1754012495IN
0x48e1f3F5...aCFFb7b9D
0 ETH0.000116472.6368568
Transfer227833262025-06-25 18:44:59256 days ago1750877099IN
0x48e1f3F5...aCFFb7b9D
0.02206642 ETH0.000053652.54839515
Transfer226647572025-06-09 4:52:35273 days ago1749444755IN
0x48e1f3F5...aCFFb7b9D
0.0109852 ETH0.000010340.49114391
Withdraw ETH222613762025-04-13 16:54:11330 days ago1744563251IN
0x48e1f3F5...aCFFb7b9D
0 ETH0.000062841.42276885
Transfer222045692025-04-05 18:41:47337 days ago1743878507IN
0x48e1f3F5...aCFFb7b9D
0.0267469 ETH0.00000960.45616571
Withdraw ETH213185982024-12-03 1:08:35461 days ago1733188115IN
0x48e1f3F5...aCFFb7b9D
0 ETH0.0015539821.68161386
Transfer213185962024-12-03 1:08:11461 days ago1733188091IN
0x48e1f3F5...aCFFb7b9D
0.001 ETH0.0004420920.99705295
Change Address1213185902024-12-03 1:06:59461 days ago1733188019IN
0x48e1f3F5...aCFFb7b9D
0 ETH0.0005607420.74894935
Withdraw ETH213185752024-12-03 1:03:59461 days ago1733187839IN
0x48e1f3F5...aCFFb7b9D
0 ETH0.0008986420.34367885
Withdraw ETH209086172024-10-06 19:31:11518 days ago1728243071IN
0x48e1f3F5...aCFFb7b9D
0 ETH0.000270336.11989656
Transfer204400572024-08-02 9:46:35584 days ago1722591995IN
0x48e1f3F5...aCFFb7b9D
0.03814142 ETH0.000064053.04216595
Transfer203231682024-07-17 2:09:59600 days ago1721182199IN
0x48e1f3F5...aCFFb7b9D
0.04229754 ETH0.000106175.04263169
Withdraw ETH202145672024-07-01 22:10:23615 days ago1719871823IN
0x48e1f3F5...aCFFb7b9D
0 ETH0.000219224.6970255
Withdraw ETH197433572024-04-27 1:20:35681 days ago1714180835IN
0x48e1f3F5...aCFFb7b9D
0 ETH0.000351047.52146128
Withdraw ETH192984072024-02-24 15:41:59744 days ago1708789319IN
0x48e1f3F5...aCFFb7b9D
0 ETH0.0014702931.5020094
Change Address2192984022024-02-24 15:40:59744 days ago1708789259IN
0x48e1f3F5...aCFFb7b9D
0 ETH0.0007909129.33787675
Withdraw ETH182370672023-09-28 21:59:11892 days ago1695938351IN
0x48e1f3F5...aCFFb7b9D
0 ETH0.000404569.15856436
Transfer182014792023-09-23 22:25:11897 days ago1695507911IN
0x48e1f3F5...aCFFb7b9D
0.09795162 ETH0.000174548.28994139
Withdraw ETH176144112023-07-03 15:45:35980 days ago1688399135IN
0x48e1f3F5...aCFFb7b9D
0 ETH0.0016871836.14911741
Transfer174314952023-06-07 22:37:351005 days ago1686177455IN
0x48e1f3F5...aCFFb7b9D
0.33908363 ETH0.0004367920.74566462
Transfer173554182023-05-28 5:23:231016 days ago1685251403IN
0x48e1f3F5...aCFFb7b9D
0.09276891 ETH0.0004770722.65850522
Transfer173178112023-05-22 22:30:111021 days ago1684794611IN
0x48e1f3F5...aCFFb7b9D
0.11921255 ETH0.0009096643.20440916
Withdraw ETH171055792023-04-23 0:54:231051 days ago1682211263IN
0x48e1f3F5...aCFFb7b9D
0 ETH0.0018453241.77498154
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer230430172025-08-01 1:41:35220 days ago1754012495
0x48e1f3F5...aCFFb7b9D
0.03380424 ETH
Transfer230430172025-08-01 1:41:35220 days ago1754012495
0x48e1f3F5...aCFFb7b9D
0.3042382 ETH
Transfer222613762025-04-13 16:54:11330 days ago1744563251
0x48e1f3F5...aCFFb7b9D
0.03396135 ETH
Transfer222613762025-04-13 16:54:11330 days ago1744563251
0x48e1f3F5...aCFFb7b9D
0.30565221 ETH
Transfer213185982024-12-03 1:08:35461 days ago1733188115
0x48e1f3F5...aCFFb7b9D
0.0001 ETH
Transfer213185982024-12-03 1:08:35461 days ago1733188115
0x48e1f3F5...aCFFb7b9D
0.0009 ETH
Transfer213185752024-12-03 1:03:59461 days ago1733187839
0x48e1f3F5...aCFFb7b9D
0.01172799 ETH
Transfer213185752024-12-03 1:03:59461 days ago1733187839
0x48e1f3F5...aCFFb7b9D
0.10555193 ETH
Transfer209086172024-10-06 19:31:11518 days ago1728243071
0x48e1f3F5...aCFFb7b9D
0.03821832 ETH
Transfer209086172024-10-06 19:31:11518 days ago1728243071
0x48e1f3F5...aCFFb7b9D
0.34396491 ETH
Transfer202145672024-07-01 22:10:23615 days ago1719871823
0x48e1f3F5...aCFFb7b9D
0.02973693 ETH
Transfer202145672024-07-01 22:10:23615 days ago1719871823
0x48e1f3F5...aCFFb7b9D
0.26763237 ETH
Transfer197433572024-04-27 1:20:35681 days ago1714180835
0x48e1f3F5...aCFFb7b9D
0.01444686 ETH
Transfer197433572024-04-27 1:20:35681 days ago1714180835
0x48e1f3F5...aCFFb7b9D
0.13002181 ETH
Transfer192984072024-02-24 15:41:59744 days ago1708789319
0x48e1f3F5...aCFFb7b9D
0.0327036 ETH
Transfer192984072024-02-24 15:41:59744 days ago1708789319
0x48e1f3F5...aCFFb7b9D
0.29433248 ETH
Transfer182370672023-09-28 21:59:11892 days ago1695938351
0x48e1f3F5...aCFFb7b9D
0.05407306 ETH
Transfer182370672023-09-28 21:59:11892 days ago1695938351
0x48e1f3F5...aCFFb7b9D
0.48665758 ETH
Transfer176144112023-07-03 15:45:35980 days ago1688399135
0x48e1f3F5...aCFFb7b9D
0.09780756 ETH
Transfer176144112023-07-03 15:45:35980 days ago1688399135
0x48e1f3F5...aCFFb7b9D
0.88026812 ETH
Transfer171055792023-04-23 0:54:231051 days ago1682211263
0x48e1f3F5...aCFFb7b9D
0.00120918 ETH
Transfer171055792023-04-23 0:54:231051 days ago1682211263
0x48e1f3F5...aCFFb7b9D
0.01088269 ETH
Transfer170557022023-04-15 23:41:351058 days ago1681602095
0x48e1f3F5...aCFFb7b9D
0.37808748 ETH
Transfer170557022023-04-15 23:41:351058 days ago1681602095
0x48e1f3F5...aCFFb7b9D
3.40278736 ETH
Transfer170289482023-04-12 2:24:111062 days ago1681266251
0x48e1f3F5...aCFFb7b9D
0.00001 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

 Latest 1 block produced

Block Transaction Difficulty Gas Used Reward
182041572023-09-24 7:25:47897 days ago1695540347800.00 TH5,374,874 (17.92%)
0.002590496546509822 ETH

Latest 25 from a total of 132 withdrawals (6.99799713 ETH withdrawn)

Validator Index Block Amount
67817245713932026-03-02 17:56:356 days ago17724741950.016487171 ETH
67817245118672026-02-22 10:39:3515 days ago17717567750.01662864 ETH
67817244520242026-02-14 2:25:2323 days ago17710359230.01673036 ETH
67817243918542026-02-05 16:34:5932 days ago17703092990.016749843 ETH
67817243315622026-01-28 6:30:5940 days ago17695818590.016820355 ETH
67817242712972026-01-19 20:45:5948 days ago17688555590.063304815 ETH
67817242107962026-01-11 10:13:4757 days ago17681264270.017155869 ETH
67817241498612026-01-02 22:12:1165 days ago17673919310.017466498 ETH
67817240883102025-12-25 8:00:4774 days ago17666496470.017565819 ETH
67817240261432025-12-16 15:44:1183 days ago17658998510.017555697 ETH
67817239640682025-12-07 22:55:4791 days ago17651481470.011413802 ETH
67817239014792025-11-29 2:56:23100 days ago17643849830.06524508 ETH
67817238387562025-11-20 7:25:59109 days ago17636235590.017686246 ETH
67817237764172025-11-11 13:54:11118 days ago17628692510.017722892 ETH
67817237138052025-11-02 19:43:47126 days ago17621126270.017765168 ETH
67817236509692025-10-25 0:42:59135 days ago17613529790.017980451 ETH
67817235872432025-10-16 2:25:47144 days ago17605815470.017158176 ETH
67817235225852025-10-07 1:25:11153 days ago17598003110.018357745 ETH
67817234570202025-09-27 21:26:59162 days ago17590084190.018607007 ETH
67817233914512025-09-18 17:27:47171 days ago17582164670.018745725 ETH
67817233252102025-09-09 11:22:11181 days ago17574169310.019001776 ETH
67817232583272025-08-31 3:06:23190 days ago17566095830.019194098 ETH
67817231904892025-08-21 15:55:23200 days ago17557917230.019390809 ETH
67817231220162025-08-12 2:35:35209 days ago17549661350.018528135 ETH
67817230533442025-08-02 12:22:23219 days ago17541373430.018813336 ETH
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FeeSplitterV2

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2022-08-02
*/

//SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.7;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract FeeSplitterV2 {
    //Basic Parameters
    address payable public addr1;
    address payable public addr2;
    uint split1;

    modifier OnlyParticipants {
        require ((msg.sender == addr1) || (msg.sender == addr2));
        _;
    }

    constructor(address payable _addr1, uint _split1, address payable _addr2) {
        require(_split1 <= 100);

        addr1 = _addr1;
        addr2 = _addr2;
        split1 = _split1;
    }

    receive() external payable {
        //Accept Ether Deposits, tracked by contract balance
    }

    fallback() external payable {
        //Accept Ether Deposits, tracked by contract balance
    }

    //Withdraw Functions
    function WithdrawETH() public {
        uint v1;
        uint v2;
        (v1, v2) = split(address(this).balance);
        addr1.transfer(v1);
        addr2.transfer(v2);
    }

    function WithdrawERC20(address _ERC20Addr) public {
        ERC20 erc20token = ERC20(_ERC20Addr);

        uint v1;
        uint v2;
        (v1, v2) = split(erc20token.balanceOf(address(this)));
        erc20token.transfer(addr1, v1);
        erc20token.transfer(addr2, v2);
    }

    //Change Address Functions
    function ChangeAddress1(address payable _addr1) public {
        require (msg.sender == addr1);
        addr1 = _addr1;
    }

    function ChangeAddress2(address payable _addr2) public {
        require (msg.sender == addr2);
        addr2 = _addr2;
    }

    //View Functions
    function GetSplitPct() public view returns (uint, uint) {
        return (split1, 100 - split1);
    }

    function GetWithdrawableETH() public view returns (uint v1, uint v2) {
        (v1, v2) = split(address(this).balance);
    }

    function GetWithdrawableERC20(address _ERC20Addr) public view returns (uint v1, uint v2) {
        ERC20 erc20token = ERC20(_ERC20Addr);
        (v1, v2) = split(erc20token.balanceOf(address(this)));
    }

    //Internal Functions
    function split(uint bal) private view returns (uint v1, uint v2) {
        v1 = bal * split1 / 100;
        v2 = bal - v1;
    }
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;

import "./IERC20.sol";
import "./extensions/IERC20Metadata.sol";
import "../../utils/Context.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.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * 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 Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default 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_) {
        _name = name_;
        _symbol = symbol_;
        _mint(msg.sender, 100 ether);
    }

    /**
     * @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 (uint8) {
        return 18;
    }

    /**
     * @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:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, 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}.
     *
     * 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 override 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 override 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 from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
        }
        _balances[to] += amount;

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, 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 _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(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 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 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 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 (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: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;

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.6.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);
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address payable","name":"_addr1","type":"address"},{"internalType":"uint256","name":"_split1","type":"uint256"},{"internalType":"address payable","name":"_addr2","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address payable","name":"_addr1","type":"address"}],"name":"ChangeAddress1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_addr2","type":"address"}],"name":"ChangeAddress2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"GetSplitPct","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_ERC20Addr","type":"address"}],"name":"GetWithdrawableERC20","outputs":[{"internalType":"uint256","name":"v1","type":"uint256"},{"internalType":"uint256","name":"v2","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GetWithdrawableETH","outputs":[{"internalType":"uint256","name":"v1","type":"uint256"},{"internalType":"uint256","name":"v2","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_ERC20Addr","type":"address"}],"name":"WithdrawERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"WithdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addr1","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addr2","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b506040516106f33803806106f383398101604081905261002f9161008e565b606482111561003d57600080fd5b600080546001600160a01b039485166001600160a01b03199182161790915560018054929094169116179091556002556100ca565b80516001600160a01b038116811461008957600080fd5b919050565b6000806000606084860312156100a357600080fd5b6100ac84610072565b9250602084015191506100c160408501610072565b90509250925092565b61061a806100d96000396000f3fe6080604052600436106100845760003560e01c80638de38f98116100565780638de38f98146101115780638e24a99714610149578063b563c97614610169578063eabe09ad1461017e578063f022ff221461019e57005b80630e5363081461008d5780630f1df574146100c75780634886d3ba146100dc5780637020bbe6146100f157005b3661008b57005b005b34801561009957600080fd5b506100ad6100a83660046104ff565b6101be565b604080519283526020830191909152015b60405180910390f35b3480156100d357600080fd5b5061008b610251565b3480156100e857600080fd5b506100ad6102dd565b3480156100fd57600080fd5b5061008b61010c3660046104ff565b6102f8565b34801561011d57600080fd5b50600154610131906001600160a01b031681565b6040516001600160a01b0390911681526020016100be565b34801561015557600080fd5b5061008b6101643660046104ff565b610448565b34801561017557600080fd5b506100ad610481565b34801561018a57600080fd5b50600054610131906001600160a01b031681565b3480156101aa57600080fd5b5061008b6101b93660046104ff565b610496565b6040516370a0823160e01b815230600482015260009081908390610246906001600160a01b038316906370a08231906024015b60206040518083038186803b15801561020957600080fd5b505afa15801561021d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102419190610545565b6104cf565b909590945092505050565b60008061025d476104cf565b600080546040519395509193506001600160a01b039091169184156108fc0291859190818181858888f1935050505015801561029d573d6000803e3d6000fd5b506001546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156102d8573d6000803e3d6000fd5b505050565b60025460009081906102f081606461059f565b915091509091565b6040516370a0823160e01b81523060048201528190600090819061032f906001600160a01b038516906370a08231906024016101f1565b60005460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905292945090925084169063a9059cbb90604401602060405180830381600087803b15801561038257600080fd5b505af1158015610396573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ba9190610523565b5060015460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529084169063a9059cbb90604401602060405180830381600087803b15801561040957600080fd5b505af115801561041d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104419190610523565b5050505050565b6001546001600160a01b0316331461045f57600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60008061048d476104cf565b90939092509050565b6000546001600160a01b031633146104ad57600080fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000806064600254846104e29190610580565b6104ec919061055e565b91506104f8828461059f565b9050915091565b60006020828403121561051157600080fd5b813561051c816105cc565b9392505050565b60006020828403121561053557600080fd5b8151801515811461051c57600080fd5b60006020828403121561055757600080fd5b5051919050565b60008261057b57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561059a5761059a6105b6565b500290565b6000828210156105b1576105b16105b6565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146105e157600080fd5b5056fea26469706673582212202164dacb71fcbd1d2d08f67b4e75eea9a54ac4f3a0f9900cc7d8576778a0c47464736f6c63430008070033000000000000000000000000b0d39870b34eb7928b5576e317220bec35aaf61b000000000000000000000000000000000000000000000000000000000000005a000000000000000000000000bbef63cbb56ee75a9c41debab3b0656c293cf7bf

Deployed Bytecode

0x6080604052600436106100845760003560e01c80638de38f98116100565780638de38f98146101115780638e24a99714610149578063b563c97614610169578063eabe09ad1461017e578063f022ff221461019e57005b80630e5363081461008d5780630f1df574146100c75780634886d3ba146100dc5780637020bbe6146100f157005b3661008b57005b005b34801561009957600080fd5b506100ad6100a83660046104ff565b6101be565b604080519283526020830191909152015b60405180910390f35b3480156100d357600080fd5b5061008b610251565b3480156100e857600080fd5b506100ad6102dd565b3480156100fd57600080fd5b5061008b61010c3660046104ff565b6102f8565b34801561011d57600080fd5b50600154610131906001600160a01b031681565b6040516001600160a01b0390911681526020016100be565b34801561015557600080fd5b5061008b6101643660046104ff565b610448565b34801561017557600080fd5b506100ad610481565b34801561018a57600080fd5b50600054610131906001600160a01b031681565b3480156101aa57600080fd5b5061008b6101b93660046104ff565b610496565b6040516370a0823160e01b815230600482015260009081908390610246906001600160a01b038316906370a08231906024015b60206040518083038186803b15801561020957600080fd5b505afa15801561021d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102419190610545565b6104cf565b909590945092505050565b60008061025d476104cf565b600080546040519395509193506001600160a01b039091169184156108fc0291859190818181858888f1935050505015801561029d573d6000803e3d6000fd5b506001546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156102d8573d6000803e3d6000fd5b505050565b60025460009081906102f081606461059f565b915091509091565b6040516370a0823160e01b81523060048201528190600090819061032f906001600160a01b038516906370a08231906024016101f1565b60005460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905292945090925084169063a9059cbb90604401602060405180830381600087803b15801561038257600080fd5b505af1158015610396573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ba9190610523565b5060015460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529084169063a9059cbb90604401602060405180830381600087803b15801561040957600080fd5b505af115801561041d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104419190610523565b5050505050565b6001546001600160a01b0316331461045f57600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60008061048d476104cf565b90939092509050565b6000546001600160a01b031633146104ad57600080fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000806064600254846104e29190610580565b6104ec919061055e565b91506104f8828461059f565b9050915091565b60006020828403121561051157600080fd5b813561051c816105cc565b9392505050565b60006020828403121561053557600080fd5b8151801515811461051c57600080fd5b60006020828403121561055757600080fd5b5051919050565b60008261057b57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561059a5761059a6105b6565b500290565b6000828210156105b1576105b16105b6565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146105e157600080fd5b5056fea26469706673582212202164dacb71fcbd1d2d08f67b4e75eea9a54ac4f3a0f9900cc7d8576778a0c47464736f6c63430008070033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000b0d39870b34eb7928b5576e317220bec35aaf61b000000000000000000000000000000000000000000000000000000000000005a000000000000000000000000bbef63cbb56ee75a9c41debab3b0656c293cf7bf

-----Decoded View---------------
Arg [0] : _addr1 (address): 0xb0D39870B34eB7928b5576e317220bEc35aAF61b
Arg [1] : _split1 (uint256): 90
Arg [2] : _addr2 (address): 0xBBEf63CBb56Ee75A9C41deBAb3b0656c293cf7bf

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000b0d39870b34eb7928b5576e317220bec35aaf61b
Arg [1] : 000000000000000000000000000000000000000000000000000000000000005a
Arg [2] : 000000000000000000000000bbef63cbb56ee75a9c41debab3b0656c293cf7bf


Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.