【问题标题】:Solidity question about UsingLiquidityProtectionService关于 UsingLiquidityProtectionService 的 Solidity 问题
【发布时间】:2021-11-15 23:58:48
【问题描述】:

大家好,我是 Solidity 开发的新手,我目前正在学习和阅读一个名为 SporesToken https://github.com/Spores-Labs/spores-token-contracts/blob/master/contracts/SporesToken.sol的项目

我有一个关于某种实现的问题

import "@openzeppelin/contracts/presets/ERC20PresetMinterPauser.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "./UsingLiquidityProtectionService.sol";

contract SporesToken is
    UsingLiquidityProtectionService(0xBA2bF7693E0903B373077ace7b002Bd925913df2),
    ERC20PresetMinterPauser,
    Ownable

提供给 UsingLiquidityProtectionService 的哈希值是从哪里来的? 也许这是一个菜鸟问题,但我没明白..

./UsingLiquidityProtectionService.sol的部分内容

import "./external/UniswapV2Library.sol";
import "./external/UniswapV3Library.sol";
import "./IPLPS.sol";

abstract contract UsingLiquidityProtectionService {
    bool private unProtected = false;
    IPLPS private plps;
    uint64 internal constant HUNDRED_PERCENT = 1e18;
    bytes32 internal constant UNISWAP =
        0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f;
    bytes32 internal constant PANCAKESWAP =
        0x00fb7f630766e6a796048ea87d01acd3068e8ff67d078148a3fa3f4a84f69bd5;
    bytes32 internal constant QUICKSWAP =
        0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f;

    enum UniswapVersion {
        V2,
        V3
    }

    enum UniswapV3Fees {
        _005, // 0.05%
        _03, // 0.3%
        _1 // 1%
    }

    modifier onlyProtectionAdmin() {
        protectionAdminCheck();
        _;
    }

    constructor(address _plps) {
        plps = IPLPS(_plps);
    }

    function LiquidityProtection_setLiquidityProtectionService(IPLPS _plps)
        external
        onlyProtectionAdmin()
    {
        plps = _plps;
    }

希望这里的任何人都可以回答我, 亲切的问候,感谢您的宝贵时间。

【问题讨论】:

  • “UsingLiquityProtectionService”的主要用途是什么?有谁知道我在哪里可以找到有关此的一些文档?

标签: blockchain solidity cryptocurrency


【解决方案1】:

提供给 UsingLiquidityProtectionService 的哈希从何而来?

哈希是传递给UsingLiquidityProtectionService构造函数(link)的智能合约地址。

从上下文中我可以看到它是以太坊网络上的this contract。但是,合约作者并没有选择验证源代码。因此,如果不尝试反编译字节码,就不可能看到实际的实现。只是UsingLiquidityProtectionService 期望0xBA2b... 合约实现IPLPS 接口。

【讨论】:

  • 但是通过这种类型的实现,传递这个合同有什么意义呢?我也在其他硬币中看到了这一点,但同一个合约没有经过验证,因此无法读取代码。
  • @SaulDaSilva 我不知道合同作者的意图是什么。 UsingLiquidityProtectionService 不调用任何 IPLPS 方法,所以不清楚他们为什么把它放在那里。这可能是一个未完成的代码,他们可能计划稍后调用IPLPS 函数;或者他们可能在删除其他一些功能时忘记删除 setter 和 getter。
  • 我知道了,我不太了解作者的意图,但例如,如果您看到 link,您会注意到这似乎已实现。
猜你喜欢
  • 1970-01-01
  • 2020-05-31
  • 2022-01-22
  • 2022-08-12
  • 2017-12-10
  • 2022-06-03
  • 1970-01-01
  • 2021-05-11
  • 1970-01-01
相关资源
最近更新 更多