PremiumEngine
PremiumEngine
Premium calculator contract of Insure protocol
View Methods
getPremiumRate
function getPremiumRate(uint256 coverAmount, uint256 totalLiquidity, uint256 lockedAmount) public pure returns (uint256)
Calculates the yearly premium rate.
Call Params
Name | Type | Description |
---|---|---|
coverAmount | uint256 | The cover amount of the policy |
totalLiquidity | uint256 | The liquidity inside risk pool |
lockedAmount | uint256 | The amount locked for all the active policies |
Return Value
Type | Description |
---|---|
uint256 | Yearly premium rate |
getPremium
function getPremium(uint256 coverAmount, uint256 duration, uint256 totalLiquidity, uint256 lockedAmount) external pure returns (uint256)
Calculates premium to be paid to buy insurance
Call Params
Name | Type | Description |
---|---|---|
coverAmount | uint256 | The cover amount of the policy |
duration | uint256 | The duration of the policy |
totalLiquidity | uint256 | The liquidity inside risk pool |
lockedAmount | uint256 | The amount locked for all the active policies |
Return Value
Type | Description |
---|---|
uint256 | Premium to be paid |
ABI
PremiumEngine ABI
[
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "previousAdmin",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "newAdmin",
"type": "address"
}
],
"name": "AdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "beacon",
"type": "address"
}
],
"name": "BeaconUpgraded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "implementation",
"type": "address"
}
],
"name": "Upgraded",
"type": "event"
},
{
"stateMutability": "payable",
"type": "fallback"
},
{
"inputs": [],
"name": "admin",
"outputs": [
{
"internalType": "address",
"name": "admin_",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newAdmin",
"type": "address"
}
],
"name": "changeAdmin",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "implementation",
"outputs": [
{
"internalType": "address",
"name": "implementation_",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newImplementation",
"type": "address"
}
],
"name": "upgradeTo",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newImplementation",
"type": "address"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "upgradeToAndCall",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
},
{
"inputs": [],
"name": "PremiumEngine__InsufficientCapacity",
"type": "error"
},
{
"inputs": [],
"name": "A",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "K",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "PREMIUM_ENGINE_REVISION",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "coverAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "duration",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "totalLiquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "lockedAmount",
"type": "uint256"
}
],
"name": "getPremium",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "coverAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "totalLiquidity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "lockedAmount",
"type": "uint256"
}
],
"name": "getPremiumRate",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_logic",
"type": "address"
},
{
"internalType": "address",
"name": "admin_",
"type": "address"
},
{
"internalType": "bytes",
"name": "_data",
"type": "bytes"
}
],
"stateMutability": "payable",
"type": "constructor"
}
]
Last updated