ETH Price: $2,939.37 (-0.70%)

Contract

0x716F2de8A4dE036FFe2b806A2948060A6f1053f5

Overview

ETH Balance

Linea Mainnet LogoLinea Mainnet LogoLinea Mainnet Logo0 ETH

ETH Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Claim281708632026-01-22 8:05:462 days ago1769069146IN
Mendi Finance: LGE Bonus Distributor
0 ETH0.000002980.04229721
Claim248647632025-10-24 12:45:5592 days ago1761309955IN
Mendi Finance: LGE Bonus Distributor
0 ETH0.000002880.04083489
Claim235977942025-09-21 3:14:48126 days ago1758424488IN
Mendi Finance: LGE Bonus Distributor
0 ETH0.00000360.0427794
Claim234415892025-09-17 9:50:45129 days ago1758102645IN
Mendi Finance: LGE Bonus Distributor
0 ETH0.000003060.04339191
Claim225653332025-08-27 6:40:21150 days ago1756276821IN
Mendi Finance: LGE Bonus Distributor
0 ETH0.000002920.04145785
Claim211355242025-07-22 3:26:35187 days ago1753154795IN
Mendi Finance: LGE Bonus Distributor
0 ETH0.000003780.05365099
Claim210094852025-07-18 18:48:40190 days ago1752864520IN
Mendi Finance: LGE Bonus Distributor
0 ETH0.000003820.04545936
Claim192187962025-05-21 17:23:48248 days ago1747848228IN
Mendi Finance: LGE Bonus Distributor
0 ETH0.000008740.12399958
Claim189200002025-05-12 10:04:59257 days ago1747044299IN
Mendi Finance: LGE Bonus Distributor
0 ETH0.000003210.04551577
Claim187322232025-05-06 16:18:53263 days ago1746548333IN
Mendi Finance: LGE Bonus Distributor
0 ETH0.000003210.04551577
Claim186187942025-05-02 23:26:45267 days ago1746228405IN
Mendi Finance: LGE Bonus Distributor
0 ETH0.000006620.0939434
Claim169143462025-03-14 3:53:18317 days ago1741924398IN
Mendi Finance: LGE Bonus Distributor
0 ETH0.000050790.72
Claim166825752025-03-08 5:49:36322 days ago1741412976IN
Mendi Finance: LGE Bonus Distributor
0 ETH0.000003240.04594443
Claim166665442025-03-07 18:38:57323 days ago1741372737IN
Mendi Finance: LGE Bonus Distributor
0 ETH0.000003390.04813225
Claim163451802025-02-27 18:26:05331 days ago1740680765IN
Mendi Finance: LGE Bonus Distributor
0 ETH0.000093121.32
Claim162986842025-02-26 15:41:17332 days ago1740584477IN
Mendi Finance: LGE Bonus Distributor
0 ETH0.000005420.06435964
Claim162606642025-02-25 17:30:49333 days ago1740504649IN
Mendi Finance: LGE Bonus Distributor
0 ETH0.000006110.08671682
Claim160638582025-02-20 18:15:03338 days ago1740075303IN
Mendi Finance: LGE Bonus Distributor
0 ETH0.000003580.05085733
Claim160226192025-02-19 18:16:13339 days ago1739988973IN
Mendi Finance: LGE Bonus Distributor
0 ETH0.00000370.05250791
Claim158935302025-02-16 14:18:33342 days ago1739715513IN
Mendi Finance: LGE Bonus Distributor
0 ETH0.000003390.04813225
Claim157023282025-02-11 17:22:17347 days ago1739294537IN
Mendi Finance: LGE Bonus Distributor
0 ETH0.000005070.06026825
Claim155957152025-02-09 1:51:57350 days ago1739065917IN
Mendi Finance: LGE Bonus Distributor
0 ETH0.000003930.04674645
Claim154985402025-02-06 13:23:26352 days ago1738848206IN
Mendi Finance: LGE Bonus Distributor
0 ETH0.000003240.04594443
Claim153499462025-02-02 19:33:25356 days ago1738524805IN
Mendi Finance: LGE Bonus Distributor
0 ETH0.000006340.08990381
Claim151945332025-01-29 20:31:22360 days ago1738182682IN
Mendi Finance: LGE Bonus Distributor
0 ETH0.000015210.2157276
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
281708632026-01-22 8:05:462 days ago1769069146
Mendi Finance: LGE Bonus Distributor
0 ETH
281708632026-01-22 8:05:462 days ago1769069146
Mendi Finance: LGE Bonus Distributor
0 ETH
248647632025-10-24 12:45:5592 days ago1761309955
Mendi Finance: LGE Bonus Distributor
0 ETH
248647632025-10-24 12:45:5592 days ago1761309955
Mendi Finance: LGE Bonus Distributor
0 ETH
235977942025-09-21 3:14:48126 days ago1758424488
Mendi Finance: LGE Bonus Distributor
0 ETH
235977942025-09-21 3:14:48126 days ago1758424488
Mendi Finance: LGE Bonus Distributor
0 ETH
234415892025-09-17 9:50:45129 days ago1758102645
Mendi Finance: LGE Bonus Distributor
0 ETH
234415892025-09-17 9:50:45129 days ago1758102645
Mendi Finance: LGE Bonus Distributor
0 ETH
225653332025-08-27 6:40:21150 days ago1756276821
Mendi Finance: LGE Bonus Distributor
0 ETH
225653332025-08-27 6:40:21150 days ago1756276821
Mendi Finance: LGE Bonus Distributor
0 ETH
211355242025-07-22 3:26:35187 days ago1753154795
Mendi Finance: LGE Bonus Distributor
0 ETH
211355242025-07-22 3:26:35187 days ago1753154795
Mendi Finance: LGE Bonus Distributor
0 ETH
210094852025-07-18 18:48:40190 days ago1752864520
Mendi Finance: LGE Bonus Distributor
0 ETH
210094852025-07-18 18:48:40190 days ago1752864520
Mendi Finance: LGE Bonus Distributor
0 ETH
192187962025-05-21 17:23:48248 days ago1747848228
Mendi Finance: LGE Bonus Distributor
0 ETH
192187962025-05-21 17:23:48248 days ago1747848228
Mendi Finance: LGE Bonus Distributor
0 ETH
189200002025-05-12 10:04:59257 days ago1747044299
Mendi Finance: LGE Bonus Distributor
0 ETH
189200002025-05-12 10:04:59257 days ago1747044299
Mendi Finance: LGE Bonus Distributor
0 ETH
187322232025-05-06 16:18:53263 days ago1746548333
Mendi Finance: LGE Bonus Distributor
0 ETH
187322232025-05-06 16:18:53263 days ago1746548333
Mendi Finance: LGE Bonus Distributor
0 ETH
186187942025-05-02 23:26:45267 days ago1746228405
Mendi Finance: LGE Bonus Distributor
0 ETH
186187942025-05-02 23:26:45267 days ago1746228405
Mendi Finance: LGE Bonus Distributor
0 ETH
169143462025-03-14 3:53:18317 days ago1741924398
Mendi Finance: LGE Bonus Distributor
0 ETH
169143462025-03-14 3:53:18317 days ago1741924398
Mendi Finance: LGE Bonus Distributor
0 ETH
166825752025-03-08 5:49:36322 days ago1741412976
Mendi Finance: LGE Bonus Distributor
0 ETH
View All Internal Transactions
Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
OwnedDistributor

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license
//SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.10;

