ETH Price: $3,464.42 (-4.36%)
Gas: 17 Gwei

Contract

0xCe227d2Cf9B6f0D810C3c3eAEB49Fffbc12Ea154
 

Overview

ETH Balance

0.347790045600000002 ETH

Eth Value

$1,204.89 (@ $3,464.42/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Release163726752023-01-09 23:59:23520 days ago1673308763IN
0xCe227d2C...bc12Ea154
0 ETH0.0012199925.99043189
Transfer152718922022-08-03 21:31:06679 days ago1659562266IN
0xCe227d2C...bc12Ea154
0.03829356 ETH0.0003109213.70500749
Release143419112022-03-07 20:41:58828 days ago1646685718IN
0xCe227d2C...bc12Ea154
0 ETH0.0033337271.02105298
Transfer142569262022-02-22 16:27:49842 days ago1645547269IN
0xCe227d2C...bc12Ea154
0.04496 ETH0.00241251106.33911315
Transfer141155162022-01-31 19:22:53863 days ago1643656973IN
0xCe227d2C...bc12Ea154
0.238664 ETH0.00355781156.82190153
Release140530392022-01-22 3:42:27873 days ago1642822947IN
0xCe227d2C...bc12Ea154
0 ETH0.00746255150.94160317
Release140530372022-01-22 3:41:56873 days ago1642822916IN
0xCe227d2C...bc12Ea154
0 ETH0.00741675150.01531246
Release140530362022-01-22 3:41:39873 days ago1642822899IN
0xCe227d2C...bc12Ea154
0 ETH0.00777679157.29772379
Release140530062022-01-22 3:35:12873 days ago1642822512IN
0xCe227d2C...bc12Ea154
0 ETH0.00622706132.66001414
Transfer140501982022-01-21 17:16:38873 days ago1642785398IN
0xCe227d2C...bc12Ea154
0.054036 ETH0.0047143207.79764214
Transfer140220222022-01-17 8:46:00878 days ago1642409160IN
0xCe227d2C...bc12Ea154
0.0261524 ETH0.0020165488.88569141
Transfer139291792022-01-03 0:02:47892 days ago1641168167IN
0xCe227d2C...bc12Ea154
0.0193484 ETH0.00257435113.47257954
Transfer135751972021-11-08 10:20:51948 days ago1636366851IN
0xCe227d2C...bc12Ea154
0.0133756 ETH0.0021733295.79615159
Release134242562021-10-15 18:30:31971 days ago1634322631IN
0xCe227d2C...bc12Ea154
0 ETH0.00518503110.46092132
Transfer133517502021-10-04 9:20:10983 days ago1633339210IN
0xCe227d2C...bc12Ea154
0.0197 ETH0.0012254554.01562748
Transfer133178112021-09-29 1:40:19988 days ago1632879619IN
0xCe227d2C...bc12Ea154
0.048256 ETH0.0015850469.86571034
Transfer132818182021-09-23 11:48:30994 days ago1632397710IN
0xCe227d2C...bc12Ea154
1.86238423 ETH0.0011860652.2796992
Release132664972021-09-21 2:46:06996 days ago1632192366IN
0xCe227d2C...bc12Ea154
0 ETH0.0029896963.69192237
Transfer132298392021-09-15 10:43:421002 days ago1631702622IN
0xCe227d2C...bc12Ea154
1.131548 ETH0.0009528542
Transfer130537012021-08-19 5:05:581029 days ago1629349558IN
0xCe227d2C...bc12Ea154
1.91546399 ETH0.0009301641
Release130185582021-08-13 18:47:131034 days ago1628880433IN
0xCe227d2C...bc12Ea154
0 ETH0.0033803352.78477333
Release130179052021-08-13 16:28:301035 days ago1628872110IN
0xCe227d2C...bc12Ea154
0 ETH0.01127104176
Release130178902021-08-13 16:25:221035 days ago1628871922IN
0xCe227d2C...bc12Ea154
0 ETH0.01235972193
Release130127942021-08-12 21:28:381035 days ago1628803718IN
0xCe227d2C...bc12Ea154
0 ETH0.004462755
0x60806040130044422021-08-11 14:28:571037 days ago1628692137IN
 Create: PaymentSplitter
8 wei0.0790890177

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
180684242023-09-05 6:14:59282 days ago1693894499
0xCe227d2C...bc12Ea154
0.00032 ETH
172949372023-05-19 17:11:59391 days ago1684516319
0xCe227d2C...bc12Ea154
0.000516 ETH
170405122023-04-13 19:40:35426 days ago1681414835
0xCe227d2C...bc12Ea154
0.0008 ETH
169920612023-04-06 20:59:35433 days ago1680814775
0xCe227d2C...bc12Ea154
0.000155 ETH
168914842023-03-23 16:40:59448 days ago1679589659
0xCe227d2C...bc12Ea154
0.00004 ETH
168914842023-03-23 16:40:59448 days ago1679589659
0xCe227d2C...bc12Ea154
0.00004 ETH
168914842023-03-23 16:40:59448 days ago1679589659
0xCe227d2C...bc12Ea154
0.00005 ETH
168914842023-03-23 16:40:59448 days ago1679589659
0xCe227d2C...bc12Ea154
0.000045 ETH
168914842023-03-23 16:40:59448 days ago1679589659
0xCe227d2C...bc12Ea154
0.00005 ETH
168914842023-03-23 16:40:59448 days ago1679589659
0xCe227d2C...bc12Ea154
0.000045 ETH
168669362023-03-20 5:55:11451 days ago1679291711
0xCe227d2C...bc12Ea154
0.0004 ETH
168668322023-03-20 5:34:11451 days ago1679290451
0xCe227d2C...bc12Ea154
0.0006 ETH
168668322023-03-20 5:34:11451 days ago1679290451
0xCe227d2C...bc12Ea154
0.0004 ETH
168227002023-03-14 0:42:23457 days ago1678754543
0xCe227d2C...bc12Ea154
0.0004 ETH
168068672023-03-11 19:18:47459 days ago1678562327
0xCe227d2C...bc12Ea154
0.00005 ETH
168068672023-03-11 19:18:47459 days ago1678562327
0xCe227d2C...bc12Ea154
0.0004 ETH
168068672023-03-11 19:18:47459 days ago1678562327
0xCe227d2C...bc12Ea154
0.0004 ETH
168068672023-03-11 19:18:47459 days ago1678562327
0xCe227d2C...bc12Ea154
0.0000505 ETH
168068672023-03-11 19:18:47459 days ago1678562327
0xCe227d2C...bc12Ea154
0.00005 ETH
168068672023-03-11 19:18:47459 days ago1678562327
0xCe227d2C...bc12Ea154
0.00005 ETH
167738012023-03-07 3:36:47464 days ago1678160207
0xCe227d2C...bc12Ea154
0.0000505 ETH
167738012023-03-07 3:36:47464 days ago1678160207
0xCe227d2C...bc12Ea154
0.0000505 ETH
167738012023-03-07 3:36:47464 days ago1678160207
0xCe227d2C...bc12Ea154
0.00006 ETH
167738012023-03-07 3:36:47464 days ago1678160207
0xCe227d2C...bc12Ea154
0.00005 ETH
167738012023-03-07 3:36:47464 days ago1678160207
0xCe227d2C...bc12Ea154
0.00005 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PaymentSplitter

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 5 : PaymentSplitter.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "../utils/Address.sol";
import "../utils/Context.sol";
import "../utils/math/SafeMath.sol";

/**
 * @title PaymentSplitter
 * @dev This contract allows to split Ether payments among a group of accounts. The sender does not need to be aware
 * that the Ether will be split in this way, since it is handled transparently by the contract.
 *
 * The split can be in equal parts or in any other arbitrary proportion. The way this is specified is by assigning each
 * account to a number of shares. Of all the Ether that this contract receives, each account will then be able to claim
 * an amount proportional to the percentage of total shares they were assigned.
 *
 * `PaymentSplitter` follows a _pull payment_ model. This means that payments are not automatically forwarded to the
 * accounts but kept in this contract, and the actual transfer is triggered as a separate step by calling the {release}
 * function.
 */
contract PaymentSplitter is Context {
    event PayeeAdded(address account, uint256 shares);
    event PaymentReleased(address to, uint256 amount);
    event PaymentReceived(address from, uint256 amount);

    uint256 private _totalShares;
    uint256 private _totalReleased;

    mapping(address => uint256) private _shares;
    mapping(address => uint256) private _released;
    address[] private _payees;

    /**
     * @dev Creates an instance of `PaymentSplitter` where each account in `payees` is assigned the number of shares at
     * the matching position in the `shares` array.
     *
     * All addresses in `payees` must be non-zero. Both arrays must have the same non-zero length, and there must be no
     * duplicates in `payees`.
     */
    constructor(address[] memory payees, uint256[] memory shares_) payable {
        require(payees.length == shares_.length, "PaymentSplitter: payees and shares length mismatch");
        require(payees.length > 0, "PaymentSplitter: no payees");

        for (uint256 i = 0; i < payees.length; i++) {
            _addPayee(payees[i], shares_[i]);
        }
    }

    /**
     * @dev The Ether received will be logged with {PaymentReceived} events. Note that these events are not fully
     * reliable: it's possible for a contract to receive Ether without triggering this function. This only affects the
     * reliability of the events, and not the actual splitting of Ether.
     *
     * To learn more about this see the Solidity documentation for
     * https://solidity.readthedocs.io/en/latest/contracts.html#fallback-function[fallback
     * functions].
     */
    receive() external payable virtual {
        emit PaymentReceived(_msgSender(), msg.value);
    }

    /**
     * @dev Getter for the total shares held by payees.
     */
    function totalShares() public view returns (uint256) {
        return _totalShares;
    }

    /**
     * @dev Getter for the total amount of Ether already released.
     */
    function totalReleased() public view returns (uint256) {
        return _totalReleased;
    }

    /**
     * @dev Getter for the amount of shares held by an account.
     */
    function shares(address account) public view returns (uint256) {
        return _shares[account];
    }

    /**
     * @dev Getter for the amount of Ether already released to a payee.
     */
    function released(address account) public view returns (uint256) {
        return _released[account];
    }

    /**
     * @dev Getter for the address of the payee number `index`.
     */
    function payee(uint256 index) public view returns (address) {
        return _payees[index];
    }

    /**
     * @dev Triggers a transfer to `account` of the amount of Ether they are owed, according to their percentage of the
     * total shares and their previous withdrawals.
     */
    function release(address payable account) public virtual {
        require(_shares[account] > 0, "PaymentSplitter: account has no shares");

        uint256 totalReceived = address(this).balance + _totalReleased;
        uint256 payment = (totalReceived * _shares[account]) / _totalShares - _released[account];

        require(payment != 0, "PaymentSplitter: account is not due payment");

        _released[account] = _released[account] + payment;
        _totalReleased = _totalReleased + payment;

        Address.sendValue(account, payment);
        emit PaymentReleased(account, payment);
    }

    /**
     * @dev Add a new payee to the contract.
     * @param account The address of the payee to add.
     * @param shares_ The number of shares owned by the payee.
     */
    function _addPayee(address account, uint256 shares_) private {
        require(account != address(0), "PaymentSplitter: account is the zero address");
        require(shares_ > 0, "PaymentSplitter: shares are 0");
        require(_shares[account] == 0, "PaymentSplitter: account already has shares");

        _payees.push(account);
        _shares[account] = shares_;
        _totalShares = _totalShares + shares_;
        emit PayeeAdded(account, shares_);
    }
}

File 2 of 5 : PaymentSplitter.sol
// SPDX-License-Identifier: Unlicense
pragma solidity ^0.8.3;

//////////////////////////////////////////////////////////////////////////////////////
//                                                                                  //
//    _____ _____ _____ _____ _____ _____    _____ _____ _____ __    __    _____    //
//   |   __|  |  |     |  |  |     |   | |  |_   _| __  |     |  |  |  |  |   __|   //
//   |   __|  |  |   --|    -|-   -| | | |    | | |    -|  |  |  |__|  |__|__   |   //
//   |__|  |_____|_____|__|__|_____|_|___|    |_| |__|__|_____|_____|_____|_____|   //
//                                                                                  //
//                                                                                  //
//////////////////////////////////////////////////////////////////////////////////////

import "@openzeppelin/contracts/finance/PaymentSplitter.sol";

File 3 of 5 : SafeMath.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

// CAUTION
// This version of SafeMath should only be used with Solidity 0.8 or later,
// because it relies on the compiler's built in overflow checks.

/**
 * @dev Wrappers over Solidity's arithmetic operations.
 *
 * NOTE: `SafeMath` is no longer needed starting with Solidity 0.8. The compiler
 * now has built in overflow checking.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

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

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator.
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

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

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

File 4 of 5 : Context.sol
// SPDX-License-Identifier: MIT

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;
    }
}

File 5 of 5 : Address.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/**
 * @dev Collection of functions related to the address type
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // This method relies on extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain `call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) private pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address[]","name":"payees","type":"address[]"},{"internalType":"uint256[]","name":"shares_","type":"uint256[]"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"PayeeAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"PaymentReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"PaymentReleased","type":"event"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"payee","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"account","type":"address"}],"name":"release","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"released","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"shares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalReleased","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052604051620017a7380380620017a7833981810160405281019062000029919062000523565b805182511462000070576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200006790620006ca565b60405180910390fd5b6000825111620000b7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000ae906200070e565b60405180910390fd5b60005b82518110156200016e576200015883828151811062000102577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015183838151811062000144577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516200017760201b60201c565b80806200016590620008bb565b915050620000ba565b50505062000aeb565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620001ea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001e190620006a8565b60405180910390fd5b6000811162000230576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002279062000730565b60405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414620002b5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002ac90620006ec565b60405180910390fd5b6004829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806000546200036c9190620007ea565b6000819055507f40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac8282604051620003a59291906200067b565b60405180910390a15050565b6000620003c8620003c2846200077b565b62000752565b90508083825260208201905082856020860282011115620003e857600080fd5b60005b858110156200041c57816200040188826200049b565b845260208401935060208301925050600181019050620003eb565b5050509392505050565b60006200043d6200043784620007aa565b62000752565b905080838252602082019050828560208602820111156200045d57600080fd5b60005b858110156200049157816200047688826200050c565b84526020840193506020830192505060018101905062000460565b5050509392505050565b600081519050620004ac8162000ab7565b92915050565b600082601f830112620004c457600080fd5b8151620004d6848260208601620003b1565b91505092915050565b600082601f830112620004f157600080fd5b81516200050384826020860162000426565b91505092915050565b6000815190506200051d8162000ad1565b92915050565b600080604083850312156200053757600080fd5b600083015167ffffffffffffffff8111156200055257600080fd5b6200056085828601620004b2565b925050602083015167ffffffffffffffff8111156200057e57600080fd5b6200058c85828601620004df565b9150509250929050565b620005a18162000847565b82525050565b6000620005b6602c83620007d9565b9150620005c38262000978565b604082019050919050565b6000620005dd603283620007d9565b9150620005ea82620009c7565b604082019050919050565b600062000604602b83620007d9565b9150620006118262000a16565b604082019050919050565b60006200062b601a83620007d9565b9150620006388262000a65565b602082019050919050565b600062000652601d83620007d9565b91506200065f8262000a8e565b602082019050919050565b62000675816200087b565b82525050565b600060408201905062000692600083018562000596565b620006a160208301846200066a565b9392505050565b60006020820190508181036000830152620006c381620005a7565b9050919050565b60006020820190508181036000830152620006e581620005ce565b9050919050565b600060208201905081810360008301526200070781620005f5565b9050919050565b6000602082019050818103600083015262000729816200061c565b9050919050565b600060208201905081810360008301526200074b8162000643565b9050919050565b60006200075e62000771565b90506200076c828262000885565b919050565b6000604051905090565b600067ffffffffffffffff82111562000799576200079862000938565b5b602082029050602081019050919050565b600067ffffffffffffffff821115620007c857620007c762000938565b5b602082029050602081019050919050565b600082825260208201905092915050565b6000620007f7826200087b565b915062000804836200087b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200083c576200083b62000909565b5b828201905092915050565b600062000854826200085b565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b620008908262000967565b810181811067ffffffffffffffff82111715620008b257620008b162000938565b5b80604052505050565b6000620008c8826200087b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415620008fe57620008fd62000909565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f5061796d656e7453706c69747465723a206163636f756e74206973207468652060008201527f7a65726f20616464726573730000000000000000000000000000000000000000602082015250565b7f5061796d656e7453706c69747465723a2070617965657320616e64207368617260008201527f6573206c656e677468206d69736d617463680000000000000000000000000000602082015250565b7f5061796d656e7453706c69747465723a206163636f756e7420616c726561647960008201527f2068617320736861726573000000000000000000000000000000000000000000602082015250565b7f5061796d656e7453706c69747465723a206e6f20706179656573000000000000600082015250565b7f5061796d656e7453706c69747465723a20736861726573206172652030000000600082015250565b62000ac28162000847565b811462000ace57600080fd5b50565b62000adc816200087b565b811462000ae857600080fd5b50565b610cac8062000afb6000396000f3fe6080604052600436106100595760003560e01c806319165587146100a55780633a98ef39146100ce5780638b83209b146100f95780639852595c14610136578063ce7c2ac214610173578063e33b7de3146101b0576100a0565b366100a0577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7706100876101db565b34604051610096929190610841565b60405180910390a1005b600080fd5b3480156100b157600080fd5b506100cc60048036038101906100c791906106ba565b6101e3565b005b3480156100da57600080fd5b506100e361044b565b6040516100f091906108ea565b60405180910390f35b34801561010557600080fd5b50610120600480360381019061011b91906106e3565b610454565b60405161012d91906107fd565b60405180910390f35b34801561014257600080fd5b5061015d60048036038101906101589190610691565b6104c2565b60405161016a91906108ea565b60405180910390f35b34801561017f57600080fd5b5061019a60048036038101906101959190610691565b61050b565b6040516101a791906108ea565b60405180910390f35b3480156101bc57600080fd5b506101c5610554565b6040516101d291906108ea565b60405180910390f35b600033905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610265576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025c9061086a565b60405180910390fd5b6000600154476102759190610921565b90506000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600054600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461030791906109a8565b6103119190610977565b61031b9190610a02565b90506000811415610361576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610358906108ca565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103ac9190610921565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806001546103fd9190610921565b60018190555061040d838261055e565b7fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056838260405161043e929190610818565b60405180910390a1505050565b60008054905090565b600060048281548110610490577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600154905090565b804710156105a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610598906108aa565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16826040516105c7906107e8565b60006040518083038185875af1925050503d8060008114610604576040519150601f19603f3d011682016040523d82523d6000602084013e610609565b606091505b505090508061064d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106449061088a565b60405180910390fd5b505050565b60008135905061066181610c31565b92915050565b60008135905061067681610c48565b92915050565b60008135905061068b81610c5f565b92915050565b6000602082840312156106a357600080fd5b60006106b184828501610652565b91505092915050565b6000602082840312156106cc57600080fd5b60006106da84828501610667565b91505092915050565b6000602082840312156106f557600080fd5b60006107038482850161067c565b91505092915050565b61071581610a84565b82525050565b61072481610a36565b82525050565b6000610737602683610910565b915061074282610b18565b604082019050919050565b600061075a603a83610910565b915061076582610b67565b604082019050919050565b600061077d601d83610910565b915061078882610bb6565b602082019050919050565b60006107a0602b83610910565b91506107ab82610bdf565b604082019050919050565b60006107c3600083610905565b91506107ce82610c2e565b600082019050919050565b6107e281610a7a565b82525050565b60006107f3826107b6565b9150819050919050565b6000602082019050610812600083018461071b565b92915050565b600060408201905061082d600083018561070c565b61083a60208301846107d9565b9392505050565b6000604082019050610856600083018561071b565b61086360208301846107d9565b9392505050565b600060208201905081810360008301526108838161072a565b9050919050565b600060208201905081810360008301526108a38161074d565b9050919050565b600060208201905081810360008301526108c381610770565b9050919050565b600060208201905081810360008301526108e381610793565b9050919050565b60006020820190506108ff60008301846107d9565b92915050565b600081905092915050565b600082825260208201905092915050565b600061092c82610a7a565b915061093783610a7a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561096c5761096b610aba565b5b828201905092915050565b600061098282610a7a565b915061098d83610a7a565b92508261099d5761099c610ae9565b5b828204905092915050565b60006109b382610a7a565b91506109be83610a7a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156109f7576109f6610aba565b5b828202905092915050565b6000610a0d82610a7a565b9150610a1883610a7a565b925082821015610a2b57610a2a610aba565b5b828203905092915050565b6000610a4182610a5a565b9050919050565b6000610a5382610a5a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610a8f82610a96565b9050919050565b6000610aa182610aa8565b9050919050565b6000610ab382610a5a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060008201527f7368617265730000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b7f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060008201527f647565207061796d656e74000000000000000000000000000000000000000000602082015250565b50565b610c3a81610a36565b8114610c4557600080fd5b50565b610c5181610a48565b8114610c5c57600080fd5b50565b610c6881610a7a565b8114610c7357600080fd5b5056fea264697066735822122088cfeff22ec5cd63542edfbfd28503167f1978579b68b4661074ec8cd658fc3764736f6c63430008040033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000ec6d36a487d85cf562b7b8464ce8dc60637362ac0000000000000000000000003d9456ad6463a77bd77123cb4836e463030bfab40000000000000000000000009899f350e3f05d83051d0f20e47d15aabc9bb062000000000000000000000000232e02988970e8ab920c83964cc7922d9c282dca00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000021000000000000000000000000000000000000000000000000000000000000002100000000000000000000000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000001

Deployed Bytecode

0x6080604052600436106100595760003560e01c806319165587146100a55780633a98ef39146100ce5780638b83209b146100f95780639852595c14610136578063ce7c2ac214610173578063e33b7de3146101b0576100a0565b366100a0577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7706100876101db565b34604051610096929190610841565b60405180910390a1005b600080fd5b3480156100b157600080fd5b506100cc60048036038101906100c791906106ba565b6101e3565b005b3480156100da57600080fd5b506100e361044b565b6040516100f091906108ea565b60405180910390f35b34801561010557600080fd5b50610120600480360381019061011b91906106e3565b610454565b60405161012d91906107fd565b60405180910390f35b34801561014257600080fd5b5061015d60048036038101906101589190610691565b6104c2565b60405161016a91906108ea565b60405180910390f35b34801561017f57600080fd5b5061019a60048036038101906101959190610691565b61050b565b6040516101a791906108ea565b60405180910390f35b3480156101bc57600080fd5b506101c5610554565b6040516101d291906108ea565b60405180910390f35b600033905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610265576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025c9061086a565b60405180910390fd5b6000600154476102759190610921565b90506000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600054600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461030791906109a8565b6103119190610977565b61031b9190610a02565b90506000811415610361576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610358906108ca565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103ac9190610921565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806001546103fd9190610921565b60018190555061040d838261055e565b7fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056838260405161043e929190610818565b60405180910390a1505050565b60008054905090565b600060048281548110610490577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600154905090565b804710156105a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610598906108aa565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16826040516105c7906107e8565b60006040518083038185875af1925050503d8060008114610604576040519150601f19603f3d011682016040523d82523d6000602084013e610609565b606091505b505090508061064d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106449061088a565b60405180910390fd5b505050565b60008135905061066181610c31565b92915050565b60008135905061067681610c48565b92915050565b60008135905061068b81610c5f565b92915050565b6000602082840312156106a357600080fd5b60006106b184828501610652565b91505092915050565b6000602082840312156106cc57600080fd5b60006106da84828501610667565b91505092915050565b6000602082840312156106f557600080fd5b60006107038482850161067c565b91505092915050565b61071581610a84565b82525050565b61072481610a36565b82525050565b6000610737602683610910565b915061074282610b18565b604082019050919050565b600061075a603a83610910565b915061076582610b67565b604082019050919050565b600061077d601d83610910565b915061078882610bb6565b602082019050919050565b60006107a0602b83610910565b91506107ab82610bdf565b604082019050919050565b60006107c3600083610905565b91506107ce82610c2e565b600082019050919050565b6107e281610a7a565b82525050565b60006107f3826107b6565b9150819050919050565b6000602082019050610812600083018461071b565b92915050565b600060408201905061082d600083018561070c565b61083a60208301846107d9565b9392505050565b6000604082019050610856600083018561071b565b61086360208301846107d9565b9392505050565b600060208201905081810360008301526108838161072a565b9050919050565b600060208201905081810360008301526108a38161074d565b9050919050565b600060208201905081810360008301526108c381610770565b9050919050565b600060208201905081810360008301526108e381610793565b9050919050565b60006020820190506108ff60008301846107d9565b92915050565b600081905092915050565b600082825260208201905092915050565b600061092c82610a7a565b915061093783610a7a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561096c5761096b610aba565b5b828201905092915050565b600061098282610a7a565b915061098d83610a7a565b92508261099d5761099c610ae9565b5b828204905092915050565b60006109b382610a7a565b91506109be83610a7a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156109f7576109f6610aba565b5b828202905092915050565b6000610a0d82610a7a565b9150610a1883610a7a565b925082821015610a2b57610a2a610aba565b5b828203905092915050565b6000610a4182610a5a565b9050919050565b6000610a5382610a5a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610a8f82610a96565b9050919050565b6000610aa182610aa8565b9050919050565b6000610ab382610a5a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060008201527f7368617265730000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b7f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060008201527f647565207061796d656e74000000000000000000000000000000000000000000602082015250565b50565b610c3a81610a36565b8114610c4557600080fd5b50565b610c5181610a48565b8114610c5c57600080fd5b50565b610c6881610a7a565b8114610c7357600080fd5b5056fea264697066735822122088cfeff22ec5cd63542edfbfd28503167f1978579b68b4661074ec8cd658fc3764736f6c63430008040033

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

000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000004000000000000000000000000ec6d36a487d85cf562b7b8464ce8dc60637362ac0000000000000000000000003d9456ad6463a77bd77123cb4836e463030bfab40000000000000000000000009899f350e3f05d83051d0f20e47d15aabc9bb062000000000000000000000000232e02988970e8ab920c83964cc7922d9c282dca00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000021000000000000000000000000000000000000000000000000000000000000002100000000000000000000000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000001

-----Decoded View---------------
Arg [0] : payees (address[]): 0xEC6d36A487d85CF562B7b8464CE8dc60637362AC,0x3d9456Ad6463a77bD77123Cb4836e463030bfAb4,0x9899F350e3f05D83051d0F20e47d15aAbc9Bb062,0x232E02988970e8aB920c83964cC7922d9C282DCA
Arg [1] : shares_ (uint256[]): 33,33,33,1

-----Encoded View---------------
12 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [3] : 000000000000000000000000ec6d36a487d85cf562b7b8464ce8dc60637362ac
Arg [4] : 0000000000000000000000003d9456ad6463a77bd77123cb4836e463030bfab4
Arg [5] : 0000000000000000000000009899f350e3f05d83051d0f20e47d15aabc9bb062
Arg [6] : 000000000000000000000000232e02988970e8ab920c83964cc7922d9c282dca
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000021
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000021
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000021
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000001


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ 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.