IUnderwriter
Interface for a contract that validates inputs and converts it into the fields required to create a policy
Public Functions
priceNewPolicy
function priceNewPolicy(address rm, bytes inputData) external view returns (uint256 payout, uint256 premium, uint256 lossProb, uint40 expiration, uint96 internalId, struct Policy.Params params)
Prices a new policy request for RiskModule rm.
Parameters
| Name |
Type |
Description |
| rm |
address |
The RiskModule address requesting pricing (implementations may use it for access checks). |
| inputData |
bytes |
Opaque payload consumed by the Underwriter implementation. |
Return Values
| Name |
Type |
Description |
| payout |
uint256 |
The policy payout. |
| premium |
uint256 |
The total premium for the policy. |
| lossProb |
uint256 |
Loss probability used for pricing/risk calculations. |
| expiration |
uint40 |
Policy expiration timestamp (seconds since epoch). |
| internalId |
uint96 |
Unique id within rm used to derive the policy id. |
| params |
struct Policy.Params |
Additional policy parameters used by {Policy-initialize}. |
Pre-conditions
inputData must follow the ABI/layout expected by the concrete Underwriter implementation.
- The caller must satisfy any access/authentication requirements imposed by the implementation.
pricePolicyReplacement
function pricePolicyReplacement(address rm, bytes inputData) external view returns (struct Policy.PolicyData oldPolicy, uint256 payout, uint256 premium, uint256 lossProb, uint40 expiration, uint96 internalId, struct Policy.Params params)
Prices a policy replacement request for RiskModule rm.
Parameters
| Name |
Type |
Description |
| rm |
address |
The RiskModule address requesting pricing (implementations may use it for access checks). |
| inputData |
bytes |
Opaque payload consumed by the Underwriter implementation. |
Return Values
| Name |
Type |
Description |
| oldPolicy |
struct Policy.PolicyData |
The policy being replaced (as {Policy-PolicyData}). |
| payout |
uint256 |
The replacement policy payout. |
| premium |
uint256 |
The replacement policy premium. |
| lossProb |
uint256 |
Loss probability used for pricing/risk calculations. |
| expiration |
uint40 |
Replacement policy expiration timestamp. |
| internalId |
uint96 |
Unique id within rm for the replacement policy. |
| params |
struct Policy.Params |
Additional policy parameters used by {Policy-initialize}. |
Pre-conditions
inputData must follow the ABI/layout expected by the concrete Underwriter implementation.
- The caller must satisfy any access/authentication requirements imposed by the implementation.
pricePolicyCancellation
function pricePolicyCancellation(address rm, bytes inputData) external view returns (struct Policy.PolicyData policyToCancel, uint256 purePremiumRefund, uint256 jrCocRefund, uint256 srCocRefund)
Prices a policy cancellation request for RiskModule rm.
Parameters
| Name |
Type |
Description |
| rm |
address |
The RiskModule address requesting pricing (implementations may use it for access checks). |
| inputData |
bytes |
Opaque payload consumed by the Underwriter implementation. |
Return Values
| Name |
Type |
Description |
| policyToCancel |
struct Policy.PolicyData |
The policy to cancel (as {Policy-PolicyData}). |
| purePremiumRefund |
uint256 |
Amount to refund from pure premium. |
| jrCocRefund |
uint256 |
Amount to refund from junior CoC (or a sentinel value, if supported). |
| srCocRefund |
uint256 |
Amount to refund from senior CoC (or a sentinel value, if supported). |
Pre-conditions
inputData must follow the ABI/layout expected by the concrete Underwriter implementation.
- The caller must satisfy any access/authentication requirements imposed by the implementation.