IPancakeFactory.sol 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. // SPDX-License-Identifier: MIT
  2. pragma solidity 0.8.28;
  3. /**
  4. * @title IPancakeFactory
  5. * @dev PancakeSwap V2 Factory接口,负责创建和管理交易对
  6. */
  7. interface IPancakeFactory {
  8. /**
  9. * @dev 交易对创建事件
  10. * @param token0 第一个代币地址
  11. * @param token1 第二个代币地址
  12. * @param pair 新创建的交易对地址
  13. * @param 交易对总数
  14. */
  15. event PairCreated(address indexed token0, address indexed token1, address pair, uint);
  16. /**
  17. * @dev 获取手续费接收地址
  18. * @return 手续费接收地址
  19. */
  20. function feeTo() external view returns (address);
  21. /**
  22. * @dev 获取手续费设置者地址
  23. * @return 手续费设置者地址
  24. */
  25. function feeToSetter() external view returns (address);
  26. /**
  27. * @dev 获取两个代币的交易对地址
  28. * @param tokenA 第一个代币地址
  29. * @param tokenB 第二个代币地址
  30. * @return pair 交易对地址,如果不存在则返回零地址
  31. */
  32. function getPair(address tokenA, address tokenB) external view returns (address pair);
  33. /**
  34. * @dev 根据索引获取交易对地址
  35. * @param 交易对索引
  36. * @return pair 交易对地址
  37. */
  38. function allPairs(uint) external view returns (address pair);
  39. /**
  40. * @dev 获取交易对总数
  41. * @return 交易对总数
  42. */
  43. function allPairsLength() external view returns (uint);
  44. /**
  45. * @dev 创建两个代币的交易对
  46. * @param tokenA 第一个代币地址
  47. * @param tokenB 第二个代币地址
  48. * @return pair 新创建的交易对地址
  49. */
  50. function createPair(address tokenA, address tokenB) external returns (address pair);
  51. /**
  52. * @dev 设置手续费接收地址(仅限feeToSetter调用)
  53. * @param _feeTo 新的手续费接收地址
  54. */
  55. function setFeeTo(address _feeTo) external;
  56. /**
  57. * @dev 设置手续费设置者地址(仅限feeToSetter调用)
  58. * @param _feeToSetter 新的手续费设置者地址
  59. */
  60. function setFeeToSetter(address _feeToSetter) external;
  61. }