有关uniswap V2 工厂合约的疑问

UniswapV2Factory 合约中 contract UniswapV2Factory is IUniswapV2Factory{ } UniswapV2Factory继承了IUniswapV2Factory接口 IUniswapV2Factory中有八个未实现方法

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

UniswapV2Factory中只实现了其中四种方法 allPairsLength createPair setFeeTo setFeeToSetter 如果继承了接口却不把方法完全实现,那UniswapV2Factory工厂合约不就是个抽象合约吗? 为什么抽象合约还能通过编译并部署?

请先 登录 后评论

最佳答案 2021-11-04 22:37

另外的是 public 的状态变量,因为 public 的状态变量会自动生成对应名称的 getter 函数, 可参考文档:

https://learnblockchain.cn/docs/solidity/contracts.html#getter-functions

请先 登录 后评论

其它 0 个回答

  • 1 关注
  • 0 收藏,3327 浏览
  • joohhnnn 提出于 2021-11-04 16:53