我正在重新实现 Uniswap v2 合约,但我无法弄清楚这一点。
https://github.com/Uniswap/v2-core/blob/master/contracts/UniswapV2Pair.sol
所以,据我了解:
如果在添加流动性时不存在交易对/流动性池,UniswapFactory.sol 会创建一个新的 LP 池合约。
这个矿池合约 UniswapV2pair.sol 本身就是一个 ERC20 合约。但是,我对它继承的 UniswapV2ERC20 合约有一些疑问。
https://github.com/Uniswap/v2-core/blob/master/contracts/UniswapV2ERC20.sol
似乎名称和符号被硬编码到合同中
string public constant name = "Uniswap V2;
string public constant symbol = 'UNI-V2';
,因此当从前端向流动性矿池合约调用“name”时,它将始终返回字符串“Uniswap V2”,无论底层 LP 代币是什么(如 DAI-ETH、USDC-ETH.. 等)。
我对此的理解正确吗?我知道功能应该没问题,因为所有这些 Pair Liquidity 池合约都部署为单独的合约,但对我来说,名称和符号不能只是设置为“DAI-ETH LP”之类的东西,这对我来说似乎有点奇怪。构造函数而不是全部作为相同的“uniswap v2”。
谢谢