ETH Price: $3,279.66 (-0.00%)
Gas: 4 Gwei

Contract

0xA18a2078D44C93867dB711ed80C0E2784BB3c8d3
 

Overview

ETH Balance

13.668535799817918368 ETH

Eth Value

$44,828.16 (@ $3,279.66/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Release163379992023-01-05 3:47:35569 days ago1672890455IN
0xA18a2078...84BB3c8d3
0 ETH0.0009352316.70805473
Release163164232023-01-02 3:32:35572 days ago1672630355IN
0xA18a2078...84BB3c8d3
0 ETH0.0006319913.40498586
Release155041562022-09-09 18:12:44687 days ago1662747164IN
0xA18a2078...84BB3c8d3
0 ETH0.0018130338.45584387
Release149931452022-06-19 22:20:37769 days ago1655677237IN
0xA18a2078...84BB3c8d3
0 ETH0.0011839237.12641037
Release149931442022-06-19 22:20:11769 days ago1655677211IN
0xA18a2078...84BB3c8d3
0 ETH0.0020602336.80633516
Release149543042022-06-13 5:32:12775 days ago1655098332IN
0xA18a2078...84BB3c8d3
0 ETH0.0029887763.39392941
Transfer148991192022-06-03 20:13:56785 days ago1654287236IN
0xA18a2078...84BB3c8d3
1.18006343 ETH0.0018425781.217037
Release148922212022-06-02 17:24:52786 days ago1654190692IN
0xA18a2078...84BB3c8d3
0 ETH0.0033700571.48132179
Transfer148456552022-05-26 3:24:37793 days ago1653535477IN
0xA18a2078...84BB3c8d3
0.84780134 ETH0.0005995826.42842916
Transfer148198912022-05-21 22:42:05797 days ago1653172925IN
0xA18a2078...84BB3c8d3
1.19819067 ETH0.0003781816.66946066
Transfer147753442022-05-14 19:06:57805 days ago1652555217IN
0xA18a2078...84BB3c8d3
1.70112068 ETH0.0006800529.97572894
Release147436692022-05-09 17:28:42810 days ago1652117322IN
0xA18a2078...84BB3c8d3
0 ETH0.00577335122.45687265
Transfer147292272022-05-07 10:18:20812 days ago1651918700IN
0xA18a2078...84BB3c8d3
1.68988527 ETH0.0008317636.66244191
Transfer146978612022-05-02 10:46:18817 days ago1651488378IN
0xA18a2078...84BB3c8d3
2.59157147 ETH0.0011075548.81874165
Transfer146544882022-04-25 15:08:34824 days ago1650899314IN
0xA18a2078...84BB3c8d3
3.5293225 ETH0.0015781469.56164151
Transfer146185642022-04-19 23:39:04829 days ago1650411544IN
0xA18a2078...84BB3c8d3
2.16965292 ETH0.0012001452.89996731
Transfer145778302022-04-13 15:13:23836 days ago1649862803IN
0xA18a2078...84BB3c8d3
1.86596897 ETH0.0012547855.30859231
Release145612272022-04-11 0:44:35838 days ago1649637875IN
0xA18a2078...84BB3c8d3
0 ETH0.0019080740.47171669
Transfer145483202022-04-09 0:31:43840 days ago1649464303IN
0xA18a2078...84BB3c8d3
3.279783 ETH0.0008306836.6148191
Release145351842022-04-06 23:07:18842 days ago1649286438IN
0xA18a2078...84BB3c8d3
0 ETH0.0019771939.82588082
Release145325532022-04-06 13:11:34843 days ago1649250694IN
0xA18a2078...84BB3c8d3
0 ETH0.0018170438.54076576
Transfer145195142022-04-04 12:23:45845 days ago1649075025IN
0xA18a2078...84BB3c8d3
1.71763489 ETH0.0012569755.40520805
Transfer144896762022-03-30 20:30:18850 days ago1648672218IN
0xA18a2078...84BB3c8d3
5.59683584 ETH0.0017242176
Transfer144169352022-03-19 12:43:20861 days ago1647693800IN
0xA18a2078...84BB3c8d3
3.10299645 ETH0.0007045231.05409139
Transfer143787142022-03-13 13:56:59867 days ago1647179819IN
0xA18a2078...84BB3c8d3
2.42708306 ETH0.0007259832
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
163379992023-01-05 3:47:35569 days ago1672890455
0xA18a2078...84BB3c8d3
9.09783132 ETH
163164232023-01-02 3:32:35572 days ago1672630355
0xA18a2078...84BB3c8d3
3.62404984 ETH
155041562022-09-09 18:12:44687 days ago1662747164
0xA18a2078...84BB3c8d3
0.8928317 ETH
149931442022-06-19 22:20:11769 days ago1655677211
0xA18a2078...84BB3c8d3
13.19206174 ETH
149900632022-06-19 9:32:43769 days ago1655631163
0xA18a2078...84BB3c8d3
0.0165 ETH
149543042022-06-13 5:32:12775 days ago1655098332
0xA18a2078...84BB3c8d3
3.0307189 ETH
149513192022-06-12 17:15:06776 days ago1655054106
0xA18a2078...84BB3c8d3
0.0165 ETH
148922212022-06-02 17:24:52786 days ago1654190692
0xA18a2078...84BB3c8d3
7.65397312 ETH
147436692022-05-09 17:28:42810 days ago1652117322
0xA18a2078...84BB3c8d3
2.73121814 ETH
147435862022-05-09 17:10:26810 days ago1652116226
0xA18a2078...84BB3c8d3
0.02925 ETH
147316172022-05-07 19:19:35812 days ago1651951175
0xA18a2078...84BB3c8d3
0.018 ETH
145612272022-04-11 0:44:35838 days ago1649637875
0xA18a2078...84BB3c8d3
6.06414241 ETH
145351842022-04-06 23:07:18842 days ago1649286438
0xA18a2078...84BB3c8d3
2.31201904 ETH
145325532022-04-06 13:11:34843 days ago1649250694
0xA18a2078...84BB3c8d3
17.76628785 ETH
143539932022-03-09 17:45:08871 days ago1646847908
0xA18a2078...84BB3c8d3
4.67898212 ETH
143025882022-03-01 17:52:34879 days ago1646157154
0xA18a2078...84BB3c8d3
8.44475831 ETH
142477402022-02-21 6:08:37887 days ago1645423717
0xA18a2078...84BB3c8d3
7.21925153 ETH
142020252022-02-14 4:20:17894 days ago1644812417
0xA18a2078...84BB3c8d3
12.29250638 ETH
141936292022-02-12 21:11:47896 days ago1644700307
0xA18a2078...84BB3c8d3
14.94951686 ETH
141092702022-01-30 20:13:08909 days ago1643573588
0xA18a2078...84BB3c8d3
5.07325485 ETH
140487962022-01-21 12:01:21918 days ago1642766481
0xA18a2078...84BB3c8d3
9.24748503 ETH
139995562022-01-13 21:22:37926 days ago1642108957
0xA18a2078...84BB3c8d3
24.35862901 ETH
139958072022-01-13 7:21:53926 days ago1642058513
0xA18a2078...84BB3c8d3
14.34632436 ETH
139844252022-01-11 13:14:07928 days ago1641906847
0xA18a2078...84BB3c8d3
59.29294858 ETH
139418672022-01-04 23:06:21934 days ago1641337581
0xA18a2078...84BB3c8d3
20.18439883 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PaymentSplitter

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
No with 200 runs

Other Settings:
petersburg EvmVersion
File 1 of 4 : PaymentSplitter.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "@openzeppelin/contracts/utils/Address.sol";
import "@openzeppelin/contracts/utils/Context.sol";
import "@openzeppelin/contracts/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 4 : 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);
    }

    /**
     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the
     * revert reason using the provided one.
     *
     * _Available since v4.3._
     */
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal 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);
            }
        }
    }
}

