ETH Price: $2,039.95 (+1.35%)

Contract

0x2B9775942ecC36bF4DC449DdB828CF070b3CC71c
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Claim207858322024-09-19 16:27:47538 days ago1726763267IN
0x2B977594...70b3CC71c
0 ETH0.0020063123.70972755
Claim144429552022-03-23 13:57:041449 days ago1648043824IN
0x2B977594...70b3CC71c
0 ETH0.0041438240.73761192
Claim138517372021-12-22 0:13:411541 days ago1640132021IN
0x2B977594...70b3CC71c
0 ETH0.0097103295.4613244
Claim138412552021-12-20 9:34:331542 days ago1639992873IN
0x2B977594...70b3CC71c
0 ETH0.0030088535.55719976
Claim136073962021-11-13 11:24:361579 days ago1636802676IN
0x2B977594...70b3CC71c
0 ETH0.006270992.87478197
Claim135883532021-11-10 11:58:431582 days ago1636545523IN
0x2B977594...70b3CC71c
0 ETH0.01281116151.39638806
Claim135848782021-11-09 22:46:381583 days ago1636497998IN
0x2B977594...70b3CC71c
0 ETH0.00878119130.05318485
Claim135313252021-11-01 12:58:531591 days ago1635771533IN
0x2B977594...70b3CC71c
0 ETH0.01367758134.46311133
Claim134920892021-10-26 9:07:001597 days ago1635239220IN
0x2B977594...70b3CC71c
0 ETH0.0082700481.30208283
Claim134860972021-10-25 10:38:221598 days ago1635158302IN
0x2B977594...70b3CC71c
0 ETH0.0053801763.58046374
Claim134858352021-10-25 9:37:411598 days ago1635154661IN
0x2B977594...70b3CC71c
0 ETH0.0063130562.06303485
Claim134719112021-10-23 5:21:251601 days ago1634966485IN
0x2B977594...70b3CC71c
0 ETH0.0043321164.16052747
Claim134675542021-10-22 12:59:411601 days ago1634907581IN
0x2B977594...70b3CC71c
0 ETH0.0042723350.48843271
Claim134671382021-10-22 11:27:321601 days ago1634902052IN
0x2B977594...70b3CC71c
0 ETH0.008137680
Claim134634192021-10-21 21:30:381602 days ago1634851838IN
0x2B977594...70b3CC71c
0 ETH0.0053418863.12789058
Claim134107402021-10-13 15:19:481610 days ago1634138388IN
0x2B977594...70b3CC71c
0 ETH0.0058387869
Claim133648182021-10-06 10:19:551617 days ago1633515595IN
0x2B977594...70b3CC71c
0 ETH0.0100357898.66089023
Claim133597852021-10-05 15:08:381618 days ago1633446518IN
0x2B977594...70b3CC71c
0 ETH0.03238828318.40628553
Claim133350532021-10-01 18:19:431622 days ago1633112383IN
0x2B977594...70b3CC71c
0 ETH0.0048614472
Claim133297342021-09-30 22:32:071623 days ago1633041127IN
0x2B977594...70b3CC71c
0 ETH0.0056936684.32565955
Claim133245662021-09-30 3:06:551624 days ago1632971215IN
0x2B977594...70b3CC71c
0 ETH0.01587256187.57463195
Claim133202012021-09-29 10:47:211624 days ago1632912441IN
0x2B977594...70b3CC71c
0 ETH0.0048138947.32493242
Claim133141522021-09-28 12:07:351625 days ago1632830855IN
0x2B977594...70b3CC71c
0 ETH0.0040380159.80475606
Claim133106262021-09-27 22:45:271626 days ago1632782727IN
0x2B977594...70b3CC71c
0 ETH0.01077914105.96879656
Claim133037452021-09-26 21:07:561627 days ago1632690476IN
0x2B977594...70b3CC71c
0 ETH0.0039662558.74194039
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

Contract Source Code Verified (Exact Match)

Contract Name:
EmissionsPrivateDispenser

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

/*
This contract receives XRUNE from the `EmissionsSplitter` contract and allows
private investors to claim their share of vested tokens. If they need to update
their address the owner can do so for them.
*/

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";

contract EmissionsPrivateDispenser is Ownable {
    using SafeERC20 for IERC20;

    IERC20 public token;
    uint public totalReceived;
    mapping(address => uint) public investorsPercentages; // 1e12 = 100%
    mapping(address => uint) public investorsClaimedAmount;

    event ConfigureInvestor(address investor, uint percentage);
    event Claim(address user, uint amount);
    event Deposit(uint amount);

    constructor(address _token, address[] memory investors, uint[] memory percentages) {
        token = IERC20(_token);
        require(investors.length == percentages.length);
        uint total = 0;
        for (uint i = 0; i < investors.length; i++) {
            require(investors[i] != address(0), "!zero");
            investorsPercentages[investors[i]] = percentages[i];
            emit ConfigureInvestor(investors[i], percentages[i]);
            total += percentages[i];
        }
        require(total == 1e12, "percentagees don't add up to 100%");
    }

    function updateInvestorAddress(address oldAddress, address newAddress) public onlyOwner {
        require(investorsPercentages[oldAddress] > 0, "not an investor");
        investorsPercentages[newAddress] = investorsPercentages[oldAddress];
        investorsPercentages[oldAddress] = 0;
        investorsClaimedAmount[newAddress] = investorsClaimedAmount[oldAddress];
        investorsClaimedAmount[oldAddress] = 0;
        emit ConfigureInvestor(newAddress, investorsPercentages[newAddress]);
    }
    
    function claimable(address user) public view returns (uint) {
        return ((totalReceived * investorsPercentages[user]) / 1e12) - investorsClaimedAmount[user];
    }

    function claim() public {
        uint amount = claimable(msg.sender);
        require(amount > 0, "nothing to claim");
        investorsClaimedAmount[msg.sender] += amount;
        token.safeTransfer(msg.sender, amount);
        emit Claim(msg.sender, amount);
    }

    function deposit(uint amount) public {
        token.safeTransferFrom(msg.sender, address(this), amount);
        totalReceived += amount;
        emit Deposit(amount);
    }
}

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "../IERC20.sol";
import "../../../utils/Address.sol";

