ETH Price: $2,630.73 (+0.07%)
Gas: 1 Gwei

Contract

0x6BABEAAC46E4e60639C8bA6134F26fDF25506200
 

Overview

ETH Balance

20 wei

Eth Value

Less Than $0.01 (@ $2,630.73/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Release All116105562021-01-07 23:45:521310 days ago1610063152IN
0x6BABEAAC...F25506200
0 ETH0.25107928103
Release All114735712020-12-17 23:08:301331 days ago1608246510IN
0x6BABEAAC...F25506200
0 ETH0.1755117372
Release All113433982020-11-27 23:13:271351 days ago1606518807IN
0x6BABEAAC...F25506200
0 ETH0.0368087115.1
Release113371062020-11-26 23:43:031352 days ago1606434183IN
0x6BABEAAC...F25506200
0 ETH0.0008571718
Release113108322020-11-22 22:50:221356 days ago1606085422IN
0x6BABEAAC...F25506200
0 ETH0.0028572660
Release113033012020-11-21 19:12:191357 days ago1605985939IN
0x6BABEAAC...F25506200
0 ETH0.0041906488
Release112961312020-11-20 16:43:231358 days ago1605890603IN
0x6BABEAAC...F25506200
0 ETH0.0050002105
Release112930372020-11-20 5:21:051359 days ago1605849665IN
0x6BABEAAC...F25506200
0 ETH0.001142924
Release112748002020-11-17 10:11:131362 days ago1605607873IN
0x6BABEAAC...F25506200
0 ETH0.002952562
Release112483152020-11-13 8:36:191366 days ago1605256579IN
0x6BABEAAC...F25506200
0 ETH0.0015238732
Release112461152020-11-13 0:38:061366 days ago1605227886IN
0x6BABEAAC...F25506200
0 ETH0.0009524220
Release112235192020-11-09 13:19:281369 days ago1604927968IN
0x6BABEAAC...F25506200
0 ETH0.0029048861
Release112217082020-11-09 6:37:351370 days ago1604903855IN
0x6BABEAAC...F25506200
0 ETH0.0010476622.00000023
Release112205572020-11-09 2:23:051370 days ago1604888585IN
0x6BABEAAC...F25506200
0 ETH0.0016633134.92819303
Release112144922020-11-08 3:57:491371 days ago1604807869IN
0x6BABEAAC...F25506200
0 ETH0.0007619316.00000145
Release112132492020-11-07 23:26:191371 days ago1604791579IN
0x6BABEAAC...F25506200
0 ETH0.0009258919.44291973
Release112110232020-11-07 15:08:361371 days ago1604761716IN
0x6BABEAAC...F25506200
0 ETH0.0037620579
Release112102682020-11-07 12:18:101372 days ago1604751490IN
0x6BABEAAC...F25506200
0 ETH0.0021429445
Release112102652020-11-07 12:16:391372 days ago1604751399IN
0x6BABEAAC...F25506200
0 ETH0.0021429445
Release112094352020-11-07 9:10:321372 days ago1604740232IN
0x6BABEAAC...F25506200
0 ETH0.0009476519.9
Release112084992020-11-07 5:49:521372 days ago1604728192IN
0x6BABEAAC...F25506200
0 ETH0.0012889327.06654275
Release112084962020-11-07 5:49:331372 days ago1604728173IN
0x6BABEAAC...F25506200
0 ETH0.0012886127.06654275
Release112082982020-11-07 5:06:131372 days ago1604725573IN
0x6BABEAAC...F25506200
0 ETH0.0014762531
Release112082572020-11-07 4:55:321372 days ago1604724932IN
0x6BABEAAC...F25506200
0 ETH0.0013333828.00000134
Release112077932020-11-07 3:13:471372 days ago1604718827IN
0x6BABEAAC...F25506200
0 ETH0.0020953244
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
116105562021-01-07 23:45:521310 days ago1610063152
0x6BABEAAC...F25506200
21.48452429 ETH
116105562021-01-07 23:45:521310 days ago1610063152
0x6BABEAAC...F25506200
16.86733704 ETH
116105562021-01-07 23:45:521310 days ago1610063152
0x6BABEAAC...F25506200
10.28907559 ETH
116105562021-01-07 23:45:521310 days ago1610063152
0x6BABEAAC...F25506200
6.57826144 ETH
116105562021-01-07 23:45:521310 days ago1610063152
0x6BABEAAC...F25506200
3.54214077 ETH
116105562021-01-07 23:45:521310 days ago1610063152
0x6BABEAAC...F25506200
2.53010055 ETH
116105562021-01-07 23:45:521310 days ago1610063152
0x6BABEAAC...F25506200
2.44343786 ETH
116105562021-01-07 23:45:521310 days ago1610063152
0x6BABEAAC...F25506200
1.6867337 ETH
116105562021-01-07 23:45:521310 days ago1610063152
0x6BABEAAC...F25506200
1.6867337 ETH
116105562021-01-07 23:45:521310 days ago1610063152
0x6BABEAAC...F25506200
1.6867337 ETH
116105562021-01-07 23:45:521310 days ago1610063152
0x6BABEAAC...F25506200
1.6867337 ETH
116105562021-01-07 23:45:521310 days ago1610063152
0x6BABEAAC...F25506200
1.6867337 ETH
116105562021-01-07 23:45:521310 days ago1610063152
0x6BABEAAC...F25506200
1.34938696 ETH
116105562021-01-07 23:45:521310 days ago1610063152
0x6BABEAAC...F25506200
1.34938696 ETH
116105562021-01-07 23:45:521310 days ago1610063152
0x6BABEAAC...F25506200
1.34938696 ETH
116105562021-01-07 23:45:521310 days ago1610063152
0x6BABEAAC...F25506200
1.26505027 ETH
116105562021-01-07 23:45:521310 days ago1610063152
0x6BABEAAC...F25506200
1.18071359 ETH
116105562021-01-07 23:45:521310 days ago1610063152
0x6BABEAAC...F25506200
1.18071359 ETH
116105562021-01-07 23:45:521310 days ago1610063152
0x6BABEAAC...F25506200
1.06264223 ETH
116105562021-01-07 23:45:521310 days ago1610063152
0x6BABEAAC...F25506200
1.01204022 ETH
116105562021-01-07 23:45:521310 days ago1610063152
0x6BABEAAC...F25506200
1.01204022 ETH
116105562021-01-07 23:45:521310 days ago1610063152
0x6BABEAAC...F25506200
0.90850513 ETH
116105562021-01-07 23:45:521310 days ago1610063152
0x6BABEAAC...F25506200
0.84336685 ETH
116105562021-01-07 23:45:521310 days ago1610063152
0x6BABEAAC...F25506200
0.84336685 ETH
116105562021-01-07 23:45:521310 days ago1610063152
0x6BABEAAC...F25506200
0.84336685 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PaymentSplitter

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2020-11-04
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.6.12;

/*
 * @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 GSN 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 payable) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @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) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @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 sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @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) {
        // 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 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts 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) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts 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) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts 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 mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message 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, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

/**
 * @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 {
    using SafeMath for uint256;

    event PayeeAdded(address account, uint256 shares);
    event PaymentReleased(address to, uint256 amount);
    event PaymentReceived(address from, uint256 amount, uint256 blockNumber);

    uint256 private _totalShares;
    uint256 private _totalReleased;
    uint256 private _totalReceived; // how much eth has been received in total?

    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 () public {

      // calculate total shares so we know what the fuck is going on before deployment
        _addPayee(0xe4DF1e8DD0E7c02553815C5b715bA7540679FFEf, 16000);
        _addPayee(0x7943d603924b37ee2BA8848Af7dC4985729244E8, 17000);
        _addPayee(0x86b2881fA900DF585b256D3004bf197380eb4D04, 20000);
        _addPayee(0xd3092810BfC5CC9393068840450c1dBCd42038ae, 20000);
        _addPayee(0xBe1706e1bA52bc5394f336810a4f72384B529ceE, 28000);
        _addPayee(0x315CEA9d9c15B126a96dbaEA663B5Eb538FDd090, 28000);
        _addPayee(0xCf6eb35Cb37C958E264C14F1c5D2F82FCbe87EF3, 30000);
        _addPayee(0xB950B88Cad8e64977DB05f7dC5C094A14a454e73, 30000);
        _addPayee(0x37393F3f845457B3a8F7799eF8dE0a911eA12AbC, 33300);
        _addPayee(0x01f2f39f782228772e40446ef85f42cF775daa9b, 34211);
        _addPayee(0x401977ea9118860B089E69137f031DD480039FC0, 50000);
        _addPayee(0xa215F1B06e7945d331F2Df30961027123947a40D, 50000);
        _addPayee(0xCb2E0C9EB7735eF639d68f39671D20Bf82128570, 50000);
        _addPayee(0x07C9fC2907DF7C99E9fdD4326ed6A81BDC7C62b5, 50000);
        _addPayee(0x6aF1Da708459bd988164B9fA28FAf944f2F9BaFF, 50000);
        _addPayee(0x7C83c1A06514b02273De7351c3A7c85e51E3a759, 53491);
        _addPayee(0x37223d721901EC493906ddF800B71dbCB347fa68, 60000);
        _addPayee(0xB9883577fa54bB72764a2a85d5e46157E5694018, 70000);
        _addPayee(0xCBBE17De5e61e746DCd43E8D4A072505d0747FeA, 82214);
        _addPayee(0x6Fb94846cF442f0b5C4d8B8876E4DbeC80017778, 90000);
        _addPayee(0x515280Dd3A3d04f97A7a257E22826fa48A2d5309, 100000);
        _addPayee(0x034961ef5fD3f25dbb91440AD3CE0a119e875847, 100000);
        _addPayee(0x071FCdd8F8Dbab01B864E2ABD3D53C55EDB86FB8, 100000);
        _addPayee(0x887b86B6B6957F7bbeA88B8CEfD392f39236A88C, 100000);
        _addPayee(0xbDd7d0D0ff36A9F333846D4a149C86b51E3407Ae, 100000);
        _addPayee(0x3Da35E952dA0Cd2753d46FAE58069103D979FaFd, 100000);
        _addPayee(0x70f1033420e6a50dCB9894Cb76afa5443d749d4C, 100000);
        _addPayee(0x1D096f771713570F529A2db5aac1F296a3613a7e, 100000);
        _addPayee(0x7fDF77E88CbE0815fe6c8F32Cc2C24D81678BD07, 100000);
        _addPayee(0x8c1c4fD37bBcE8e321B3f134A0eEdAF1fB30ce65, 100000);
        _addPayee(0xC0B9d32df371B4DA6b4DAa17BcfD2062f85906e3, 100000);
        _addPayee(0xF6c9aB45bf3F770371B25E24503564bab8D41E63, 100000);
        _addPayee(0xc2956790F439E90F018Dac98B0058a1187dcDFdD, 100000);
        _addPayee(0xaAeE3Da7425Be3F13dfE50F4Fb55218431cb9A02, 100000);
        _addPayee(0xbAF70FeD41a8CD27B9308204632bce9FDff9dF4f, 100000);
        _addPayee(0x834385611a5eD6fD80688db085Cb658ACC43f8a6, 100000);
        _addPayee(0xFDb8dfdE77cFc6a39C91371D7c74aB47f464Cb90, 100000);
        _addPayee(0x19D8372e086ee6b6d1e80598b2c5B2628526c44D, 100000);
        _addPayee(0x89600821B82f907B1ab472660dD150d1232318e8, 100000);
        _addPayee(0x1445d5070d5298D441b891c2111F726766B5Db34, 100000);
        _addPayee(0xfa050fB4E02565f810cEb2778Eb90E593D02149C, 150000);
        _addPayee(0xC668693cE5312a7A64D701F7c539498dcFce48F3, 150000);
        _addPayee(0xc9aB5825CEACC38a014EcC349bd3FB8572de81D4, 150000);
        _addPayee(0x29F0567C20Eeb25fc6F234DEFe0C6234BFD28E72, 190000);
        _addPayee(0x5FD520dcB33532EDC0E46390cEb38B2034BAa163, 193000);
        _addPayee(0xB1E436ff825F116d390356f606F059DDADEc96A6, 200000);
        _addPayee(0xCE8224B761fCD0a839b2E9a091C498a6537fF35d, 200000);
        _addPayee(0x2815C91A4AbD5Ac22214F693b0402b1b6a56c098, 200000);
        _addPayee(0x26E7709c399F866Fc4f1CC8A86120511566616A6, 200000);
        _addPayee(0xEC0620979Ed8Fe8202904E02e8E69A1975c8a9BD, 200000);
        _addPayee(0x941251ce526494F8dbb95C42a5320995657CD1a6, 200000);
        _addPayee(0xaaBE798f769798e0aa72d6fF985688e6f001a313, 200000);
        _addPayee(0x3cE77e5B6207d95d20A5B9214c072B5E241E6024, 200000);
        _addPayee(0x12CEdf1cA3083Dd4Aa6384E7c16D12F1BE82fc87, 200000);
        _addPayee(0x6e19d084c4fcB4D226E3D66727e86A96e741dcE1, 200000);
        _addPayee(0xdc47a453457D24737F1bBE68405eE8187ca5d925, 201000);
        _addPayee(0x97b004364e6135cFAE05D33A5Cd21002dd4a49B1, 246300);
        _addPayee(0x185A430Af096CabcCA0710DE33713Dda7Be2aD18, 252814);
        _addPayee(0x4B97B08F1f9CbaA5FaDd18Ec9cbC9135ACecd6E3, 275000);
        _addPayee(0xf2C95079E35a27c296B01759431e05c38E392A21, 300000);
        _addPayee(0x279d1194C9766fE2101de5a832C865936912302B, 300000);
        _addPayee(0x7109e009F6D6741Bd94830bCc6b756369863a701, 300000);
        _addPayee(0xCf0E9b4746cfB97bAE329FE5F696969F6564566a, 300000);
        _addPayee(0x9CBBDA094cc0FA9217b783aCE7F0C103a8265cC4, 300000);
        _addPayee(0x1162A2E340C3b6b845E2993eE6807aC67Ff4230C, 300000);
        _addPayee(0x6eBD7c0d6D7B6bEa3F2Fd7767DC0e9992dc37Fe6, 390000);
        _addPayee(0x9175417aaD501959FE397C3e880Df6a9521185E5, 400000);
        _addPayee(0x5625Dc390A5bA395eDe44E3c8550302Df758541a, 400000);
        _addPayee(0xc960c705300004FDF99a6c0060B5C9601EcC3E8e, 400000);
        _addPayee(0x903153f55770B7668A497180F7Fa93471545Ffe2, 400000);
        _addPayee(0x97aA4C1450FD768C269Ec55dF87E429922625947, 400000);
        _addPayee(0x9C7B84BE5D69BB41a718A4aF921E44730a277F90, 400000);
        _addPayee(0x362E5681c042f6ad8D0Ea1DCA0F4E1f12332865d, 500000);
        _addPayee(0x5c56f1D66FDD70241d38e814C6d2CEA4B2A67bC4, 500000);
        _addPayee(0xe40a35702D7Ba6d1047067399e586f1C9A6Ea417, 500000);
        _addPayee(0x4fa8E964B1F255E2833bA75B5588955F26D7e63F, 500000);
        _addPayee(0xac313Bbb81cb815b760b509D2A4f6b488B475671, 500000);
        _addPayee(0xf67134B2De0cd053a9302AE4ded11E1A46e7bea6, 538618);
        _addPayee(0xe3Ee6Bca8717D0bE1418f218DF3255bD9365Cc00, 600000);
        _addPayee(0x8f259FDd7C9Efc9A17320aC2c5d4FE2F692451e6, 600000);
        _addPayee(0xd342240C555a864CB4366031dDC6C285e3298443, 630000);
        _addPayee(0xf9ac1A4A0E2A8F9C6685495f90306D52cB4D0ce9, 700000);
        _addPayee(0x5984bb82F11171cb1DC2287E2A6935c44D491538, 700000);
        _addPayee(0x514afF0aFCa081040D26B671b82C11bDa5F647F1, 750000);
        _addPayee(0x2809ecCC4a25E3E484A270880C0E18Eff0f49dba, 800000);
        _addPayee(0xd328EF6AF4a08FCcF9D47B5a0A677c6ffEa7CD52, 800000);
        _addPayee(0xdcAE0361b0a3B511d8e41165575bBEbC38b92DA5, 800000);
        _addPayee(0x9D221b2100CbE5F05a0d2048E2556a6Df6f9a6C3, 1000000);
        _addPayee(0x7Fd18838D44A639981b90d8Fd0b172fa9848993c, 1000000);
        _addPayee(0xeDd87744B9Cb0E42eFF45101dB40feA479d30E04, 1000000);
        _addPayee(0xf2e9c0071998864b59b192d9aC037c24C6a31B57, 1000000);
        _addPayee(0xA69ddEdDba348046d912250058e9d2C795075190, 1000000);
        _addPayee(0xdd34baac32e3410B1e5c373fA8193dD506da280B, 1448621);
        _addPayee(0xf68EAeBf7795D71c2144d8466E03B85fE3C88069, 1500000);
        _addPayee(0x03B513b7a591b7DeA9FE61E8Ef14246D53C1426B, 2100000);
        _addPayee(0x3b1356CA97A31b3a2DAd0e901b9F73380e00B66D, 3900000);
        _addPayee(0xE014ba63a084feFA1720B38D20F225B259d35FFc, 6100000);
        _addPayee(0xceee7adC8F403661Fc2d72471a6E20631a5B36Bf, 10000000);
        _addPayee(0x723CE1691EB38384Fe4111A8694Bf85c6218a09a, 12737354);

    }

    /**
     * @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 {
        _totalReceived = _totalReceived.add(msg.value);
        emit PaymentReceived(_msgSender(), msg.value, block.number);
    }

    /**
     * @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.add(_totalReleased);
        uint256 payment = totalReceived.mul(_shares[account]).div(_totalShares).sub(_released[account]);

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

        _released[account] = _released[account].add(payment);
        _totalReleased = _totalReleased.add(payment);

        account.transfer(payment);
        emit PaymentReleased(account, payment);
    }

    function releaseAll() external virtual {
        for (uint256 i = 0; i < _payees.length; i++) {
            release(address(uint160(_payees[i])));
        }
    }

    /**
     * @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.add(shares_);
        emit PayeeAdded(account, shares_);
    }

    function viewTotalReceived()
    external view returns (uint256) {
        return _totalReceived;
    }

    function viewPendingPayout(address account)
    external view returns (uint256) {
        require(_shares[account] > 0, "PaymentSplitter: account has no shares");

        uint256 totalReceived = address(this).balance.add(_totalReleased);
        uint256 payment = totalReceived.mul(_shares[account]).div(_totalShares).sub(_released[account]);

        return payment;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","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"},{"indexed":false,"internalType":"uint256","name":"blockNumber","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":[],"name":"releaseAll","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"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"viewPendingPayout","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewTotalReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b506200003a73e4df1e8dd0e7c02553815c5b715ba7540679ffef613e8062000fe260201b60201c565b62000062737943d603924b37ee2ba8848af7dc4985729244e861426862000fe260201b60201c565b6200008a7386b2881fa900df585b256d3004bf197380eb4d04614e2062000fe260201b60201c565b620000b273d3092810bfc5cc9393068840450c1dbcd42038ae614e2062000fe260201b60201c565b620000da73be1706e1ba52bc5394f336810a4f72384b529cee616d6062000fe260201b60201c565b6200010273315cea9d9c15b126a96dbaea663b5eb538fdd090616d6062000fe260201b60201c565b6200012a73cf6eb35cb37c958e264c14f1c5d2f82fcbe87ef361753062000fe260201b60201c565b6200015273b950b88cad8e64977db05f7dc5c094a14a454e7361753062000fe260201b60201c565b6200017a7337393f3f845457b3a8f7799ef8de0a911ea12abc61821462000fe260201b60201c565b620001a27301f2f39f782228772e40446ef85f42cf775daa9b6185a362000fe260201b60201c565b620001ca73401977ea9118860b089e69137f031dd480039fc061c35062000fe260201b60201c565b620001f273a215f1b06e7945d331f2df30961027123947a40d61c35062000fe260201b60201c565b6200021a73cb2e0c9eb7735ef639d68f39671d20bf8212857061c35062000fe260201b60201c565b620002427307c9fc2907df7c99e9fdd4326ed6a81bdc7c62b561c35062000fe260201b60201c565b6200026a736af1da708459bd988164b9fa28faf944f2f9baff61c35062000fe260201b60201c565b62000292737c83c1a06514b02273de7351c3a7c85e51e3a75961d0f362000fe260201b60201c565b620002ba7337223d721901ec493906ddf800b71dbcb347fa6861ea6062000fe260201b60201c565b620002e373b9883577fa54bb72764a2a85d5e46157e56940186201117062000fe260201b60201c565b6200030c73cbbe17de5e61e746dcd43e8d4a072505d0747fea6201412662000fe260201b60201c565b62000335736fb94846cf442f0b5c4d8b8876e4dbec8001777862015f9062000fe260201b60201c565b6200035e73515280dd3a3d04f97a7a257e22826fa48a2d5309620186a062000fe260201b60201c565b6200038773034961ef5fd3f25dbb91440ad3ce0a119e875847620186a062000fe260201b60201c565b620003b073071fcdd8f8dbab01b864e2abd3d53c55edb86fb8620186a062000fe260201b60201c565b620003d973887b86b6b6957f7bbea88b8cefd392f39236a88c620186a062000fe260201b60201c565b6200040273bdd7d0d0ff36a9f333846d4a149c86b51e3407ae620186a062000fe260201b60201c565b6200042b733da35e952da0cd2753d46fae58069103d979fafd620186a062000fe260201b60201c565b620004547370f1033420e6a50dcb9894cb76afa5443d749d4c620186a062000fe260201b60201c565b6200047d731d096f771713570f529a2db5aac1f296a3613a7e620186a062000fe260201b60201c565b620004a6737fdf77e88cbe0815fe6c8f32cc2c24d81678bd07620186a062000fe260201b60201c565b620004cf738c1c4fd37bbce8e321b3f134a0eedaf1fb30ce65620186a062000fe260201b60201c565b620004f873c0b9d32df371b4da6b4daa17bcfd2062f85906e3620186a062000fe260201b60201c565b6200052173f6c9ab45bf3f770371b25e24503564bab8d41e63620186a062000fe260201b60201c565b6200054a73c2956790f439e90f018dac98b0058a1187dcdfdd620186a062000fe260201b60201c565b6200057373aaee3da7425be3f13dfe50f4fb55218431cb9a02620186a062000fe260201b60201c565b6200059c73baf70fed41a8cd27b9308204632bce9fdff9df4f620186a062000fe260201b60201c565b620005c573834385611a5ed6fd80688db085cb658acc43f8a6620186a062000fe260201b60201c565b620005ee73fdb8dfde77cfc6a39c91371d7c74ab47f464cb90620186a062000fe260201b60201c565b620006177319d8372e086ee6b6d1e80598b2c5b2628526c44d620186a062000fe260201b60201c565b620006407389600821b82f907b1ab472660dd150d1232318e8620186a062000fe260201b60201c565b62000669731445d5070d5298d441b891c2111f726766b5db34620186a062000fe260201b60201c565b6200069273fa050fb4e02565f810ceb2778eb90e593d02149c620249f062000fe260201b60201c565b620006bb73c668693ce5312a7a64d701f7c539498dcfce48f3620249f062000fe260201b60201c565b620006e473c9ab5825ceacc38a014ecc349bd3fb8572de81d4620249f062000fe260201b60201c565b6200070d7329f0567c20eeb25fc6f234defe0c6234bfd28e726202e63062000fe260201b60201c565b62000736735fd520dcb33532edc0e46390ceb38b2034baa1636202f1e862000fe260201b60201c565b6200075f73b1e436ff825f116d390356f606f059ddadec96a662030d4062000fe260201b60201c565b6200078873ce8224b761fcd0a839b2e9a091c498a6537ff35d62030d4062000fe260201b60201c565b620007b1732815c91a4abd5ac22214f693b0402b1b6a56c09862030d4062000fe260201b60201c565b620007da7326e7709c399f866fc4f1cc8a86120511566616a662030d4062000fe260201b60201c565b6200080373ec0620979ed8fe8202904e02e8e69a1975c8a9bd62030d4062000fe260201b60201c565b6200082c73941251ce526494f8dbb95c42a5320995657cd1a662030d4062000fe260201b60201c565b6200085573aabe798f769798e0aa72d6ff985688e6f001a31362030d4062000fe260201b60201c565b6200087e733ce77e5b6207d95d20a5b9214c072b5e241e602462030d4062000fe260201b60201c565b620008a77312cedf1ca3083dd4aa6384e7c16d12f1be82fc8762030d4062000fe260201b60201c565b620008d0736e19d084c4fcb4d226e3d66727e86a96e741dce162030d4062000fe260201b60201c565b620008f973dc47a453457d24737f1bbe68405ee8187ca5d9256203112862000fe260201b60201c565b620009227397b004364e6135cfae05d33a5cd21002dd4a49b16203c21c62000fe260201b60201c565b6200094b73185a430af096cabcca0710de33713dda7be2ad186203db8e62000fe260201b60201c565b62000974734b97b08f1f9cbaa5fadd18ec9cbc9135acecd6e36204323862000fe260201b60201c565b6200099d73f2c95079e35a27c296b01759431e05c38e392a21620493e062000fe260201b60201c565b620009c673279d1194c9766fe2101de5a832c865936912302b620493e062000fe260201b60201c565b620009ef737109e009f6d6741bd94830bcc6b756369863a701620493e062000fe260201b60201c565b62000a1873cf0e9b4746cfb97bae329fe5f696969f6564566a620493e062000fe260201b60201c565b62000a41739cbbda094cc0fa9217b783ace7f0c103a8265cc4620493e062000fe260201b60201c565b62000a6a731162a2e340c3b6b845e2993ee6807ac67ff4230c620493e062000fe260201b60201c565b62000a93736ebd7c0d6d7b6bea3f2fd7767dc0e9992dc37fe66205f37062000fe260201b60201c565b62000abc739175417aad501959fe397c3e880df6a9521185e562061a8062000fe260201b60201c565b62000ae5735625dc390a5ba395ede44e3c8550302df758541a62061a8062000fe260201b60201c565b62000b0e73c960c705300004fdf99a6c0060b5c9601ecc3e8e62061a8062000fe260201b60201c565b62000b3773903153f55770b7668a497180f7fa93471545ffe262061a8062000fe260201b60201c565b62000b607397aa4c1450fd768c269ec55df87e42992262594762061a8062000fe260201b60201c565b62000b89739c7b84be5d69bb41a718a4af921e44730a277f9062061a8062000fe260201b60201c565b62000bb273362e5681c042f6ad8d0ea1dca0f4e1f12332865d6207a12062000fe260201b60201c565b62000bdb735c56f1d66fdd70241d38e814c6d2cea4b2a67bc46207a12062000fe260201b60201c565b62000c0473e40a35702d7ba6d1047067399e586f1c9a6ea4176207a12062000fe260201b60201c565b62000c2d734fa8e964b1f255e2833ba75b5588955f26d7e63f6207a12062000fe260201b60201c565b62000c5673ac313bbb81cb815b760b509d2a4f6b488b4756716207a12062000fe260201b60201c565b62000c7f73f67134b2de0cd053a9302ae4ded11e1a46e7bea6620837fa62000fe260201b60201c565b62000ca873e3ee6bca8717d0be1418f218df3255bd9365cc00620927c062000fe260201b60201c565b62000cd1738f259fdd7c9efc9a17320ac2c5d4fe2f692451e6620927c062000fe260201b60201c565b62000cfa73d342240c555a864cb4366031ddc6c285e329844362099cf062000fe260201b60201c565b62000d2373f9ac1a4a0e2a8f9c6685495f90306d52cb4d0ce9620aae6062000fe260201b60201c565b62000d4c735984bb82f11171cb1dc2287e2a6935c44d491538620aae6062000fe260201b60201c565b62000d7573514aff0afca081040d26b671b82c11bda5f647f1620b71b062000fe260201b60201c565b62000d9e732809eccc4a25e3e484a270880c0e18eff0f49dba620c350062000fe260201b60201c565b62000dc773d328ef6af4a08fccf9d47b5a0a677c6ffea7cd52620c350062000fe260201b60201c565b62000df073dcae0361b0a3b511d8e41165575bbebc38b92da5620c350062000fe260201b60201c565b62000e19739d221b2100cbe5f05a0d2048e2556a6df6f9a6c3620f424062000fe260201b60201c565b62000e42737fd18838d44a639981b90d8fd0b172fa9848993c620f424062000fe260201b60201c565b62000e6b73edd87744b9cb0e42eff45101db40fea479d30e04620f424062000fe260201b60201c565b62000e9473f2e9c0071998864b59b192d9ac037c24c6a31b57620f424062000fe260201b60201c565b62000ebd73a69ddeddba348046d912250058e9d2c795075190620f424062000fe260201b60201c565b62000ee673dd34baac32e3410b1e5c373fa8193dd506da280b62161aad62000fe260201b60201c565b62000f0f73f68eaebf7795d71c2144d8466e03b85fe3c880696216e36062000fe260201b60201c565b62000f387303b513b7a591b7dea9fe61e8ef14246d53c1426b62200b2062000fe260201b60201c565b62000f61733b1356ca97a31b3a2dad0e901b9f73380e00b66d623b826062000fe260201b60201c565b62000f8a73e014ba63a084fefa1720b38d20f225b259d35ffc625d142062000fe260201b60201c565b62000fb373ceee7adc8f403661fc2d72471a6e20631a5b36bf6298968062000fe260201b60201c565b62000fdc73723ce1691eb38384fe4111a8694bf85c6218a09a62c25b4a62000fe260201b60201c565b62001326565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200106a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806200207e602c913960400191505060405180910390fd5b60008111620010e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f5061796d656e7453706c69747465723a2073686172657320617265203000000081525060200191505060405180910390fd5b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146200117b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180620020aa602b913960400191505060405180910390fd5b6005829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200123e816000546200129d60201b620003921790919060201c565b6000819055507f40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac8282604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b6000808284019050838110156200131c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b610d4880620013366000396000f3fe60806040526004361061008a5760003560e01c80639852595c116100595780639852595c1461020d578063ce7c2ac214610272578063cef22e6a146102d7578063e33b7de31461033c578063ed4f529e1461036757610110565b806319165587146101155780633a98ef39146101665780635be7fde8146101915780638b83209b146101a857610110565b36610110576100a43460025461039290919063ffffffff16565b6002819055507f5677b5d4cf976ac32defbd95a6a5aaf0d1fee450a11fc26f3c11aae6e6c33d066100d361041a565b3443604051808473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a1005b600080fd5b34801561012157600080fd5b506101646004803603602081101561013857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610422565b005b34801561017257600080fd5b5061017b610739565b6040518082815260200191505060405180910390f35b34801561019d57600080fd5b506101a6610742565b005b3480156101b457600080fd5b506101e1600480360360208110156101cb57600080fd5b81019080803590602001909291905050506107a2565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021957600080fd5b5061025c6004803603602081101561023057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107e3565b6040518082815260200191505060405180910390f35b34801561027e57600080fd5b506102c16004803603602081101561029557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061082c565b6040518082815260200191505060405180910390f35b3480156102e357600080fd5b50610326600480360360208110156102fa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610875565b6040518082815260200191505060405180910390f35b34801561034857600080fd5b506103516109ec565b6040518082815260200191505060405180910390f35b34801561037357600080fd5b5061037c6109f6565b6040518082815260200191505060405180910390f35b600080828401905083811015610410576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054116104ba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180610ca16026913960400191505060405180910390fd5b60006104d16001544761039290919063ffffffff16565b9050600061058c600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461057e600054610570600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487610a0090919063ffffffff16565b610a8690919063ffffffff16565b610ad090919063ffffffff16565b905060008114156105e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180610cc7602b913960400191505060405180910390fd5b61063a81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461039290919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506106928160015461039290919063ffffffff16565b6001819055508273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156106de573d6000803e3d6000fd5b507fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b0568382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505050565b60008054905090565b60005b60058054905081101561079f576107926005828154811061076257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610422565b8080600101915050610745565b50565b6000600582815481106107b157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161090e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180610ca16026913960400191505060405180910390fd5b60006109256001544761039290919063ffffffff16565b905060006109e0600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109d26000546109c4600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487610a0090919063ffffffff16565b610a8690919063ffffffff16565b610ad090919063ffffffff16565b90508092505050919050565b6000600154905090565b6000600254905090565b600080831415610a135760009050610a80565b6000828402905082848281610a2457fe5b0414610a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180610cf26021913960400191505060405180910390fd5b809150505b92915050565b6000610ac883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610b1a565b905092915050565b6000610b1283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610be0565b905092915050565b60008083118290610bc6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b8b578082015181840152602081019050610b70565b50505050905090810190601f168015610bb85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581610bd257fe5b049050809150509392505050565b6000838311158290610c8d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c52578082015181840152602081019050610c37565b50505050905090810190601f168015610c7f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838503905080915050939250505056fe5061796d656e7453706c69747465723a206163636f756e7420686173206e6f207368617265735061796d656e7453706c69747465723a206163636f756e74206973206e6f7420647565207061796d656e74536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220f036be21866d2e67f6da56508c257d2977a16cd89532c75bcdb765ea988a476264736f6c634300060c00335061796d656e7453706c69747465723a206163636f756e7420697320746865207a65726f20616464726573735061796d656e7453706c69747465723a206163636f756e7420616c72656164792068617320736861726573

Deployed Bytecode

0x60806040526004361061008a5760003560e01c80639852595c116100595780639852595c1461020d578063ce7c2ac214610272578063cef22e6a146102d7578063e33b7de31461033c578063ed4f529e1461036757610110565b806319165587146101155780633a98ef39146101665780635be7fde8146101915780638b83209b146101a857610110565b36610110576100a43460025461039290919063ffffffff16565b6002819055507f5677b5d4cf976ac32defbd95a6a5aaf0d1fee450a11fc26f3c11aae6e6c33d066100d361041a565b3443604051808473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a1005b600080fd5b34801561012157600080fd5b506101646004803603602081101561013857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610422565b005b34801561017257600080fd5b5061017b610739565b6040518082815260200191505060405180910390f35b34801561019d57600080fd5b506101a6610742565b005b3480156101b457600080fd5b506101e1600480360360208110156101cb57600080fd5b81019080803590602001909291905050506107a2565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021957600080fd5b5061025c6004803603602081101561023057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107e3565b6040518082815260200191505060405180910390f35b34801561027e57600080fd5b506102c16004803603602081101561029557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061082c565b6040518082815260200191505060405180910390f35b3480156102e357600080fd5b50610326600480360360208110156102fa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610875565b6040518082815260200191505060405180910390f35b34801561034857600080fd5b506103516109ec565b6040518082815260200191505060405180910390f35b34801561037357600080fd5b5061037c6109f6565b6040518082815260200191505060405180910390f35b600080828401905083811015610410576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054116104ba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180610ca16026913960400191505060405180910390fd5b60006104d16001544761039290919063ffffffff16565b9050600061058c600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461057e600054610570600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487610a0090919063ffffffff16565b610a8690919063ffffffff16565b610ad090919063ffffffff16565b905060008114156105e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180610cc7602b913960400191505060405180910390fd5b61063a81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461039290919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506106928160015461039290919063ffffffff16565b6001819055508273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156106de573d6000803e3d6000fd5b507fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b0568382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505050565b60008054905090565b60005b60058054905081101561079f576107926005828154811061076257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610422565b8080600101915050610745565b50565b6000600582815481106107b157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541161090e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180610ca16026913960400191505060405180910390fd5b60006109256001544761039290919063ffffffff16565b905060006109e0600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109d26000546109c4600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487610a0090919063ffffffff16565b610a8690919063ffffffff16565b610ad090919063ffffffff16565b90508092505050919050565b6000600154905090565b6000600254905090565b600080831415610a135760009050610a80565b6000828402905082848281610a2457fe5b0414610a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180610cf26021913960400191505060405180910390fd5b809150505b92915050565b6000610ac883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610b1a565b905092915050565b6000610b1283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610be0565b905092915050565b60008083118290610bc6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b8b578082015181840152602081019050610b70565b50505050905090810190601f168015610bb85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581610bd257fe5b049050809150509392505050565b6000838311158290610c8d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c52578082015181840152602081019050610c37565b50505050905090810190601f168015610c7f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838503905080915050939250505056fe5061796d656e7453706c69747465723a206163636f756e7420686173206e6f207368617265735061796d656e7453706c69747465723a206163636f756e74206973206e6f7420647565207061796d656e74536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220f036be21866d2e67f6da56508c257d2977a16cd89532c75bcdb765ea988a476264736f6c634300060c0033

Deployed Bytecode Sourcemap

7096:11979:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15842:29;15861:9;15842:14;;:18;;:29;;;;:::i;:::-;15825:14;:46;;;;15887:54;15903:12;:10;:12::i;:::-;15917:9;15928:12;15887:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7096:11979;;;;;17107:619;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16032:91;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17734:166;;;;;;;;;;;;;:::i;:::-;;16807:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16607:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16403:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18690:382;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16217:95;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18576:106;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1800:181;1858:7;1878:9;1894:1;1890;:5;1878:17;;1919:1;1914;:6;;1906:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1972:1;1965:8;;;1800:181;;;;:::o;606:106::-;659:15;694:10;687:17;;606:106;:::o;17107:619::-;17202:1;17183:7;:16;17191:7;17183:16;;;;;;;;;;;;;;;;:20;17175:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17259:21;17283:41;17309:14;;17283:21;:25;;:41;;;;:::i;:::-;17259:65;;17335:15;17353:77;17411:9;:18;17421:7;17411:18;;;;;;;;;;;;;;;;17353:53;17393:12;;17353:35;17371:7;:16;17379:7;17371:16;;;;;;;;;;;;;;;;17353:13;:17;;:35;;;;:::i;:::-;:39;;:53;;;;:::i;:::-;:57;;:77;;;;:::i;:::-;17335:95;;17462:1;17451:7;:12;;17443:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17545:31;17568:7;17545:9;:18;17555:7;17545:18;;;;;;;;;;;;;;;;:22;;:31;;;;:::i;:::-;17524:9;:18;17534:7;17524:18;;;;;;;;;;;;;;;:52;;;;17604:27;17623:7;17604:14;;:18;;:27;;;;:::i;:::-;17587:14;:44;;;;17644:7;:16;;:25;17661:7;17644:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17685:33;17701:7;17710;17685:33;;;;;;;;;;;;;;;;;;;;;;;;;;17107:619;;;:::o;16032:91::-;16076:7;16103:12;;16096:19;;16032:91;:::o;17734:166::-;17789:9;17784:109;17808:7;:14;;;;17804:1;:18;17784:109;;;17844:37;17868:7;17876:1;17868:10;;;;;;;;;;;;;;;;;;;;;;;;;17844:7;:37::i;:::-;17824:3;;;;;;;17784:109;;;;17734:166::o;16807:100::-;16858:7;16885;16893:5;16885:14;;;;;;;;;;;;;;;;;;;;;;;;;16878:21;;16807:100;;;:::o;16607:109::-;16663:7;16690:9;:18;16700:7;16690:18;;;;;;;;;;;;;;;;16683:25;;16607:109;;;:::o;16403:105::-;16457:7;16484;:16;16492:7;16484:16;;;;;;;;;;;;;;;;16477:23;;16403:105;;;:::o;18690:382::-;18762:7;18809:1;18790:7;:16;18798:7;18790:16;;;;;;;;;;;;;;;;:20;18782:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18866:21;18890:41;18916:14;;18890:21;:25;;:41;;;;:::i;:::-;18866:65;;18942:15;18960:77;19018:9;:18;19028:7;19018:18;;;;;;;;;;;;;;;;18960:53;19000:12;;18960:35;18978:7;:16;18986:7;18978:16;;;;;;;;;;;;;;;;18960:13;:17;;:35;;;;:::i;:::-;:39;;:53;;;;:::i;:::-;:57;;:77;;;;:::i;:::-;18942:95;;19057:7;19050:14;;;;18690:382;;;:::o;16217:95::-;16263:7;16290:14;;16283:21;;16217:95;:::o;18576:106::-;18633:7;18660:14;;18653:21;;18576:106;:::o;3154:471::-;3212:7;3462:1;3457;:6;3453:47;;;3487:1;3480:8;;;;3453:47;3512:9;3528:1;3524;:5;3512:17;;3557:1;3552;3548;:5;;;;;;:10;3540:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3616:1;3609:8;;;3154:471;;;;;:::o;4101:132::-;4159:7;4186:39;4190:1;4193;4186:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4179:46;;4101:132;;;;:::o;2264:136::-;2322:7;2349:43;2353:1;2356;2349:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2342:50;;2264:136;;;;:::o;4729:278::-;4815:7;4847:1;4843;:5;4850:12;4835:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4874:9;4890:1;4886;:5;;;;;;4874:17;;4998:1;4991:8;;;4729:278;;;;;:::o;2703:192::-;2789:7;2822:1;2817;:6;;2825:12;2809:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2849:9;2865:1;2861;:5;2849:17;;2886:1;2879:8;;;2703:192;;;;;:::o

Swarm Source

ipfs://f036be21866d2e67f6da56508c257d2977a16cd89532c75bcdb765ea988a4762

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.