import "./Distributor.sol";

contract OwnedDistributor is Distributor {
    address public admin;

    event SetAdmin(address newAdmin);

    constructor(
        address mendi_,
        address claimable_,
        address admin_
    ) Distributor(mendi_, claimable_) {
        admin = admin_;
    }

    function editRecipient(address account, uint256 shares) public virtual {
        require(msg.sender == admin, "OwnedDistributor: UNAUTHORIZED");
        editRecipientInternal(account, shares);
    }

    function editRecipients(
        address[] memory accounts,
        uint256[] memory shares
    ) public virtual {
        require(msg.sender == admin, "OwnedDistributor: UNAUTHORIZED");
        require(
            accounts.length == shares.length,
            "OwnedDistributor: INVALID_INPUT"
        );

        for (uint256 i = 0; i < accounts.length; i++) {
            editRecipientInternal(accounts[i], shares[i]);
        }
    }

    function setAdmin(address admin_) public virtual {
        require(msg.sender == admin, "OwnedDistributor: UNAUTHORIZED");
        admin = admin_;
        emit SetAdmin(admin_);
    }
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (utils/math/SafeMath.sol)

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 generally not needed starting with Solidity 0.8, since 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 subtraction 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;
        }
    }
}

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

import "@openzeppelin/contracts/utils/math/SafeMath.sol";