/**
 * @title SafeERC20
 * @dev Wrappers around ERC20 operations that throw on failure (when the token
 * contract returns false). Tokens that return no value (and instead revert or
 * throw on failure) are also supported, non-reverting calls are assumed to be
 * successful.
 * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,
 * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
 */
library SafeERC20 {
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint256 value) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    /**
     * @dev Deprecated. This function has issues similar to the ones found in
     * {IERC20-approve}, and its usage is discouraged.
     *
     * Whenever possible, use {safeIncreaseAllowance} and
     * {safeDecreaseAllowance} instead.
     */
    function safeApprove(IERC20 token, address spender, uint256 value) internal {
        // safeApprove should only be called when setting an initial allowance,
        // or when resetting it to zero. To increase and decrease it, use
        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'
        // solhint-disable-next-line max-line-length
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }

    function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {
        uint256 newAllowance = token.allowance(address(this), spender) + value;
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }

    function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {
        unchecked {
            uint256 oldAllowance = token.allowance(address(this), spender);
            require(oldAllowance >= value, "SafeERC20: decreased allowance below zero");
            uint256 newAllowance = oldAllowance - value;
            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
        }
    }

    /**
     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement
     * on the return value: the return value is optional (but if data is returned, it must not be false).
     * @param token The token targeted by the call.
     * @param data The call data (encoded using abi.encode or one of its variants).
     */
    function _callOptionalReturn(IERC20 token, bytes memory data) private {
        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since
        // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that
        // the target address contains contract code and also asserts for success in the low-level call.

        bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
        if (returndata.length > 0) { // Return data is optional
            // solhint-disable-next-line max-line-length
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "../utils/Context.sol";
/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

// 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;
        // solhint-disable-next-line no-inline-assembly
        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");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (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");

        // solhint-disable-next-line avoid-low-level-calls
        (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");

        // solhint-disable-next-line avoid-low-level-calls
        (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");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

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

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

// 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) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

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

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address[]","name":"investors","type":"address[]"},{"internalType":"uint256[]","name":"percentages","type":"uint256[]"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Claim","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"investor","type":"address"},{"indexed":false,"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"ConfigureInvestor","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"claimable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"investorsClaimedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"investorsPercentages","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"oldAddress","type":"address"},{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateInvestorAddress","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5060405162000f9738038062000f97833981016040819052620000349162000345565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b0319166001600160a01b03851617905580518251146200009f57600080fd5b6000805b8351811015620002435760006001600160a01b0316848281518110620000cd57620000cd620004d8565b60200260200101516001600160a01b031614156200011a5760405162461bcd60e51b8152602060048201526005602482015264217a65726f60d81b60448201526064015b60405180910390fd5b8281815181106200012f576200012f620004d8565b602002602001015160036000868481518110620001505762000150620004d8565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055507fc2904c727ad175575b9b830f01355ecf0e057923ad01a9d7b7bc70a5be5af81d848281518110620001b257620001b2620004d8565b6020026020010151848381518110620001cf57620001cf620004d8565b6020026020010151604051620001fa9291906001600160a01b03929092168252602082015260400190565b60405180910390a1828181518110620002175762000217620004d8565b6020026020010151826200022c919062000489565b9150806200023a81620004a4565b915050620000a3565b508064e8d4a5100014620002a45760405162461bcd60e51b815260206004820152602160248201527f70657263656e74616765657320646f6e27742061646420757020746f203130306044820152602560f81b606482015260840162000111565b5050505062000504565b80516001600160a01b0381168114620002c657600080fd5b919050565b600082601f830112620002dd57600080fd5b81516020620002f6620002f08362000463565b62000430565b80838252828201915082860187848660051b89010111156200031757600080fd5b60005b8581101562000338578151845292840192908401906001016200031a565b5090979650505050505050565b6000806000606084860312156200035b57600080fd5b6200036684620002ae565b602085810151919450906001600160401b03808211156200038657600080fd5b818701915087601f8301126200039b57600080fd5b8151620003ac620002f08262000463565b8082825285820191508585018b878560051b8801011115620003cd57600080fd5b600095505b83861015620003fb57620003e681620002ae565b835260019590950194918601918601620003d2565b5060408a015190975094505050808311156200041657600080fd5b50506200042686828701620002cb565b9150509250925092565b604051601f8201601f191681016001600160401b03811182821017156200045b576200045b620004ee565b604052919050565b60006001600160401b038211156200047f576200047f620004ee565b5060051b60200190565b600082198211156200049f576200049f620004c2565b500190565b6000600019821415620004bb57620004bb620004c2565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b610a8380620005146000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063715018a611610071578063715018a6146101315780638da5cb5b14610139578063a3c2c4621461015e578063b6b55f2514610167578063f2fde38b1461017a578063fc0c546a1461018d57600080fd5b80633f76adad146100ae578063402914f5146100e15780634865f301146100f45780634e71d92d14610114578063515975b81461011e575b600080fd5b6100ce6100bc36600461088e565b60036020526000908152604090205481565b6040519081526020015b60405180910390f35b6100ce6100ef36600461088e565b6101a0565b6100ce61010236600461088e565b60046020526000908152604090205481565b61011c6101f1565b005b61011c61012c3660046108a9565b6102be565b61011c6103c3565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016100d8565b6100ce60025481565b61011c6101753660046108fe565b610437565b61011c61018836600461088e565b610496565b600154610146906001600160a01b031681565b6001600160a01b038116600090815260046020908152604080832054600390925282205460025464e8d4a51000916101d7916109d5565b6101e191906109b3565b6101eb91906109f4565b92915050565b60006101fc336101a0565b9050600081116102465760405162461bcd60e51b815260206004820152601060248201526f6e6f7468696e6720746f20636c61696d60801b60448201526064015b60405180910390fd5b336000908152600460205260408120805483929061026590849061099b565b9091555050600154610281906001600160a01b03163383610580565b60408051338152602081018390527f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d491015b60405180910390a150565b6000546001600160a01b031633146102e85760405162461bcd60e51b815260040161023d90610966565b6001600160a01b03821660009081526003602052604090205461033f5760405162461bcd60e51b815260206004820152600f60248201526e3737ba1030b71034b73b32b9ba37b960891b604482015260640161023d565b6001600160a01b0382811660008181526003602081815260408084208054968816808652828620978855958552849055600482528084208054868652828620559390935590815292548151928352928201929092527fc2904c727ad175575b9b830f01355ecf0e057923ad01a9d7b7bc70a5be5af81d910160405180910390a15050565b6000546001600160a01b031633146103ed5760405162461bcd60e51b815260040161023d90610966565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60015461044f906001600160a01b03163330846105e8565b8060026000828254610461919061099b565b90915550506040518181527f4d6ce1e535dbade1c23defba91e23b8f791ce5edc0cc320257a2b364e4e38426906020016102b3565b6000546001600160a01b031633146104c05760405162461bcd60e51b815260040161023d90610966565b6001600160a01b0381166105255760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161023d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6040516001600160a01b0383166024820152604481018290526105e390849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610626565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526106209085906323b872dd60e01b906084016105ac565b50505050565b600061067b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166106f89092919063ffffffff16565b8051909150156105e3578080602001905181019061069991906108dc565b6105e35760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161023d565b60606107078484600085610711565b90505b9392505050565b6060824710156107725760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161023d565b843b6107c05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161023d565b600080866001600160a01b031685876040516107dc9190610917565b60006040518083038185875af1925050503d8060008114610819576040519150601f19603f3d011682016040523d82523d6000602084013e61081e565b606091505b509150915061082e828286610839565b979650505050505050565b6060831561084857508161070a565b8251156108585782518084602001fd5b8160405162461bcd60e51b815260040161023d9190610933565b80356001600160a01b038116811461088957600080fd5b919050565b6000602082840312156108a057600080fd5b61070a82610872565b600080604083850312156108bc57600080fd5b6108c583610872565b91506108d360208401610872565b90509250929050565b6000602082840312156108ee57600080fd5b8151801515811461070a57600080fd5b60006020828403121561091057600080fd5b5035919050565b60008251610929818460208701610a0b565b9190910192915050565b6020815260008251806020840152610952816040850160208701610a0b565b601f01601f19169190910160400192915050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082198211156109ae576109ae610a37565b500190565b6000826109d057634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156109ef576109ef610a37565b500290565b600082821015610a0657610a06610a37565b500390565b60005b83811015610a26578181015183820152602001610a0e565b838111156106205750506000910152565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220b4cdae57f57b75582d710c6818ff14097536de7eef3fc55e18342d0a1b1577ae64736f6c6343000807003300000000000000000000000069fa0fee221ad11012bab0fdb45d444d3d2ce71c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000005c0000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000997fb1a5a5c9983a2ffeb9453e719975a2583dc800000000000000000000000034efe0d4661d52aa79cd2cc1a7017e8b1309c8c3000000000000000000000000a8683e7d45ca9e4746b1c7b9ab4457e6128af6ab0000000000000000000000002a645c2794b3791b657126f2108d11e0a863e14200000000000000000000000035b56618aad07af51a3fb4b80cafec6b1175b88600000000000000000000000043436c54d4d1b5c3bef23b58176b922bcb73fb9a00000000000000000000000091f9fdf8e27755ac0bb728ad501742abf57e922d00000000000000000000000007fffed18d42472d009ad1b3dbb2e894f19ebc5600000000000000000000000010a63354fef491942fdcbdb2c1ad042881a14b260000000000000000000000003b1e215fe1138aa9034b5e6de39892e45ac05176000000000000000000000000471903799a45c6da3ec2a3a6ffaba20aaec9e973000000000000000000000000a4e5d572ba7b92bf8f8a06574770afb60c603e0000000000000000000000000040a392a72f08520c43d12774cb46e3bfce814e4b000000000000000000000000a2dcb52f5cf34a84a2ebfb7d937f7051ae4c697b00000000000000000000000004ddf96a61c4c44731f04df4e963f61cfe3c9c6d0000000000000000000000003ca2bf960c4a0f8217988dc6ea415aea09c883ad000000000000000000000000c523433ac1cc396fa58698739b3b0531fe6c4268000000000000000000000000b3c7c41dc82dc19391424b2eef6f301d20ca18cc000000000000000000000000f01d14cc69b7217fb4cac7e28be81d945e28fb4a0000000000000000000000006e4116462a0abe7a5e75dd66e44a1cbb6b2006f1000000000000000000000000367d36478f19395f920cf84fa46aa94d365f525300000000000000000000000052e7bde89fcbd1e1c656db1c08dde45d82447e25000000000000000000000000eb1ef2fb8bff1da1ce36babafa28ee2d1c526b6600000000000000000000000052e7bde89fcbd1e1c656db1c08dde45d82447e25000000000000000000000000bcd4cb80ba69376e10082427d6b50a181abcd307000000000000000000000000145ffa5a63efb3077e48058b90ac5875b2383042000000000000000000000000c84096ee48090fef832d0a77082385ea0ea2993d0000000000000000000000006ae009d55f095099d6a789278ee7c001e7d0e51e00000000000000000000000052611c224e44867ca611cfa0d05535d7ba07dc550000000000000000000000009d61b621ed6ca279eb7f3f2106352117fe9dadd20000000000000000000000003bc162cee9ef4e01dfc641f5ea77ab7b06e5b50100000000000000000000000078bf8b271510e949ae4479bed90c0c9a17cf020b000000000000000000000000f1a785d140b102234315b1f837c5c15853ee8386000000000000000000000000e139ab520c71c6dd7df0af0015c2773002742c0c000000000000000000000000605404298eca4eb22ac38a781c7299194be91eac000000000000000000000000cb1f39532dd59a903d31500e74a879d9dc283b6f0000000000000000000000003489dbbf6d7ebedeb503c71ae066cf5dfa54b8a9000000000000000000000000d09545a4446f5e2f4749a49c7c32b3ce42a5fe37000000000000000000000000dd3ebe16b9e5155da25f86f301d4d97bd87a8a560000000000000000000000002fd6fdb35afc8b42f744146ec6b114891ce490c3000000000000000000000000482c7f6217292d40452b68897c8265d49f20a511000000000000000000000000000000000000000000000000000000000000dead000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000001f0b49355500000000000000000000000000000000000000000000000000000007c2d24d550000000000000000000000000000000000000000000000000000002e90edd00000000000000000000000000000000000000000000000000000000013670dc15500000000000000000000000000000000000000000000000000000013670dc155000000000000000000000000000000000000000000000000000000031aba855500000000000000000000000000000000000000000000000000000007c2d24d550000000000000000000000000000000000000000000000000000000635750aaa0000000000000000000000000000000000000000000000000000000ba43b74000000000000000000000000000000000000000000000000000000000723e032aa0000000000000000000000000000000000000000000000000000000723e032aa000000000000000000000000000000000000000000000000000000051f4d5c0000000000000000000000000000000000000000000000000000000003e16926aa00000000000000000000000000000000000000000000000000000003e16926aa00000000000000000000000000000000000000000000000000000000ee6b280000000000000000000000000000000000000000000000000000000001f0b4935500000000000000000000000000000000000000000000000000000004a817c800000000000000000000000000000000000000000000000000000000018d5d42aa00000000000000000000000000000000000000000000000000000005f9da40aa000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000004f790d55000000000000000000000000000000000000000000000000000000009ef21aaa00000000000000000000000000000000000000000000000000000000635750aa00000000000000000000000000000000000000000000000000000000635750aa000000000000000000000000000000000000000000000000000000004f790d5500000000000000000000000000000000000000000000000000000000c6aea15500000000000000000000000000000000000000000000000000000000ee6b2800000000000000000000000000000000000000000000000000000000012a05f200000000000000000000000000000000000000000000000000000000009ef21aaa00000000000000000000000000000000000000000000000000000002540be400000000000000000000000000000000000000000000000000000000056ec66955000000000000000000000000000000000000000000000000000000056ec6695500000000000000000000000000000000000000000000000000000004a817c800000000000000000000000000000000000000000000000000000000031aba8555000000000000000000000000000000000000000000000000000000056ec6695500000000000000000000000000000000000000000000000000000000c6aea155000000000000000000000000000000000000000000000000000000018d5d42aa000000000000000000000000000000000000000000000000000000012a05f200000000000000000000000000000000000000000000000000000000012a05f2000000000000000000000000000000000000000000000000000000000027bc86aa00000000000000000000000000000000000000000000000000000000c6aea155000000000000000000000000000000000000000000000000000000000000000e

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100a95760003560e01c8063715018a611610071578063715018a6146101315780638da5cb5b14610139578063a3c2c4621461015e578063b6b55f2514610167578063f2fde38b1461017a578063fc0c546a1461018d57600080fd5b80633f76adad146100ae578063402914f5146100e15780634865f301146100f45780634e71d92d14610114578063515975b81461011e575b600080fd5b6100ce6100bc36600461088e565b60036020526000908152604090205481565b6040519081526020015b60405180910390f35b6100ce6100ef36600461088e565b6101a0565b6100ce61010236600461088e565b60046020526000908152604090205481565b61011c6101f1565b005b61011c61012c3660046108a9565b6102be565b61011c6103c3565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016100d8565b6100ce60025481565b61011c6101753660046108fe565b610437565b61011c61018836600461088e565b610496565b600154610146906001600160a01b031681565b6001600160a01b038116600090815260046020908152604080832054600390925282205460025464e8d4a51000916101d7916109d5565b6101e191906109b3565b6101eb91906109f4565b92915050565b60006101fc336101a0565b9050600081116102465760405162461bcd60e51b815260206004820152601060248201526f6e6f7468696e6720746f20636c61696d60801b60448201526064015b60405180910390fd5b336000908152600460205260408120805483929061026590849061099b565b9091555050600154610281906001600160a01b03163383610580565b60408051338152602081018390527f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d491015b60405180910390a150565b6000546001600160a01b031633146102e85760405162461bcd60e51b815260040161023d90610966565b6001600160a01b03821660009081526003602052604090205461033f5760405162461bcd60e51b815260206004820152600f60248201526e3737ba1030b71034b73b32b9ba37b960891b604482015260640161023d565b6001600160a01b0382811660008181526003602081815260408084208054968816808652828620978855958552849055600482528084208054868652828620559390935590815292548151928352928201929092527fc2904c727ad175575b9b830f01355ecf0e057923ad01a9d7b7bc70a5be5af81d910160405180910390a15050565b6000546001600160a01b031633146103ed5760405162461bcd60e51b815260040161023d90610966565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60015461044f906001600160a01b03163330846105e8565b8060026000828254610461919061099b565b90915550506040518181527f4d6ce1e535dbade1c23defba91e23b8f791ce5edc0cc320257a2b364e4e38426906020016102b3565b6000546001600160a01b031633146104c05760405162461bcd60e51b815260040161023d90610966565b6001600160a01b0381166105255760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161023d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6040516001600160a01b0383166024820152604481018290526105e390849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610626565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526106209085906323b872dd60e01b906084016105ac565b50505050565b600061067b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166106f89092919063ffffffff16565b8051909150156105e3578080602001905181019061069991906108dc565b6105e35760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161023d565b60606107078484600085610711565b90505b9392505050565b6060824710156107725760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161023d565b843b6107c05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161023d565b600080866001600160a01b031685876040516107dc9190610917565b60006040518083038185875af1925050503d8060008114610819576040519150601f19603f3d011682016040523d82523d6000602084013e61081e565b606091505b509150915061082e828286610839565b979650505050505050565b6060831561084857508161070a565b8251156108585782518084602001fd5b8160405162461bcd60e51b815260040161023d9190610933565b80356001600160a01b038116811461088957600080fd5b919050565b6000602082840312156108a057600080fd5b61070a82610872565b600080604083850312156108bc57600080fd5b6108c583610872565b91506108d360208401610872565b90509250929050565b6000602082840312156108ee57600080fd5b8151801515811461070a57600080fd5b60006020828403121561091057600080fd5b5035919050565b60008251610929818460208701610a0b565b9190910192915050565b6020815260008251806020840152610952816040850160208701610a0b565b601f01601f19169190910160400192915050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082198211156109ae576109ae610a37565b500190565b6000826109d057634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156109ef576109ef610a37565b500290565b600082821015610a0657610a06610a37565b500390565b60005b83811015610a26578181015183820152602001610a0e565b838111156106205750506000910152565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220b4cdae57f57b75582d710c6818ff14097536de7eef3fc55e18342d0a1b1577ae64736f6c63430008070033

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

00000000000000000000000069fa0fee221ad11012bab0fdb45d444d3d2ce71c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000005c0000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000997fb1a5a5c9983a2ffeb9453e719975a2583dc800000000000000000000000034efe0d4661d52aa79cd2cc1a7017e8b1309c8c3000000000000000000000000a8683e7d45ca9e4746b1c7b9ab4457e6128af6ab0000000000000000000000002a645c2794b3791b657126f2108d11e0a863e14200000000000000000000000035b56618aad07af51a3fb4b80cafec6b1175b88600000000000000000000000043436c54d4d1b5c3bef23b58176b922bcb73fb9a00000000000000000000000091f9fdf8e27755ac0bb728ad501742abf57e922d00000000000000000000000007fffed18d42472d009ad1b3dbb2e894f19ebc5600000000000000000000000010a63354fef491942fdcbdb2c1ad042881a14b260000000000000000000000003b1e215fe1138aa9034b5e6de39892e45ac05176000000000000000000000000471903799a45c6da3ec2a3a6ffaba20aaec9e973000000000000000000000000a4e5d572ba7b92bf8f8a06574770afb60c603e0000000000000000000000000040a392a72f08520c43d12774cb46e3bfce814e4b000000000000000000000000a2dcb52f5cf34a84a2ebfb7d937f7051ae4c697b00000000000000000000000004ddf96a61c4c44731f04df4e963f61cfe3c9c6d0000000000000000000000003ca2bf960c4a0f8217988dc6ea415aea09c883ad000000000000000000000000c523433ac1cc396fa58698739b3b0531fe6c4268000000000000000000000000b3c7c41dc82dc19391424b2eef6f301d20ca18cc000000000000000000000000f01d14cc69b7217fb4cac7e28be81d945e28fb4a0000000000000000000000006e4116462a0abe7a5e75dd66e44a1cbb6b2006f1000000000000000000000000367d36478f19395f920cf84fa46aa94d365f525300000000000000000000000052e7bde89fcbd1e1c656db1c08dde45d82447e25000000000000000000000000eb1ef2fb8bff1da1ce36babafa28ee2d1c526b6600000000000000000000000052e7bde89fcbd1e1c656db1c08dde45d82447e25000000000000000000000000bcd4cb80ba69376e10082427d6b50a181abcd307000000000000000000000000145ffa5a63efb3077e48058b90ac5875b2383042000000000000000000000000c84096ee48090fef832d0a77082385ea0ea2993d0000000000000000000000006ae009d55f095099d6a789278ee7c001e7d0e51e00000000000000000000000052611c224e44867ca611cfa0d05535d7ba07dc550000000000000000000000009d61b621ed6ca279eb7f3f2106352117fe9dadd20000000000000000000000003bc162cee9ef4e01dfc641f5ea77ab7b06e5b50100000000000000000000000078bf8b271510e949ae4479bed90c0c9a17cf020b000000000000000000000000f1a785d140b102234315b1f837c5c15853ee8386000000000000000000000000e139ab520c71c6dd7df0af0015c2773002742c0c000000000000000000000000605404298eca4eb22ac38a781c7299194be91eac000000000000000000000000cb1f39532dd59a903d31500e74a879d9dc283b6f0000000000000000000000003489dbbf6d7ebedeb503c71ae066cf5dfa54b8a9000000000000000000000000d09545a4446f5e2f4749a49c7c32b3ce42a5fe37000000000000000000000000dd3ebe16b9e5155da25f86f301d4d97bd87a8a560000000000000000000000002fd6fdb35afc8b42f744146ec6b114891ce490c3000000000000000000000000482c7f6217292d40452b68897c8265d49f20a511000000000000000000000000000000000000000000000000000000000000dead000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000001f0b49355500000000000000000000000000000000000000000000000000000007c2d24d550000000000000000000000000000000000000000000000000000002e90edd00000000000000000000000000000000000000000000000000000000013670dc15500000000000000000000000000000000000000000000000000000013670dc155000000000000000000000000000000000000000000000000000000031aba855500000000000000000000000000000000000000000000000000000007c2d24d550000000000000000000000000000000000000000000000000000000635750aaa0000000000000000000000000000000000000000000000000000000ba43b74000000000000000000000000000000000000000000000000000000000723e032aa0000000000000000000000000000000000000000000000000000000723e032aa000000000000000000000000000000000000000000000000000000051f4d5c0000000000000000000000000000000000000000000000000000000003e16926aa00000000000000000000000000000000000000000000000000000003e16926aa00000000000000000000000000000000000000000000000000000000ee6b280000000000000000000000000000000000000000000000000000000001f0b4935500000000000000000000000000000000000000000000000000000004a817c800000000000000000000000000000000000000000000000000000000018d5d42aa00000000000000000000000000000000000000000000000000000005f9da40aa000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000004f790d55000000000000000000000000000000000000000000000000000000009ef21aaa00000000000000000000000000000000000000000000000000000000635750aa00000000000000000000000000000000000000000000000000000000635750aa000000000000000000000000000000000000000000000000000000004f790d5500000000000000000000000000000000000000000000000000000000c6aea15500000000000000000000000000000000000000000000000000000000ee6b2800000000000000000000000000000000000000000000000000000000012a05f200000000000000000000000000000000000000000000000000000000009ef21aaa00000000000000000000000000000000000000000000000000000002540be400000000000000000000000000000000000000000000000000000000056ec66955000000000000000000000000000000000000000000000000000000056ec6695500000000000000000000000000000000000000000000000000000004a817c800000000000000000000000000000000000000000000000000000000031aba8555000000000000000000000000000000000000000000000000000000056ec6695500000000000000000000000000000000000000000000000000000000c6aea155000000000000000000000000000000000000000000000000000000018d5d42aa000000000000000000000000000000000000000000000000000000012a05f200000000000000000000000000000000000000000000000000000000012a05f2000000000000000000000000000000000000000000000000000000000027bc86aa00000000000000000000000000000000000000000000000000000000c6aea155000000000000000000000000000000000000000000000000000000000000000e

-----Decoded View---------------
Arg [0] : _token (address): 0x69fa0feE221AD11012BAb0FdB45d444D3D2Ce71c
Arg [1] : investors (address[]): 0x997fb1A5a5c9983A2ffEB9453E719975A2583Dc8,0x34Efe0D4661D52AA79cd2Cc1a7017E8B1309c8C3,0xa8683E7d45cA9E4746b1C7b9Ab4457E6128aF6ab,0x2a645c2794B3791b657126f2108D11E0A863E142,0x35B56618Aad07Af51A3Fb4b80cAFEC6B1175B886,0x43436C54D4d1b5c3bef23b58176b922bCB73fb9A,0x91f9FDf8e27755aC0bb728aD501742abf57e922D,0x07FFFed18d42472d009AD1B3DBb2e894F19EBc56,0x10a63354fEf491942fDCbDB2c1Ad042881A14B26,0x3b1E215FE1138aA9034b5E6De39892e45ac05176,0x471903799A45c6da3eC2a3a6fFAbA20AAeC9e973,0xa4E5D572Ba7b92bF8F8a06574770aFb60c603E00,0x40A392A72F08520c43d12774cb46e3BFcE814E4b,0xA2dCB52F5cF34a84A2eBFb7D937f7051ae4C697B,0x04Ddf96a61C4C44731f04Df4E963F61CFE3c9c6d,0x3cA2BF960C4A0F8217988Dc6EA415aEA09C883ad,0xC523433AC1Cc396fA58698739b3B0531Fe6C4268,0xB3C7C41dC82DC19391424B2EEf6F301D20Ca18CC,0xf01D14cC69B7217FB4CAC7e28Be81D945E28Fb4a,0x6e4116462a0abE7A5e75dD66e44A1cBB6b2006F1,0x367d36478F19395F920CF84FA46aa94d365f5253,0x52E7bdE89Fcbd1e1C656Db1C08DdE45D82447e25,0xeb1eF2FB8bFF1Da1CE36babAFA28ee2d1C526b66,0x52E7bdE89Fcbd1e1C656Db1C08DdE45D82447e25,0xbCd4cB80Ba69376E10082427D6b50a181abCd307,0x145fFa5A63efb3077e48058B90Ac5875B2383042,0xc84096ee48090Fef832D0A77082385ea0EA2993D,0x6AE009d55F095099D6a789278ee7c001e7D0e51e,0x52611C224e44867Ca611cFA0D05535d7ba07dC55,0x9D61B621Ed6cA279EB7f3f2106352117fE9DaDD2,0x3Bc162cEe9ef4e01Dfc641f5Ea77Ab7B06e5B501,0x78Bf8b271510E949ae4479bEd90c0c9a17cf020b,0xf1a785d140b102234315b1f837C5C15853eE8386,0xe139aB520c71C6dD7dF0af0015c2773002742C0c,0x605404298eCa4Eb22ac38A781C7299194be91eac,0xCb1F39532dd59a903d31500E74A879d9dC283b6F,0x3489DBBf6d7ebEdeB503C71ae066CF5DfA54b8a9,0xD09545A4446f5E2F4749a49c7C32B3Ce42a5Fe37,0xDD3ebE16b9E5155dA25F86f301D4D97bd87a8A56,0x2fd6fdB35Afc8B42f744146eC6b114891cE490c3,0x482c7F6217292d40452b68897c8265d49f20A511,0x000000000000000000000000000000000000dEaD
Arg [2] : percentages (uint256[]): 133333333333,33333333333,200000000000,83333333333,83333333333,13333333333,33333333333,26666666666,50000000000,30666666666,30666666666,22000000000,16666666666,16666666666,4000000000,8333333333,20000000000,6666666666,25666666666,1000000000,1333333333,2666666666,1666666666,1666666666,1333333333,3333333333,4000000000,5000000000,2666666666,10000000000,23333333333,23333333333,20000000000,13333333333,23333333333,3333333333,6666666666,5000000000,5000000000,666666666,3333333333,14

-----Encoded View---------------
89 Constructor Arguments found :
Arg [0] : 00000000000000000000000069fa0fee221ad11012bab0fdb45d444d3d2ce71c
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [2] : 00000000000000000000000000000000000000000000000000000000000005c0
Arg [3] : 000000000000000000000000000000000000000000000000000000000000002a
Arg [4] : 000000000000000000000000997fb1a5a5c9983a2ffeb9453e719975a2583dc8
Arg [5] : 00000000000000000000000034efe0d4661d52aa79cd2cc1a7017e8b1309c8c3
Arg [6] : 000000000000000000000000a8683e7d45ca9e4746b1c7b9ab4457e6128af6ab
Arg [7] : 0000000000000000000000002a645c2794b3791b657126f2108d11e0a863e142
Arg [8] : 00000000000000000000000035b56618aad07af51a3fb4b80cafec6b1175b886
Arg [9] : 00000000000000000000000043436c54d4d1b5c3bef23b58176b922bcb73fb9a
Arg [10] : 00000000000000000000000091f9fdf8e27755ac0bb728ad501742abf57e922d
Arg [11] : 00000000000000000000000007fffed18d42472d009ad1b3dbb2e894f19ebc56
Arg [12] : 00000000000000000000000010a63354fef491942fdcbdb2c1ad042881a14b26
Arg [13] : 0000000000000000000000003b1e215fe1138aa9034b5e6de39892e45ac05176
Arg [14] : 000000000000000000000000471903799a45c6da3ec2a3a6ffaba20aaec9e973
Arg [15] : 000000000000000000000000a4e5d572ba7b92bf8f8a06574770afb60c603e00
Arg [16] : 00000000000000000000000040a392a72f08520c43d12774cb46e3bfce814e4b
Arg [17] : 000000000000000000000000a2dcb52f5cf34a84a2ebfb7d937f7051ae4c697b
Arg [18] : 00000000000000000000000004ddf96a61c4c44731f04df4e963f61cfe3c9c6d
Arg [19] : 0000000000000000000000003ca2bf960c4a0f8217988dc6ea415aea09c883ad
Arg [20] : 000000000000000000000000c523433ac1cc396fa58698739b3b0531fe6c4268
Arg [21] : 000000000000000000000000b3c7c41dc82dc19391424b2eef6f301d20ca18cc
Arg [22] : 000000000000000000000000f01d14cc69b7217fb4cac7e28be81d945e28fb4a
Arg [23] : 0000000000000000000000006e4116462a0abe7a5e75dd66e44a1cbb6b2006f1
Arg [24] : 000000000000000000000000367d36478f19395f920cf84fa46aa94d365f5253
Arg [25] : 00000000000000000000000052e7bde89fcbd1e1c656db1c08dde45d82447e25
Arg [26] : 000000000000000000000000eb1ef2fb8bff1da1ce36babafa28ee2d1c526b66
Arg [27] : 00000000000000000000000052e7bde89fcbd1e1c656db1c08dde45d82447e25
Arg [28] : 000000000000000000000000bcd4cb80ba69376e10082427d6b50a181abcd307
Arg [29] : 000000000000000000000000145ffa5a63efb3077e48058b90ac5875b2383042
Arg [30] : 000000000000000000000000c84096ee48090fef832d0a77082385ea0ea2993d
Arg [31] : 0000000000000000000000006ae009d55f095099d6a789278ee7c001e7d0e51e
Arg [32] : 00000000000000000000000052611c224e44867ca611cfa0d05535d7ba07dc55
Arg [33] : 0000000000000000000000009d61b621ed6ca279eb7f3f2106352117fe9dadd2
Arg [34] : 0000000000000000000000003bc162cee9ef4e01dfc641f5ea77ab7b06e5b501
Arg [35] : 00000000000000000000000078bf8b271510e949ae4479bed90c0c9a17cf020b
Arg [36] : 000000000000000000000000f1a785d140b102234315b1f837c5c15853ee8386
Arg [37] : 000000000000000000000000e139ab520c71c6dd7df0af0015c2773002742c0c
Arg [38] : 000000000000000000000000605404298eca4eb22ac38a781c7299194be91eac
Arg [39] : 000000000000000000000000cb1f39532dd59a903d31500e74a879d9dc283b6f
Arg [40] : 0000000000000000000000003489dbbf6d7ebedeb503c71ae066cf5dfa54b8a9
Arg [41] : 000000000000000000000000d09545a4446f5e2f4749a49c7c32b3ce42a5fe37
Arg [42] : 000000000000000000000000dd3ebe16b9e5155da25f86f301d4d97bd87a8a56
Arg [43] : 0000000000000000000000002fd6fdb35afc8b42f744146ec6b114891ce490c3
Arg [44] : 000000000000000000000000482c7f6217292d40452b68897c8265d49f20a511
Arg [45] : 000000000000000000000000000000000000000000000000000000000000dead
Arg [46] : 000000000000000000000000000000000000000000000000000000000000002a
Arg [47] : 0000000000000000000000000000000000000000000000000000001f0b493555
Arg [48] : 00000000000000000000000000000000000000000000000000000007c2d24d55
Arg [49] : 0000000000000000000000000000000000000000000000000000002e90edd000
Arg [50] : 00000000000000000000000000000000000000000000000000000013670dc155
Arg [51] : 00000000000000000000000000000000000000000000000000000013670dc155
Arg [52] : 000000000000000000000000000000000000000000000000000000031aba8555
Arg [53] : 00000000000000000000000000000000000000000000000000000007c2d24d55
Arg [54] : 0000000000000000000000000000000000000000000000000000000635750aaa
Arg [55] : 0000000000000000000000000000000000000000000000000000000ba43b7400
Arg [56] : 0000000000000000000000000000000000000000000000000000000723e032aa
Arg [57] : 0000000000000000000000000000000000000000000000000000000723e032aa
Arg [58] : 000000000000000000000000000000000000000000000000000000051f4d5c00
Arg [59] : 00000000000000000000000000000000000000000000000000000003e16926aa
Arg [60] : 00000000000000000000000000000000000000000000000000000003e16926aa
Arg [61] : 00000000000000000000000000000000000000000000000000000000ee6b2800
Arg [62] : 00000000000000000000000000000000000000000000000000000001f0b49355
Arg [63] : 00000000000000000000000000000000000000000000000000000004a817c800
Arg [64] : 000000000000000000000000000000000000000000000000000000018d5d42aa
Arg [65] : 00000000000000000000000000000000000000000000000000000005f9da40aa
Arg [66] : 000000000000000000000000000000000000000000000000000000003b9aca00
Arg [67] : 000000000000000000000000000000000000000000000000000000004f790d55
Arg [68] : 000000000000000000000000000000000000000000000000000000009ef21aaa
Arg [69] : 00000000000000000000000000000000000000000000000000000000635750aa
Arg [70] : 00000000000000000000000000000000000000000000000000000000635750aa
Arg [71] : 000000000000000000000000000000000000000000000000000000004f790d55
Arg [72] : 00000000000000000000000000000000000000000000000000000000c6aea155
Arg [73] : 00000000000000000000000000000000000000000000000000000000ee6b2800
Arg [74] : 000000000000000000000000000000000000000000000000000000012a05f200
Arg [75] : 000000000000000000000000000000000000000000000000000000009ef21aaa
Arg [76] : 00000000000000000000000000000000000000000000000000000002540be400
Arg [77] : 000000000000000000000000000000000000000000000000000000056ec66955
Arg [78] : 000000000000000000000000000000000000000000000000000000056ec66955
Arg [79] : 00000000000000000000000000000000000000000000000000000004a817c800
Arg [80] : 000000000000000000000000000000000000000000000000000000031aba8555
Arg [81] : 000000000000000000000000000000000000000000000000000000056ec66955
Arg [82] : 00000000000000000000000000000000000000000000000000000000c6aea155
Arg [83] : 000000000000000000000000000000000000000000000000000000018d5d42aa
Arg [84] : 000000000000000000000000000000000000000000000000000000012a05f200
Arg [85] : 000000000000000000000000000000000000000000000000000000012a05f200
Arg [86] : 0000000000000000000000000000000000000000000000000000000027bc86aa
Arg [87] : 00000000000000000000000000000000000000000000000000000000c6aea155
Arg [88] : 000000000000000000000000000000000000000000000000000000000000000e


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