// SPDX-License-Identifier: GPL-3.0-or-later // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see . pragma solidity >=0.7.0 <0.9.0; import "../pool-utils/IVersion.sol"; import "./ILiquidityGaugeFactory.sol"; // For compatibility, we're keeping the same function names as in the original Curve code, including the mixed-case // naming convention. // solhint-disable func-name-mixedcase // solhint-disable func-param-name-mixedcase interface IChildChainGauge is IVersion { /** * @notice Proxy constructor. * @param lpToken Pool allowed to stake in this gauge. * @param version Gauge version string identifier. */ function initialize(address lpToken, string memory version) external; /** * @notice Returns BAL liquidity emissions calculated during checkpoints for the given user. * @param user User address. * @return uint256 BAL amount to issue for the address. */ function integrate_fraction(address user) external view returns (uint256); /** * @notice Records a checkpoint for a given user. * @param user User address. * @return bool Always true. */ function user_checkpoint(address user) external returns (bool); /** * @notice Returns gauge factory address. */ function factory() external view returns (ILiquidityGaugeFactory); }