import "./interfaces/IMendi.sol";
import "./interfaces/IClaimable.sol";

abstract contract Distributor is IClaimable {
    using SafeMath for uint256;

    uint256 public constant MANTISSA2 = 2 ** 160;

    address public immutable mendi;
    address public immutable claimable;

    struct Recipient {
        uint256 shares;
        uint256 lastShareIndex;
        uint256 credit;
    }
    mapping(address => Recipient) public recipients;

    uint256 public totalShares;
    uint256 public shareIndex;

    event UpdateShareIndex(uint256 shareIndex);
    event UpdateCredit(
        address indexed account,
        uint256 lastShareIndex,
        uint256 credit
    );
    event EditRecipient(
        address indexed account,
        uint256 shares,
        uint256 totalShares
    );

    constructor(address mendi_, address claimable_) {
        mendi = mendi_;
        claimable = claimable_;
    }

    function updateShareIndex()
        public
        virtual
        nonReentrant
        returns (uint256 _shareIndex)
    {
        if (totalShares == 0) return shareIndex;
        uint256 amount = IClaimable(claimable).claim();
        if (amount == 0) return shareIndex;

        _shareIndex = amount.mul(MANTISSA2).div(totalShares).add(shareIndex);
        shareIndex = _shareIndex;
        emit UpdateShareIndex(_shareIndex);
    }

    function updateCredit(address account) public returns (uint256 credit) {
        uint256 _shareIndex = updateShareIndex();
        if (_shareIndex == 0) return 0;
        Recipient storage recipient = recipients[account];
        credit =
            recipient.credit +
            _shareIndex.sub(recipient.lastShareIndex).mul(recipient.shares) /
            MANTISSA2;
        recipient.lastShareIndex = _shareIndex;
        recipient.credit = credit;
        emit UpdateCredit(account, _shareIndex, credit);
    }

    function claimInternal(
        address account
    ) internal virtual returns (uint256 amount) {
        amount = updateCredit(account);
        if (amount > 0) {
            recipients[account].credit = 0;
            IMendi(mendi).transfer(account, amount);
            emit Claim(account, amount);
        }
    }

    function claim() external virtual override returns (uint256 amount) {
        return claimInternal(msg.sender);
    }

    function editRecipientInternal(address account, uint256 shares) internal {
        updateCredit(account);
        Recipient storage recipient = recipients[account];
        uint256 prevShares = recipient.shares;
        uint256 _totalShares = shares > prevShares
            ? totalShares.add(shares - prevShares)
            : totalShares.sub(prevShares - shares);
        totalShares = _totalShares;
        recipient.shares = shares;
        emit EditRecipient(account, shares, _totalShares);
    }

    // Prevents a contract from calling itself, directly or indirectly.
    bool internal _notEntered = true;
    modifier nonReentrant() {
        require(_notEntered, "Distributor: REENTERED");
        _notEntered = false;
        _;
        _notEntered = true;
    }
}

File 4 of 5 : IClaimable.sol
//SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.10;

interface IClaimable {
    function claim() external returns (uint256 amount);

    event Claim(address indexed account, uint256 amount);
}

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

//IERC20
interface IMendi {
    function balanceOf(address account) external view returns (uint256);

    function transfer(address dst, uint256 rawAmount) external returns (bool);
}

