DullahanPod

MAX_BPS

uint256 MAX_BPS

Max value for BPS - 100%

MIN_MINT_AMOUNT

uint256 MIN_MINT_AMOUNT

Minimum allowed amount of GHO to mint

initialized

bool initialized

Is the Pod initialized

manager

address manager

Address of the Pod manager

vault

address vault

Address of the Vault

registry

address registry

Address of the Registry

podOwner

address podOwner

Address of the Pod owner

votingPowerDelegate

address votingPowerDelegate

Address of the delegate receiving the Pod voting power

proposalPowerDelegate

address proposalPowerDelegate

Address of the delegate receiving the Pod proposal power

collateral

address collateral

Address of the collateral in the Pod

aToken

address aToken

Address of the aToken for the collateral

aave

address aave

Address of the AAVE token

stkAave

address stkAave

Address of the stkAAVE token

PodInitialized

event PodInitialized(address podManager, address collateral, address podOwner, address vault, address registry)

Event emitted when the Pod is initialized

CollateralDeposited

event CollateralDeposited(address collateral, uint256 amount)

Event emitted when collateral is deposited

CollateralWithdrawn

event CollateralWithdrawn(address collateral, uint256 amount)

Event emitted when collateral is withdrawn

CollateralLiquidated

event CollateralLiquidated(address collateral, uint256 amount)

Event emitted when collateral is liquidated

GhoMinted

event GhoMinted(uint256 mintedAmount)

Event emitted when GHO is minted

GhoRepayed

event GhoRepayed(uint256 amountToRepay)

Event emitted when GHO is repayed

RentedStkAave

event RentedStkAave()

Event emitted when stkAAVE is rented by the Pod

UpdatedDelegate

event UpdatedDelegate(address newVotingDelegate, address newProposalDelegate)

Event emitted when the Pod delegates are updated

UpdatedRegistry

event UpdatedRegistry(address oldRegistry, address newRegistry)

Event emitted when the Pod registry is updated

onlyPodOwner

modifier onlyPodOwner()

Check that the caller is the Pod owner

onlyManager

modifier onlyManager()

Check that the caller is the manager

isInitialized

modifier isInitialized()

Check that the Pod is initialized

constructor

constructor() public

init

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

Parameters

podCollateralBalance

function podCollateralBalance() external view returns (uint256)

Get the Pod's current collateral balance

Return Values

podDebtBalance

function podDebtBalance() public view returns (uint256)

Get the Pod's current GHO debt balance

Return Values

podOwedFees

function podOwedFees() external view returns (uint256)

Get the stored amount of fees owed by this Pod

Return Values

depositCollateral

function depositCollateral(uint256 amount) external

Deposit collateral

Pull collateral in the Pod to deposit it in the Aave Pool

Parameters

withdrawCollateral

function withdrawCollateral(uint256 amount, address receiver) external

Withdraw collateral

Parameters

claimAaveExtraRewards

function claimAaveExtraRewards(address receiver) external

Claim any existing rewards from the Aave Rewards Controller for this Pod

Parameters

compoundStkAave

function compoundStkAave() external

Claim Safety Module rewards & stake them in stkAAVE

mintGho

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

Parameters

Return Values

repayGho

function repayGho(uint256 amountToRepay) external returns (bool)

Repay GHO fees and debt

Parameters

Return Values

repayGhoAndWithdrawCollateral

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

Parameters

Return Values

rentStkAave

function rentStkAave() external returns (bool)

Rent stkAAVE from the Vault to get the best interest rate reduction

Return Values

liquidateCollateral

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

Parameters

updateDelegation

function updateDelegation(address newVotingDelegate, address newProposalDelegate) external

Update the Pod's delegate address & delegate the voting power to it

Parameters

updateRegistry

function updateRegistry(address newRegistry) external

Update the Pod's Registry address

Parameters

_withdrawCollateral

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)

Parameters

_repayGho

function _repayGho(uint256 amountToRepay) internal returns (bool)

Repay GHO owed fees & debt (fees in priority)

Parameters

Return Values

_getStkAaveRewards

function _getStkAaveRewards() internal

Claim AAVE rewards from the Safety Module & stake them to receive stkAAVE & notify the Manager

Last updated