{
  "name": "leveraged.lol",
  "chainId": 4663,
  "chain": "Robinhood Chain",
  "contracts": {
    "LeverageLaunchpad": "0x6a6dBa380Ad564AAd983d37Ba4c7c2305b739D99",
    "QuoteRegistry": "0x797F3EcE090850a7c7702F0E2e2D3b931a083be2"
  },
  "constants": {
    "totalSupply": "1000000000000000000000000000",
    "curveSupply": "793100000000000000000000000",
    "poolFee": 10000,
    "tickSpacing": 200,
    "curveSpanTicks": 26800,
    "poolSpanTicks": 23000,
    "targetOpeningFdvUsd": 3500,
    "tokenDecimals": 18,
    "note": "The launched token is always token0 in its pool. This is enforced at launch by mining a CREATE2 salt until the token address sorts below the quote address."
  },
  "abis": {
    "LeverageLaunchpad": [
      {
        "type": "event",
        "name": "Launched",
        "anonymous": false,
        "inputs": [
          {
            "indexed": true,
            "name": "token",
            "type": "address"
          },
          {
            "indexed": true,
            "name": "quote",
            "type": "address"
          },
          {
            "indexed": true,
            "name": "creator",
            "type": "address"
          },
          {
            "indexed": false,
            "name": "pool",
            "type": "address"
          },
          {
            "indexed": false,
            "name": "locker",
            "type": "address"
          },
          {
            "indexed": false,
            "name": "curveTickLower",
            "type": "int24"
          }
        ]
      },
      {
        "type": "function",
        "name": "launchCount",
        "stateMutability": "view",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint256"
          }
        ]
      },
      {
        "type": "function",
        "name": "launches",
        "stateMutability": "view",
        "inputs": [
          {
            "name": "",
            "type": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "token",
            "type": "address"
          },
          {
            "name": "quote",
            "type": "address"
          },
          {
            "name": "pool",
            "type": "address"
          },
          {
            "name": "locker",
            "type": "address"
          },
          {
            "name": "creator",
            "type": "address"
          },
          {
            "name": "createdAt",
            "type": "uint64"
          }
        ]
      },
      {
        "type": "function",
        "name": "launchIdOf",
        "stateMutability": "view",
        "inputs": [
          {
            "name": "token",
            "type": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256"
          }
        ],
        "note": "Returns index + 1. Zero means the address was not launched here."
      },
      {
        "type": "function",
        "name": "SUPPLY",
        "stateMutability": "view",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint256"
          }
        ]
      },
      {
        "type": "function",
        "name": "CURVE_SUPPLY",
        "stateMutability": "view",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint256"
          }
        ]
      },
      {
        "type": "function",
        "name": "CURVE_SPAN",
        "stateMutability": "view",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "int24"
          }
        ]
      },
      {
        "type": "function",
        "name": "POOL_FEE",
        "stateMutability": "view",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint24"
          }
        ]
      }
    ],
    "QuoteRegistry": [
      {
        "type": "function",
        "name": "quoteCount",
        "stateMutability": "view",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint256"
          }
        ]
      },
      {
        "type": "function",
        "name": "quoteList",
        "stateMutability": "view",
        "inputs": [
          {
            "name": "",
            "type": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "address"
          }
        ]
      },
      {
        "type": "function",
        "name": "quotes",
        "stateMutability": "view",
        "inputs": [
          {
            "name": "",
            "type": "address"
          }
        ],
        "outputs": [
          {
            "name": "enabled",
            "type": "bool"
          },
          {
            "name": "decimals",
            "type": "uint8"
          },
          {
            "name": "referencePriceE18",
            "type": "uint256"
          },
          {
            "name": "priceUpdatedAt",
            "type": "uint64"
          },
          {
            "name": "label",
            "type": "string"
          }
        ],
        "note": "referencePriceE18 is USD per one whole quote token, scaled 1e18. Sourced from the quote vault's NAV, refreshed roughly every 15 minutes."
      },
      {
        "type": "event",
        "name": "PriceUpdated",
        "anonymous": false,
        "inputs": [
          {
            "indexed": true,
            "name": "quote",
            "type": "address"
          },
          {
            "indexed": false,
            "name": "referencePriceE18",
            "type": "uint256"
          }
        ]
      },
      {
        "type": "event",
        "name": "QuoteAdded",
        "anonymous": false,
        "inputs": [
          {
            "indexed": true,
            "name": "quote",
            "type": "address"
          },
          {
            "indexed": false,
            "name": "label",
            "type": "string"
          },
          {
            "indexed": false,
            "name": "decimals",
            "type": "uint8"
          }
        ]
      }
    ],
    "LiquidityLocker": [
      {
        "type": "function",
        "name": "collectFees",
        "stateMutability": "nonpayable",
        "inputs": [],
        "outputs": [],
        "note": "Callable by anyone. Proceeds always split to the recorded creator and platform addresses."
      },
      {
        "type": "function",
        "name": "positionCount",
        "stateMutability": "view",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint256"
          }
        ]
      },
      {
        "type": "function",
        "name": "tokenIds",
        "stateMutability": "view",
        "inputs": [
          {
            "name": "",
            "type": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256"
          }
        ]
      },
      {
        "type": "function",
        "name": "creator",
        "stateMutability": "view",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address"
          }
        ]
      },
      {
        "type": "function",
        "name": "platformBps",
        "stateMutability": "view",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint16"
          }
        ]
      },
      {
        "type": "event",
        "name": "FeesCollected",
        "anonymous": false,
        "inputs": [
          {
            "indexed": true,
            "name": "tokenId",
            "type": "uint256"
          },
          {
            "indexed": false,
            "name": "amount0",
            "type": "uint256"
          },
          {
            "indexed": false,
            "name": "amount1",
            "type": "uint256"
          }
        ]
      }
    ],
    "LaunchToken": [
      {
        "type": "function",
        "name": "name",
        "stateMutability": "view",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "string"
          }
        ]
      },
      {
        "type": "function",
        "name": "symbol",
        "stateMutability": "view",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "string"
          }
        ]
      },
      {
        "type": "function",
        "name": "decimals",
        "stateMutability": "view",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint8"
          }
        ]
      },
      {
        "type": "function",
        "name": "totalSupply",
        "stateMutability": "view",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "uint256"
          }
        ]
      },
      {
        "type": "function",
        "name": "balanceOf",
        "stateMutability": "view",
        "inputs": [
          {
            "name": "",
            "type": "address"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256"
          }
        ]
      },
      {
        "type": "event",
        "name": "Transfer",
        "anonymous": false,
        "inputs": [
          {
            "indexed": true,
            "name": "from",
            "type": "address"
          },
          {
            "indexed": true,
            "name": "to",
            "type": "address"
          },
          {
            "indexed": false,
            "name": "value",
            "type": "uint256"
          }
        ]
      }
    ],
    "ArcusVault": [
      {
        "type": "function",
        "name": "convertToAssets",
        "stateMutability": "view",
        "inputs": [
          {
            "name": "shares",
            "type": "uint256"
          }
        ],
        "outputs": [
          {
            "name": "",
            "type": "uint256"
          }
        ],
        "note": "Call with 1e18 to get the USD value of one whole pToken, denominated in the vault asset. Six decimals, since the asset is USDG."
      },
      {
        "type": "function",
        "name": "asset",
        "stateMutability": "view",
        "inputs": [],
        "outputs": [
          {
            "name": "",
            "type": "address"
          }
        ],
        "note": "USDG on all current quote assets. Verify before trusting convertToAssets."
      }
    ]
  },
  "quoteAssets": [
    {
      "symbol": "pBTC3x",
      "label": "BTC 3X LONG",
      "address": "0x4472C69d299382F8847ebCE4FC6Ed8e295510E3e",
      "decimals": 18
    },
    {
      "symbol": "pHOOD3x",
      "label": "HOOD 3X LONG",
      "address": "0xe24CABDf76DD1c2576049167eB1755C84b985C36",
      "decimals": 18
    },
    {
      "symbol": "sBTC3x",
      "label": "BTC 3X SHORT",
      "address": "0xaDccEee8e422050F890522FA798F8A93a4857083",
      "decimals": 18
    }
  ],
  "external": {
    "uniswapV3Factory": "0x1f7d7550B1b028f7571E69A784071F0205FD2EfA",
    "nonfungiblePositionManager": "0x73991a25C818Bf1f1128dEAaB1492D45638DE0D3",
    "swapRouter02": "0xCaf681a66D020601342297493863E78C959E5cb2",
    "uniswapV4PoolManager": "0x8366a39CC670B4001A1121B8F6A443A643e40951",
    "WETH": "0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73",
    "USDG": "0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168"
  }
}
