Contract 0x039AA5d3FC07f6f265656793A8c437055b653d68

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x097cd3418ed8c383a0dcab37ac4d31ed6edc2ae27efab18722c13da4c58ef8580x60806040103477962022-02-01 15:14:00104 days 54 mins ago0x1d9d82344e76769eb727521822d1eacb834a9024 IN  Create: LaunchEventLens0 AVAX0.04725744426
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
LaunchEventLens

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

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

pragma solidity 0.8.6;

import "./interfaces/ILaunchEvent.sol";
import "./interfaces/IRocketJoeFactory.sol";

/// @title Launch Event Lens
/// @author Trader Joe
/// @notice Helper contract to fetch launch event data
contract LaunchEventLens {
    struct LaunchEventData {
        uint256 auctionStart;
        uint256 avaxAllocated;
        uint256 avaxReserve;
        uint256 floorPrice;
        uint256 incentives;
        uint256 issuerTimelock;
        uint256 maxAllocation;
        uint256 maxWithdrawPenalty;
        uint256 pairBalance;
        uint256 penalty;
        uint256 phaseOneDuration;
        uint256 phaseOneNoFeeDuration;
        uint256 phaseTwoDuration;
        uint256 rJoePerAvax;
        uint256 tokenAllocated;
        uint256 tokenDecimals;
        uint256 tokenIncentivesPercent;
        uint256 tokenReserve;
        uint256 userTimelock;
        address id;
        address token;
        address pair;
        ILaunchEvent.UserInfo userInfo;
    }

    IRocketJoeFactory public rocketJoeFactory;

    /// @notice Create a new instance with required parameters
    /// @param _rocketJoeFactory Address of the RocketJoeFactory
    constructor(address _rocketJoeFactory) {
        rocketJoeFactory = IRocketJoeFactory(_rocketJoeFactory);
    }

    /// @notice Get all launch event datas
    /// @param _offset Index to start at when looking up launch events
    /// @param _limit Maximum number of launch event datas to return
    /// @return Array of all launch event datas
    function getAllLaunchEvents(uint256 _offset, uint256 _limit)
        external
        view
        returns (LaunchEventData[] memory)
    {
        LaunchEventData[] memory launchEventDatas;
        uint256 numLaunchEvents = rocketJoeFactory.numLaunchEvents();

        if (_offset >= numLaunchEvents || _limit == 0) {
            return launchEventDatas;
        }

        uint256 end = _offset + _limit > numLaunchEvents
            ? numLaunchEvents
            : _offset + _limit;
        launchEventDatas = new LaunchEventData[](end - _offset);

        for (uint256 i = _offset; i < end; i++) {
            address launchEventAddr = rocketJoeFactory.allRJLaunchEvents(i);
            ILaunchEvent launchEvent = ILaunchEvent(launchEventAddr);
            launchEventDatas[i] = getLaunchEventData(launchEvent);
        }

        return launchEventDatas;
    }

    /// @notice Get all launch event datas with a given `_user`
    /// @param _offset Index to start at when looking up launch events
    /// @param _limit Maximum number of launch event datas to return
    /// @param _user User to lookup
    /// @return Array of all launch event datas with user info
    function getAllLaunchEventsWithUser(
        uint256 _offset,
        uint256 _limit,
        address _user
    ) external view returns (LaunchEventData[] memory) {
        LaunchEventData[] memory launchEventDatas;
        uint256 numLaunchEvents = rocketJoeFactory.numLaunchEvents();

        if (_offset >= numLaunchEvents || _limit == 0) {
            return launchEventDatas;
        }

        uint256 end = _offset + _limit > numLaunchEvents
            ? numLaunchEvents
            : _offset + _limit;
        launchEventDatas = new LaunchEventData[](end - _offset);

        for (uint256 i = _offset; i < end; i++) {
            address launchEventAddr = rocketJoeFactory.allRJLaunchEvents(i);
            ILaunchEvent launchEvent = ILaunchEvent(launchEventAddr);
            launchEventDatas[i] = getUserLaunchEventData(launchEvent, _user);
        }

        return launchEventDatas;
    }

    /// @notice Get launch event data for a given launch event and user
    /// @param _launchEvent Launch event to lookup
    /// @param _user User to look up
    /// @return Launch event data for the given `_launchEvent` and `_user`
    function getUserLaunchEventData(ILaunchEvent _launchEvent, address _user)
        public
        view
        returns (LaunchEventData memory)
    {
        LaunchEventData memory launchEventData = getLaunchEventData(
            _launchEvent
        );
        launchEventData.incentives = _launchEvent.getIncentives(_user);
        launchEventData.pairBalance = _launchEvent.pairBalance(_user);
        launchEventData.userInfo = _launchEvent.getUserInfo(_user);
        return launchEventData;
    }

    /// @notice Get launch event data for a given launch event
    /// @param _launchEvent Launch event to lookup
    /// @return Launch event data for the given `_launchEvent`
    function getLaunchEventData(ILaunchEvent _launchEvent)
        public
        view
        returns (LaunchEventData memory)
    {
        (uint256 avaxReserve, uint256 tokenReserve) = _launchEvent
            .getReserves();
        IERC20Metadata token = _launchEvent.token();

        return
            LaunchEventData({
                auctionStart: _launchEvent.auctionStart(),
                avaxAllocated: _launchEvent.avaxAllocated(),
                avaxReserve: avaxReserve,
                floorPrice: _launchEvent.floorPrice(),
                incentives: 0,
                issuerTimelock: _launchEvent.issuerTimelock(),
                maxAllocation: _launchEvent.maxAllocation(),
                maxWithdrawPenalty: _launchEvent.maxWithdrawPenalty(),
                penalty: _launchEvent.getPenalty(),
                pairBalance: 0,
                phaseOneDuration: _launchEvent.phaseOneDuration(),
                phaseOneNoFeeDuration: _launchEvent.phaseOneNoFeeDuration(),
                phaseTwoDuration: _launchEvent.phaseTwoDuration(),
                rJoePerAvax: _launchEvent.rJoePerAvax(),
                tokenAllocated: _launchEvent.tokenAllocated(),
                tokenDecimals: token.decimals(),
                tokenIncentivesPercent: _launchEvent.tokenIncentivesPercent(),
                tokenReserve: tokenReserve,
                userTimelock: _launchEvent.userTimelock(),
                id: address(_launchEvent),
                token: address(token),
                pair: address(_launchEvent.pair()),
                userInfo: ILaunchEvent.UserInfo({
                    allocation: 0,
                    balance: 0,
                    hasWithdrawnPair: false,
                    hasWithdrawnIncentives: false
                })
            });
    }
}

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

