[
  {
    "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"
  }
]
