Skip to content

Latest commit

 

History

History
388 lines (320 loc) · 10.7 KB

CoverBase.md

File metadata and controls

388 lines (320 loc) · 10.7 KB

Base Cover Contract (CoverBase.sol)

View Source: contracts/core/lifecycle/CoverBase.sol

↗ Extends: ICover, Recoverable ↘ Derived Contracts: Cover

CoverBase

Functions

Constructs this smart contract

function (IStore store) internal nonpayable Recoverable 

Arguments

Name Type Description
store IStore Provide the address of an eternal storage contract to use. This contract must be a member of the Protocol for write access to the storage
Source Code
constructor(IStore store) Recoverable(store) {}

initialize

Initializes this contract

function initialize(address liquidityToken, bytes32 liquidityName) external nonpayable nonReentrant 

Arguments

Name Type Description
liquidityToken address Provide the address of the token this cover will be quoted against.
liquidityName bytes32 Enter a description or ENS name of your liquidity token.
Source Code
function initialize(address liquidityToken, bytes32 liquidityName) external override nonReentrant {
    // @suppress-initialization Can only be initialized once by a cover manager
    // @suppress-address-trust-issue liquidityToken This instance of liquidityToken can be trusted because of the ACL requirement.
    s.mustNotBePaused();
    AccessControlLibV1.mustBeCoverManager(s);

    require(s.getAddressByKey(ProtoUtilV1.CNS_COVER_STABLECOIN) == address(0), "Already initialized");

    s.initializeCoverInternal(liquidityToken, liquidityName);
    emit CoverInitialized(liquidityToken, liquidityName);
  }

setCoverFees

function setCoverFees(uint256 value) external nonpayable nonReentrant 

Arguments

Name Type Description
value uint256
Source Code
function setCoverFees(uint256 value) external override nonReentrant {
    require(value > 0, "Please specify value");

    s.mustNotBePaused();
    AccessControlLibV1.mustBeCoverManager(s);

    uint256 previous = s.setCoverFeesInternal(value);
    emit CoverFeeSet(previous, value);
  }

setMinCoverCreationStake

function setMinCoverCreationStake(uint256 value) external nonpayable nonReentrant 

Arguments

Name Type Description
value uint256
Source Code
function setMinCoverCreationStake(uint256 value) external override nonReentrant {
    require(value > 0, "Please specify value");

    s.mustNotBePaused();
    AccessControlLibV1.mustBeCoverManager(s);

    uint256 previous = s.setMinCoverCreationStakeInternal(value);
    emit MinCoverCreationStakeSet(previous, value);
  }

setMinStakeToAddLiquidity

function setMinStakeToAddLiquidity(uint256 value) external nonpayable nonReentrant 

Arguments

Name Type Description
value uint256
Source Code
function setMinStakeToAddLiquidity(uint256 value) external override nonReentrant {
    require(value > 0, "Please specify value");

    s.mustNotBePaused();
    AccessControlLibV1.mustBeCoverManager(s);

    uint256 previous = s.setMinStakeToAddLiquidityInternal(value);
    emit MinStakeToAddLiquiditySet(previous, value);
  }

getCover

Get more information about this cover contract

function getCover(bytes32 key) external view
returns(coverOwner address, info bytes32, values uint256[])

Arguments

Name Type Description
key bytes32 Enter the cover key
Source Code
function getCover(bytes32 key)
    external
    view
    override
    returns (
      address coverOwner,
      bytes32 info,
      uint256[] memory values
    )
  {
    return s.getCoverInfo(key);
  }

version

Version number of this contract

function version() external pure
returns(bytes32)

Arguments

Name Type Description
Source Code
function version() external pure override returns (bytes32) {
    return "v0.1";
  }

getName

Name of this contract

function getName() external pure
returns(bytes32)

Arguments

Name Type Description
Source Code
function getName() external pure override returns (bytes32) {
    return ProtoUtilV1.CNAME_COVER;
  }

Contracts