IPoolRegistry
Interface for the central registry of underwriting pools.
View deployed contract addresses in the Contract Addresses section.
The IPoolRegistry is the source of truth for all underwriting pools. It stores static configuration data (e.g., risk rating, fee recipient) and dynamic state (e.g., pause status, coverage sold) for each pool. Launch docs focus on the live stablecoin and vault-cover pool configuration.
Interface
// SPDX-License-Identifier: BUSL-1.1 pragma solidity ^0.8.20; import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {Types} from "../libraries/helpers/Types.sol"; import {IPoolCreationPolicy} from "./IPoolCreationPolicy.sol"; /** * @title IPoolRegistry * @notice Interface for the PoolRegistry contract. * @dev CORRECTED: Removed duplicate function declarations and unused enums. * The RiskRating enum is now centralized in Types. */ interface IPoolRegistry { // --- Functions --- function updateCoverageSold(uint256 poolId, uint256 amount, bool isSale) external; function getPoolCount() external view returns (uint256); function setPauseState(uint256 poolId, bool isPaused) external; function setFeeRecipient(uint256 poolId, address recipient) external; function setPoolRiskRating(uint256 poolId, Types.RiskRating newRating) external; function getPoolFeeRecipient(uint256 poolId) external view returns (address); function getPoolStaticData(uint256 poolId) external view returns ( IERC20 protocolTokenToCover, uint256 totalCoverageSold, bool isPaused, address feeRecipient, uint256 claimFeeBps, Types.RiskRating riskRating, bool useEscrow, bool isYieldRewardPool, uint256 coverageCap ); function addProtocolRiskPool( address protocolTokenToCover, uint256 claimFeeBps, Types.RiskRating riskRating, bool usesVaultCover ) external returns (uint256); function getPoolRiskRating(uint256 poolId) external view returns (Types.RiskRating); function setPoolCoverageCap(uint256 poolId, uint256 cap) external; function getPoolCoverageCap(uint256 poolId) external view returns (uint256); function setReinsurerApproval(address reinsurer, bool approved) external; function isApprovedReinsurer(address reinsurer) external view returns (bool); // ─────────────────── Focused Getters (gas-efficient single-field access) ─────────────────── /// @notice Get pool fee configuration /// @return claimFeeBps Fee in basis points /// @return feeRecipient Address receiving fees function getPoolFeeConfig(uint256 poolId) external view returns (uint256 claimFeeBps, address feeRecipient); /// @notice Check if pool is paused function isPoolPaused(uint256 poolId) external view returns (bool); /// @notice Get pool's total coverage sold function getPoolCoverageSold(uint256 poolId) external view returns (uint256); /// @notice Get pool's vault cover configuration /// @return protocolToken The protocol token for vault cover /// @return usesVaultCover Whether pool uses vault cover function getPoolVaultCoverConfig(uint256 poolId) external view returns (address protocolToken, bool usesVaultCover); /// @notice Get the policy NFT transfer mode for a pool function getPoolPolicyTransferMode(uint256 poolId) external view returns (Types.PolicyTransferMode); /// @notice Set the policy NFT transfer mode for a pool function setPoolPolicyTransferMode(uint256 poolId, Types.PolicyTransferMode mode) external; /// @notice Set the pool creation policy contract function setPoolCreationPolicy(address policy) external; /// @notice Get the current pool creation policy function poolCreationPolicy() external view returns (IPoolCreationPolicy); }
Pool Types
The launch registry supports the live pool types created via addProtocolRiskPool:
Stablecoin And Vault Pools
| Field | Description |
|---|---|
protocolTokenToCover | The token or vault share being insured |
claimFeeBps | Claim fee applied when a policyholder executes a claim |
riskRating | Pool risk grade used by underwriters when allocating capital |
usesVaultCover | true for vault-share cover, false for standard token cover |
Related Documentation
- Pool Parameters - Pool configuration
- IRiskManager - Incident reporting