pragma solidity 0.8.6;

import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";

import "./IJoePair.sol";

interface ILaunchEvent {
    struct UserInfo {
        uint256 allocation;
        uint256 balance;
        bool hasWithdrawnPair;
        bool hasWithdrawnIncentives;
    }

    function initialize(
        address _issuer,
        uint256 _phaseOne,
        address _token,
        uint256 _tokenIncentivesPercent,
        uint256 _floorPrice,
        uint256 _maxWithdrawPenalty,
        uint256 _fixedWithdrawPenalty,
        uint256 _maxAllocation,
        uint256 _userTimelock,
        uint256 _issuerTimelock
    ) external;

    function auctionStart() external view returns (uint256);

    function phaseOneDuration() external view returns (uint256);

    function phaseOneNoFeeDuration() external view returns (uint256);

    function phaseTwoDuration() external view returns (uint256);

    function tokenIncentivesPercent() external view returns (uint256);

    function floorPrice() external view returns (uint256);

    function userTimelock() external view returns (uint256);

    function issuerTimelock() external view returns (uint256);

    function maxAllocation() external view returns (uint256);

    function maxWithdrawPenalty() external view returns (uint256);

    function fixedWithdrawPenalty() external view returns (uint256);

    function rJoePerAvax() external view returns (uint256);

    function getReserves() external view returns (uint256, uint256);

    function token() external view returns (IERC20Metadata);

    function pair() external view returns (IJoePair);

    function avaxAllocated() external view returns (uint256);

    function tokenAllocated() external view returns (uint256);

    function pairBalance(address) external view returns (uint256);

    function getUserInfo(address) external view returns (UserInfo memory);

    function getPenalty() external view returns (uint256);

    function getIncentives(address) external view returns (uint256);
}

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