File 3 of 4 : 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 4 of 4 : 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;
        }
    }
}

Settings
{
  "remappings": [],
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "evmVersion": "petersburg",
  "libraries": {},
  "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"}]

608060405260405162001814380380620018148339818101604052810190620000299190620004f3565b805182511462000070576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200006790620006ac565b60405180910390fd5b6000825111620000b7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000ae90620006f0565b60405180910390fd5b60005b8251811015620001265762000110838281518110620000de57620000dd6200091a565b5b6020026020010151838381518110620000fc57620000fb6200091a565b5b60200260200101516200012f60201b60201c565b80806200011d906200089d565b915050620000ba565b50505062000b10565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620001a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000199906200068a565b60405180910390fd5b60008111620001e8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001df9062000712565b60405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146200026d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200026490620006ce565b60405180910390fd5b6004829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600054620003249190620007cc565b6000819055507f40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac82826040516200035d9291906200065d565b60405180910390a15050565b6000620003806200037a846200075d565b62000734565b90508083825260208201905082856020860282011115620003a657620003a56200097d565b5b60005b85811015620003da5781620003bf88826200045f565b845260208401935060208301925050600181019050620003a9565b5050509392505050565b6000620003fb620003f5846200078c565b62000734565b905080838252602082019050828560208602820111156200042157620004206200097d565b5b60005b858110156200045557816200043a8882620004dc565b84526020840193506020830192505060018101905062000424565b5050509392505050565b600081519050620004708162000adc565b92915050565b600082601f8301126200048e576200048d62000978565b5b8151620004a084826020860162000369565b91505092915050565b600082601f830112620004c157620004c062000978565b5b8151620004d3848260208601620003e4565b91505092915050565b600081519050620004ed8162000af6565b92915050565b600080604083850312156200050d576200050c62000987565b5b600083015167ffffffffffffffff8111156200052e576200052d62000982565b5b6200053c8582860162000476565b925050602083015167ffffffffffffffff81111562000560576200055f62000982565b5b6200056e85828601620004a9565b9150509250929050565b620005838162000829565b82525050565b600062000598602c83620007bb565b9150620005a5826200099d565b604082019050919050565b6000620005bf603283620007bb565b9150620005cc82620009ec565b604082019050919050565b6000620005e6602b83620007bb565b9150620005f38262000a3b565b604082019050919050565b60006200060d601a83620007bb565b91506200061a8262000a8a565b602082019050919050565b600062000634601d83620007bb565b9150620006418262000ab3565b602082019050919050565b62000657816200085d565b82525050565b600060408201905062000674600083018562000578565b6200068360208301846200064c565b9392505050565b60006020820190508181036000830152620006a58162000589565b9050919050565b60006020820190508181036000830152620006c781620005b0565b9050919050565b60006020820190508181036000830152620006e981620005d7565b9050919050565b600060208201905081810360008301526200070b81620005fe565b9050919050565b600060208201905081810360008301526200072d8162000625565b9050919050565b60006200074062000753565b90506200074e828262000867565b919050565b6000604051905090565b600067ffffffffffffffff8211156200077b576200077a62000949565b5b602082029050602081019050919050565b600067ffffffffffffffff821115620007aa57620007a962000949565b5b602082029050602081019050919050565b600082825260208201905092915050565b6000620007d9826200085d565b9150620007e6836200085d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200081e576200081d620008eb565b5b828201905092915050565b600062000836826200083d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b62000872826200098c565b810181811067ffffffffffffffff8211171562000894576200089362000949565b5b80604052505050565b6000620008aa826200085d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415620008e057620008df620008eb565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5061796d656e7453706c69747465723a206163636f756e74206973207468652060008201527f7a65726f20616464726573730000000000000000000000000000000000000000602082015250565b7f5061796d656e7453706c69747465723a2070617965657320616e64207368617260008201527f6573206c656e677468206d69736d617463680000000000000000000000000000602082015250565b7f5061796d656e7453706c69747465723a206163636f756e7420616c726561647960008201527f2068617320736861726573000000000000000000000000000000000000000000602082015250565b7f5061796d656e7453706c69747465723a206e6f20706179656573000000000000600082015250565b7f5061796d656e7453706c69747465723a20736861726573206172652030000000600082015250565b62000ae78162000829565b811462000af357600080fd5b50565b62000b01816200085d565b811462000b0d57600080fd5b50565b610cf48062000b206000396000f3fe6080604052600436106100595760003560e01c806319165587146100a55780633a98ef39146100ce5780638b83209b146100f95780639852595c14610136578063ce7c2ac214610173578063e33b7de3146101b0576100a0565b366100a0577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7706100876101db565b34604051610096929190610855565b60405180910390a1005b600080fd5b3480156100b157600080fd5b506100cc60048036038101906100c791906106c6565b6101e3565b005b3480156100da57600080fd5b506100e3610462565b6040516100f091906108fe565b60405180910390f35b34801561010557600080fd5b50610120600480360381019061011b91906106f3565b61046b565b60405161012d9190610811565b60405180910390f35b34801561014257600080fd5b5061015d60048036038101906101589190610699565b6104b3565b60405161016a91906108fe565b60405180910390f35b34801561017f57600080fd5b5061019a60048036038101906101959190610699565b6104fc565b6040516101a791906108fe565b60405180910390f35b3480156101bc57600080fd5b506101c5610545565b6040516101d291906108fe565b60405180910390f35b600033905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610265576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025c9061087e565b60405180910390fd5b60006001543073ffffffffffffffffffffffffffffffffffffffff163161028c9190610935565b90506000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600054600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461031e91906109bc565b610328919061098b565b6103329190610a16565b90506000811415610378576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036f906108de565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103c39190610935565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806001546104149190610935565b600181905550610424838261054f565b7fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056838260405161045592919061082c565b60405180910390a1505050565b60008054905090565b60006004828154811061048157610480610b2c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600154905090565b803073ffffffffffffffffffffffffffffffffffffffff163110156105a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a0906108be565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16826040516105cf906107fc565b60006040518083038185875af1925050503d806000811461060c576040519150601f19603f3d011682016040523d82523d6000602084013e610611565b606091505b5050905080610655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064c9061089e565b60405180910390fd5b505050565b60008135905061066981610c79565b92915050565b60008135905061067e81610c90565b92915050565b60008135905061069381610ca7565b92915050565b6000602082840312156106af576106ae610b5b565b5b60006106bd8482850161065a565b91505092915050565b6000602082840312156106dc576106db610b5b565b5b60006106ea8482850161066f565b91505092915050565b60006020828403121561070957610708610b5b565b5b600061071784828501610684565b91505092915050565b61072981610a98565b82525050565b61073881610a4a565b82525050565b600061074b602683610924565b915061075682610b60565b604082019050919050565b600061076e603a83610924565b915061077982610baf565b604082019050919050565b6000610791601d83610924565b915061079c82610bfe565b602082019050919050565b60006107b4602b83610924565b91506107bf82610c27565b604082019050919050565b60006107d7600083610919565b91506107e282610c76565b600082019050919050565b6107f681610a8e565b82525050565b6000610807826107ca565b9150819050919050565b6000602082019050610826600083018461072f565b92915050565b60006040820190506108416000830185610720565b61084e60208301846107ed565b9392505050565b600060408201905061086a600083018561072f565b61087760208301846107ed565b9392505050565b600060208201905081810360008301526108978161073e565b9050919050565b600060208201905081810360008301526108b781610761565b9050919050565b600060208201905081810360008301526108d781610784565b9050919050565b600060208201905081810360008301526108f7816107a7565b9050919050565b600060208201905061091360008301846107ed565b92915050565b600081905092915050565b600082825260208201905092915050565b600061094082610a8e565b915061094b83610a8e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156109805761097f610ace565b5b828201905092915050565b600061099682610a8e565b91506109a183610a8e565b9250826109b1576109b0610afd565b5b828204905092915050565b60006109c782610a8e565b91506109d283610a8e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610a0b57610a0a610ace565b5b828202905092915050565b6000610a2182610a8e565b9150610a2c83610a8e565b925082821015610a3f57610a3e610ace565b5b828203905092915050565b6000610a5582610a6e565b9050919050565b6000610a6782610a6e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610aa382610aaa565b9050919050565b6000610ab582610abc565b9050919050565b6000610ac782610a6e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b7f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060008201527f7368617265730000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b7f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060008201527f647565207061796d656e74000000000000000000000000000000000000000000602082015250565b50565b610c8281610a4a565b8114610c8d57600080fd5b50565b610c9981610a5c565b8114610ca457600080fd5b50565b610cb081610a8e565b8114610cbb57600080fd5b5056fea2646970667358221220f1c687150c969856509bca8e06c63d4bdd63e07a020d9ac4c0e030cce1347ce164736f6c634300080600330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000070000000000000000000000001b074debed3e3be11ff989f42778b4d249dd9760000000000000000000000000b5e14dcf2520d154606254094f32c8d32d509115000000000000000000000000117919163f7d03c0f07ccc388168e1e7fe606f54000000000000000000000000b680bbf3a3ea8ed816342b6e766c893a01b3df2e00000000000000000000000007c4b5249cb08ce064d0b701e25097e10c75e5a6000000000000000000000000aae014af95d811ad7dbff60209e74551a338f64c000000000000000000000000afd618064739a2820f5f80c2585563a8af0e687100000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000003