Settings
{
  "evmVersion": "london",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs",
    "useLiteralContent": true
  },
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "remappings": [],
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"mendi_","type":"address"},{"internalType":"address","name":"claimable_","type":"address"},{"internalType":"address","name":"admin_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Claim","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalShares","type":"uint256"}],"name":"EditRecipient","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"SetAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"lastShareIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"credit","type":"uint256"}],"name":"UpdateCredit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"shareIndex","type":"uint256"}],"name":"UpdateShareIndex","type":"event"},{"inputs":[],"name":"MANTISSA2","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimable","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"editRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"shares","type":"uint256[]"}],"name":"editRecipients","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mendi","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"recipients","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"lastShareIndex","type":"uint256"},{"internalType":"uint256","name":"credit","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"admin_","type":"address"}],"name":"setAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shareIndex","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":"updateCredit","outputs":[{"internalType":"uint256","name":"credit","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"updateShareIndex","outputs":[{"internalType":"uint256","name":"_shareIndex","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]

60c06040526003805460ff1916600117905534801561001d57600080fd5b50604051610c77380380610c7783398101604081905261003c9161008d565b6001600160a01b0392831660805290821660a052600380549190921661010002610100600160a81b03199091161790556100d0565b80516001600160a01b038116811461008857600080fd5b919050565b6000806000606084860312156100a257600080fd5b6100ab84610071565b92506100b960208501610071565b91506100c760408501610071565b90509250925092565b60805160a051610b7461010360003960008181610182015261044101526000818161012501526107520152610b746000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063a4692a261161008c578063b9716d4f11610066578063b9716d4f146101ac578063c56ad1ad146101bf578063eb820312146101c8578063f851a4401461021257600080fd5b8063a4692a2614610172578063af38d7571461017d578063b260187d146101a457600080fd5b80633a98ef39146100d457806345c08718146100f05780634674a930146101035780634e71d92d146101185780635f33f28114610120578063704b6c021461015f575b600080fd5b6100dd60015481565b6040519081526020015b60405180910390f35b6100dd6100fe36600461083a565b61022a565b610116610111366004610855565b6102f4565b005b6100dd61033a565b6101477f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100e7565b61011661016d36600461083a565b61034a565b6100dd600160a01b81565b6101477f000000000000000000000000000000000000000000000000000000000000000081565b6100dd6103d5565b6101166101ba366004610955565b610550565b6100dd60025481565b6101f76101d636600461083a565b60006020819052908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016100e7565b6003546101479061010090046001600160a01b031681565b6000806102356103d5565b9050806102455750600092915050565b6001600160a01b038316600090815260208190526040902080546001820154600160a01b9161027f9161027990869061062f565b90610642565b6102899190610a2b565b81600201546102989190610a4d565b600182018390556002820181905560408051848152602081018390529194506001600160a01b038616917ff7240857a4f83123f14a7bc3f77cd32d0ae71ede635c92ebdcc14d5ea8ed018a910160405180910390a25050919050565b60035461010090046001600160a01b0316331461032c5760405162461bcd60e51b815260040161032390610a65565b60405180910390fd5b610336828261064e565b5050565b600061034533610702565b905090565b60035461010090046001600160a01b031633146103795760405162461bcd60e51b815260040161032390610a65565b60038054610100600160a81b0319166101006001600160a01b038416908102919091179091556040519081527f5a272403b402d892977df56625f4164ccaf70ca3863991c43ecfe76a6905b0a19060200160405180910390a150565b60035460009060ff166104235760405162461bcd60e51b8152602060048201526016602482015275111a5cdd1c9a589d5d1bdc8e8814915153951154915160521b6044820152606401610323565b6003805460ff1916905560015461043d5750600254610540565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634e71d92d6040518163ffffffff1660e01b81526004016020604051808303816000875af115801561049f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c39190610a9c565b9050806104d4575050600254610540565b6105036002546104fd6001546104f7600160a01b8661064290919063ffffffff16565b9061080b565b90610817565b60028190556040518181529092507f8cae7c5b456d193882de6985578f406aefb641501192211706c5aa0a32612fec9060200160405180910390a1505b6003805460ff1916600117905590565b60035461010090046001600160a01b0316331461057f5760405162461bcd60e51b815260040161032390610a65565b80518251146105d05760405162461bcd60e51b815260206004820152601f60248201527f4f776e65644469737472696275746f723a20494e56414c49445f494e505554006044820152606401610323565b60005b825181101561062a576106188382815181106105f1576105f1610ab5565b602002602001015183838151811061060b5761060b610ab5565b602002602001015161064e565b8061062281610acb565b9150506105d3565b505050565b600061063b8284610ae6565b9392505050565b600061063b8284610afd565b6106578261022a565b506001600160a01b038216600090815260208190526040812080549091818411610696576106916106888584610ae6565b6001549061062f565b6106ac565b6106ac6106a38386610ae6565b60015490610817565b600181905584845560408051868152602081018390529192506001600160a01b038716917fff3664f5f2f8f85ecd8d30ef2aa6773d8a8448219c7421dcbb67957fb3fafba1910160405180910390a25050505050565b600061070d8261022a565b90508015610806576001600160a01b03828116600081815260208190526040808220600201919091555163a9059cbb60e01b81526004810191909152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303816000875af115801561079d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c19190610b1c565b50816001600160a01b03167f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4826040516107fd91815260200190565b60405180910390a25b919050565b600061063b8284610a2b565b600061063b8284610a4d565b80356001600160a01b038116811461080657600080fd5b60006020828403121561084c57600080fd5b61063b82610823565b6000806040838503121561086857600080fd5b61087183610823565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156108be576108be61087f565b604052919050565b600067ffffffffffffffff8211156108e0576108e061087f565b5060051b60200190565b600082601f8301126108fb57600080fd5b8135602061091061090b836108c6565b610895565b82815260059290921b8401810191818101908684111561092f57600080fd5b8286015b8481101561094a5780358352918301918301610933565b509695505050505050565b6000806040838503121561096857600080fd5b823567ffffffffffffffff8082111561098057600080fd5b818501915085601f83011261099457600080fd5b813560206109a461090b836108c6565b82815260059290921b840181019181810190898411156109c357600080fd5b948201945b838610156109e8576109d986610823565b825294820194908201906109c8565b965050860135925050808211156109fe57600080fd5b50610a0b858286016108ea565b9150509250929050565b634e487b7160e01b600052601160045260246000fd5b600082610a4857634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115610a6057610a60610a15565b500190565b6020808252601e908201527f4f776e65644469737472696275746f723a20554e415554484f52495a45440000604082015260600190565b600060208284031215610aae57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b6000600019821415610adf57610adf610a15565b5060010190565b600082821015610af857610af8610a15565b500390565b6000816000190483118215151615610b1757610b17610a15565b500290565b600060208284031215610b2e57600080fd5b8151801515811461063b57600080fdfea26469706673582212203e280e29acbc440f288617124eb6fb7d49db059ec66eb6172e3a780d543c409f64736f6c634300080a003300000000000000000000000043e8809ea748eff3204ee01f08872f063e44065f000000000000000000000000bb4bba3b0afe7530985d1edc1f7b3e2a3ac2c31100000000000000000000000057cd331c7b2c7582625810465ea3cf9bdca21236

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063a4692a261161008c578063b9716d4f11610066578063b9716d4f146101ac578063c56ad1ad146101bf578063eb820312146101c8578063f851a4401461021257600080fd5b8063a4692a2614610172578063af38d7571461017d578063b260187d146101a457600080fd5b80633a98ef39146100d457806345c08718146100f05780634674a930146101035780634e71d92d146101185780635f33f28114610120578063704b6c021461015f575b600080fd5b6100dd60015481565b6040519081526020015b60405180910390f35b6100dd6100fe36600461083a565b61022a565b610116610111366004610855565b6102f4565b005b6100dd61033a565b6101477f00000000000000000000000043e8809ea748eff3204ee01f08872f063e44065f81565b6040516001600160a01b0390911681526020016100e7565b61011661016d36600461083a565b61034a565b6100dd600160a01b81565b6101477f000000000000000000000000bb4bba3b0afe7530985d1edc1f7b3e2a3ac2c31181565b6100dd6103d5565b6101166101ba366004610955565b610550565b6100dd60025481565b6101f76101d636600461083a565b60006020819052908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016100e7565b6003546101479061010090046001600160a01b031681565b6000806102356103d5565b9050806102455750600092915050565b6001600160a01b038316600090815260208190526040902080546001820154600160a01b9161027f9161027990869061062f565b90610642565b6102899190610a2b565b81600201546102989190610a4d565b600182018390556002820181905560408051848152602081018390529194506001600160a01b038616917ff7240857a4f83123f14a7bc3f77cd32d0ae71ede635c92ebdcc14d5ea8ed018a910160405180910390a25050919050565b60035461010090046001600160a01b0316331461032c5760405162461bcd60e51b815260040161032390610a65565b60405180910390fd5b610336828261064e565b5050565b600061034533610702565b905090565b60035461010090046001600160a01b031633146103795760405162461bcd60e51b815260040161032390610a65565b60038054610100600160a81b0319166101006001600160a01b038416908102919091179091556040519081527f5a272403b402d892977df56625f4164ccaf70ca3863991c43ecfe76a6905b0a19060200160405180910390a150565b60035460009060ff166104235760405162461bcd60e51b8152602060048201526016602482015275111a5cdd1c9a589d5d1bdc8e8814915153951154915160521b6044820152606401610323565b6003805460ff1916905560015461043d5750600254610540565b60007f000000000000000000000000bb4bba3b0afe7530985d1edc1f7b3e2a3ac2c3116001600160a01b0316634e71d92d6040518163ffffffff1660e01b81526004016020604051808303816000875af115801561049f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c39190610a9c565b9050806104d4575050600254610540565b6105036002546104fd6001546104f7600160a01b8661064290919063ffffffff16565b9061080b565b90610817565b60028190556040518181529092507f8cae7c5b456d193882de6985578f406aefb641501192211706c5aa0a32612fec9060200160405180910390a1505b6003805460ff1916600117905590565b60035461010090046001600160a01b0316331461057f5760405162461bcd60e51b815260040161032390610a65565b80518251146105d05760405162461bcd60e51b815260206004820152601f60248201527f4f776e65644469737472696275746f723a20494e56414c49445f494e505554006044820152606401610323565b60005b825181101561062a576106188382815181106105f1576105f1610ab5565b602002602001015183838151811061060b5761060b610ab5565b602002602001015161064e565b8061062281610acb565b9150506105d3565b505050565b600061063b8284610ae6565b9392505050565b600061063b8284610afd565b6106578261022a565b506001600160a01b038216600090815260208190526040812080549091818411610696576106916106888584610ae6565b6001549061062f565b6106ac565b6106ac6106a38386610ae6565b60015490610817565b600181905584845560408051868152602081018390529192506001600160a01b038716917fff3664f5f2f8f85ecd8d30ef2aa6773d8a8448219c7421dcbb67957fb3fafba1910160405180910390a25050505050565b600061070d8261022a565b90508015610806576001600160a01b03828116600081815260208190526040808220600201919091555163a9059cbb60e01b81526004810191909152602481018390527f00000000000000000000000043e8809ea748eff3204ee01f08872f063e44065f9091169063a9059cbb906044016020604051808303816000875af115801561079d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c19190610b1c565b50816001600160a01b03167f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4826040516107fd91815260200190565b60405180910390a25b919050565b600061063b8284610a2b565b600061063b8284610a4d565b80356001600160a01b038116811461080657600080fd5b60006020828403121561084c57600080fd5b61063b82610823565b6000806040838503121561086857600080fd5b61087183610823565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156108be576108be61087f565b604052919050565b600067ffffffffffffffff8211156108e0576108e061087f565b5060051b60200190565b600082601f8301126108fb57600080fd5b8135602061091061090b836108c6565b610895565b82815260059290921b8401810191818101908684111561092f57600080fd5b8286015b8481101561094a5780358352918301918301610933565b509695505050505050565b6000806040838503121561096857600080fd5b823567ffffffffffffffff8082111561098057600080fd5b818501915085601f83011261099457600080fd5b813560206109a461090b836108c6565b82815260059290921b840181019181810190898411156109c357600080fd5b948201945b838610156109e8576109d986610823565b825294820194908201906109c8565b965050860135925050808211156109fe57600080fd5b50610a0b858286016108ea565b9150509250929050565b634e487b7160e01b600052601160045260246000fd5b600082610a4857634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115610a6057610a60610a15565b500190565b6020808252601e908201527f4f776e65644469737472696275746f723a20554e415554484f52495a45440000604082015260600190565b600060208284031215610aae57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b6000600019821415610adf57610adf610a15565b5060010190565b600082821015610af857610af8610a15565b500390565b6000816000190483118215151615610b1757610b17610a15565b500290565b600060208284031215610b2e57600080fd5b8151801515811461063b57600080fdfea26469706673582212203e280e29acbc440f288617124eb6fb7d49db059ec66eb6172e3a780d543c409f64736f6c634300080a0033

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

00000000000000000000000043e8809ea748eff3204ee01f08872f063e44065f000000000000000000000000bb4bba3b0afe7530985d1edc1f7b3e2a3ac2c31100000000000000000000000057cd331c7b2c7582625810465ea3cf9bdca21236

-----Decoded View---------------
Arg [0] : mendi_ (address): 0x43E8809ea748EFf3204ee01F08872F063e44065f
Arg [1] : claimable_ (address): 0xBb4bBa3b0Afe7530985d1Edc1F7b3e2a3Ac2c311
Arg [2] : admin_ (address): 0x57cd331C7b2c7582625810465Ea3CF9bdcA21236

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000043e8809ea748eff3204ee01f08872f063e44065f
Arg [1] : 000000000000000000000000bb4bba3b0afe7530985d1edc1f7b3e2a3ac2c311
Arg [2] : 00000000000000000000000057cd331c7b2c7582625810465ea3cf9bdca21236


Block Transaction Gas Used Reward
view all blocks sequenced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
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.