DeFiPie - Audit Report
Summary
DeFiPie aims to create a financial system that is open to everyone and minimizes the need to rely on central authorities. DeFiPie combines Lending-as-a-Service, Liquidity Pool-as-a-Service, and Staking-as-a-Service all in one platform.
DeFiPie's platform allow users to deposit idle assets to earn interest via lending; and to borrow against collateralized assets to gain access to additional capital. We audited DeFiPie's contracts, accessible at the following link, at commit 1d0d869310c521ae4f42d86e1f511723ab03ea1a on Github . The team appears to have only made minor changes since then.
Audit Findings:
Oracle pricing for the project comes from Uniswap's TWAPs (time-weighted average prices), which cannot be manipulated by flash loan attacks.
Some functions use tx.origin instead of msg.sender. This is not best in line with solidity best practices (SWC-115) , but it prevents contracts from accessing some functions.
Admins of the project have the ability to pause features of the platform. Ensure trust in the team; they are public and their actions thus far have proven trustworthy.
No security issues from outside attackers were identified.
Date: November 30th, 2020
Combined Audit Results
We ran over 400,000 transactions interacting with this suite of contracts on a test blockchain to determine these results.
Date: November 30th, 2020
Vulnerability Category
Notes
Result
Arbitrary Storage Write
N/A
PASS
Arbitrary Jump
N/A
PASS
Delegate Call to Untrusted Contract
N/A
PASS
Dependence on Predictable Variables
N/A
PASS
Deprecated Opcodes
N/A
PASS
Ether Thief
N/A
PASS
Exceptions
N/A
PASS
External Calls
N/A
PASS
Integer Over/Underflow
N/A
PASS
Multiple Sends
N/A
PASS
Smart Contract Weakness Classification
SWC-115 (tx.origin is used, which is not best practice.
No security issue is posed by this, however.)
Warning
Suicide
N/A
PASS
State Change External Calls
N/A
PASS
Unchecked Retval
N/A
PASS
User Supplied Assertion
N/A
PASS
Critical Solidity Compiler
N/A
PASS
Overall Contract Safety
PASS
Details: Controller
Function Graph
Inheritence Chart
Functions Overview
($) = payable function
# = non-constant function
Int = Internal
Ext = External
Pub = Public
+ ControllerInterface
- [Ext] enterMarkets #
- [Ext] exitMarket #
- [Ext] mintAllowed #
- [Ext] mintVerify #
- [Ext] redeemAllowed #
- [Ext] redeemVerify #
- [Ext] borrowAllowed #
- [Ext] borrowVerify #
- [Ext] repayBorrowAllowed #
- [Ext] repayBorrowVerify #
- [Ext] liquidateBorrowAllowed #
- [Ext] liquidateBorrowVerify #
- [Ext] seizeAllowed #
- [Ext] seizeVerify #
- [Ext] transferAllowed #
- [Ext] transferVerify #
- [Ext] liquidateCalculateSeizeTokens
- [Ext] getOracle
+ InterestRateModel
- [Ext] getBorrowRate
- [Ext] getSupplyRate
+ [Int] RegistryInterface
- [Ext] admin
- [Ext] pTokenImplementation
- [Ext] addPToken #
- [Ext] addPETH #
- [Ext] addPPIE #
+ ProxyWithRegistryStorage
+ ProxyWithRegistryInterface (ProxyWithRegistryStorage)
- [Int] _setRegistry #
- [Int] _pTokenImplementation
+ ProxyWithRegistry (ProxyWithRegistryInterface)
- [Int] _pTokenImplementation
- [Int] _setRegistry #
+ ImplementationStorage
- [Int] _setImplementation #
+ PTokenStorage (ProxyWithRegistryStorage)
+ PTokenInterface (PTokenStorage)
- [Ext] transfer #
- [Ext] transferFrom #
- [Ext] approve #
- [Ext] allowance
- [Ext] balanceOf
- [Ext] balanceOfUnderlying #
- [Ext] getAccountSnapshot
- [Ext] borrowRatePerBlock
- [Ext] supplyRatePerBlock
- [Ext] totalBorrowsCurrent #
- [Ext] borrowBalanceCurrent #
- [Pub] borrowBalanceStored
- [Pub] exchangeRateCurrent #
- [Pub] exchangeRateStored
- [Ext] getCash
- [Pub] accrueInterest #
- [Ext] seize #
- [Pub] _setController #
- [Ext] _setReserveFactor #
- [Ext] _reduceReserves #
- [Pub] _setInterestRateModel #
+ PErc20Storage
+ PErc20Interface (PErc20Storage)
- [Ext] mint #
- [Ext] redeem #
- [Ext] redeemUnderlying #
- [Ext] borrow #
- [Ext] repayBorrow #
- [Ext] repayBorrowBehalf #
- [Ext] liquidateBorrow #
- [Ext] _addReserves #
+ PPIEStorage
+ PPIEInterface (PPIEStorage)
- [Ext] delegate #
- [Ext] delegateBySig #
- [Ext] getCurrentVotes
- [Ext] getPriorVotes
+ [Int] EIP20Interface
- [Ext] name
- [Ext] symbol
- [Ext] decimals
- [Ext] totalSupply
- [Ext] balanceOf
- [Ext] transfer #
- [Ext] transferFrom #
- [Ext] approve #
- [Ext] allowance
+ [Int] EIP20NonStandardInterface
- [Ext] totalSupply
- [Ext] balanceOf
- [Ext] transfer #
- [Ext] transferFrom #
- [Ext] approve #
- [Ext] allowance
+ CarefulMath
- [Int] mulUInt
- [Int] divUInt
- [Int] subUInt
- [Int] addUInt
- [Int] addThenSubUInt
+ Exponential (CarefulMath)
- [Int] getExp
- [Int] addExp
- [Int] subExp
- [Int] mulScalar
- [Int] mulScalarTruncate
- [Int] mulScalarTruncateAddUInt
- [Int] divScalar
- [Int] divScalarByExp
- [Int] divScalarByExpTruncate
- [Int] mulExp
- [Int] mulExp
- [Int] mulExp3
- [Int] divExp
- [Int] truncate
- [Int] lessThanExp
- [Int] lessThanOrEqualExp
- [Int] greaterThanExp
- [Int] isZeroExp
- [Int] safe224
- [Int] safe32
- [Int] add_
- [Int] add_
- [Int] add_
- [Int] add_
- [Int] sub_
- [Int] sub_
- [Int] sub_
- [Int] sub_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] fraction
+ PriceOracle
- [Ext] getUnderlyingPrice
- [Ext] updateUnderlyingPrice #
+ ControllerErrorReporter
- [Int] fail #
- [Int] failOpaque #
+ TokenErrorReporter
- [Int] fail #
- [Int] failOpaque #
+ OracleErrorReporter
- [Int] fail #
+ FactoryErrorReporter
- [Int] fail #
+ RegistryErrorReporter
- [Int] fail #
+ UnitrollerAdminStorage
+ ControllerStorage (UnitrollerAdminStorage)
+ Unitroller (UnitrollerAdminStorage, ControllerErrorReporter)
- [Pub] #
- [Pub] _setPendingImplementation #
- [Pub] _acceptImplementation #
- [Pub] _setPendingAdmin #
- [Pub] _acceptAdmin #
- [Ext] ($)
- [Ext] ($)
+ Pie
- [Pub] #
- [Ext] allowance
- [Ext] approve #
- [Ext] balanceOf
- [Ext] transfer #
- [Ext] transferFrom #
- [Int] _transferTokens #
- [Int] safe96
- [Int] add96
- [Int] sub96
- [Int] getChainId
+ PToken (PTokenInterface, Exponential, TokenErrorReporter)
- [Pub] initialize #
- [Int] transferTokens #
- [Ext] transfer #
- modifiers: nonReentrant
- [Ext] transferFrom #
- modifiers: nonReentrant
- [Ext] approve #
- [Ext] allowance
- [Ext] balanceOf
- [Ext] balanceOfUnderlying #
- [Ext] getAccountSnapshot
- [Int] getBlockNumber
- [Ext] borrowRatePerBlock
- [Ext] supplyRatePerBlock
- [Ext] totalBorrowsCurrent #
- modifiers: nonReentrant
- [Ext] borrowBalanceCurrent #
- modifiers: nonReentrant
- [Pub] borrowBalanceStored
- [Int] borrowBalanceStoredInternal
- [Pub] exchangeRateCurrent #
- modifiers: nonReentrant
- [Pub] exchangeRateStored
- [Int] exchangeRateStoredInternal
- [Ext] getCash
- [Pub] accrueInterest #
- [Int] mintInternal #
- modifiers: nonReentrant
- [Int] mintFresh #
- [Int] redeemInternal #
- modifiers: nonReentrant
- [Int] redeemUnderlyingInternal #
- modifiers: nonReentrant
- [Int] redeemFresh #
- [Int] borrowInternal #
- modifiers: nonReentrant
- [Int] borrowFresh #
- [Int] repayBorrowInternal #
- modifiers: nonReentrant
- [Int] repayBorrowBehalfInternal #
- modifiers: nonReentrant
- [Int] repayBorrowFresh #
- [Int] liquidateBorrowInternal #
- modifiers: nonReentrant
- [Int] liquidateBorrowFresh #
- [Ext] seize #
- modifiers: nonReentrant
- [Int] seizeInternal #
- [Pub] _setController #
- [Int] _setControllerInternal #
- [Ext] _setReserveFactor #
- modifiers: nonReentrant
- [Int] _setReserveFactorFresh #
- [Int] _addReservesInternal #
- modifiers: nonReentrant
- [Int] _addReservesFresh #
- [Ext] _reduceReserves #
- modifiers: nonReentrant
- [Int] _reduceReservesFresh #
- [Pub] _setInterestRateModel #
- [Int] _setInterestRateModelFresh #
- [Int] _setInterestRateModelFreshInternal #
- [Pub] getMyAdmin
- [Int] getCashPrior
- [Int] doTransferIn #
- [Int] doTransferOut #
+ Controller (ControllerStorage, ControllerInterface, ControllerErrorReporter, Exponential)
- [Pub] #
- [Ext] getAssetsIn
- [Ext] checkMembership
- [Pub] enterMarkets #
- [Int] addToMarketInternal #
- [Ext] exitMarket #
- [Ext] mintAllowed #
- [Ext] mintVerify #
- [Ext] redeemAllowed #
- [Int] redeemAllowedInternal
- [Ext] redeemVerify #
- [Ext] borrowAllowed #
- [Ext] borrowVerify #
- [Ext] repayBorrowAllowed #
- [Ext] repayBorrowVerify #
- [Ext] liquidateBorrowAllowed #
- [Ext] liquidateBorrowVerify #
- [Ext] seizeAllowed #
- [Ext] seizeVerify #
- [Ext] transferAllowed #
- [Ext] transferVerify #
- [Pub] getAccountLiquidity
- [Int] getAccountLiquidityInternal
- [Pub] getHypotheticalAccountLiquidity
- [Int] getHypotheticalAccountLiquidityInternal
- [Ext] liquidateCalculateSeizeTokens
- [Pub] _setPriceOracle #
- [Pub] _setPieAddress #
- [Ext] _setCloseFactor #
- [Ext] _setCollateralFactor #
- [Ext] _setMaxAssets #
- [Ext] _setLiquidationIncentive #
- [Ext] _supportMarket #
- [Int] _addMarketInternal #
- [Pub] _setPauseGuardian #
- [Pub] _setMintPaused #
- [Pub] _setBorrowPaused #
- [Pub] _setTransferPaused #
- [Pub] _setSeizePaused #
- [Ext] _setFactoryContract #
- [Pub] _become #
- [Pub] _become #
- [Int] adminOrInitializing
- [Pub] refreshPieSpeeds #
- [Int] refreshPieSpeedsInternal #
- [Int] updatePieSupplyIndex #
- [Int] updatePieBorrowIndex #
- [Int] distributeSupplierPie #
- [Int] distributeBorrowerPie #
- [Int] transferPie #
- [Pub] claimPie #
- [Pub] claimPie #
- [Pub] claimPie #
- [Pub] _setPieRate #
- [Pub] _addPieMarkets #
- [Int] _addPieMarketInternal #
- [Pub] _dropPieMarket #
- [Pub] getAllMarkets
- [Pub] getBlockNumber
- [Pub] getPieAddress
- [Pub] getOracle
Details: PErc20Delegate
Function Graph
Inheritence Chart
Functions Overview
($) = payable function
# = non-constant function
Int = Internal
Ext = External
Pub = Public
+ ControllerInterface
- [Ext] enterMarkets #
- [Ext] exitMarket #
- [Ext] mintAllowed #
- [Ext] mintVerify #
- [Ext] redeemAllowed #
- [Ext] redeemVerify #
- [Ext] borrowAllowed #
- [Ext] borrowVerify #
- [Ext] repayBorrowAllowed #
- [Ext] repayBorrowVerify #
- [Ext] liquidateBorrowAllowed #
- [Ext] liquidateBorrowVerify #
- [Ext] seizeAllowed #
- [Ext] seizeVerify #
- [Ext] transferAllowed #
- [Ext] transferVerify #
- [Ext] liquidateCalculateSeizeTokens
- [Ext] getOracle
+ InterestRateModel
- [Ext] getBorrowRate
- [Ext] getSupplyRate
+ [Int] RegistryInterface
- [Ext] admin
- [Ext] pTokenImplementation
- [Ext] addPToken #
- [Ext] addPETH #
- [Ext] addPPIE #
+ ProxyWithRegistryStorage
+ ProxyWithRegistryInterface (ProxyWithRegistryStorage)
- [Int] _setRegistry #
- [Int] _pTokenImplementation
+ ProxyWithRegistry (ProxyWithRegistryInterface)
- [Int] _pTokenImplementation
- [Int] _setRegistry #
+ ImplementationStorage
- [Int] _setImplementation #
+ PTokenStorage (ProxyWithRegistryStorage)
+ PTokenInterface (PTokenStorage)
- [Ext] transfer #
- [Ext] transferFrom #
- [Ext] approve #
- [Ext] allowance
- [Ext] balanceOf
- [Ext] balanceOfUnderlying #
- [Ext] getAccountSnapshot
- [Ext] borrowRatePerBlock
- [Ext] supplyRatePerBlock
- [Ext] totalBorrowsCurrent #
- [Ext] borrowBalanceCurrent #
- [Pub] borrowBalanceStored
- [Pub] exchangeRateCurrent #
- [Pub] exchangeRateStored
- [Ext] getCash
- [Pub] accrueInterest #
- [Ext] seize #
- [Pub] _setController #
- [Ext] _setReserveFactor #
- [Ext] _reduceReserves #
- [Pub] _setInterestRateModel #
+ PErc20Storage
+ PErc20Interface (PErc20Storage)
- [Ext] mint #
- [Ext] redeem #
- [Ext] redeemUnderlying #
- [Ext] borrow #
- [Ext] repayBorrow #
- [Ext] repayBorrowBehalf #
- [Ext] liquidateBorrow #
- [Ext] _addReserves #
+ PPIEStorage
+ PPIEInterface (PPIEStorage)
- [Ext] delegate #
- [Ext] delegateBySig #
- [Ext] getCurrentVotes
- [Ext] getPriorVotes
+ [Int] EIP20Interface
- [Ext] name
- [Ext] symbol
- [Ext] decimals
- [Ext] totalSupply
- [Ext] balanceOf
- [Ext] transfer #
- [Ext] transferFrom #
- [Ext] approve #
- [Ext] allowance
+ [Int] EIP20NonStandardInterface
- [Ext] totalSupply
- [Ext] balanceOf
- [Ext] transfer #
- [Ext] transferFrom #
- [Ext] approve #
- [Ext] allowance
+ CarefulMath
- [Int] mulUInt
- [Int] divUInt
- [Int] subUInt
- [Int] addUInt
- [Int] addThenSubUInt
+ Exponential (CarefulMath)
- [Int] getExp
- [Int] addExp
- [Int] subExp
- [Int] mulScalar
- [Int] mulScalarTruncate
- [Int] mulScalarTruncateAddUInt
- [Int] divScalar
- [Int] divScalarByExp
- [Int] divScalarByExpTruncate
- [Int] mulExp
- [Int] mulExp
- [Int] mulExp3
- [Int] divExp
- [Int] truncate
- [Int] lessThanExp
- [Int] lessThanOrEqualExp
- [Int] greaterThanExp
- [Int] isZeroExp
- [Int] safe224
- [Int] safe32
- [Int] add_
- [Int] add_
- [Int] add_
- [Int] add_
- [Int] sub_
- [Int] sub_
- [Int] sub_
- [Int] sub_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] fraction
+ PriceOracle
- [Ext] getUnderlyingPrice
- [Ext] updateUnderlyingPrice #
+ ControllerErrorReporter
- [Int] fail #
- [Int] failOpaque #
+ TokenErrorReporter
- [Int] fail #
- [Int] failOpaque #
+ OracleErrorReporter
- [Int] fail #
+ FactoryErrorReporter
- [Int] fail #
+ RegistryErrorReporter
- [Int] fail #
+ UnitrollerAdminStorage
+ ControllerStorage (UnitrollerAdminStorage)
+ Unitroller (UnitrollerAdminStorage, ControllerErrorReporter)
- [Pub] #
- [Pub] _setPendingImplementation #
- [Pub] _acceptImplementation #
- [Pub] _setPendingAdmin #
- [Pub] _acceptAdmin #
- [Ext] ($)
- [Ext] ($)
+ Pie
- [Pub] #
- [Ext] allowance
- [Ext] approve #
- [Ext] balanceOf
- [Ext] transfer #
- [Ext] transferFrom #
- [Int] _transferTokens #
- [Int] safe96
- [Int] add96
- [Int] sub96
- [Int] getChainId
+ PToken (PTokenInterface, Exponential, TokenErrorReporter)
- [Pub] initialize #
- [Int] transferTokens #
- [Ext] transfer #
- modifiers: nonReentrant
- [Ext] transferFrom #
- modifiers: nonReentrant
- [Ext] approve #
- [Ext] allowance
- [Ext] balanceOf
- [Ext] balanceOfUnderlying #
- [Ext] getAccountSnapshot
- [Int] getBlockNumber
- [Ext] borrowRatePerBlock
- [Ext] supplyRatePerBlock
- [Ext] totalBorrowsCurrent #
- modifiers: nonReentrant
- [Ext] borrowBalanceCurrent #
- modifiers: nonReentrant
- [Pub] borrowBalanceStored
- [Int] borrowBalanceStoredInternal
- [Pub] exchangeRateCurrent #
- modifiers: nonReentrant
- [Pub] exchangeRateStored
- [Int] exchangeRateStoredInternal
- [Ext] getCash
- [Pub] accrueInterest #
- [Int] mintInternal #
- modifiers: nonReentrant
- [Int] mintFresh #
- [Int] redeemInternal #
- modifiers: nonReentrant
- [Int] redeemUnderlyingInternal #
- modifiers: nonReentrant
- [Int] redeemFresh #
- [Int] borrowInternal #
- modifiers: nonReentrant
- [Int] borrowFresh #
- [Int] repayBorrowInternal #
- modifiers: nonReentrant
- [Int] repayBorrowBehalfInternal #
- modifiers: nonReentrant
- [Int] repayBorrowFresh #
- [Int] liquidateBorrowInternal #
- modifiers: nonReentrant
- [Int] liquidateBorrowFresh #
- [Ext] seize #
- modifiers: nonReentrant
- [Int] seizeInternal #
- [Pub] _setController #
- [Int] _setControllerInternal #
- [Ext] _setReserveFactor #
- modifiers: nonReentrant
- [Int] _setReserveFactorFresh #
- [Int] _addReservesInternal #
- modifiers: nonReentrant
- [Int] _addReservesFresh #
- [Ext] _reduceReserves #
- modifiers: nonReentrant
- [Int] _reduceReservesFresh #
- [Pub] _setInterestRateModel #
- [Int] _setInterestRateModelFresh #
- [Int] _setInterestRateModelFreshInternal #
- [Pub] getMyAdmin
- [Int] getCashPrior
- [Int] doTransferIn #
- [Int] doTransferOut #
+ PErc20 (PToken, PErc20Interface)
- [Pub] initialize #
- [Ext] mint #
- [Ext] redeem #
- [Ext] redeemUnderlying #
- [Ext] borrow #
- [Ext] repayBorrow #
- [Ext] repayBorrowBehalf #
- [Ext] liquidateBorrow #
- [Ext] _addReserves #
- [Int] getCashPrior
- [Int] doTransferIn #
- [Int] doTransferOut #
+ PErc20Delegate (PErc20)
- [Pub] #
Details: PEtherDelegate
Function Graph
Inheritence Chart
Functions Overview
($) = payable function
# = non-constant function
Int = Internal
Ext = External
Pub = Public
+ ControllerInterface
- [Ext] enterMarkets #
- [Ext] exitMarket #
- [Ext] mintAllowed #
- [Ext] mintVerify #
- [Ext] redeemAllowed #
- [Ext] redeemVerify #
- [Ext] borrowAllowed #
- [Ext] borrowVerify #
- [Ext] repayBorrowAllowed #
- [Ext] repayBorrowVerify #
- [Ext] liquidateBorrowAllowed #
- [Ext] liquidateBorrowVerify #
- [Ext] seizeAllowed #
- [Ext] seizeVerify #
- [Ext] transferAllowed #
- [Ext] transferVerify #
- [Ext] liquidateCalculateSeizeTokens
- [Ext] getOracle
+ InterestRateModel
- [Ext] getBorrowRate
- [Ext] getSupplyRate
+ [Int] RegistryInterface
- [Ext] admin
- [Ext] pTokenImplementation
- [Ext] addPToken #
- [Ext] addPETH #
- [Ext] addPPIE #
+ ProxyWithRegistryStorage
+ ProxyWithRegistryInterface (ProxyWithRegistryStorage)
- [Int] _setRegistry #
- [Int] _pTokenImplementation
+ ProxyWithRegistry (ProxyWithRegistryInterface)
- [Int] _pTokenImplementation
- [Int] _setRegistry #
+ ImplementationStorage
- [Int] _setImplementation #
+ PTokenStorage (ProxyWithRegistryStorage)
+ PTokenInterface (PTokenStorage)
- [Ext] transfer #
- [Ext] transferFrom #
- [Ext] approve #
- [Ext] allowance
- [Ext] balanceOf
- [Ext] balanceOfUnderlying #
- [Ext] getAccountSnapshot
- [Ext] borrowRatePerBlock
- [Ext] supplyRatePerBlock
- [Ext] totalBorrowsCurrent #
- [Ext] borrowBalanceCurrent #
- [Pub] borrowBalanceStored
- [Pub] exchangeRateCurrent #
- [Pub] exchangeRateStored
- [Ext] getCash
- [Pub] accrueInterest #
- [Ext] seize #
- [Pub] _setController #
- [Ext] _setReserveFactor #
- [Ext] _reduceReserves #
- [Pub] _setInterestRateModel #
+ PErc20Storage
+ PErc20Interface (PErc20Storage)
- [Ext] mint #
- [Ext] redeem #
- [Ext] redeemUnderlying #
- [Ext] borrow #
- [Ext] repayBorrow #
- [Ext] repayBorrowBehalf #
- [Ext] liquidateBorrow #
- [Ext] _addReserves #
+ PPIEStorage
+ PPIEInterface (PPIEStorage)
- [Ext] delegate #
- [Ext] delegateBySig #
- [Ext] getCurrentVotes
- [Ext] getPriorVotes
+ [Int] EIP20Interface
- [Ext] name
- [Ext] symbol
- [Ext] decimals
- [Ext] totalSupply
- [Ext] balanceOf
- [Ext] transfer #
- [Ext] transferFrom #
- [Ext] approve #
- [Ext] allowance
+ [Int] EIP20NonStandardInterface
- [Ext] totalSupply
- [Ext] balanceOf
- [Ext] transfer #
- [Ext] transferFrom #
- [Ext] approve #
- [Ext] allowance
+ CarefulMath
- [Int] mulUInt
- [Int] divUInt
- [Int] subUInt
- [Int] addUInt
- [Int] addThenSubUInt
+ Exponential (CarefulMath)
- [Int] getExp
- [Int] addExp
- [Int] subExp
- [Int] mulScalar
- [Int] mulScalarTruncate
- [Int] mulScalarTruncateAddUInt
- [Int] divScalar
- [Int] divScalarByExp
- [Int] divScalarByExpTruncate
- [Int] mulExp
- [Int] mulExp
- [Int] mulExp3
- [Int] divExp
- [Int] truncate
- [Int] lessThanExp
- [Int] lessThanOrEqualExp
- [Int] greaterThanExp
- [Int] isZeroExp
- [Int] safe224
- [Int] safe32
- [Int] add_
- [Int] add_
- [Int] add_
- [Int] add_
- [Int] sub_
- [Int] sub_
- [Int] sub_
- [Int] sub_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] fraction
+ PriceOracle
- [Ext] getUnderlyingPrice
- [Ext] updateUnderlyingPrice #
+ ControllerErrorReporter
- [Int] fail #
- [Int] failOpaque #
+ TokenErrorReporter
- [Int] fail #
- [Int] failOpaque #
+ OracleErrorReporter
- [Int] fail #
+ FactoryErrorReporter
- [Int] fail #
+ RegistryErrorReporter
- [Int] fail #
+ UnitrollerAdminStorage
+ ControllerStorage (UnitrollerAdminStorage)
+ Unitroller (UnitrollerAdminStorage, ControllerErrorReporter)
- [Pub] #
- [Pub] _setPendingImplementation #
- [Pub] _acceptImplementation #
- [Pub] _setPendingAdmin #
- [Pub] _acceptAdmin #
- [Ext] ($)
- [Ext] ($)
+ Pie
- [Pub] #
- [Ext] allowance
- [Ext] approve #
- [Ext] balanceOf
- [Ext] transfer #
- [Ext] transferFrom #
- [Int] _transferTokens #
- [Int] safe96
- [Int] add96
- [Int] sub96
- [Int] getChainId
+ PToken (PTokenInterface, Exponential, TokenErrorReporter)
- [Pub] initialize #
- [Int] transferTokens #
- [Ext] transfer #
- modifiers: nonReentrant
- [Ext] transferFrom #
- modifiers: nonReentrant
- [Ext] approve #
- [Ext] allowance
- [Ext] balanceOf
- [Ext] balanceOfUnderlying #
- [Ext] getAccountSnapshot
- [Int] getBlockNumber
- [Ext] borrowRatePerBlock
- [Ext] supplyRatePerBlock
- [Ext] totalBorrowsCurrent #
- modifiers: nonReentrant
- [Ext] borrowBalanceCurrent #
- modifiers: nonReentrant
- [Pub] borrowBalanceStored
- [Int] borrowBalanceStoredInternal
- [Pub] exchangeRateCurrent #
- modifiers: nonReentrant
- [Pub] exchangeRateStored
- [Int] exchangeRateStoredInternal
- [Ext] getCash
- [Pub] accrueInterest #
- [Int] mintInternal #
- modifiers: nonReentrant
- [Int] mintFresh #
- [Int] redeemInternal #
- modifiers: nonReentrant
- [Int] redeemUnderlyingInternal #
- modifiers: nonReentrant
- [Int] redeemFresh #
- [Int] borrowInternal #
- modifiers: nonReentrant
- [Int] borrowFresh #
- [Int] repayBorrowInternal #
- modifiers: nonReentrant
- [Int] repayBorrowBehalfInternal #
- modifiers: nonReentrant
- [Int] repayBorrowFresh #
- [Int] liquidateBorrowInternal #
- modifiers: nonReentrant
- [Int] liquidateBorrowFresh #
- [Ext] seize #
- modifiers: nonReentrant
- [Int] seizeInternal #
- [Pub] _setController #
- [Int] _setControllerInternal #
- [Ext] _setReserveFactor #
- modifiers: nonReentrant
- [Int] _setReserveFactorFresh #
- [Int] _addReservesInternal #
- modifiers: nonReentrant
- [Int] _addReservesFresh #
- [Ext] _reduceReserves #
- modifiers: nonReentrant
- [Int] _reduceReservesFresh #
- [Pub] _setInterestRateModel #
- [Int] _setInterestRateModelFresh #
- [Int] _setInterestRateModelFreshInternal #
- [Pub] getMyAdmin
- [Int] getCashPrior
- [Int] doTransferIn #
- [Int] doTransferOut #
+ PEther (ImplementationStorage, PToken)
- [Pub] initialize #
- [Ext] mint ($)
- [Ext] redeem #
- [Ext] redeemUnderlying #
- [Ext] borrow #
- [Ext] repayBorrow ($)
- [Ext] repayBorrowBehalf ($)
- [Ext] liquidateBorrow ($)
- [Ext] ($)
- [Ext] ($)
- [Int] getCashPrior
- [Int] doTransferIn #
- [Int] doTransferOut #
- [Int] requireNoError
+ PEtherDelegate (PEther)
- [Pub] #
Details: PTokenFactory
Function Graph
Inheritence Chart
Functions Overview
($) = payable function
# = non-constant function
Int = Internal
Ext = External
Pub = Public
+ ProxyWithRegistryStorage
+ ProxyWithRegistryInterface (ProxyWithRegistryStorage)
- [Int] _setRegistry #
- [Int] _pTokenImplementation
+ ProxyWithRegistry (ProxyWithRegistryInterface)
- [Int] _pTokenImplementation
- [Int] _setRegistry #
+ ImplementationStorage
- [Int] _setImplementation #
+ PErc20Delegator (ProxyWithRegistry)
- [Pub] #
- [Int] delegateTo #
- [Int] delegateAndReturn #
- [Ext] ($)
- [Ext] ($)
+ [Int] RegistryInterface
- [Ext] admin
- [Ext] pTokenImplementation
- [Ext] addPToken #
- [Ext] addPETH #
- [Ext] addPPIE #
+ [Int] EIP20Interface
- [Ext] name
- [Ext] symbol
- [Ext] decimals
- [Ext] totalSupply
- [Ext] balanceOf
- [Ext] transfer #
- [Ext] transferFrom #
- [Ext] approve #
- [Ext] allowance
+ [Lib] strings
- [Prv] memcpy
- [Int] toSlice
- [Int] len
- [Int] toSliceB32
- [Int] copy
- [Int] toString
- [Int] len
- [Int] empty
- [Int] compare
- [Int] equals
- [Int] nextRune
- [Int] nextRune
- [Int] ord
- [Int] keccak
- [Int] startsWith
- [Int] beyond
- [Int] endsWith
- [Int] until
- [Prv] findPtr
- [Prv] rfindPtr
- [Int] find
- [Int] rfind
- [Int] split
- [Int] split
- [Int] rsplit
- [Int] rsplit
- [Int] count
- [Int] contains
- [Int] concat
- [Int] join
+ [Lib] SafeMath
- [Int] add
- [Int] add
- [Int] sub
- [Int] sub
- [Int] mul
- [Int] mul
- [Int] div
- [Int] div
- [Int] mod
- [Int] mod
+ [Int] AggregatorInterface
- [Ext] latestAnswer
+ [Lib] UQ112x112
- [Int] encode
- [Int] uqdiv
+ [Lib] FixedPoint
- [Int] mul
- [Int] decode144
+ [Int] IUniswapV2Pair
- [Ext] token0
- [Ext] token1
- [Ext] getReserves
- [Ext] price0CumulativeLast
- [Ext] price1CumulativeLast
+ [Int] IUniswapV2Factory
- [Ext] getPair
+ ControllerErrorReporter
- [Int] fail #
- [Int] failOpaque #
+ TokenErrorReporter
- [Int] fail #
- [Int] failOpaque #
+ OracleErrorReporter
- [Int] fail #
+ FactoryErrorReporter
- [Int] fail #
+ RegistryErrorReporter
- [Int] fail #
+ PETHDelegator (ImplementationStorage, ProxyWithRegistry)
- [Pub] #
- [Int] delegateTo #
- [Prv] delegateAndReturn #
- [Ext] ($)
- [Ext] ($)
+ PPIEDelegator (ImplementationStorage, ProxyWithRegistry)
- [Pub] #
- [Int] delegateTo #
- [Int] delegateAndReturn #
- [Ext] ($)
- [Ext] ($)
+ [Int] Icontroller
- [Ext] _supportMarket #
+ [Int] IUniswapPriceOracle
- [Ext] update #
- [Ext] getUniswapPair
+ PTokenFactory (FactoryErrorReporter)
- [Pub] #
- [Ext] createPToken #
- [Ext] createPETH #
- [Ext] createPPIE #
- [Pub] reserveIsEnough
- [Pub] setMinUniswapLiquidity #
- [Pub] setOracle #
- [Ext] setController #
- [Ext] setInterestRateModel #
- [Ext] setInitialExchangeRateMantissa #
- [Ext] setInitialReserveFactorMantissa #
- [Pub] getAdmin
- [Int] _createPTokenNameAndSymbol
Details: Registry
Function Graph
Inheritence Chart
Functions Overview
($) = payable function
# = non-constant function
Int = Internal
Ext = External
Pub = Public
+ ControllerInterface
- [Ext] enterMarkets #
- [Ext] exitMarket #
- [Ext] mintAllowed #
- [Ext] mintVerify #
- [Ext] redeemAllowed #
- [Ext] redeemVerify #
- [Ext] borrowAllowed #
- [Ext] borrowVerify #
- [Ext] repayBorrowAllowed #
- [Ext] repayBorrowVerify #
- [Ext] liquidateBorrowAllowed #
- [Ext] liquidateBorrowVerify #
- [Ext] seizeAllowed #
- [Ext] seizeVerify #
- [Ext] transferAllowed #
- [Ext] transferVerify #
- [Ext] liquidateCalculateSeizeTokens
- [Ext] getOracle
+ InterestRateModel
- [Ext] getBorrowRate
- [Ext] getSupplyRate
+ [Int] RegistryInterface
- [Ext] admin
- [Ext] pTokenImplementation
- [Ext] addPToken #
- [Ext] addPETH #
- [Ext] addPPIE #
+ ProxyWithRegistryStorage
+ ProxyWithRegistryInterface (ProxyWithRegistryStorage)
- [Int] _setRegistry #
- [Int] _pTokenImplementation
+ ProxyWithRegistry (ProxyWithRegistryInterface)
- [Int] _pTokenImplementation
- [Int] _setRegistry #
+ ImplementationStorage
- [Int] _setImplementation #
+ PTokenStorage (ProxyWithRegistryStorage)
+ PTokenInterface (PTokenStorage)
- [Ext] transfer #
- [Ext] transferFrom #
- [Ext] approve #
- [Ext] allowance
- [Ext] balanceOf
- [Ext] balanceOfUnderlying #
- [Ext] getAccountSnapshot
- [Ext] borrowRatePerBlock
- [Ext] supplyRatePerBlock
- [Ext] totalBorrowsCurrent #
- [Ext] borrowBalanceCurrent #
- [Pub] borrowBalanceStored
- [Pub] exchangeRateCurrent #
- [Pub] exchangeRateStored
- [Ext] getCash
- [Pub] accrueInterest #
- [Ext] seize #
- [Pub] _setController #
- [Ext] _setReserveFactor #
- [Ext] _reduceReserves #
- [Pub] _setInterestRateModel #
+ PErc20Storage
+ PErc20Interface (PErc20Storage)
- [Ext] mint #
- [Ext] redeem #
- [Ext] redeemUnderlying #
- [Ext] borrow #
- [Ext] repayBorrow #
- [Ext] repayBorrowBehalf #
- [Ext] liquidateBorrow #
- [Ext] _addReserves #
+ PPIEStorage
+ PPIEInterface (PPIEStorage)
- [Ext] delegate #
- [Ext] delegateBySig #
- [Ext] getCurrentVotes
- [Ext] getPriorVotes
+ [Int] EIP20Interface
- [Ext] name
- [Ext] symbol
- [Ext] decimals
- [Ext] totalSupply
- [Ext] balanceOf
- [Ext] transfer #
- [Ext] transferFrom #
- [Ext] approve #
- [Ext] allowance
+ [Int] EIP20NonStandardInterface
- [Ext] totalSupply
- [Ext] balanceOf
- [Ext] transfer #
- [Ext] transferFrom #
- [Ext] approve #
- [Ext] allowance
+ CarefulMath
- [Int] mulUInt
- [Int] divUInt
- [Int] subUInt
- [Int] addUInt
- [Int] addThenSubUInt
+ Exponential (CarefulMath)
- [Int] getExp
- [Int] addExp
- [Int] subExp
- [Int] mulScalar
- [Int] mulScalarTruncate
- [Int] mulScalarTruncateAddUInt
- [Int] divScalar
- [Int] divScalarByExp
- [Int] divScalarByExpTruncate
- [Int] mulExp
- [Int] mulExp
- [Int] mulExp3
- [Int] divExp
- [Int] truncate
- [Int] lessThanExp
- [Int] lessThanOrEqualExp
- [Int] greaterThanExp
- [Int] isZeroExp
- [Int] safe224
- [Int] safe32
- [Int] add_
- [Int] add_
- [Int] add_
- [Int] add_
- [Int] sub_
- [Int] sub_
- [Int] sub_
- [Int] sub_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] fraction
+ PriceOracle
- [Ext] getUnderlyingPrice
- [Ext] updateUnderlyingPrice #
+ ControllerErrorReporter
- [Int] fail #
- [Int] failOpaque #
+ TokenErrorReporter
- [Int] fail #
- [Int] failOpaque #
+ OracleErrorReporter
- [Int] fail #
+ FactoryErrorReporter
- [Int] fail #
+ RegistryErrorReporter
- [Int] fail #
+ UnitrollerAdminStorage
+ ControllerStorage (UnitrollerAdminStorage)
+ Unitroller (UnitrollerAdminStorage, ControllerErrorReporter)
- [Pub] #
- [Pub] _setPendingImplementation #
- [Pub] _acceptImplementation #
- [Pub] _setPendingAdmin #
- [Pub] _acceptAdmin #
- [Ext] ($)
- [Ext] ($)
+ Pie
- [Pub] #
- [Ext] allowance
- [Ext] approve #
- [Ext] balanceOf
- [Ext] transfer #
- [Ext] transferFrom #
- [Int] _transferTokens #
- [Int] safe96
- [Int] add96
- [Int] sub96
- [Int] getChainId
+ PToken (PTokenInterface, Exponential, TokenErrorReporter)
- [Pub] initialize #
- [Int] transferTokens #
- [Ext] transfer #
- modifiers: nonReentrant
- [Ext] transferFrom #
- modifiers: nonReentrant
- [Ext] approve #
- [Ext] allowance
- [Ext] balanceOf
- [Ext] balanceOfUnderlying #
- [Ext] getAccountSnapshot
- [Int] getBlockNumber
- [Ext] borrowRatePerBlock
- [Ext] supplyRatePerBlock
- [Ext] totalBorrowsCurrent #
- modifiers: nonReentrant
- [Ext] borrowBalanceCurrent #
- modifiers: nonReentrant
- [Pub] borrowBalanceStored
- [Int] borrowBalanceStoredInternal
- [Pub] exchangeRateCurrent #
- modifiers: nonReentrant
- [Pub] exchangeRateStored
- [Int] exchangeRateStoredInternal
- [Ext] getCash
- [Pub] accrueInterest #
- [Int] mintInternal #
- modifiers: nonReentrant
- [Int] mintFresh #
- [Int] redeemInternal #
- modifiers: nonReentrant
- [Int] redeemUnderlyingInternal #
- modifiers: nonReentrant
- [Int] redeemFresh #
- [Int] borrowInternal #
- modifiers: nonReentrant
- [Int] borrowFresh #
- [Int] repayBorrowInternal #
- modifiers: nonReentrant
- [Int] repayBorrowBehalfInternal #
- modifiers: nonReentrant
- [Int] repayBorrowFresh #
- [Int] liquidateBorrowInternal #
- modifiers: nonReentrant
- [Int] liquidateBorrowFresh #
- [Ext] seize #
- modifiers: nonReentrant
- [Int] seizeInternal #
- [Pub] _setController #
- [Int] _setControllerInternal #
- [Ext] _setReserveFactor #
- modifiers: nonReentrant
- [Int] _setReserveFactorFresh #
- [Int] _addReservesInternal #
- modifiers: nonReentrant
- [Int] _addReservesFresh #
- [Ext] _reduceReserves #
- modifiers: nonReentrant
- [Int] _reduceReservesFresh #
- [Pub] _setInterestRateModel #
- [Int] _setInterestRateModelFresh #
- [Int] _setInterestRateModelFreshInternal #
- [Pub] getMyAdmin
- [Int] getCashPrior
- [Int] doTransferIn #
- [Int] doTransferOut #
+ RegistryStorage
+ Registry (RegistryStorage, RegistryErrorReporter)
- [Pub] #
- [Pub] initialize #
- [Ext] setPTokenImplementation #
- [Ext] _setFactoryContract #
- [Pub] addPToken #
- [Pub] addPETH #
- [Pub] addPPIE #
Details: StakingRewards
Function Graph
Inheritence Chart
Functions Overview
($) = payable function
# = non-constant function
Int = Internal
Ext = External
Pub = Public
+ RegistryStorage
+ ControllerErrorReporter
- [Int] fail #
- [Int] failOpaque #
+ TokenErrorReporter
- [Int] fail #
- [Int] failOpaque #
+ OracleErrorReporter
- [Int] fail #
+ FactoryErrorReporter
- [Int] fail #
+ RegistryErrorReporter
- [Int] fail #
+ [Int] RegistryInterface
- [Ext] admin
- [Ext] pTokenImplementation
- [Ext] addPToken #
- [Ext] addPETH #
- [Ext] addPPIE #
+ RegistryProxy (RegistryStorage, RegistryErrorReporter)
- [Pub] #
- [Ext] setImplementation #
- [Ext] _setPendingAdmin #
- [Ext] _acceptAdmin #
- [Int] delegateTo #
- [Int] delegateAndReturn #
- [Ext] ($)
- [Ext] ($)
Details: StandardToken
Function Graph
Inheritence Chart
Functions Overview
($) = payable function
# = non-constant function
Int = Internal
Ext = External
Pub = Public
+ [Lib] SafeMath
- [Int] add
- [Int] add
- [Int] sub
- [Int] sub
- [Int] mul
- [Int] mul
- [Int] div
- [Int] div
- [Int] mod
- [Int] mod
+ [Int] ERC20Base
- [Ext] totalSupply
- [Ext] allowance
- [Ext] approve #
- [Ext] balanceOf
+ ERC20 (ERC20Base)
- [Ext] transfer #
- [Ext] transferFrom #
+ ERC20NS (ERC20Base)
- [Ext] transfer #
- [Ext] transferFrom #
+ StandardToken (ERC20)
- [Pub] #
- [Ext] transfer #
- [Ext] transferFrom #
- [Ext] approve #
- [Pub] allowance
- [Pub] balanceOf
- [Ext] totalSupply
+ NonStandardToken (ERC20NS)
- [Pub] #
- [Ext] transfer #
- [Ext] transferFrom #
- [Ext] approve #
- [Pub] allowance
- [Pub] balanceOf
- [Ext] totalSupply
+ ERC20Harness (StandardToken)
- [Pub] #
- modifiers: StandardToken
- [Pub] harnessSetFailTransferFromAddress #
- [Pub] harnessSetFailTransferToAddress #
- [Pub] harnessSetBalance #
- [Ext] transfer #
- [Ext] transferFrom #
Details: UniswapPriceOracle
Function Graph
Inheritence Chart
Functions Overview
($) = payable function
# = non-constant function
Int = Internal
Ext = External
Pub = Public
+ ControllerInterface
- [Ext] enterMarkets #
- [Ext] exitMarket #
- [Ext] mintAllowed #
- [Ext] mintVerify #
- [Ext] redeemAllowed #
- [Ext] redeemVerify #
- [Ext] borrowAllowed #
- [Ext] borrowVerify #
- [Ext] repayBorrowAllowed #
- [Ext] repayBorrowVerify #
- [Ext] liquidateBorrowAllowed #
- [Ext] liquidateBorrowVerify #
- [Ext] seizeAllowed #
- [Ext] seizeVerify #
- [Ext] transferAllowed #
- [Ext] transferVerify #
- [Ext] liquidateCalculateSeizeTokens
- [Ext] getOracle
+ ProxyWithRegistryStorage
+ ProxyWithRegistryInterface (ProxyWithRegistryStorage)
- [Int] _setRegistry #
- [Int] _pTokenImplementation
+ ProxyWithRegistry (ProxyWithRegistryInterface)
- [Int] _pTokenImplementation
- [Int] _setRegistry #
+ ImplementationStorage
- [Int] _setImplementation #
+ PTokenStorage (ProxyWithRegistryStorage)
+ PTokenInterface (PTokenStorage)
- [Ext] transfer #
- [Ext] transferFrom #
- [Ext] approve #
- [Ext] allowance
- [Ext] balanceOf
- [Ext] balanceOfUnderlying #
- [Ext] getAccountSnapshot
- [Ext] borrowRatePerBlock
- [Ext] supplyRatePerBlock
- [Ext] totalBorrowsCurrent #
- [Ext] borrowBalanceCurrent #
- [Pub] borrowBalanceStored
- [Pub] exchangeRateCurrent #
- [Pub] exchangeRateStored
- [Ext] getCash
- [Pub] accrueInterest #
- [Ext] seize #
- [Pub] _setController #
- [Ext] _setReserveFactor #
- [Ext] _reduceReserves #
- [Pub] _setInterestRateModel #
+ PErc20Storage
+ PErc20Interface (PErc20Storage)
- [Ext] mint #
- [Ext] redeem #
- [Ext] redeemUnderlying #
- [Ext] borrow #
- [Ext] repayBorrow #
- [Ext] repayBorrowBehalf #
- [Ext] liquidateBorrow #
- [Ext] _addReserves #
+ PPIEStorage
+ PPIEInterface (PPIEStorage)
- [Ext] delegate #
- [Ext] delegateBySig #
- [Ext] getCurrentVotes
- [Ext] getPriorVotes
+ [Int] EIP20Interface
- [Ext] name
- [Ext] symbol
- [Ext] decimals
- [Ext] totalSupply
- [Ext] balanceOf
- [Ext] transfer #
- [Ext] transferFrom #
- [Ext] approve #
- [Ext] allowance
+ [Int] EIP20NonStandardInterface
- [Ext] totalSupply
- [Ext] balanceOf
- [Ext] transfer #
- [Ext] transferFrom #
- [Ext] approve #
- [Ext] allowance
+ CarefulMath
- [Int] mulUInt
- [Int] divUInt
- [Int] subUInt
- [Int] addUInt
- [Int] addThenSubUInt
+ Exponential (CarefulMath)
- [Int] getExp
- [Int] addExp
- [Int] subExp
- [Int] mulScalar
- [Int] mulScalarTruncate
- [Int] mulScalarTruncateAddUInt
- [Int] divScalar
- [Int] divScalarByExp
- [Int] divScalarByExpTruncate
- [Int] mulExp
- [Int] mulExp
- [Int] mulExp3
- [Int] divExp
- [Int] truncate
- [Int] lessThanExp
- [Int] lessThanOrEqualExp
- [Int] greaterThanExp
- [Int] isZeroExp
- [Int] safe224
- [Int] safe32
- [Int] add_
- [Int] add_
- [Int] add_
- [Int] add_
- [Int] sub_
- [Int] sub_
- [Int] sub_
- [Int] sub_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] fraction
+ PriceOracle
- [Ext] getUnderlyingPrice
- [Ext] updateUnderlyingPrice #
+ ControllerErrorReporter
- [Int] fail #
- [Int] failOpaque #
+ TokenErrorReporter
- [Int] fail #
- [Int] failOpaque #
+ OracleErrorReporter
- [Int] fail #
+ FactoryErrorReporter
- [Int] fail #
+ RegistryErrorReporter
- [Int] fail #
+ UnitrollerAdminStorage
+ ControllerStorage (UnitrollerAdminStorage)
+ Unitroller (UnitrollerAdminStorage, ControllerErrorReporter)
- [Pub] #
- [Pub] _setPendingImplementation #
- [Pub] _acceptImplementation #
- [Pub] _setPendingAdmin #
- [Pub] _acceptAdmin #
- [Ext] ($)
- [Ext] ($)
+ Pie
- [Pub] #
- [Ext] allowance
- [Ext] approve #
- [Ext] balanceOf
- [Ext] transfer #
- [Ext] transferFrom #
- [Int] _transferTokens #
- [Int] safe96
- [Int] add96
- [Int] sub96
- [Int] getChainId
+ PToken (PTokenInterface, Exponential, TokenErrorReporter)
- [Pub] initialize #
- [Int] transferTokens #
- [Ext] transfer #
- modifiers: nonReentrant
- [Ext] transferFrom #
- modifiers: nonReentrant
- [Ext] approve #
- [Ext] allowance
- [Ext] balanceOf
- [Ext] balanceOfUnderlying #
- [Ext] getAccountSnapshot
- [Int] getBlockNumber
- [Ext] borrowRatePerBlock
- [Ext] supplyRatePerBlock
- [Ext] totalBorrowsCurrent #
- modifiers: nonReentrant
- [Ext] borrowBalanceCurrent #
- modifiers: nonReentrant
- [Pub] borrowBalanceStored
- [Int] borrowBalanceStoredInternal
- [Pub] exchangeRateCurrent #
- modifiers: nonReentrant
- [Pub] exchangeRateStored
- [Int] exchangeRateStoredInternal
- [Ext] getCash
- [Pub] accrueInterest #
- [Int] mintInternal #
- modifiers: nonReentrant
- [Int] mintFresh #
- [Int] redeemInternal #
- modifiers: nonReentrant
- [Int] redeemUnderlyingInternal #
- modifiers: nonReentrant
- [Int] redeemFresh #
- [Int] borrowInternal #
- modifiers: nonReentrant
- [Int] borrowFresh #
- [Int] repayBorrowInternal #
- modifiers: nonReentrant
- [Int] repayBorrowBehalfInternal #
- modifiers: nonReentrant
- [Int] repayBorrowFresh #
- [Int] liquidateBorrowInternal #
- modifiers: nonReentrant
- [Int] liquidateBorrowFresh #
- [Ext] seize #
- modifiers: nonReentrant
- [Int] seizeInternal #
- [Pub] _setController #
- [Int] _setControllerInternal #
- [Ext] _setReserveFactor #
- modifiers: nonReentrant
- [Int] _setReserveFactorFresh #
- [Int] _addReservesInternal #
- modifiers: nonReentrant
- [Int] _addReservesFresh #
- [Ext] _reduceReserves #
- modifiers: nonReentrant
- [Int] _reduceReservesFresh #
- [Pub] _setInterestRateModel #
- [Int] _setInterestRateModelFresh #
- [Int] _setInterestRateModelFreshInternal #
- [Pub] getMyAdmin
- [Int] getCashPrior
- [Int] doTransferIn #
- [Int] doTransferOut #
+ InterestRateModel
- [Ext] getBorrowRate
- [Ext] getSupplyRate
+ [Int] RegistryInterface
- [Ext] admin
- [Ext] pTokenImplementation
- [Ext] addPToken #
- [Ext] addPETH #
- [Ext] addPPIE #
+ [Lib] SafeMath
- [Int] add
- [Int] add
- [Int] sub
- [Int] sub
- [Int] mul
- [Int] mul
- [Int] div
- [Int] div
- [Int] mod
- [Int] mod
+ [Int] AggregatorInterface
- [Ext] latestAnswer
+ [Lib] UQ112x112
- [Int] encode
- [Int] uqdiv
+ [Lib] FixedPoint
- [Int] mul
- [Int] decode144
+ [Int] IUniswapV2Pair
- [Ext] token0
- [Ext] token1
- [Ext] getReserves
- [Ext] price0CumulativeLast
- [Ext] price1CumulativeLast
+ [Int] IUniswapV2Factory
- [Ext] getPair
+ UniswapPriceOracleStorage
+ [Int] IRegistry
- [Ext] pETH
+ UniswapPriceOracle (UniswapPriceOracleStorage, PriceOracle, OracleErrorReporter)
- [Pub] #
- [Pub] initialize #
- [Pub] update #
- [Pub] getUniswapPair
- [Pub] getUnderlyingPrice
- [Pub] updateUnderlyingPrice #
- [Pub] getPriceInUSD
- [Pub] getCourseInETH
- [Pub] isNewAssetForOracle
- [Pub] isPeriodElapsed
- [Int] encode
- [Int] uqdiv
- [Ext] _setNewAddresses #
Details: UniswapPriceOracleProxy
Function Graph
Inheritence Chart
Functions Overview
($) = payable function
# = non-constant function
Int = Internal
Ext = External
Pub = Public
+ ControllerErrorReporter
- [Int] fail #
- [Int] failOpaque #
+ TokenErrorReporter
- [Int] fail #
- [Int] failOpaque #
+ OracleErrorReporter
- [Int] fail #
+ FactoryErrorReporter
- [Int] fail #
+ RegistryErrorReporter
- [Int] fail #
+ UniswapPriceOracleStorage
+ UniswapPriceOracleProxy (UniswapPriceOracleStorage, OracleErrorReporter)
- [Pub] #
- [Ext] setOracleImplementation #
- [Ext] _setPendingAdmin #
- [Ext] _acceptAdmin #
- [Int] delegateTo #
- [Prv] delegateAndReturn #
- [Ext] ($)
- [Ext] ($)
Details: Unitroller
Function Graph
Inheritence Chart
Functions Overview
($) = payable function
# = non-constant function
Int = Internal
Ext = External
Pub = Public
+ ControllerInterface
- [Ext] enterMarkets #
- [Ext] exitMarket #
- [Ext] mintAllowed #
- [Ext] mintVerify #
- [Ext] redeemAllowed #
- [Ext] redeemVerify #
- [Ext] borrowAllowed #
- [Ext] borrowVerify #
- [Ext] repayBorrowAllowed #
- [Ext] repayBorrowVerify #
- [Ext] liquidateBorrowAllowed #
- [Ext] liquidateBorrowVerify #
- [Ext] seizeAllowed #
- [Ext] seizeVerify #
- [Ext] transferAllowed #
- [Ext] transferVerify #
- [Ext] liquidateCalculateSeizeTokens
- [Ext] getOracle
+ InterestRateModel
- [Ext] getBorrowRate
- [Ext] getSupplyRate
+ [Int] RegistryInterface
- [Ext] admin
- [Ext] pTokenImplementation
- [Ext] addPToken #
- [Ext] addPETH #
- [Ext] addPPIE #
+ ProxyWithRegistryStorage
+ ProxyWithRegistryInterface (ProxyWithRegistryStorage)
- [Int] _setRegistry #
- [Int] _pTokenImplementation
+ ProxyWithRegistry (ProxyWithRegistryInterface)
- [Int] _pTokenImplementation
- [Int] _setRegistry #
+ ImplementationStorage
- [Int] _setImplementation #
+ PTokenStorage (ProxyWithRegistryStorage)
+ PTokenInterface (PTokenStorage)
- [Ext] transfer #
- [Ext] transferFrom #
- [Ext] approve #
- [Ext] allowance
- [Ext] balanceOf
- [Ext] balanceOfUnderlying #
- [Ext] getAccountSnapshot
- [Ext] borrowRatePerBlock
- [Ext] supplyRatePerBlock
- [Ext] totalBorrowsCurrent #
- [Ext] borrowBalanceCurrent #
- [Pub] borrowBalanceStored
- [Pub] exchangeRateCurrent #
- [Pub] exchangeRateStored
- [Ext] getCash
- [Pub] accrueInterest #
- [Ext] seize #
- [Pub] _setController #
- [Ext] _setReserveFactor #
- [Ext] _reduceReserves #
- [Pub] _setInterestRateModel #
+ PErc20Storage
+ PErc20Interface (PErc20Storage)
- [Ext] mint #
- [Ext] redeem #
- [Ext] redeemUnderlying #
- [Ext] borrow #
- [Ext] repayBorrow #
- [Ext] repayBorrowBehalf #
- [Ext] liquidateBorrow #
- [Ext] _addReserves #
+ PPIEStorage
+ PPIEInterface (PPIEStorage)
- [Ext] delegate #
- [Ext] delegateBySig #
- [Ext] getCurrentVotes
- [Ext] getPriorVotes
+ [Int] EIP20Interface
- [Ext] name
- [Ext] symbol
- [Ext] decimals
- [Ext] totalSupply
- [Ext] balanceOf
- [Ext] transfer #
- [Ext] transferFrom #
- [Ext] approve #
- [Ext] allowance
+ [Int] EIP20NonStandardInterface
- [Ext] totalSupply
- [Ext] balanceOf
- [Ext] transfer #
- [Ext] transferFrom #
- [Ext] approve #
- [Ext] allowance
+ CarefulMath
- [Int] mulUInt
- [Int] divUInt
- [Int] subUInt
- [Int] addUInt
- [Int] addThenSubUInt
+ Exponential (CarefulMath)
- [Int] getExp
- [Int] addExp
- [Int] subExp
- [Int] mulScalar
- [Int] mulScalarTruncate
- [Int] mulScalarTruncateAddUInt
- [Int] divScalar
- [Int] divScalarByExp
- [Int] divScalarByExpTruncate
- [Int] mulExp
- [Int] mulExp
- [Int] mulExp3
- [Int] divExp
- [Int] truncate
- [Int] lessThanExp
- [Int] lessThanOrEqualExp
- [Int] greaterThanExp
- [Int] isZeroExp
- [Int] safe224
- [Int] safe32
- [Int] add_
- [Int] add_
- [Int] add_
- [Int] add_
- [Int] sub_
- [Int] sub_
- [Int] sub_
- [Int] sub_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] mul_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] div_
- [Int] fraction
+ PriceOracle
- [Ext] getUnderlyingPrice
- [Ext] updateUnderlyingPrice #
+ ControllerErrorReporter
- [Int] fail #
- [Int] failOpaque #
+ TokenErrorReporter
- [Int] fail #
- [Int] failOpaque #
+ OracleErrorReporter
- [Int] fail #
+ FactoryErrorReporter
- [Int] fail #
+ RegistryErrorReporter
- [Int] fail #
+ UnitrollerAdminStorage
+ ControllerStorage (UnitrollerAdminStorage)
+ Unitroller (UnitrollerAdminStorage, ControllerErrorReporter)
- [Pub] #
- [Pub] _setPendingImplementation #
- [Pub] _acceptImplementation #
- [Pub] _setPendingAdmin #
- [Pub] _acceptAdmin #
- [Ext] ($)
- [Ext] ($)
+ Pie
- [Pub] #
- [Ext] allowance
- [Ext] approve #
- [Ext] balanceOf
- [Ext] transfer #
- [Ext] transferFrom #
- [Int] _transferTokens #
- [Int] safe96
- [Int] add96
- [Int] sub96
- [Int] getChainId
+ PToken (PTokenInterface, Exponential, TokenErrorReporter)
- [Pub] initialize #
- [Int] transferTokens #
- [Ext] transfer #
- modifiers: nonReentrant
- [Ext] transferFrom #
- modifiers: nonReentrant
- [Ext] approve #
- [Ext] allowance
- [Ext] balanceOf
- [Ext] balanceOfUnderlying #
- [Ext] getAccountSnapshot
- [Int] getBlockNumber
- [Ext] borrowRatePerBlock
- [Ext] supplyRatePerBlock
- [Ext] totalBorrowsCurrent #
- modifiers: nonReentrant
- [Ext] borrowBalanceCurrent #
- modifiers: nonReentrant
- [Pub] borrowBalanceStored
- [Int] borrowBalanceStoredInternal
- [Pub] exchangeRateCurrent #
- modifiers: nonReentrant
- [Pub] exchangeRateStored
- [Int] exchangeRateStoredInternal
- [Ext] getCash
- [Pub] accrueInterest #
- [Int] mintInternal #
- modifiers: nonReentrant
- [Int] mintFresh #
- [Int] redeemInternal #
- modifiers: nonReentrant
- [Int] redeemUnderlyingInternal #
- modifiers: nonReentrant
- [Int] redeemFresh #
- [Int] borrowInternal #
- modifiers: nonReentrant
- [Int] borrowFresh #
- [Int] repayBorrowInternal #
- modifiers: nonReentrant
- [Int] repayBorrowBehalfInternal #
- modifiers: nonReentrant
- [Int] repayBorrowFresh #
- [Int] liquidateBorrowInternal #
- modifiers: nonReentrant
- [Int] liquidateBorrowFresh #
- [Ext] seize #
- modifiers: nonReentrant
- [Int] seizeInternal #
- [Pub] _setController #
- [Int] _setControllerInternal #
- [Ext] _setReserveFactor #
- modifiers: nonReentrant
- [Int] _setReserveFactorFresh #
- [Int] _addReservesInternal #
- modifiers: nonReentrant
- [Int] _addReservesFresh #
- [Ext] _reduceReserves #
- modifiers: nonReentrant
- [Int] _reduceReservesFresh #
- [Pub] _setInterestRateModel #
- [Int] _setInterestRateModelFresh #
- [Int] _setInterestRateModelFreshInternal #
- [Pub] getMyAdmin
- [Int] getCashPrior
- [Int] doTransferIn #
- [Int] doTransferOut #
Details: WhitePaperInterestRateModel
Function Graph
Inheritence Chart
Functions Overview
($) = payable function
# = non-constant function
Int = Internal
Ext = External
Pub = Public
+ InterestRateModel
- [Ext] getBorrowRate
- [Ext] getSupplyRate
+ [Lib] SafeMath
- [Int] add
- [Int] add
- [Int] sub
- [Int] sub
- [Int] mul
- [Int] mul
- [Int] div
- [Int] div
- [Int] mod
- [Int] mod
+ WhitePaperInterestRateModel (InterestRateModel)
- [Pub] #
- [Pub] utilizationRate
- [Pub] getBorrowRate
- [Pub] getSupplyRate