Comment on page
DullahanPod
uint256 MAX_BPS
Max value for BPS - 100%
uint256 MIN_MINT_AMOUNT
Minimum allowed amount of GHO to mint
bool initialized
Is the Pod initialized
address manager
Address of the Pod manager
address vault
Address of the Vault
address registry
Address of the Registry
address podOwner
Address of the Pod owner
address votingPowerDelegate
Address of the delegate receiving the Pod voting power
address proposalPowerDelegate
Address of the delegate receiving the Pod proposal power
address collateral
Address of the collateral in the Pod
address aToken
Address of the aToken for the collateral
address aave
Address of the AAVE token
address stkAave
Address of the stkAAVE token
event PodInitialized(address podManager, address collateral, address podOwner, address vault, address registry)
Event emitted when the Pod is initialized
event CollateralDeposited(address collateral, uint256 amount)
Event emitted when collateral is deposited
event CollateralWithdrawn(address collateral, uint256 amount)
Event emitted when collateral is withdrawn
event CollateralLiquidated(address collateral, uint256 amount)
Event emitted when collateral is liquidated
event GhoMinted(uint256 mintedAmount)
Event emitted when GHO is minted
event GhoRepayed(uint256 amountToRepay)
Event emitted when GHO is repayed
event RentedStkAave()
Event emitted when stkAAVE is rented by the Pod
event UpdatedDelegate(address newVotingDelegate, address newProposalDelegate)
Event emitted when the Pod delegates are updated
event UpdatedRegistry(address oldRegistry, address newRegistry)
Event emitted when the Pod registry is updated
modifier onlyPodOwner()
Check that the caller is the Pod owner
modifier onlyManager()
Check that the caller is the manager
modifier isInitialized()
Check that the Pod is initialized
constructor() public
function init(address _manager, address _vault, address _registry, address _podOwner, address _collateral, address _aToken, address _votingPowerDelegate, address _proposalPowerDelegate) external
Initialize the Pod with the given parameters
Name | Type | Description |
---|---|---|
_manager | address | Address of the Manager |
_vault | address | Address of the Vault |
_registry | address | Address of the Registry |
_podOwner | address | Address of the Pod owner |
_collateral | address | Address of the collateral |
_aToken | address | Address of the aToken for the collateral |
_votingPowerDelegate | address | Address of the delegate for the voting power |
_proposalPowerDelegate | address | Address of the delegate for the proposal power |
function podCollateralBalance() external view returns (uint256)
Get the Pod's current collateral balance
Name | Type | Description |
---|---|---|
[0] | uint256 | uint256 : Current collateral balance |
function podDebtBalance() public view returns (uint256)
Get the Pod's current GHO debt balance
Name | Type | Description |
---|---|---|
[0] | uint256 | uint256 : Current GHO debt balance |
function podOwedFees() external view returns (uint256)
Get the stored amount of fees owed by this Pod
Name | Type | Description |
---|---|---|
[0] | uint256 | uint256 : Stored amount of fees owed |
function depositCollateral(uint256 amount) external
Deposit collateral
Pull collateral in the Pod to deposit it in the Aave Pool
Name | Type | Description |
---|---|---|
amount | uint256 | Amount to deposit |
function withdrawCollateral(uint256 amount, address receiver) external
Withdraw collateral
Name | Type | Description |
---|---|---|
amount | uint256 | Amount to withdraw |
receiver | address | Address to receive the collateral |
function claimAaveExtraRewards(address receiver) external
Claim any existing rewards from the Aave Rewards Controller for this Pod
Name | Type | Description |
---|---|---|
receiver | address | Address to receive the rewards |
function compoundStkAave() external
Claim Safety Module rewards & stake them in stkAAVE
function mintGho(uint256 amountToMint, address receiver) external returns (uint256 mintedAmount)
Mint GHO & rent stkAAVE
Rent stkAAVE from the Vault & mint GHO with the best interest rate discount possible
Name | Type | Description |
---|---|---|
amountToMint | uint256 | Amount of GHO to be minted |
receiver | address | Address to receive the minted GHO |
Name | Type | Description |
---|---|---|
mintedAmount | uint256 | - uint256 : amount of GHO minted after fees |
function repayGho(uint256 amountToRepay) external returns (bool)
Repay GHO fees and debt
Name | Type | Description |
---|---|---|
amountToRepay | uint256 | Amount of GHO to de repaid |
Name | Type | Description |
---|---|---|
[0] | bool | bool : Success |
function repayGhoAndWithdrawCollateral(uint256 repayAmount, uint256 withdrawAmount, address receiver) external returns (bool)
Repay GHO fees and debt & withdraw collateral
Repay GHO fees & debt to be allowed to withdraw collateral
Name | Type | Description |
---|---|---|
repayAmount | uint256 | Amount of GHO to de repaid |
withdrawAmount | uint256 | Amount to withdraw |
receiver | address | Address to receive the collateral |
Name | Type | Description |
---|---|---|
[0] | bool | bool : Success |
function rentStkAave() external returns (bool)
Rent stkAAVE from the Vault to get the best interest rate reduction
Name | Type | Description |
---|---|---|
[0] | bool | bool : Success |
function liquidateCollateral(uint256 amount, address receiver) external
Liquidate Pod collateral to repay owed fees
Liquidate Pod collateral to repay owed fees, in the case the this Pod got liquidated on Aave market, and fees are still owed to Dullahan
Name | Type | Description |
---|---|---|
amount | uint256 | Amount of collateral to liquidate |
receiver | address | Address to receive the collateral |
function updateDelegation(address newVotingDelegate, address newProposalDelegate) external
Update the Pod's delegate address & delegate the voting power to it
Name | Type | Description |
---|---|---|
newVotingDelegate | address | Address of the new voting power delegate |
newProposalDelegate | address | Address of the new proposal power delegate |
function updateRegistry(address newRegistry) external
Update the Pod's Registry address
Name | Type | Description |
---|---|---|
newRegistry | address | Address of the new Registry |
function _withdrawCollateral(uint256 amount, address receiver) internal
Withdraw collateral from the Aave Pool directly to the given receiver (only if Pod fees are fully repaid)
Name | Type | Description |
---|---|---|
amount | uint256 | Amount to withdraw |
receiver | address | Address to receive the collateral |
function _repayGho(uint256 amountToRepay) internal returns (bool)
Repay GHO owed fees & debt (fees in priority)
Name | Type | Description |
---|---|---|
amountToRepay | uint256 | Amount of GHO to be repayed |
Name | Type | Description |
---|---|---|
[0] | bool | bool : Success |
function _getStkAaveRewards() internal
Claim AAVE rewards from the Safety Module & stake them to receive stkAAVE & notify the Manager
Last modified 3mo ago