pragma solidity 0.8.6;

interface IRocketJoeFactory {
    event RJLaunchEventCreated(
        address indexed launchEvent,
        address indexed issuer,
        address indexed token,
        uint256 phaseOneStartTime,
        uint256 phaseTwoStartTime,
        uint256 phaseThreeStartTime,
        address rJoe,
        uint256 rJoePerAvax
    );
    event SetRJoe(address indexed token);
    event SetPenaltyCollector(address indexed collector);
    event SetRouter(address indexed router);
    event SetFactory(address indexed factory);
    event SetRJoePerAvax(uint256 rJoePerAvax);
    event SetEventImplementation(address indexed implementation);
    event IssuingTokenDeposited(address indexed token, uint256 amount);
    event PhaseDurationChanged(uint256 phase, uint256 duration);
    event NoFeeDurationChanged(uint256 duration);

    function eventImplementation() external view returns (address);

    function penaltyCollector() external view returns (address);

    function wavax() external view returns (address);

    function rJoePerAvax() external view returns (uint256);

    function router() external view returns (address);

    function factory() external view returns (address);

    function rJoe() external view returns (address);

    function phaseOneDuration() external view returns (uint256);

    function phaseOneNoFeeDuration() external view returns (uint256);

    function phaseTwoDuration() external view returns (uint256);

    function getRJLaunchEvent(address token)
        external
        view
        returns (address launchEvent);

    function isRJLaunchEvent(address token) external view returns (bool);

    function allRJLaunchEvents(uint256) external view returns (address pair);

    function numLaunchEvents() external view returns (uint256);

    function createRJLaunchEvent(
        address _issuer,
        uint256 _phaseOneStartTime,
        address _token,
        uint256 _tokenAmount,
        uint256 _tokenIncentivesPercent,
        uint256 _floorPrice,
        uint256 _maxWithdrawPenalty,
        uint256 _fixedWithdrawPenalty,
        uint256 _maxAllocation,
        uint256 _userTimelock,
        uint256 _issuerTimelock
    ) external returns (address pair);

    function setPenaltyCollector(address) external;

    function setRouter(address) external;

    function setFactory(address) external;

    function setRJoePerAvax(uint256) external;

    function setPhaseDuration(uint256, uint256) external;

    function setPhaseOneNoFeeDuration(uint256) external;

    function setEventImplementation(address) external;
}

File 4 of 6 : IERC20Metadata.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;

import "../IERC20.sol";

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

File 5 of 6 : IJoePair.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity 0.8.6;

interface IJoePair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 value);

    function name() external pure returns (string memory);

    function symbol() external pure returns (string memory);

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

    function balanceOf(address owner) external view returns (uint256);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);
    event Burn(
        address indexed sender,
        uint256 amount0,
        uint256 amount1,
        address indexed to
    );
    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function burn(address to)
        external
        returns (uint256 amount0, uint256 amount1);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

File 6 of 6 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/IERC20.sol)

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);
}

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

Contract ABI

