OpenZeppelin/Solidity question about UsingLiquidityProtectionService

Hi guys i'm new here :slight_smile: this is a great community with lots of resources to learn a lot about smart contract development.

I'm currently learning and reading a project called SporesToken https://github.com/Spores-Labs/spores-token-contracts/blob/master/contracts/SporesToken.sol

And i have a question about some kind of implementation

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

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

From where comes the hash provided to UsingLiquidityProtectionService? Maybe this is a noob question but i didn't get it..

I hope anyone here can answer me,
Kind Regards and thank you for your time.

You should ask this question in the Spores community chat. I tried to search this hash online but couldn't find anything.

Also what's the main usage of "UsingLiquityProtectionService" ? Do you know where can i source some documentation about this?

1 Like

If you have a look at the code you linked, the SporesToken contract inherit UsingLiquidityProtectionService which has a non-trivail constructor. This constructor takes an address argument.

SporesToken does NOT call UsingLiquidityProtectionService's constructor.

This should result in the SporesToken being abstract, except, inheritance construction is resolved elsewhere. What you are seeing here is a contructor argument. Its not a has, its an address. (and I'm not sure where it come from, possibly a prior de deployment)