Deployed Bytecode

0x6080604052600436106100595760003560e01c806319165587146100a55780633a98ef39146100ce5780638b83209b146100f95780639852595c14610136578063ce7c2ac214610173578063e33b7de3146101b0576100a0565b366100a0577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7706100876101db565b34604051610096929190610855565b60405180910390a1005b600080fd5b3480156100b157600080fd5b506100cc60048036038101906100c791906106c6565b6101e3565b005b3480156100da57600080fd5b506100e3610462565b6040516100f091906108fe565b60405180910390f35b34801561010557600080fd5b50610120600480360381019061011b91906106f3565b61046b565b60405161012d9190610811565b60405180910390f35b34801561014257600080fd5b5061015d60048036038101906101589190610699565b6104b3565b60405161016a91906108fe565b60405180910390f35b34801561017f57600080fd5b5061019a60048036038101906101959190610699565b6104fc565b6040516101a791906108fe565b60405180910390f35b3480156101bc57600080fd5b506101c5610545565b6040516101d291906108fe565b60405180910390f35b600033905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610265576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161025c9061087e565b60405180910390fd5b60006001543073ffffffffffffffffffffffffffffffffffffffff163161028c9190610935565b90506000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600054600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461031e91906109bc565b610328919061098b565b6103329190610a16565b90506000811415610378576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036f906108de565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103c39190610935565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806001546104149190610935565b600181905550610424838261054f565b7fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056838260405161045592919061082c565b60405180910390a1505050565b60008054905090565b60006004828154811061048157610480610b2c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600154905090565b803073ffffffffffffffffffffffffffffffffffffffff163110156105a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a0906108be565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16826040516105cf906107fc565b60006040518083038185875af1925050503d806000811461060c576040519150601f19603f3d011682016040523d82523d6000602084013e610611565b606091505b5050905080610655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064c9061089e565b60405180910390fd5b505050565b60008135905061066981610c79565b92915050565b60008135905061067e81610c90565b92915050565b60008135905061069381610ca7565b92915050565b6000602082840312156106af576106ae610b5b565b5b60006106bd8482850161065a565b91505092915050565b6000602082840312156106dc576106db610b5b565b5b60006106ea8482850161066f565b91505092915050565b60006020828403121561070957610708610b5b565b5b600061071784828501610684565b91505092915050565b61072981610a98565b82525050565b61073881610a4a565b82525050565b600061074b602683610924565b915061075682610b60565b604082019050919050565b600061076e603a83610924565b915061077982610baf565b604082019050919050565b6000610791601d83610924565b915061079c82610bfe565b602082019050919050565b60006107b4602b83610924565b91506107bf82610c27565b604082019050919050565b60006107d7600083610919565b91506107e282610c76565b600082019050919050565b6107f681610a8e565b82525050565b6000610807826107ca565b9150819050919050565b6000602082019050610826600083018461072f565b92915050565b60006040820190506108416000830185610720565b61084e60208301846107ed565b9392505050565b600060408201905061086a600083018561072f565b61087760208301846107ed565b9392505050565b600060208201905081810360008301526108978161073e565b9050919050565b600060208201905081810360008301526108b781610761565b9050919050565b600060208201905081810360008301526108d781610784565b9050919050565b600060208201905081810360008301526108f7816107a7565b9050919050565b600060208201905061091360008301846107ed565b92915050565b600081905092915050565b600082825260208201905092915050565b600061094082610a8e565b915061094b83610a8e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156109805761097f610ace565b5b828201905092915050565b600061099682610a8e565b91506109a183610a8e565b9250826109b1576109b0610afd565b5b828204905092915050565b60006109c782610a8e565b91506109d283610a8e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610a0b57610a0a610ace565b5b828202905092915050565b6000610a2182610a8e565b9150610a2c83610a8e565b925082821015610a3f57610a3e610ace565b5b828203905092915050565b6000610a5582610a6e565b9050919050565b6000610a6782610a6e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610aa382610aaa565b9050919050565b6000610ab582610abc565b9050919050565b6000610ac782610a6e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b7f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060008201527f7368617265730000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b7f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060008201527f647565207061796d656e74000000000000000000000000000000000000000000602082015250565b50565b610c8281610a4a565b8114610c8d57600080fd5b50565b610c9981610a5c565b8114610ca457600080fd5b50565b610cb081610a8e565b8114610cbb57600080fd5b5056fea2646970667358221220f1c687150c969856509bca8e06c63d4bdd63e07a020d9ac4c0e030cce1347ce164736f6c63430008060033

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