[{"inputs":[{"internalType":"address","name":"_rocketJoeFactory","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"_offset","type":"uint256"},{"internalType":"uint256","name":"_limit","type":"uint256"}],"name":"getAllLaunchEvents","outputs":[{"components":[{"internalType":"uint256","name":"auctionStart","type":"uint256"},{"internalType":"uint256","name":"avaxAllocated","type":"uint256"},{"internalType":"uint256","name":"avaxReserve","type":"uint256"},{"internalType":"uint256","name":"floorPrice","type":"uint256"},{"internalType":"uint256","name":"incentives","type":"uint256"},{"internalType":"uint256","name":"issuerTimelock","type":"uint256"},{"internalType":"uint256","name":"maxAllocation","type":"uint256"},{"internalType":"uint256","name":"maxWithdrawPenalty","type":"uint256"},{"internalType":"uint256","name":"pairBalance","type":"uint256"},{"internalType":"uint256","name":"penalty","type":"uint256"},{"internalType":"uint256","name":"phaseOneDuration","type":"uint256"},{"internalType":"uint256","name":"phaseOneNoFeeDuration","type":"uint256"},{"internalType":"uint256","name":"phaseTwoDuration","type":"uint256"},{"internalType":"uint256","name":"rJoePerAvax","type":"uint256"},{"internalType":"uint256","name":"tokenAllocated","type":"uint256"},{"internalType":"uint256","name":"tokenDecimals","type":"uint256"},{"internalType":"uint256","name":"tokenIncentivesPercent","type":"uint256"},{"internalType":"uint256","name":"tokenReserve","type":"uint256"},{"internalType":"uint256","name":"userTimelock","type":"uint256"},{"internalType":"address","name":"id","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"pair","type":"address"},{"components":[{"internalType":"uint256","name":"allocation","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"bool","name":"hasWithdrawnPair","type":"bool"},{"internalType":"bool","name":"hasWithdrawnIncentives","type":"bool"}],"internalType":"struct ILaunchEvent.UserInfo","name":"userInfo","type":"tuple"}],"internalType":"struct LaunchEventLens.LaunchEventData[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_offset","type":"uint256"},{"internalType":"uint256","name":"_limit","type":"uint256"},{"internalType":"address","name":"_user","type":"address"}],"name":"getAllLaunchEventsWithUser","outputs":[{"components":[{"internalType":"uint256","name":"auctionStart","type":"uint256"},{"internalType":"uint256","name":"avaxAllocated","type":"uint256"},{"internalType":"uint256","name":"avaxReserve","type":"uint256"},{"internalType":"uint256","name":"floorPrice","type":"uint256"},{"internalType":"uint256","name":"incentives","type":"uint256"},{"internalType":"uint256","name":"issuerTimelock","type":"uint256"},{"internalType":"uint256","name":"maxAllocation","type":"uint256"},{"internalType":"uint256","name":"maxWithdrawPenalty","type":"uint256"},{"internalType":"uint256","name":"pairBalance","type":"uint256"},{"internalType":"uint256","name":"penalty","type":"uint256"},{"internalType":"uint256","name":"phaseOneDuration","type":"uint256"},{"internalType":"uint256","name":"phaseOneNoFeeDuration","type":"uint256"},{"internalType":"uint256","name":"phaseTwoDuration","type":"uint256"},{"internalType":"uint256","name":"rJoePerAvax","type":"uint256"},{"internalType":"uint256","name":"tokenAllocated","type":"uint256"},{"internalType":"uint256","name":"tokenDecimals","type":"uint256"},{"internalType":"uint256","name":"tokenIncentivesPercent","type":"uint256"},{"internalType":"uint256","name":"tokenReserve","type":"uint256"},{"internalType":"uint256","name":"userTimelock","type":"uint256"},{"internalType":"address","name":"id","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"pair","type":"address"},{"components":[{"internalType":"uint256","name":"allocation","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"bool","name":"hasWithdrawnPair","type":"bool"},{"internalType":"bool","name":"hasWithdrawnIncentives","type":"bool"}],"internalType":"struct ILaunchEvent.UserInfo","name":"userInfo","type":"tuple"}],"internalType":"struct LaunchEventLens.LaunchEventData[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ILaunchEvent","name":"_launchEvent","type":"address"}],"name":"getLaunchEventData","outputs":[{"components":[{"internalType":"uint256","name":"auctionStart","type":"uint256"},{"internalType":"uint256","name":"avaxAllocated","type":"uint256"},{"internalType":"uint256","name":"avaxReserve","type":"uint256"},{"internalType":"uint256","name":"floorPrice","type":"uint256"},{"internalType":"uint256","name":"incentives","type":"uint256"},{"internalType":"uint256","name":"issuerTimelock","type":"uint256"},{"internalType":"uint256","name":"maxAllocation","type":"uint256"},{"internalType":"uint256","name":"maxWithdrawPenalty","type":"uint256"},{"internalType":"uint256","name":"pairBalance","type":"uint256"},{"internalType":"uint256","name":"penalty","type":"uint256"},{"internalType":"uint256","name":"phaseOneDuration","type":"uint256"},{"internalType":"uint256","name":"phaseOneNoFeeDuration","type":"uint256"},{"internalType":"uint256","name":"phaseTwoDuration","type":"uint256"},{"internalType":"uint256","name":"rJoePerAvax","type":"uint256"},{"internalType":"uint256","name":"tokenAllocated","type":"uint256"},{"internalType":"uint256","name":"tokenDecimals","type":"uint256"},{"internalType":"uint256","name":"tokenIncentivesPercent","type":"uint256"},{"internalType":"uint256","name":"tokenReserve","type":"uint256"},{"internalType":"uint256","name":"userTimelock","type":"uint256"},{"internalType":"address","name":"id","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"pair","type":"address"},{"components":[{"internalType":"uint256","name":"allocation","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"bool","name":"hasWithdrawnPair","type":"bool"},{"internalType":"bool","name":"hasWithdrawnIncentives","type":"bool"}],"internalType":"struct ILaunchEvent.UserInfo","name":"userInfo","type":"tuple"}],"internalType":"struct LaunchEventLens.LaunchEventData","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract ILaunchEvent","name":"_launchEvent","type":"address"},{"internalType":"address","name":"_user","type":"address"}],"name":"getUserLaunchEventData","outputs":[{"components":[{"internalType":"uint256","name":"auctionStart","type":"uint256"},{"internalType":"uint256","name":"avaxAllocated","type":"uint256"},{"internalType":"uint256","name":"avaxReserve","type":"uint256"},{"internalType":"uint256","name":"floorPrice","type":"uint256"},{"internalType":"uint256","name":"incentives","type":"uint256"},{"internalType":"uint256","name":"issuerTimelock","type":"uint256"},{"internalType":"uint256","name":"maxAllocation","type":"uint256"},{"internalType":"uint256","name":"maxWithdrawPenalty","type":"uint256"},{"internalType":"uint256","name":"pairBalance","type":"uint256"},{"internalType":"uint256","name":"penalty","type":"uint256"},{"internalType":"uint256","name":"phaseOneDuration","type":"uint256"},{"internalType":"uint256","name":"phaseOneNoFeeDuration","type":"uint256"},{"internalType":"uint256","name":"phaseTwoDuration","type":"uint256"},{"internalType":"uint256","name":"rJoePerAvax","type":"uint256"},{"internalType":"uint256","name":"tokenAllocated","type":"uint256"},{"internalType":"uint256","name":"tokenDecimals","type":"uint256"},{"internalType":"uint256","name":"tokenIncentivesPercent","type":"uint256"},{"internalType":"uint256","name":"tokenReserve","type":"uint256"},{"internalType":"uint256","name":"userTimelock","type":"uint256"},{"internalType":"address","name":"id","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"pair","type":"address"},{"components":[{"internalType":"uint256","name":"allocation","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"bool","name":"hasWithdrawnPair","type":"bool"},{"internalType":"bool","name":"hasWithdrawnIncentives","type":"bool"}],"internalType":"struct ILaunchEvent.UserInfo","name":"userInfo","type":"tuple"}],"internalType":"struct LaunchEventLens.LaunchEventData","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rocketJoeFactory","outputs":[{"internalType":"contract IRocketJoeFactory","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b50604051620020a1380380620020a1833981810160405281019062000037919062000095565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200011a565b6000815190506200008f8162000100565b92915050565b600060208284031215620000ae57620000ad620000fb565b5b6000620000be848285016200007e565b91505092915050565b6000620000d482620000db565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b6200010b81620000c7565b81146200011757600080fd5b50565b611f77806200012a6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063263ebc111461005c57806342ce61271461008c5780639ed6c9d6146100bc578063a0677aac146100ec578063f3fbd7d61461011c575b600080fd5b61007660048036038101906100719190611578565b61013a565b6040516100839190611b73565b60405180910390f35b6100a660048036038101906100a191906115f8565b610393565b6040516100b39190611b73565b60405180910390f35b6100d660048036038101906100d191906114de565b6105ee565b6040516100e39190611bb0565b60405180910390f35b610106600480360381019061010191906114b1565b6107c4565b6040516101139190611bb0565b60405180910390f35b6101246111af565b6040516101319190611b95565b60405180910390f35b60608060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fbaab6d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156101a657600080fd5b505afa1580156101ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101de919061154b565b905080851015806101ef5750600084145b156101fe57819250505061038d565b600081858761020d9190611c45565b1161022357848661021e9190611c45565b610225565b815b905085816102339190611c9b565b67ffffffffffffffff81111561024c5761024b611e56565b5b60405190808252806020026020018201604052801561028557816020015b6102726111d3565b81526020019060019003908161026a5790505b50925060008690505b818110156103855760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663831b000d836040518263ffffffff1660e01b81526004016102f29190611bcc565b60206040518083038186803b15801561030a57600080fd5b505afa15801561031e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610342919061142a565b90506000819050610352816107c4565b86848151811061036557610364611e27565b5b60200260200101819052505050808061037d90611daf565b91505061028e565b508293505050505b92915050565b60608060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fbaab6d96040518163ffffffff1660e01b815260040160206040518083038186803b1580156103ff57600080fd5b505afa158015610413573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610437919061154b565b905080861015806104485750600085145b156104575781925050506105e7565b60008186886104669190611c45565b1161047c5785876104779190611c45565b61047e565b815b9050868161048c9190611c9b565b67ffffffffffffffff8111156104a5576104a4611e56565b5b6040519080825280602002602001820160405280156104de57816020015b6104cb6111d3565b8152602001906001900390816104c35790505b50925060008790505b818110156105df5760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663831b000d836040518263ffffffff1660e01b815260040161054b9190611bcc565b60206040518083038186803b15801561056357600080fd5b505afa158015610577573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059b919061142a565b905060008190506105ac81896105ee565b8684815181106105bf576105be611e27565b5b6020026020010181905250505080806105d790611daf565b9150506104e7565b508293505050505b9392505050565b6105f66111d3565b6000610601846107c4565b90508373ffffffffffffffffffffffffffffffffffffffff166378912f53846040518263ffffffff1660e01b815260040161063c9190611b58565b60206040518083038186803b15801561065457600080fd5b505afa158015610668573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068c919061154b565b8160800181815250508373ffffffffffffffffffffffffffffffffffffffff1663382db5b5846040518263ffffffff1660e01b81526004016106ce9190611b58565b60206040518083038186803b1580156106e657600080fd5b505afa1580156106fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071e919061154b565b816101000181815250508373ffffffffffffffffffffffffffffffffffffffff16636386c1c7846040518263ffffffff1660e01b81526004016107619190611b58565b60806040518083038186803b15801561077957600080fd5b505afa15801561078d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b1919061151e565b816102c001819052508091505092915050565b6107cc6111d3565b6000808373ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401604080518083038186803b15801561081457600080fd5b505afa158015610828573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084c91906115b8565b9150915060008473ffffffffffffffffffffffffffffffffffffffff1663fc0c546a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561089857600080fd5b505afa1580156108ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d09190611457565b9050604051806102e001604052808673ffffffffffffffffffffffffffffffffffffffff16634f245ef76040518163ffffffff1660e01b815260040160206040518083038186803b15801561092457600080fd5b505afa158015610938573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095c919061154b565b81526020018673ffffffffffffffffffffffffffffffffffffffff1663b49fe2c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156109a757600080fd5b505afa1580156109bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109df919061154b565b81526020018481526020018673ffffffffffffffffffffffffffffffffffffffff16639363c8126040518163ffffffff1660e01b815260040160206040518083038186803b158015610a3057600080fd5b505afa158015610a44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a68919061154b565b8152602001600081526020018673ffffffffffffffffffffffffffffffffffffffff16635822213f6040518163ffffffff1660e01b815260040160206040518083038186803b158015610aba57600080fd5b505afa158015610ace573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af2919061154b565b81526020018673ffffffffffffffffffffffffffffffffffffffff16639b3ba79f6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b3d57600080fd5b505afa158015610b51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b75919061154b565b81526020018673ffffffffffffffffffffffffffffffffffffffff16632a0a8d5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610bc057600080fd5b505afa158015610bd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf8919061154b565b8152602001600081526020018673ffffffffffffffffffffffffffffffffffffffff1663e56e56db6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c4a57600080fd5b505afa158015610c5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c82919061154b565b81526020018673ffffffffffffffffffffffffffffffffffffffff1663d26c3f316040518163ffffffff1660e01b815260040160206040518083038186803b158015610ccd57600080fd5b505afa158015610ce1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d05919061154b565b81526020018673ffffffffffffffffffffffffffffffffffffffff166325e5be616040518163ffffffff1660e01b815260040160206040518083038186803b158015610d5057600080fd5b505afa158015610d64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d88919061154b565b81526020018673ffffffffffffffffffffffffffffffffffffffff16635dd39c196040518163ffffffff1660e01b815260040160206040518083038186803b158015610dd357600080fd5b505afa158015610de7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0b919061154b565b81526020018673ffffffffffffffffffffffffffffffffffffffff1663853920406040518163ffffffff1660e01b815260040160206040518083038186803b158015610e5657600080fd5b505afa158015610e6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8e919061154b565b81526020018673ffffffffffffffffffffffffffffffffffffffff166378f7aeee6040518163ffffffff1660e01b815260040160206040518083038186803b158015610ed957600080fd5b505afa158015610eed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f11919061154b565b81526020018273ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015610f5c57600080fd5b505afa158015610f70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f94919061164b565b60ff1681526020018673ffffffffffffffffffffffffffffffffffffffff1663f4b3b7d76040518163ffffffff1660e01b815260040160206040518083038186803b158015610fe257600080fd5b505afa158015610ff6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101a919061154b565b81526020018381526020018673ffffffffffffffffffffffffffffffffffffffff1663da5a9ded6040518163ffffffff1660e01b815260040160206040518083038186803b15801561106b57600080fd5b505afa15801561107f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a3919061154b565b81526020018673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1663a8aa1b316040518163ffffffff1660e01b815260040160206040518083038186803b15801561112657600080fd5b505afa15801561113a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115e9190611484565b73ffffffffffffffffffffffffffffffffffffffff16815260200160405180608001604052806000815260200160008152602001600015158152602001600015158152508152509350505050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b604051806102e0016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016112c36112c9565b81525090565b604051806080016040528060008152602001600081526020016000151581526020016000151581525090565b60008135905061130481611ea0565b92915050565b60008151905061131981611ea0565b92915050565b60008151905061132e81611eb7565b92915050565b60008151905061134381611ece565b92915050565b60008151905061135881611ee5565b92915050565b60008135905061136d81611efc565b92915050565b60006080828403121561138957611388611e85565b5b6113936080611be7565b905060006113a384828501611400565b60008301525060206113b784828501611400565b60208301525060406113cb8482850161131f565b60408301525060606113df8482850161131f565b60608301525092915050565b6000813590506113fa81611f13565b92915050565b60008151905061140f81611f13565b92915050565b60008151905061142481611f2a565b92915050565b6000602082840312156114405761143f611e8a565b5b600061144e8482850161130a565b91505092915050565b60006020828403121561146d5761146c611e8a565b5b600061147b84828501611334565b91505092915050565b60006020828403121561149a57611499611e8a565b5b60006114a884828501611349565b91505092915050565b6000602082840312156114c7576114c6611e8a565b5b60006114d58482850161135e565b91505092915050565b600080604083850312156114f5576114f4611e8a565b5b60006115038582860161135e565b9250506020611514858286016112f5565b9150509250929050565b60006080828403121561153457611533611e8a565b5b600061154284828501611373565b91505092915050565b60006020828403121561156157611560611e8a565b5b600061156f84828501611400565b91505092915050565b6000806040838503121561158f5761158e611e8a565b5b600061159d858286016113eb565b92505060206115ae858286016113eb565b9150509250929050565b600080604083850312156115cf576115ce611e8a565b5b60006115dd85828601611400565b92505060206115ee85828601611400565b9150509250929050565b60008060006060848603121561161157611610611e8a565b5b600061161f868287016113eb565b9350506020611630868287016113eb565b9250506040611641868287016112f5565b9150509250925092565b60006020828403121561166157611660611e8a565b5b600061166f84828501611415565b91505092915050565b6000611684838361172b565b6103408301905092915050565b61169a81611ccf565b82525050565b6116a981611ccf565b82525050565b60006116ba82611c1c565b6116c48185611c34565b93506116cf83611c0c565b8060005b838110156117005781516116e78882611678565b97506116f283611c27565b9250506001810190506116d3565b5085935050505092915050565b61171681611ce1565b82525050565b61172581611d5a565b82525050565b610340820160008201516117426000850182611b3a565b5060208201516117556020850182611b3a565b5060408201516117686040850182611b3a565b50606082015161177b6060850182611b3a565b50608082015161178e6080850182611b3a565b5060a08201516117a160a0850182611b3a565b5060c08201516117b460c0850182611b3a565b5060e08201516117c760e0850182611b3a565b506101008201516117dc610100850182611b3a565b506101208201516117f1610120850182611b3a565b50610140820151611806610140850182611b3a565b5061016082015161181b610160850182611b3a565b50610180820151611830610180850182611b3a565b506101a08201516118456101a0850182611b3a565b506101c082015161185a6101c0850182611b3a565b506101e082015161186f6101e0850182611b3a565b50610200820151611884610200850182611b3a565b50610220820151611899610220850182611b3a565b506102408201516118ae610240850182611b3a565b506102608201516118c3610260850182611691565b506102808201516118d8610280850182611691565b506102a08201516118ed6102a0850182611691565b506102c08201516119026102c0850182611ae5565b50505050565b6103408201600082015161191f6000850182611b3a565b5060208201516119326020850182611b3a565b5060408201516119456040850182611b3a565b5060608201516119586060850182611b3a565b50608082015161196b6080850182611b3a565b5060a082015161197e60a0850182611b3a565b5060c082015161199160c0850182611b3a565b5060e08201516119a460e0850182611b3a565b506101008201516119b9610100850182611b3a565b506101208201516119ce610120850182611b3a565b506101408201516119e3610140850182611b3a565b506101608201516119f8610160850182611b3a565b50610180820151611a0d610180850182611b3a565b506101a0820151611a226101a0850182611b3a565b506101c0820151611a376101c0850182611b3a565b506101e0820151611a4c6101e0850182611b3a565b50610200820151611a61610200850182611b3a565b50610220820151611a76610220850182611b3a565b50610240820151611a8b610240850182611b3a565b50610260820151611aa0610260850182611691565b50610280820151611ab5610280850182611691565b506102a0820151611aca6102a0850182611691565b506102c0820151611adf6102c0850182611ae5565b50505050565b608082016000820151611afb6000850182611b3a565b506020820151611b0e6020850182611b3a565b506040820151611b21604085018261170d565b506060820151611b34606085018261170d565b50505050565b611b4381611d43565b82525050565b611b5281611d43565b82525050565b6000602082019050611b6d60008301846116a0565b92915050565b60006020820190508181036000830152611b8d81846116af565b905092915050565b6000602082019050611baa600083018461171c565b92915050565b600061034082019050611bc66000830184611908565b92915050565b6000602082019050611be16000830184611b49565b92915050565b6000611bf1611c02565b9050611bfd8282611d7e565b919050565b6000604051905090565b6000819050602082019050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b6000611c5082611d43565b9150611c5b83611d43565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611c9057611c8f611df8565b5b828201905092915050565b6000611ca682611d43565b9150611cb183611d43565b925082821015611cc457611cc3611df8565b5b828203905092915050565b6000611cda82611d23565b9050919050565b60008115159050919050565b6000611cf882611ccf565b9050919050565b6000611d0a82611ccf565b9050919050565b6000611d1c82611ccf565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000611d6582611d6c565b9050919050565b6000611d7782611d23565b9050919050565b611d8782611e8f565b810181811067ffffffffffffffff82111715611da657611da5611e56565b5b80604052505050565b6000611dba82611d43565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611ded57611dec611df8565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b611ea981611ccf565b8114611eb457600080fd5b50565b611ec081611ce1565b8114611ecb57600080fd5b50565b611ed781611ced565b8114611ee257600080fd5b50565b611eee81611cff565b8114611ef957600080fd5b50565b611f0581611d11565b8114611f1057600080fd5b50565b611f1c81611d43565b8114611f2757600080fd5b50565b611f3381611d4d565b8114611f3e57600080fd5b5056fea264697066735822122003ae160d4a23fba45aa0d666b0fb7a3ba612661d8978e7f265cb29c10153587564736f6c6343000806003300000000000000000000000037551bc793175da03012bfd10b285a033b62247e

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

00000000000000000000000037551bc793175da03012bfd10b285a033b62247e

-----Decoded View---------------
Arg [0] : _rocketJoeFactory (address): 0x37551bc793175da03012bfd10b285a033b62247e

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000037551bc793175da03012bfd10b285a033b62247e


Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.