ETH Price: $2,417.53 (-1.25%)

Token

 

Overview

Max Total Supply

0

Holders

0

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
EmissionsPrivateDispenserStatic

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 6 : EmissionsPrivateDispenserStatic.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

contract EmissionsPrivateDispenserStatic is Ownable {
    using SafeERC20 for IERC20;

    IERC20 public token;
    uint256 public vestingTotal;
    uint256 public vestingStart;
    uint256 public vestingDuration;
    mapping(address => uint256) public investorsPercentages; // 1e12 = 100%
    mapping(address => uint256) public investorsClaimedAmount;

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

    constructor(
        address _token,
        uint256 _vestingTotal,
        uint256 _vestingStart,
        uint256 _vestingDuration,
        address[] memory investors,
        uint256[] memory percentages
    ) {
        token = IERC20(_token);
        vestingTotal = _vestingTotal;
        vestingStart = _vestingStart;
        vestingDuration = _vestingDuration;
        require(investors.length == percentages.length);
        uint256 total = 0;
        for (uint256 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, "percentages do not 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 (uint256) {
        uint elapsed = block.timestamp - vestingStart;
        uint vested = vestingTotal * _min(1e12, (elapsed * 1e12) / vestingDuration) / 1e12;
        return ((vested * investorsPercentages[user]) / 1e12) - investorsClaimedAmount[user];
    }

    function claim() public {
        uint256 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 _min(uint a, uint b) private pure returns (uint) {
        return a < b ? a : b;
    }
}

File 2 of 6 : IERC20.sol
// 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);
}

File 3 of 6 : SafeERC20.sol
// 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'
        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
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

File 4 of 6 : Ownable.sol
// 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() {
        _setOwner(_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 {
        _setOwner(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");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

pragma solidity ^0.8.0;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    /**
     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the
     * revert reason using the provided one.
     *
     * _Available since v4.3._
     */
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

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

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

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

Settings
{
  "remappings": [
    "@ensdomains/=node_modules/@ensdomains/",
    "@openzeppelin/=node_modules/@openzeppelin/",
    "eth-gas-reporter/=node_modules/eth-gas-reporter/",
    "hardhat/=node_modules/hardhat/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "bytecodeHash": "ipfs"
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "london",
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_vestingTotal","type":"uint256"},{"internalType":"uint256","name":"_vestingStart","type":"uint256"},{"internalType":"uint256","name":"_vestingDuration","type":"uint256"},{"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":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":"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":[{"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"},{"inputs":[],"name":"vestingDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vestingStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vestingTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b5060405162000ee438038062000ee48339810160408190526200003491620003d8565b6200003f3362000289565b600180546001600160a01b0319166001600160a01b03881617905560028590556003849055600483905580518251146200007857600080fd5b6000805b83518110156200021b5760006001600160a01b0316848281518110620000a657620000a6620004d9565b60200260200101516001600160a01b031603620000f25760405162461bcd60e51b8152602060048201526005602482015264217a65726f60d81b60448201526064015b60405180910390fd5b828181518110620001075762000107620004d9565b602002602001015160056000868481518110620001285762000128620004d9565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055507fc2904c727ad175575b9b830f01355ecf0e057923ad01a9d7b7bc70a5be5af81d8482815181106200018a576200018a620004d9565b6020026020010151848381518110620001a757620001a7620004d9565b6020026020010151604051620001d29291906001600160a01b03929092168252602082015260400190565b60405180910390a1828181518110620001ef57620001ef620004d9565b60200260200101518262000204919062000505565b915080620002128162000520565b9150506200007c565b508064e8d4a51000146200027c5760405162461bcd60e51b815260206004820152602160248201527f70657263656e746167657320646f206e6f742061646420757020746f203130306044820152602560f81b6064820152608401620000e9565b505050505050506200053c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620002f157600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715620003375762000337620002f6565b604052919050565b60006001600160401b038211156200035b576200035b620002f6565b5060051b60200190565b600082601f8301126200037757600080fd5b81516020620003906200038a836200033f565b6200030c565b82815260059290921b84018101918181019086841115620003b057600080fd5b8286015b84811015620003cd5780518352918301918301620003b4565b509695505050505050565b60008060008060008060c08789031215620003f257600080fd5b620003fd87620002d9565b60208881015160408a015160608b015160808c0151949a5091985096509450906001600160401b03808211156200043357600080fd5b818a0191508a601f8301126200044857600080fd5b8151620004596200038a826200033f565b81815260059190911b8301840190848101908d8311156200047957600080fd5b938501935b82851015620004a2576200049285620002d9565b825293850193908501906200047e565b60a08d01519097509450505080831115620004bc57600080fd5b5050620004cc89828a0162000365565b9150509295509295509295565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082198211156200051b576200051b620004ef565b500190565b600060018201620005355762000535620004ef565b5060010190565b610998806200054c6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063515975b811610071578063515975b81461013b578063715018a61461014e5780637a682a9a146101565780638da5cb5b1461015f578063f2fde38b14610184578063fc0c546a1461019757600080fd5b80631514617e146100b9578063254800d4146100d55780633f76adad146100de578063402914f5146100fe5780634865f301146101115780634e71d92d14610131575b600080fd5b6100c260045481565b6040519081526020015b60405180910390f35b6100c260035481565b6100c26100ec3660046107b8565b60056020526000908152604090205481565b6100c261010c3660046107b8565b6101aa565b6100c261011f3660046107b8565b60066020526000908152604090205481565b61013961025e565b005b6101396101493660046107d3565b61032a565b61013961042f565b6100c260025481565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016100cc565b6101396101923660046107b8565b610465565b60015461016c906001600160a01b031681565b600080600354426101bb919061081c565b9050600064e8d4a510006101f164e8d4a510006004548564e8d4a510006101e29190610833565b6101ec9190610852565b610500565b6002546101fe9190610833565b6102089190610852565b6001600160a01b0385166000908152600660209081526040808320546005909252909120549192509064e8d4a51000906102429084610833565b61024c9190610852565b610256919061081c565b949350505050565b6000610269336101aa565b9050600081116102b35760405162461bcd60e51b815260206004820152601060248201526f6e6f7468696e6720746f20636c61696d60801b60448201526064015b60405180910390fd5b33600090815260066020526040812080548392906102d2908490610874565b90915550506001546102ee906001600160a01b03163383610518565b60408051338152602081018390527f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4910160405180910390a150565b6000546001600160a01b031633146103545760405162461bcd60e51b81526004016102aa9061088c565b6001600160a01b0382166000908152600560205260409020546103ab5760405162461bcd60e51b815260206004820152600f60248201526e3737ba1030b71034b73b32b9ba37b960891b60448201526064016102aa565b6001600160a01b0382811660008181526005602081815260408084208054968816808652828620978855958552849055600682528084208054868652828620559390935590815292548151928352928201929092527fc2904c727ad175575b9b830f01355ecf0e057923ad01a9d7b7bc70a5be5af81d910160405180910390a15050565b6000546001600160a01b031633146104595760405162461bcd60e51b81526004016102aa9061088c565b610463600061056f565b565b6000546001600160a01b0316331461048f5760405162461bcd60e51b81526004016102aa9061088c565b6001600160a01b0381166104f45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102aa565b6104fd8161056f565b50565b600081831061050f5781610511565b825b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261056a9084906105bf565b505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000610614826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166106919092919063ffffffff16565b80519091501561056a578080602001905181019061063291906108c1565b61056a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102aa565b6060610256848460008585843b6106ea5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102aa565b600080866001600160a01b031685876040516107069190610913565b60006040518083038185875af1925050503d8060008114610743576040519150601f19603f3d011682016040523d82523d6000602084013e610748565b606091505b5091509150610758828286610763565b979650505050505050565b60608315610772575081610511565b8251156107825782518084602001fd5b8160405162461bcd60e51b81526004016102aa919061092f565b80356001600160a01b03811681146107b357600080fd5b919050565b6000602082840312156107ca57600080fd5b6105118261079c565b600080604083850312156107e657600080fd5b6107ef8361079c565b91506107fd6020840161079c565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b60008282101561082e5761082e610806565b500390565b600081600019048311821515161561084d5761084d610806565b500290565b60008261086f57634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111561088757610887610806565b500190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156108d357600080fd5b8151801515811461051157600080fd5b60005b838110156108fe5781810151838201526020016108e6565b8381111561090d576000848401525b50505050565b600082516109258184602087016108e3565b9190910192915050565b602081526000825180602084015261094e8160408501602087016108e3565b601f01601f1916919091016040019291505056fea264697066735822122061b9d8b4a0c0b35600148018cdb22edb8d58acd1fcc63d1b4e608e1f53744bf564736f6c634300080f003300000000000000000000000069fa0fee221ad11012bab0fdb45d444d3d2ce71c00000000000000000000000000000000000000000018d0bf423c03d8de00000000000000000000000000000000000000000000000000000000000000630f69600000000000000000000000000000000000000000000000000000000001e1338000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000002a00000000000000000000000034efe0d4661d52aa79cd2cc1a7017e8b1309c8c3000000000000000000000000a8683e7d45ca9e4746b1c7b9ab4457e6128af6ab0000000000000000000000002a645c2794b3791b657126f2108d11e0a863e14200000000000000000000000035b56618aad07af51a3fb4b80cafec6b1175b88600000000000000000000000043436c54d4d1b5c3bef23b58176b922bcb73fb9a00000000000000000000000091f9fdf8e27755ac0bb728ad501742abf57e922d00000000000000000000000007fffed18d42472d009ad1b3dbb2e894f19ebc5600000000000000000000000010a63354fef491942fdcbdb2c1ad042881a14b260000000000000000000000003b1e215fe1138aa9034b5e6de39892e45ac05176000000000000000000000000471903799a45c6da3ec2a3a6ffaba20aaec9e973000000000000000000000000a4e5d572ba7b92bf8f8a06574770afb60c603e0000000000000000000000000040a392a72f08520c43d12774cb46e3bfce814e4b000000000000000000000000a2dcb52f5cf34a84a2ebfb7d937f7051ae4c697b00000000000000000000000004ddf96a61c4c44731f04df4e963f61cfe3c9c6d0000000000000000000000003ca2bf960c4a0f8217988dc6ea415aea09c883ad000000000000000000000000c523433ac1cc396fa58698739b3b0531fe6c4268000000000000000000000000b3c7c41dc82dc19391424b2eef6f301d20ca18cc000000000000000000000000f01d14cc69b7217fb4cac7e28be81d945e28fb4a0000000000000000000000006e4116462a0abe7a5e75dd66e44a1cbb6b2006f1000000000000000000000000367d36478f19395f920cf84fa46aa94d365f525300000000000000000000000052e7bde89fcbd1e1c656db1c08dde45d82447e25000000000000000000000000eb1ef2fb8bff1da1ce36babafa28ee2d1c526b66000000000000000000000000f76dbc5d9a7465ecec49700054bf27f88cf9ad05000000000000000000000000bcd4cb80ba69376e10082427d6b50a181abcd307000000000000000000000000145ffa5a63efb3077e48058b90ac5875b2383042000000000000000000000000c84096ee48090fef832d0a77082385ea0ea2993d0000000000000000000000006ae009d55f095099d6a789278ee7c001e7d0e51e00000000000000000000000052611c224e44867ca611cfa0d05535d7ba07dc550000000000000000000000009d61b621ed6ca279eb7f3f2106352117fe9dadd20000000000000000000000003bc162cee9ef4e01dfc641f5ea77ab7b06e5b50100000000000000000000000078bf8b271510e949ae4479bed90c0c9a17cf020b000000000000000000000000f1a785d140b102234315b1f837c5c15853ee8386000000000000000000000000e139ab520c71c6dd7df0af0015c2773002742c0c000000000000000000000000605404298eca4eb22ac38a781c7299194be91eac000000000000000000000000cb1f39532dd59a903d31500e74a879d9dc283b6f0000000000000000000000003489dbbf6d7ebedeb503c71ae066cf5dfa54b8a9000000000000000000000000d09545a4446f5e2f4749a49c7c32b3ce42a5fe37000000000000000000000000dd3ebe16b9e5155da25f86f301d4d97bd87a8a560000000000000000000000002fd6fdb35afc8b42f744146ec6b114891ce490c3000000000000000000000000482c7f6217292d40452b68897c8265d49f20a511000000000000000000000000997fb1a5a5c9983a2ffeb9453e719975a2583dc8000000000000000000000000000000000000000000000000000000000000dead000000000000000000000000000000000000000000000000000000000000002a00000000000000000000000000000000000000000000000000000007c2d24d550000000000000000000000000000000000000000000000000000002e90edd00000000000000000000000000000000000000000000000000000000013670dc15500000000000000000000000000000000000000000000000000000013670dc155000000000000000000000000000000000000000000000000000000031aba855500000000000000000000000000000000000000000000000000000007c2d24d550000000000000000000000000000000000000000000000000000000635750aaa0000000000000000000000000000000000000000000000000000000ba43b74000000000000000000000000000000000000000000000000000000000723e032aa0000000000000000000000000000000000000000000000000000000723e032aa000000000000000000000000000000000000000000000000000000051f4d5c0000000000000000000000000000000000000000000000000000000003e16926aa00000000000000000000000000000000000000000000000000000003e16926aa00000000000000000000000000000000000000000000000000000000ee6b280000000000000000000000000000000000000000000000000000000001f0b4935500000000000000000000000000000000000000000000000000000004a817c800000000000000000000000000000000000000000000000000000000018d5d42aa00000000000000000000000000000000000000000000000000000005f9da40aa000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000004f790d55000000000000000000000000000000000000000000000000000000009ef21aaa00000000000000000000000000000000000000000000000000000000635750aa00000000000000000000000000000000000000000000000000000000635750aa000000000000000000000000000000000000000000000000000000004f790d5500000000000000000000000000000000000000000000000000000000c6aea15500000000000000000000000000000000000000000000000000000000ee6b2800000000000000000000000000000000000000000000000000000000012a05f200000000000000000000000000000000000000000000000000000000009ef21aaa00000000000000000000000000000000000000000000000000000002540be400000000000000000000000000000000000000000000000000000000056ec66955000000000000000000000000000000000000000000000000000000056ec6695500000000000000000000000000000000000000000000000000000004a817c800000000000000000000000000000000000000000000000000000000031aba8555000000000000000000000000000000000000000000000000000000056ec6695500000000000000000000000000000000000000000000000000000000c6aea155000000000000000000000000000000000000000000000000000000018d5d42aa000000000000000000000000000000000000000000000000000000012a05f200000000000000000000000000000000000000000000000000000000012a05f2000000000000000000000000000000000000000000000000000000000027bc86aa00000000000000000000000000000000000000000000000000000000c6aea1550000000000000000000000000000000000000000000000000000001f0b493555000000000000000000000000000000000000000000000000000000000000000e

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100b45760003560e01c8063515975b811610071578063515975b81461013b578063715018a61461014e5780637a682a9a146101565780638da5cb5b1461015f578063f2fde38b14610184578063fc0c546a1461019757600080fd5b80631514617e146100b9578063254800d4146100d55780633f76adad146100de578063402914f5146100fe5780634865f301146101115780634e71d92d14610131575b600080fd5b6100c260045481565b6040519081526020015b60405180910390f35b6100c260035481565b6100c26100ec3660046107b8565b60056020526000908152604090205481565b6100c261010c3660046107b8565b6101aa565b6100c261011f3660046107b8565b60066020526000908152604090205481565b61013961025e565b005b6101396101493660046107d3565b61032a565b61013961042f565b6100c260025481565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016100cc565b6101396101923660046107b8565b610465565b60015461016c906001600160a01b031681565b600080600354426101bb919061081c565b9050600064e8d4a510006101f164e8d4a510006004548564e8d4a510006101e29190610833565b6101ec9190610852565b610500565b6002546101fe9190610833565b6102089190610852565b6001600160a01b0385166000908152600660209081526040808320546005909252909120549192509064e8d4a51000906102429084610833565b61024c9190610852565b610256919061081c565b949350505050565b6000610269336101aa565b9050600081116102b35760405162461bcd60e51b815260206004820152601060248201526f6e6f7468696e6720746f20636c61696d60801b60448201526064015b60405180910390fd5b33600090815260066020526040812080548392906102d2908490610874565b90915550506001546102ee906001600160a01b03163383610518565b60408051338152602081018390527f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4910160405180910390a150565b6000546001600160a01b031633146103545760405162461bcd60e51b81526004016102aa9061088c565b6001600160a01b0382166000908152600560205260409020546103ab5760405162461bcd60e51b815260206004820152600f60248201526e3737ba1030b71034b73b32b9ba37b960891b60448201526064016102aa565b6001600160a01b0382811660008181526005602081815260408084208054968816808652828620978855958552849055600682528084208054868652828620559390935590815292548151928352928201929092527fc2904c727ad175575b9b830f01355ecf0e057923ad01a9d7b7bc70a5be5af81d910160405180910390a15050565b6000546001600160a01b031633146104595760405162461bcd60e51b81526004016102aa9061088c565b610463600061056f565b565b6000546001600160a01b0316331461048f5760405162461bcd60e51b81526004016102aa9061088c565b6001600160a01b0381166104f45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102aa565b6104fd8161056f565b50565b600081831061050f5781610511565b825b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261056a9084906105bf565b505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000610614826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166106919092919063ffffffff16565b80519091501561056a578080602001905181019061063291906108c1565b61056a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102aa565b6060610256848460008585843b6106ea5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102aa565b600080866001600160a01b031685876040516107069190610913565b60006040518083038185875af1925050503d8060008114610743576040519150601f19603f3d011682016040523d82523d6000602084013e610748565b606091505b5091509150610758828286610763565b979650505050505050565b60608315610772575081610511565b8251156107825782518084602001fd5b8160405162461bcd60e51b81526004016102aa919061092f565b80356001600160a01b03811681146107b357600080fd5b919050565b6000602082840312156107ca57600080fd5b6105118261079c565b600080604083850312156107e657600080fd5b6107ef8361079c565b91506107fd6020840161079c565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b60008282101561082e5761082e610806565b500390565b600081600019048311821515161561084d5761084d610806565b500290565b60008261086f57634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111561088757610887610806565b500190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156108d357600080fd5b8151801515811461051157600080fd5b60005b838110156108fe5781810151838201526020016108e6565b8381111561090d576000848401525b50505050565b600082516109258184602087016108e3565b9190910192915050565b602081526000825180602084015261094e8160408501602087016108e3565b601f01601f1916919091016040019291505056fea264697066735822122061b9d8b4a0c0b35600148018cdb22edb8d58acd1fcc63d1b4e608e1f53744bf564736f6c634300080f0033

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

00000000000000000000000069fa0fee221ad11012bab0fdb45d444d3d2ce71c00000000000000000000000000000000000000000018d0bf423c03d8de00000000000000000000000000000000000000000000000000000000000000630f69600000000000000000000000000000000000000000000000000000000001e1338000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000620000000000000000000000000000000000000000000000000000000000000002a00000000000000000000000034efe0d4661d52aa79cd2cc1a7017e8b1309c8c3000000000000000000000000a8683e7d45ca9e4746b1c7b9ab4457e6128af6ab0000000000000000000000002a645c2794b3791b657126f2108d11e0a863e14200000000000000000000000035b56618aad07af51a3fb4b80cafec6b1175b88600000000000000000000000043436c54d4d1b5c3bef23b58176b922bcb73fb9a00000000000000000000000091f9fdf8e27755ac0bb728ad501742abf57e922d00000000000000000000000007fffed18d42472d009ad1b3dbb2e894f19ebc5600000000000000000000000010a63354fef491942fdcbdb2c1ad042881a14b260000000000000000000000003b1e215fe1138aa9034b5e6de39892e45ac05176000000000000000000000000471903799a45c6da3ec2a3a6ffaba20aaec9e973000000000000000000000000a4e5d572ba7b92bf8f8a06574770afb60c603e0000000000000000000000000040a392a72f08520c43d12774cb46e3bfce814e4b000000000000000000000000a2dcb52f5cf34a84a2ebfb7d937f7051ae4c697b00000000000000000000000004ddf96a61c4c44731f04df4e963f61cfe3c9c6d0000000000000000000000003ca2bf960c4a0f8217988dc6ea415aea09c883ad000000000000000000000000c523433ac1cc396fa58698739b3b0531fe6c4268000000000000000000000000b3c7c41dc82dc19391424b2eef6f301d20ca18cc000000000000000000000000f01d14cc69b7217fb4cac7e28be81d945e28fb4a0000000000000000000000006e4116462a0abe7a5e75dd66e44a1cbb6b2006f1000000000000000000000000367d36478f19395f920cf84fa46aa94d365f525300000000000000000000000052e7bde89fcbd1e1c656db1c08dde45d82447e25000000000000000000000000eb1ef2fb8bff1da1ce36babafa28ee2d1c526b66000000000000000000000000f76dbc5d9a7465ecec49700054bf27f88cf9ad05000000000000000000000000bcd4cb80ba69376e10082427d6b50a181abcd307000000000000000000000000145ffa5a63efb3077e48058b90ac5875b2383042000000000000000000000000c84096ee48090fef832d0a77082385ea0ea2993d0000000000000000000000006ae009d55f095099d6a789278ee7c001e7d0e51e00000000000000000000000052611c224e44867ca611cfa0d05535d7ba07dc550000000000000000000000009d61b621ed6ca279eb7f3f2106352117fe9dadd20000000000000000000000003bc162cee9ef4e01dfc641f5ea77ab7b06e5b50100000000000000000000000078bf8b271510e949ae4479bed90c0c9a17cf020b000000000000000000000000f1a785d140b102234315b1f837c5c15853ee8386000000000000000000000000e139ab520c71c6dd7df0af0015c2773002742c0c000000000000000000000000605404298eca4eb22ac38a781c7299194be91eac000000000000000000000000cb1f39532dd59a903d31500e74a879d9dc283b6f0000000000000000000000003489dbbf6d7ebedeb503c71ae066cf5dfa54b8a9000000000000000000000000d09545a4446f5e2f4749a49c7c32b3ce42a5fe37000000000000000000000000dd3ebe16b9e5155da25f86f301d4d97bd87a8a560000000000000000000000002fd6fdb35afc8b42f744146ec6b114891ce490c3000000000000000000000000482c7f6217292d40452b68897c8265d49f20a511000000000000000000000000997fb1a5a5c9983a2ffeb9453e719975a2583dc8000000000000000000000000000000000000000000000000000000000000dead000000000000000000000000000000000000000000000000000000000000002a00000000000000000000000000000000000000000000000000000007c2d24d550000000000000000000000000000000000000000000000000000002e90edd00000000000000000000000000000000000000000000000000000000013670dc15500000000000000000000000000000000000000000000000000000013670dc155000000000000000000000000000000000000000000000000000000031aba855500000000000000000000000000000000000000000000000000000007c2d24d550000000000000000000000000000000000000000000000000000000635750aaa0000000000000000000000000000000000000000000000000000000ba43b74000000000000000000000000000000000000000000000000000000000723e032aa0000000000000000000000000000000000000000000000000000000723e032aa000000000000000000000000000000000000000000000000000000051f4d5c0000000000000000000000000000000000000000000000000000000003e16926aa00000000000000000000000000000000000000000000000000000003e16926aa00000000000000000000000000000000000000000000000000000000ee6b280000000000000000000000000000000000000000000000000000000001f0b4935500000000000000000000000000000000000000000000000000000004a817c800000000000000000000000000000000000000000000000000000000018d5d42aa00000000000000000000000000000000000000000000000000000005f9da40aa000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000004f790d55000000000000000000000000000000000000000000000000000000009ef21aaa00000000000000000000000000000000000000000000000000000000635750aa00000000000000000000000000000000000000000000000000000000635750aa000000000000000000000000000000000000000000000000000000004f790d5500000000000000000000000000000000000000000000000000000000c6aea15500000000000000000000000000000000000000000000000000000000ee6b2800000000000000000000000000000000000000000000000000000000012a05f200000000000000000000000000000000000000000000000000000000009ef21aaa00000000000000000000000000000000000000000000000000000002540be400000000000000000000000000000000000000000000000000000000056ec66955000000000000000000000000000000000000000000000000000000056ec6695500000000000000000000000000000000000000000000000000000004a817c800000000000000000000000000000000000000000000000000000000031aba8555000000000000000000000000000000000000000000000000000000056ec6695500000000000000000000000000000000000000000000000000000000c6aea155000000000000000000000000000000000000000000000000000000018d5d42aa000000000000000000000000000000000000000000000000000000012a05f200000000000000000000000000000000000000000000000000000000012a05f2000000000000000000000000000000000000000000000000000000000027bc86aa00000000000000000000000000000000000000000000000000000000c6aea1550000000000000000000000000000000000000000000000000000001f0b493555000000000000000000000000000000000000000000000000000000000000000e

-----Decoded View---------------
Arg [0] : _token (address): 0x69fa0feE221AD11012BAb0FdB45d444D3D2Ce71c
Arg [1] : _vestingTotal (uint256): 30000000000000000000000000
Arg [2] : _vestingStart (uint256): 1661954400
Arg [3] : _vestingDuration (uint256): 31536000
Arg [4] : investors (address[]): 0x34Efe0D4661D52AA79cd2Cc1a7017E8B1309c8C3,0xa8683E7d45cA9E4746b1C7b9Ab4457E6128aF6ab,0x2a645c2794B3791b657126f2108D11E0A863E142,0x35B56618Aad07Af51A3Fb4b80cAFEC6B1175B886,0x43436C54D4d1b5c3bef23b58176b922bCB73fb9A,0x91f9FDf8e27755aC0bb728aD501742abf57e922D,0x07FFFed18d42472d009AD1B3DBb2e894F19EBc56,0x10a63354fEf491942fDCbDB2c1Ad042881A14B26,0x3b1E215FE1138aA9034b5E6De39892e45ac05176,0x471903799A45c6da3eC2a3a6fFAbA20AAeC9e973,0xa4E5D572Ba7b92bF8F8a06574770aFb60c603E00,0x40A392A72F08520c43d12774cb46e3BFcE814E4b,0xA2dCB52F5cF34a84A2eBFb7D937f7051ae4C697B,0x04Ddf96a61C4C44731f04Df4E963F61CFE3c9c6d,0x3cA2BF960C4A0F8217988Dc6EA415aEA09C883ad,0xC523433AC1Cc396fA58698739b3B0531Fe6C4268,0xB3C7C41dC82DC19391424B2EEf6F301D20Ca18CC,0xf01D14cC69B7217FB4CAC7e28Be81D945E28Fb4a,0x6e4116462a0abE7A5e75dD66e44A1cBB6b2006F1,0x367d36478F19395F920CF84FA46aa94d365f5253,0x52E7bdE89Fcbd1e1C656Db1C08DdE45D82447e25,0xeb1eF2FB8bFF1Da1CE36babAFA28ee2d1C526b66,0xF76dbc5d9A7465EcEc49700054bF27f88cf9ad05,0xbCd4cB80Ba69376E10082427D6b50a181abCd307,0x145fFa5A63efb3077e48058B90Ac5875B2383042,0xc84096ee48090Fef832D0A77082385ea0EA2993D,0x6AE009d55F095099D6a789278ee7c001e7D0e51e,0x52611C224e44867Ca611cFA0D05535d7ba07dC55,0x9D61B621Ed6cA279EB7f3f2106352117fE9DaDD2,0x3Bc162cEe9ef4e01Dfc641f5Ea77Ab7B06e5B501,0x78Bf8b271510E949ae4479bEd90c0c9a17cf020b,0xf1a785d140b102234315b1f837C5C15853eE8386,0xe139aB520c71C6dD7dF0af0015c2773002742C0c,0x605404298eCa4Eb22ac38A781C7299194be91eac,0xCb1F39532dd59a903d31500E74A879d9dC283b6F,0x3489DBBf6d7ebEdeB503C71ae066CF5DfA54b8a9,0xD09545A4446f5E2F4749a49c7C32B3Ce42a5Fe37,0xDD3ebE16b9E5155dA25F86f301D4D97bd87a8A56,0x2fd6fdB35Afc8B42f744146eC6b114891cE490c3,0x482c7F6217292d40452b68897c8265d49f20A511,0x997fb1A5a5c9983A2ffEB9453E719975A2583Dc8,0x000000000000000000000000000000000000dEaD
Arg [5] : percentages (uint256[]): 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,133333333333,14

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


Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.