// SPDX-License-Identifier: MIT pragma solidity 0.8.28; /** * @title IPancakeFactory * @dev PancakeSwap V2 Factory接口,负责创建和管理交易对 */ interface IPancakeFactory { /** * @dev 交易对创建事件 * @param token0 第一个代币地址 * @param token1 第二个代币地址 * @param pair 新创建的交易对地址 * @param 交易对总数 */ event PairCreated(address indexed token0, address indexed token1, address pair, uint); /** * @dev 获取手续费接收地址 * @return 手续费接收地址 */ function feeTo() external view returns (address); /** * @dev 获取手续费设置者地址 * @return 手续费设置者地址 */ function feeToSetter() external view returns (address); /** * @dev 获取两个代币的交易对地址 * @param tokenA 第一个代币地址 * @param tokenB 第二个代币地址 * @return pair 交易对地址,如果不存在则返回零地址 */ function getPair(address tokenA, address tokenB) external view returns (address pair); /** * @dev 根据索引获取交易对地址 * @param 交易对索引 * @return pair 交易对地址 */ function allPairs(uint) external view returns (address pair); /** * @dev 获取交易对总数 * @return 交易对总数 */ function allPairsLength() external view returns (uint); /** * @dev 创建两个代币的交易对 * @param tokenA 第一个代币地址 * @param tokenB 第二个代币地址 * @return pair 新创建的交易对地址 */ function createPair(address tokenA, address tokenB) external returns (address pair); /** * @dev 设置手续费接收地址(仅限feeToSetter调用) * @param _feeTo 新的手续费接收地址 */ function setFeeTo(address _feeTo) external; /** * @dev 设置手续费设置者地址(仅限feeToSetter调用) * @param _feeToSetter 新的手续费设置者地址 */ function setFeeToSetter(address _feeToSetter) external; }