0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000070000000000000000000000001b074debed3e3be11ff989f42778b4d249dd9760000000000000000000000000b5e14dcf2520d154606254094f32c8d32d509115000000000000000000000000117919163f7d03c0f07ccc388168e1e7fe606f54000000000000000000000000b680bbf3a3ea8ed816342b6e766c893a01b3df2e00000000000000000000000007c4b5249cb08ce064d0b701e25097e10c75e5a6000000000000000000000000aae014af95d811ad7dbff60209e74551a338f64c000000000000000000000000afd618064739a2820f5f80c2585563a8af0e687100000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000003

-----Decoded View---------------
Arg [0] : payees (address[]): 0x1b074DEBEd3e3bE11fF989f42778B4D249Dd9760,0xB5E14DCf2520d154606254094f32C8D32D509115,0x117919163f7d03C0F07CCC388168e1e7Fe606F54,0xb680Bbf3A3eA8Ed816342b6E766c893A01B3dF2E,0x07C4B5249CB08Ce064d0b701E25097e10c75E5A6,0xAaE014AF95D811ad7dbFf60209E74551A338F64c,0xAfd618064739a2820F5F80c2585563a8af0e6871
Arg [1] : shares_ (uint256[]): 18,18,18,18,18,7,3

-----Encoded View---------------
18 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000140
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [3] : 0000000000000000000000001b074debed3e3be11ff989f42778b4d249dd9760
Arg [4] : 000000000000000000000000b5e14dcf2520d154606254094f32c8d32d509115
Arg [5] : 000000000000000000000000117919163f7d03c0f07ccc388168e1e7fe606f54
Arg [6] : 000000000000000000000000b680bbf3a3ea8ed816342b6e766c893a01b3df2e
Arg [7] : 00000000000000000000000007c4b5249cb08ce064d0b701e25097e10c75e5a6
Arg [8] : 000000000000000000000000aae014af95d811ad7dbff60209e74551a338f64c
Arg [9] : 000000000000000000000000afd618064739a2820f5f80c2585563a8af0e6871
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [12] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [13] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [14] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [15] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [16] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [17] : 0000000000000000000000000000000000000000000000000000000000000003


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.