Skip to content

monetadao/dchf

Repository files navigation

DCHF Contracts

General Information

This repository was initially forked from vesta finance (link) and was changed in order to be deployable on Ethereum Mainnet. It deploys all contracts for the DCHF ecosystem and sets them up.

Changes

The main changes from the fork were done such that the contracts are deployable on mainnet. Vesta Finance deployed the contracts on Arbitrum which does not have a max byte size limit for contracts. Therefore, the TroveManager.sol was over 25kb of size and needed to be split up into TroveManager.sol and TroveManagerHelpers.sol.

In Addition, the repository was cleaned up such that it can only be deployed to Ethereum mainnet and the Goerli testnet. Many scripts, tests, helpers etc. were removed.

Getting Started

Requirements

A working Node.js >=16.0 installation

Otherwise, you need to install Node Version Manager (nvm) https://github.com/nvm-sh/nvm

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
nvm install 18
nvm use 18
nvm alias default 18
npm install npm --global # Upgrade npm to the latest version

Build

To build the project

First clone the repository locally

git clone https://github.com/defifranc/dchf.git

Switch to the repository directory

cd dchf

Install the dependencies

npm i

Once all the packages are installed, just run this command to compile the contracts and build the artifacts:

npx hardhat compile

Test

Prior to running the tests you need to make sure the required packages are installed (npm i). Also, create a secrets.js file in the project's root folder from the template secrets.js.template and add your INFURA_API_KEY.

To run all the tests on a local mainnet fork (default network is hardhat):

npx hardhat test

or for a specific test e.g BorrowerOperationsTest

npx hardhat test test/core/BorrowerOperationsTest.js

or for a specific test and specific network e.g BorrowerOperationsTest and network hardhat

npx hardhat test test/core/BorrowerOperationsTest.js -- network hardhat

Deploy

Prior to running the deploy scripts you need to make sure the required packages are installed (npm i).

Then, proceed along the following steps to deploy the entire protocol:

  1. Create a secrets.js file in the project's root folder from the template secrets.js.template. Add the INFURA_API_KEY, the DEPLOYER_PRIVATEKEY and the ETHERSCAN_API_KEY for mainnet deployment (or the Goerli parameters for testnet deployment).
  2. Update the addresses on lines 16-18 in deployment/deploymentParams/deploymentParams.mainnet.js (or the goerli file for testnet deployment) to reflect your specific setting. The Deployer address needs to reflect the private key set in the secrets.js file. Verify the oracle addresses on lines 5-18 and parameter GAS_PRICE (if GAS_PRICE is too low you risk your deploy transactions getting stuck).
  3. You can choose to either deploy only the Moneta contracts (see MON folder) or the entire protocol. Set the parameter MON_TOKEN_ONLY to handle this
  4. Run npx hardhat run deployment/deploymentScripts/mainnetDeployment.js --network mainnet (or the Goerli references for testnet deployment), to deploy the contracts.
  5. You can check and verify the contracts by checking the output file in deployment/output/mainnetDeploymentOutput.json.

Deployed Contracts

  • MONToken: 0x1EA48B9965bb5086F3b468E50ED93888a661fc17
  • gasPool: 0xC9A113C35f961af3526E6F016F6DF9DA0A4c7BfA
  • sortedTroves: 0x1Dd69453a685C735f2ab43E2169b57e9Edf72286
  • troveManager: 0x99838142189adE67c1951f9c57c3333281334F7F
  • troveManagerHelpers: 0xaAACB8C39Bd5Acbb0A236112Df8d15411161e518
  • activePool: 0x77E034c8A1392d99a2C776A6C1593866fEE36a33
  • stabilityPoolManager: 0x202FbFF035188f9f0525E144C8B3F8249a74aD21
  • defaultPool: 0xC1f785B74a01dd9FAc0dE6070bC583fe9eaC7Ab5
  • collSurplusPool: 0xA622c3bdBFBE749B1984bc127bFB500e196F594b
  • borrowerOperations: 0x9eB2Ce1be2DD6947e4f5Aabe33106f48861DFD74
  • hintHelpers: 0x17244338034Bea1fA940779Bc769Ff01833406c4
  • dfrancParameters: 0x6F9990B242873d7396511f2630412A3fcEcacc42
  • priceFeed: 0x09AB3C0ce6Cb41C13343879A667a6bDAd65ee9DA
  • adminContract: 0x2748C55219DCa1D9D3c3a57505e99BB04e42F254
  • DCHFToken: 0x045da4bFe02B320f4403674B3b7d121737727A36
  • MONStaking: 0x8Bc3702c35D33E5DF7cb0F06cb72a0c34Ae0C56F
  • communityIssuance: 0x0fa46e8cBCEff8468DB2Ec2fD77731D8a11d3D86
  • StabilityPoolETH: 0x6a9f9d6F5D672a9784c5E560a9648de6cbe2c548
  • StabilityPoolBTC: 0x04556d845f12Ff7D8Ff04a37F40387Dd1B454c4b
  • multiTroveGetter: 0xD4EcC372E99daBDbc0faBE02d2515a24388fACcA

Important Notes

The contract DfrancParameters.sol contains all the parameters from the system and should not be modified. However, the system is set to block redemptions in it's first 14 days. For testing purposes, it's recommended to change it for a lower value. You can find it on the line 15.

-> Call Diagram

Scheme

Contracts Description Table

Contract Type Bases
β”” Function Name Visibility Mutability Modifiers
AdminContract Implementation ProxyAdmin
β”” setAddresses External ❗️ πŸ›‘ onlyOwner
β”” addNewCollateral External ❗️ πŸ›‘ onlyOwner
CollSurplusPool Implementation OwnableUpgradeable, CheckContract, ICollSurplusPool
β”” setAddresses External ❗️ πŸ›‘ initializer
β”” getAssetBalance External ❗️ NO❗️
β”” getCollateral External ❗️ NO❗️
β”” accountSurplus External ❗️ πŸ›‘ NO❗️
β”” claimColl External ❗️ πŸ›‘ NO❗️
β”” receivedERC20 External ❗️ πŸ›‘ NO❗️
β”” _requireCallerIsBorrowerOperations Internal πŸ”’
β”” _requireCallerIsTroveManager Internal πŸ”’
β”” _requireCallerIsActivePool Internal πŸ”’
β”” External ❗️ πŸ’΅ NO❗️
BorrowerOperations Implementation DfrancBase, CheckContract, IBorrowerOperations
β”” setAddresses External ❗️ πŸ›‘ initializer
β”” openTrove External ❗️ πŸ’΅ NO❗️
β”” addColl External ❗️ πŸ’΅ NO❗️
β”” moveETHGainToTrove External ❗️ πŸ’΅ NO❗️
β”” withdrawColl External ❗️ πŸ›‘ NO❗️
β”” withdrawDCHF External ❗️ πŸ›‘ NO❗️
β”” repayDCHF External ❗️ πŸ›‘ NO❗️
β”” adjustTrove External ❗️ πŸ’΅ NO❗️
β”” _adjustTrove Internal πŸ”’ πŸ›‘
β”” closeTrove External ❗️ πŸ›‘ NO❗️
β”” claimCollateral External ❗️ πŸ›‘ NO❗️
β”” _triggerBorrowingFee Internal πŸ”’ πŸ›‘
β”” _getUSDValue Internal πŸ”’
β”” _getCollChange Internal πŸ”’
β”” _updateTroveFromAdjustment Internal πŸ”’ πŸ›‘
β”” _moveTokensAndETHfromAdjustment Internal πŸ”’ πŸ›‘
β”” _activePoolAddColl Internal πŸ”’ πŸ›‘
β”” _withdrawDCHF Internal πŸ”’ πŸ›‘
β”” _repayDCHF Internal πŸ”’ πŸ›‘
β”” _requireSingularCollChange Internal πŸ”’
β”” _requireCallerIsBorrower Internal πŸ”’
β”” _requireNonZeroAdjustment Internal πŸ”’
β”” _requireTroveisActive Internal πŸ”’
β”” _requireTroveisNotActive Internal πŸ”’
β”” _requireNonZeroDebtChange Internal πŸ”’
β”” _requireNotInRecoveryMode Internal πŸ”’
β”” _requireNoCollWithdrawal Internal πŸ”’
β”” _requireValidAdjustmentInCurrentMode Internal πŸ”’
β”” _requireICRisAboveMCR Internal πŸ”’
β”” _requireICRisAboveCCR Internal πŸ”’
β”” _requireNewICRisAboveOldICR Internal πŸ”’
β”” _requireNewTCRisAboveCCR Internal πŸ”’
β”” _requireAtLeastMinNetDebt Internal πŸ”’
β”” _requireValidDCHFRepayment Internal πŸ”’
β”” _requireCallerIsStabilityPool Internal πŸ”’
β”” _requireSufficientDCHFBalance Internal πŸ”’
β”” _requireValidMaxFeePercentage Internal πŸ”’
β”” _getNewNominalICRFromTroveChange Internal πŸ”’
β”” _getNewICRFromTroveChange Internal πŸ”’
β”” _getNewTroveAmounts Internal πŸ”’
β”” _getNewTCRFromTroveChange Internal πŸ”’
β”” getCompositeDebt External ❗️ NO❗️
β”” getMethodValue Private πŸ”
ActivePool Implementation OwnableUpgradeable, ReentrancyGuardUpgradeable, CheckContract, IActivePool
β”” setAddresses External ❗️ πŸ›‘ initializer
β”” getAssetBalance External ❗️ NO❗️
β”” getDCHFDebt External ❗️ NO❗️
β”” sendAsset External ❗️ πŸ›‘ nonReentrant callerIsBOorTroveMorSP
β”” isERC20DepositContract Private πŸ”
β”” increaseDCHFDebt External ❗️ πŸ›‘ callerIsBOorTroveM
β”” decreaseDCHFDebt External ❗️ πŸ›‘ callerIsBOorTroveMorSP
β”” receivedERC20 External ❗️ πŸ›‘ callerIsBorrowerOperationOrDefaultPool
β”” External ❗️ πŸ’΅ callerIsBorrowerOperationOrDefaultPool
MultiTroveGetter Implementation
β”” Public ❗️ πŸ›‘ NO❗️
β”” getMultipleSortedTroves External ❗️ NO❗️
β”” _getMultipleSortedTrovesFromHead Internal πŸ”’
β”” _getMultipleSortedTrovesFromTail Internal πŸ”’
PriceFeed Implementation OwnableUpgradeable, CheckContract, BaseMath, IPriceFeed
β”” setAddresses External ❗️ πŸ›‘ initializer
β”” setAdminContract External ❗️ πŸ›‘ onlyOwner
β”” addOracle External ❗️ πŸ›‘ isController
β”” fetchPrice External ❗️ πŸ›‘ NO❗️
β”” _getIndexedPrice Internal πŸ”’
β”” _getChainlinkResponses Internal πŸ”’
β”” _chainlinkIsBroken Internal πŸ”’
β”” _badChainlinkResponse Internal πŸ”’
β”” _chainlinkIsFrozen Internal πŸ”’
β”” _chainlinkPriceChangeAboveMax Internal πŸ”’
β”” _scaleChainlinkPriceByDigits Internal πŸ”’
β”” _changeStatus Internal πŸ”’ πŸ›‘
β”” _storeChainlinkIndex Internal πŸ”’ πŸ›‘
β”” _storeChainlinkPrice Internal πŸ”’ πŸ›‘
β”” _storePrice Internal πŸ”’ πŸ›‘
β”” _storeIndex Internal πŸ”’ πŸ›‘
β”” _getCurrentChainlinkResponse Internal πŸ”’
β”” _getPrevChainlinkResponse Internal πŸ”’
TellorCaller Implementation ITellorCaller
β”” Public ❗️ πŸ›‘ NO❗️
β”” getTellorCurrentValue External ❗️ NO❗️
SafetyTransfer Library
β”” decimalsCorrection Internal πŸ”’
ITellor Interface
β”” beginDispute External ❗️ πŸ›‘ NO❗️
β”” vote External ❗️ πŸ›‘ NO❗️
β”” tallyVotes External ❗️ πŸ›‘ NO❗️
β”” proposeFork External ❗️ πŸ›‘ NO❗️
β”” addTip External ❗️ πŸ›‘ NO❗️
β”” submitMiningSolution External ❗️ πŸ›‘ NO❗️
β”” submitMiningSolution External ❗️ πŸ›‘ NO❗️
β”” proposeOwnership External ❗️ πŸ›‘ NO❗️
β”” claimOwnership External ❗️ πŸ›‘ NO❗️
β”” depositStake External ❗️ πŸ›‘ NO❗️
β”” requestStakingWithdraw External ❗️ πŸ›‘ NO❗️
β”” withdrawStake External ❗️ πŸ›‘ NO❗️
β”” approve External ❗️ πŸ›‘ NO❗️
β”” transfer External ❗️ πŸ›‘ NO❗️
β”” transferFrom External ❗️ πŸ›‘ NO❗️
β”” name External ❗️ NO❗️
β”” symbol External ❗️ NO❗️
β”” decimals External ❗️ NO❗️
β”” getNewCurrentVariables External ❗️ NO❗️
β”” getTopRequestIDs External ❗️ NO❗️
β”” getNewVariablesOnDeck External ❗️ NO❗️
β”” updateTellor External ❗️ πŸ›‘ NO❗️
β”” unlockDisputeFee External ❗️ πŸ›‘ NO❗️
β”” allowance External ❗️ NO❗️
β”” allowedToTrade External ❗️ NO❗️
β”” balanceOf External ❗️ NO❗️
β”” balanceOfAt External ❗️ NO❗️
β”” didMine External ❗️ NO❗️
β”” didVote External ❗️ NO❗️
β”” getAddressVars External ❗️ NO❗️
β”” getAllDisputeVars External ❗️ NO❗️
β”” getCurrentVariables External ❗️ NO❗️
β”” getDisputeIdByDisputeHash External ❗️ NO❗️
β”” getDisputeUintVars External ❗️ NO❗️
β”” getLastNewValue External ❗️ NO❗️
β”” getLastNewValueById External ❗️ NO❗️
β”” getMinedBlockNum External ❗️ NO❗️
β”” getMinersByRequestIdAndTimestamp External ❗️ NO❗️
β”” getNewValueCountbyRequestId External ❗️ NO❗️
β”” getRequestIdByRequestQIndex External ❗️ NO❗️
β”” getRequestIdByTimestamp External ❗️ NO❗️
β”” getRequestIdByQueryHash External ❗️ NO❗️
β”” getRequestQ External ❗️ NO❗️
β”” getRequestUintVars External ❗️ NO❗️
β”” getRequestVars External ❗️ NO❗️
β”” getStakerInfo External ❗️ NO❗️
β”” getSubmissionsByTimestamp External ❗️ NO❗️
β”” getTimestampbyRequestIDandIndex External ❗️ NO❗️
β”” getUintVar External ❗️ NO❗️
β”” getVariablesOnDeck External ❗️ NO❗️
β”” isInDispute External ❗️ NO❗️
β”” retrieveData External ❗️ NO❗️
β”” totalSupply External ❗️ NO❗️
IERC2612 Interface
β”” permit External ❗️ πŸ›‘ NO❗️
β”” nonces External ❗️ NO❗️
β”” version External ❗️ NO❗️
β”” permitTypeHash External ❗️ NO❗️
β”” domainSeparator External ❗️ NO❗️
IERC2612Permit Interface
β”” permit External ❗️ πŸ›‘ NO❗️
β”” nonces External ❗️ NO❗️
ERC20Permit Implementation ERC20, IERC2612Permit
β”” Public ❗️ πŸ›‘ NO❗️
β”” permit Public ❗️ πŸ›‘ NO❗️
β”” nonces Public ❗️ NO❗️
β”” chainId Public ❗️ NO❗️
ERC20Decimals Interface
β”” decimals External ❗️ NO❗️
DfrancSafeMath128 Library
β”” add Internal πŸ”’
β”” sub Internal πŸ”’
DfrancMath Library
β”” _min Internal πŸ”’
β”” _max Internal πŸ”’
β”” decMul Internal πŸ”’
β”” _decPow Internal πŸ”’
β”” _getAbsoluteDifference Internal πŸ”’
β”” _computeNominalCR Internal πŸ”’
β”” _computeCR Internal πŸ”’
DfrancBase Implementation BaseMath, IDfrancBase, OwnableUpgradeable
β”” setDfrancParameters Public ❗️ πŸ›‘ onlyOwner
β”” _getCompositeDebt Internal πŸ”’
β”” _getNetDebt Internal πŸ”’
β”” _getCollGasCompensation Internal πŸ”’
β”” getEntireSystemColl Public ❗️ NO❗️
β”” getEntireSystemDebt Public ❗️ NO❗️
β”” _getTCR Internal πŸ”’
β”” _checkRecoveryMode Internal πŸ”’
β”” _requireUserAcceptsFee Internal πŸ”’
CheckContract Implementation
β”” checkContract Internal πŸ”’
BaseMath Implementation
TroveManagerHelpers Implementation DfrancBase, CheckContract, ITroveManagerHelpers
β”” _onlyBOorTM Private πŸ”
β”” _onlyBorrowerOperations Private πŸ”
β”” _onlyTroveManager Private πŸ”
β”” setAddresses External ❗️ πŸ›‘ initializer
β”” getNominalICR Public ❗️ NO❗️
β”” getCurrentICR Public ❗️ NO❗️
β”” _getCurrentTroveAmounts Internal πŸ”’
β”” applyPendingRewards External ❗️ πŸ›‘ onlyBorrowerOperations
β”” applyPendingRewards External ❗️ πŸ›‘ onlyTroveManager
β”” _applyPendingRewards Internal πŸ”’ πŸ›‘
β”” updateTroveRewardSnapshots External ❗️ πŸ›‘ onlyBorrowerOperations
β”” _updateTroveRewardSnapshots Internal πŸ”’ πŸ›‘
β”” getPendingAssetReward Public ❗️ NO❗️
β”” getPendingDCHFDebtReward Public ❗️ NO❗️
β”” hasPendingRewards Public ❗️ NO❗️
β”” getEntireDebtAndColl Public ❗️ NO❗️
β”” removeStake External ❗️ πŸ›‘ onlyBOorTM
β”” removeStakeTrove External ❗️ πŸ›‘ onlyTroveManager
β”” _removeStake Internal πŸ”’ πŸ›‘
β”” updateStakeAndTotalStakes External ❗️ πŸ›‘ onlyBorrowerOperations
β”” updateStakeAndTotalStakesTrove External ❗️ πŸ›‘ onlyTroveManager
β”” _updateStakeAndTotalStakes Internal πŸ”’ πŸ›‘
β”” _computeNewStake Internal πŸ”’
β”” redistributeDebtAndColl External ❗️ πŸ›‘ onlyTroveManager
β”” _redistributeDebtAndColl Internal πŸ”’ πŸ›‘
β”” closeTrove External ❗️ πŸ›‘ onlyBorrowerOperations
β”” closeTrove External ❗️ πŸ›‘ onlyTroveManager
β”” _closeTrove Internal πŸ”’ πŸ›‘
β”” updateSystemSnapshots_excludeCollRemainder External ❗️ πŸ›‘ onlyTroveManager
β”” _updateSystemSnapshots_excludeCollRemainder Internal πŸ”’ πŸ›‘
β”” addTroveOwnerToArray External ❗️ πŸ›‘ onlyBorrowerOperations
β”” _addTroveOwnerToArray Internal πŸ”’ πŸ›‘
β”” _removeTroveOwner Internal πŸ”’ πŸ›‘
β”” getTCR External ❗️ NO❗️
β”” checkRecoveryMode External ❗️ NO❗️
β”” _checkPotentialRecoveryMode Public ❗️ NO❗️
β”” updateBaseRateFromRedemption External ❗️ πŸ›‘ onlyTroveManager
β”” _updateBaseRateFromRedemption Internal πŸ”’ πŸ›‘
β”” getRedemptionRate Public ❗️ NO❗️
β”” getRedemptionRateWithDecay Public ❗️ NO❗️
β”” _calcRedemptionRate Internal πŸ”’
β”” _getRedemptionFee Public ❗️ NO❗️
β”” getRedemptionFeeWithDecay External ❗️ NO❗️
β”” _calcRedemptionFee Internal πŸ”’
β”” getBorrowingRate Public ❗️ NO❗️
β”” getBorrowingRateWithDecay Public ❗️ NO❗️
β”” _calcBorrowingRate Internal πŸ”’
β”” getBorrowingFee External ❗️ NO❗️
β”” getBorrowingFeeWithDecay External ❗️ NO❗️
β”” _calcBorrowingFee Internal πŸ”’
β”” decayBaseRateFromBorrowing External ❗️ πŸ›‘ onlyBorrowerOperations
β”” _updateLastFeeOpTime Internal πŸ”’ πŸ›‘
β”” _calcDecayedBaseRate Public ❗️ NO❗️
β”” _minutesPassedSinceLastFeeOp Internal πŸ”’
β”” _requireDCHFBalanceCoversRedemption Public ❗️ NO❗️
β”” _requireMoreThanOneTroveInSystem Internal πŸ”’
β”” _requireAmountGreaterThanZero Public ❗️ NO❗️
β”” _requireTCRoverMCR Public ❗️ NO❗️
β”” _requireValidMaxFeePercentage Public ❗️ NO❗️
β”” isTroveActive Public ❗️ NO❗️
β”” getTroveOwnersCount External ❗️ NO❗️
β”” getTroveFromTroveOwnersArray External ❗️ NO❗️
β”” getTrove External ❗️ NO❗️
β”” getTroveStatus External ❗️ NO❗️
β”” getTroveStake External ❗️ NO❗️
β”” getTroveDebt External ❗️ NO❗️
β”” getTroveColl External ❗️ NO❗️
β”” setTroveDeptAndColl External ❗️ πŸ›‘ onlyBorrowerOperations
β”” setTroveStatus External ❗️ πŸ›‘ onlyBorrowerOperations
β”” decreaseTroveColl External ❗️ πŸ›‘ onlyBorrowerOperations
β”” increaseTroveDebt External ❗️ πŸ›‘ onlyBorrowerOperations
β”” decreaseTroveDebt External ❗️ πŸ›‘ onlyBorrowerOperations
β”” increaseTroveColl External ❗️ πŸ›‘ onlyBorrowerOperations
β”” movePendingTroveRewardsToActivePool External ❗️ πŸ›‘ onlyTroveManager
β”” _movePendingTroveRewardsToActivePool Internal πŸ”’ πŸ›‘
β”” getRewardSnapshots External ❗️ NO❗️
TroveManager Implementation DfrancBase, CheckContract, ITroveManager
β”” setAddresses External ❗️ πŸ›‘ initializer
β”” liquidate External ❗️ πŸ›‘ troveIsActive
β”” _liquidateNormalMode Internal πŸ”’ πŸ›‘
β”” _liquidateRecoveryMode Internal πŸ”’ πŸ›‘
β”” _getOffsetAndRedistributionVals Internal πŸ”’
β”” _getCappedOffsetVals Internal πŸ”’
β”” liquidateTroves External ❗️ πŸ›‘ NO❗️
β”” _getTotalsFromLiquidateTrovesSequence_RecoveryMode Internal πŸ”’ πŸ›‘
β”” _getTotalsFromLiquidateTrovesSequence_NormalMode Internal πŸ”’ πŸ›‘
β”” batchLiquidateTroves Public ❗️ πŸ›‘ NO❗️
β”” _getTotalFromBatchLiquidate_RecoveryMode Internal πŸ”’ πŸ›‘
β”” _getTotalsFromBatchLiquidate_NormalMode Internal πŸ”’ πŸ›‘
β”” _addLiquidationValuesToTotals Internal πŸ”’
β”” _sendGasCompensation Internal πŸ”’ πŸ›‘
β”” _redeemCollateralFromTrove Internal πŸ”’ πŸ›‘
β”” _redeemCloseTrove Internal πŸ”’ πŸ›‘
β”” _isValidFirstRedemptionHint Internal πŸ”’
β”” setRedemptionWhitelistStatus External ❗️ πŸ›‘ onlyOwner
β”” addUserToWhitelistRedemption External ❗️ πŸ›‘ onlyOwner
β”” removeUserFromWhitelistRedemption External ❗️ πŸ›‘ onlyOwner
β”” redeemCollateral External ❗️ πŸ›‘ NO❗️
StabilityPoolManager Implementation OwnableUpgradeable, CheckContract, IStabilityPoolManager
β”” setAddresses External ❗️ πŸ›‘ initializer
β”” setAdminContract External ❗️ πŸ›‘ onlyOwner
β”” isStabilityPool External ❗️ NO❗️
β”” addStabilityPool External ❗️ πŸ›‘ isController
β”” removeStabilityPool External ❗️ πŸ›‘ isController
β”” getAssetStabilityPool External ❗️ NO❗️
β”” unsafeGetAssetStabilityPool External ❗️ NO❗️
StabilityPool Implementation DfrancBase, CheckContract, IStabilityPool
β”” getNameBytes External ❗️ NO❗️
β”” getAssetType External ❗️ NO❗️
β”” setAddresses External ❗️ πŸ›‘ initializer
β”” getAssetBalance External ❗️ NO❗️
β”” getTotalDCHFDeposits External ❗️ NO❗️
β”” provideToSP External ❗️ πŸ›‘ NO❗️
β”” withdrawFromSP External ❗️ πŸ›‘ NO❗️
β”” withdrawAssetGainToTrove External ❗️ πŸ›‘ NO❗️
β”” _triggerMONIssuance Internal πŸ”’ πŸ›‘
β”” _updateG Internal πŸ”’ πŸ›‘
β”” _computeMONPerUnitStaked Internal πŸ”’ πŸ›‘
β”” offset External ❗️ πŸ›‘ NO❗️
β”” _computeRewardsPerUnitStaked Internal πŸ”’ πŸ›‘
β”” _updateRewardSumAndProduct Internal πŸ”’ πŸ›‘
β”” _moveOffsetCollAndDebt Internal πŸ”’ πŸ›‘
β”” _decreaseDCHF Internal πŸ”’ πŸ›‘
β”” getDepositorAssetGain Public ❗️ NO❗️
β”” getDepositorAssetGain1e18 Public ❗️ NO❗️
β”” _getAssetGainFromSnapshots Internal πŸ”’
β”” getDepositorMONGain Public ❗️ NO❗️
β”” _getMONGainFromSnapshots Internal πŸ”’
β”” getCompoundedDCHFDeposit Public ❗️ NO❗️
β”” getCompoundedTotalStake Public ❗️ NO❗️
β”” _getCompoundedStakeFromSnapshots Internal πŸ”’
β”” _sendDCHFtoStabilityPool Internal πŸ”’ πŸ›‘
β”” _sendAssetGainToDepositor Internal πŸ”’ πŸ›‘
β”” _sendDCHFToDepositor Internal πŸ”’ πŸ›‘
β”” _updateDepositAndSnapshots Internal πŸ”’ πŸ›‘
β”” _updateStakeAndSnapshots Internal πŸ”’ πŸ›‘
β”” _payOutMONGains Internal πŸ”’ πŸ›‘
β”” _requireCallerIsActivePool Internal πŸ”’
β”” _requireCallerIsTroveManager Internal πŸ”’
β”” _requireNoUnderCollateralizedTroves Public ❗️ πŸ›‘ NO❗️
β”” _requireUserHasDeposit Internal πŸ”’
β”” _requireUserHasNoDeposit Internal πŸ”’
β”” _requireNonZeroAmount Internal πŸ”’
β”” _requireUserHasTrove Internal πŸ”’
β”” _requireUserHasETHGain Internal πŸ”’
β”” receivedERC20 External ❗️ πŸ›‘ NO❗️
β”” External ❗️ πŸ’΅ NO❗️
SortedTroves Implementation OwnableUpgradeable, CheckContract, ISortedTroves
β”” setParams External ❗️ πŸ›‘ initializer
β”” insert External ❗️ πŸ›‘ NO❗️
β”” _insert Internal πŸ”’ πŸ›‘
β”” remove External ❗️ πŸ›‘ NO❗️
β”” _remove Internal πŸ”’ πŸ›‘
β”” reInsert External ❗️ πŸ›‘ NO❗️
β”” contains Public ❗️ NO❗️
β”” isFull Public ❗️ NO❗️
β”” isEmpty Public ❗️ NO❗️
β”” getSize External ❗️ NO❗️
β”” getMaxSize External ❗️ NO❗️
β”” getFirst External ❗️ NO❗️
β”” getLast External ❗️ NO❗️
β”” getNext External ❗️ NO❗️
β”” getPrev External ❗️ NO❗️
β”” validInsertPosition External ❗️ NO❗️
β”” _validInsertPosition Internal πŸ”’
β”” _descendList Internal πŸ”’
β”” _ascendList Internal πŸ”’
β”” findInsertPosition External ❗️ NO❗️
β”” _findInsertPosition Internal πŸ”’
β”” _requireCallerIsTroveManager Internal πŸ”’
β”” _requireCallerIsBOorTroveM Internal πŸ”’
PriceFeedOld Implementation OwnableUpgradeable, CheckContract, BaseMath, IPriceFeed
β”” setAddresses External ❗️ πŸ›‘ initializer
β”” setAdminContract External ❗️ πŸ›‘ onlyOwner
β”” addOracle External ❗️ πŸ›‘ isController
β”” fetchPrice External ❗️ πŸ›‘ NO❗️
β”” _getIndexedPrice Internal πŸ”’
β”” _getChainlinkResponses Internal πŸ”’
β”” _chainlinkIsBroken Internal πŸ”’
β”” _badChainlinkResponse Internal πŸ”’
β”” _chainlinkIsFrozen Internal πŸ”’
β”” _chainlinkPriceChangeAboveMax Internal πŸ”’
β”” _scaleChainlinkPriceByDigits Internal πŸ”’
β”” _changeStatus Internal πŸ”’ πŸ›‘
β”” _storeChainlinkIndex Internal πŸ”’ πŸ›‘
β”” _storeChainlinkPrice Internal πŸ”’ πŸ›‘
β”” _storePrice Internal πŸ”’ πŸ›‘
β”” _storeIndex Internal πŸ”’ πŸ›‘
β”” _getCurrentChainlinkResponse Internal πŸ”’
β”” _getPrevChainlinkResponse Internal πŸ”’
TroveManagerScript Implementation CheckContract
β”” Public ❗️ πŸ›‘ NO❗️
β”” redeemCollateral External ❗️ πŸ›‘ NO❗️
TokenScript Implementation CheckContract
β”” Public ❗️ πŸ›‘ NO❗️
β”” transfer External ❗️ πŸ›‘ NO❗️
β”” allowance External ❗️ NO❗️
β”” approve External ❗️ πŸ›‘ NO❗️
β”” transferFrom External ❗️ πŸ›‘ NO❗️
β”” increaseAllowance External ❗️ πŸ›‘ NO❗️
β”” decreaseAllowance External ❗️ πŸ›‘ NO❗️
StabilityPoolScript Implementation CheckContract
β”” Public ❗️ πŸ›‘ NO❗️
β”” provideToSP External ❗️ πŸ›‘ NO❗️
β”” withdrawFromSP External ❗️ πŸ›‘ NO❗️
β”” withdrawAssetGainToTrove External ❗️ πŸ›‘ NO❗️
ETHTransferScript Implementation
β”” transferETH External ❗️ πŸ›‘ NO❗️
MONStakingScript Implementation CheckContract
β”” Public ❗️ πŸ›‘ NO❗️
β”” stake External ❗️ πŸ›‘ NO❗️
BorrowerWrappersScript Implementation BorrowerOperationsScript, ETHTransferScript, MONStakingScript
β”” Public ❗️ πŸ›‘ BorrowerOperationsScript MONStakingScript
β”” claimCollateralAndOpenTrove External ❗️ πŸ’΅ NO❗️
β”” claimSPRewardsAndRecycle External ❗️ πŸ›‘ NO❗️
β”” claimStakingGainsAndRecycle External ❗️ πŸ›‘ NO❗️
β”” _getNetDCHFAmount Internal πŸ”’ πŸ›‘
β”” _requireUserHasTrove Internal πŸ”’
BorrowerOperationsScript Implementation CheckContract
β”” Public ❗️ πŸ›‘ NO❗️
β”” openTrove External ❗️ πŸ’΅ NO❗️
β”” addColl External ❗️ πŸ’΅ NO❗️
β”” withdrawColl External ❗️ πŸ›‘ NO❗️
β”” withdrawDCHF External ❗️ πŸ›‘ NO❗️
β”” repayDCHF External ❗️ πŸ›‘ NO❗️
β”” closeTrove External ❗️ πŸ›‘ NO❗️
β”” adjustTrove External ❗️ πŸ’΅ NO❗️
β”” claimCollateral External ❗️ πŸ›‘ NO❗️
β”” getValueOrArg Private πŸ” πŸ›‘
HintHelpers Implementation DfrancBase, CheckContract
β”” setAddresses External ❗️ πŸ›‘ initializer
β”” getRedemptionHints External ❗️ NO❗️
β”” getApproxHint External ❗️ NO❗️
β”” computeNominalCR External ❗️ NO❗️
β”” computeCR External ❗️ NO❗️
MONToken Implementation CheckContract, ERC20Permit
β”” Public ❗️ πŸ›‘ ERC20
MONStaking Implementation IMONStaking, PausableUpgradeable, OwnableUpgradeable, CheckContract, BaseMath, ReentrancyGuardUpgradeable
β”” setAddresses External ❗️ πŸ›‘ initializer
β”” stake External ❗️ πŸ›‘ nonReentrant whenNotPaused
β”” unstake External ❗️ πŸ›‘ nonReentrant
β”” pause Public ❗️ πŸ›‘ onlyOwner
β”” unpause Public ❗️ πŸ›‘ onlyOwner
β”” changeTreasuryAddress Public ❗️ πŸ›‘ onlyOwner
β”” increaseF_Asset External ❗️ πŸ›‘ callerIsTroveManager
β”” increaseF_DCHF External ❗️ πŸ›‘ callerIsBorrowerOperations
β”” sendToTreasury Internal πŸ”’ πŸ›‘
β”” getPendingAssetGain External ❗️ NO❗️
β”” _getPendingAssetGain Internal πŸ”’
β”” getPendingDCHFGain External ❗️ NO❗️
β”” _getPendingDCHFGain Internal πŸ”’
β”” _updateUserSnapshots Internal πŸ”’ πŸ›‘
β”” _sendAssetGainToUser Internal πŸ”’ πŸ›‘
β”” _sendAsset Internal πŸ”’ πŸ›‘
β”” _requireUserHasStake Internal πŸ”’
β”” External ❗️ πŸ’΅ callerIsActivePool
LockedMON Implementation Ownable, CheckContract
β”” setAddresses Public ❗️ πŸ›‘ onlyOwner
β”” addEntityVesting Public ❗️ πŸ›‘ onlyOwner
β”” lowerEntityVesting Public ❗️ πŸ›‘ onlyOwner entityRuleExists
β”” removeEntityVesting Public ❗️ πŸ›‘ onlyOwner entityRuleExists
β”” claimMONToken Public ❗️ πŸ›‘ entityRuleExists
β”” sendMONTokenToEntity Private πŸ” πŸ›‘
β”” transferUnassignedMON External ❗️ πŸ›‘ onlyOwner
β”” getClaimableMON Public ❗️ NO❗️
β”” getUnassignMONTokensAmount Public ❗️ NO❗️
β”” isEntityExits Public ❗️ NO❗️
CommunityIssuance Implementation ICommunityIssuance, OwnableUpgradeable, CheckContract, BaseMath
β”” setAddresses External ❗️ πŸ›‘ initializer
β”” setAdminContract External ❗️ πŸ›‘ onlyOwner
β”” addFundToStabilityPool External ❗️ πŸ›‘ isController
β”” removeFundFromStabilityPool External ❗️ πŸ›‘ onlyOwner activeStabilityPoolOnly
β”” addFundToStabilityPoolFrom External ❗️ πŸ›‘ isController
β”” _addFundToStabilityPoolFrom Internal πŸ”’ πŸ›‘
β”” transferFundToAnotherStabilityPool External ❗️ πŸ›‘ onlyOwner activeStabilityPoolOnly activeStabilityPoolOnly
β”” disableStabilityPool Internal πŸ”’ πŸ›‘
β”” issueMON External ❗️ πŸ›‘ onlyStabilityPool
β”” _issueMON Internal πŸ”’ πŸ›‘ isStabilityPool
β”” _getLastUpdateTokenDistribution Internal πŸ”’
β”” sendMON External ❗️ πŸ›‘ onlyStabilityPool
β”” setWeeklyDfrancDistribution External ❗️ πŸ›‘ isController isStabilityPool
DCHFTokenTester Implementation DCHFToken
β”” Public ❗️ πŸ›‘ DCHFToken
β”” unprotectedMint External ❗️ πŸ›‘ NO❗️
β”” unprotectedBurn External ❗️ πŸ›‘ NO❗️
β”” unprotectedSendToPool External ❗️ πŸ›‘ NO❗️
β”” unprotectedReturnFromPool External ❗️ πŸ›‘ NO❗️
β”” callInternalApprove External ❗️ πŸ›‘ NO❗️
β”” getChainId External ❗️ NO❗️
β”” getDigest External ❗️ NO❗️
β”” recoverAddress External ❗️ NO❗️
DCHFTokenCaller Implementation
β”” setDCHF External ❗️ πŸ›‘ NO❗️
β”” DCHFMint External ❗️ πŸ›‘ NO❗️
β”” DCHFBurn External ❗️ πŸ›‘ NO❗️
β”” DCHFSendToPool External ❗️ πŸ›‘ NO❗️
β”” DCHFReturnFromPool External ❗️ πŸ›‘ NO❗️
MONTokenTester Implementation MONToken
β”” Public ❗️ πŸ›‘ MONToken
β”” unprotectedMint External ❗️ πŸ›‘ NO❗️
β”” unprotectedTransferFrom External ❗️ πŸ›‘ NO❗️
β”” callInternalApprove External ❗️ πŸ›‘ NO❗️
β”” callInternalTransfer External ❗️ πŸ›‘ NO❗️
β”” getChainId External ❗️ NO❗️
MONStakingTester Implementation MONStaking
β”” requireCallerIsTroveManager External ❗️ callerIsTroveManager
DfrancMathTester Implementation
β”” callMax External ❗️ NO❗️
β”” callDecPowTx External ❗️ NO❗️
β”” callDecPow External ❗️ NO❗️
StabilityPoolTester Implementation StabilityPool
β”” unprotectedPayable External ❗️ πŸ’΅ NO❗️
β”” setCurrentScale External ❗️ πŸ›‘ NO❗️
β”” setTotalDeposits External ❗️ πŸ›‘ NO❗️
SortedTrovesTester Implementation
β”” setSortedTroves External ❗️ πŸ›‘ NO❗️
β”” insert External ❗️ πŸ›‘ NO❗️
β”” remove External ❗️ πŸ›‘ NO❗️
β”” reInsert External ❗️ πŸ›‘ NO❗️
β”” getNominalICR External ❗️ NO❗️
β”” getCurrentICR External ❗️ NO❗️
PriceFeedTestnet Implementation IPriceFeed
β”” getPrice External ❗️ NO❗️
β”” getIndex External ❗️ NO❗️
β”” addOracle External ❗️ πŸ›‘ NO❗️
β”” fetchPrice External ❗️ πŸ›‘ NO❗️
β”” setPrice External ❗️ πŸ›‘ NO❗️
β”” setIndex External ❗️ πŸ›‘ NO❗️
PriceFeedTester Implementation PriceFeed
β”” setLastGoodPrice External ❗️ πŸ›‘ NO❗️
β”” setStatus External ❗️ πŸ›‘ NO❗️
NonPayable Implementation
β”” setPayable External ❗️ πŸ›‘ NO❗️
β”” forward External ❗️ πŸ’΅ NO❗️
β”” External ❗️ πŸ’΅ NO❗️
MockTellor Implementation
β”” setPrice External ❗️ πŸ›‘ NO❗️
β”” setDidRetrieve External ❗️ πŸ›‘ NO❗️
β”” setUpdateTime External ❗️ πŸ›‘ NO❗️
β”” setRevertRequest External ❗️ πŸ›‘ NO❗️
β”” getTimestampbyRequestIDandIndex External ❗️ NO❗️
β”” getNewValueCountbyRequestId External ❗️ NO❗️
β”” retrieveData External ❗️ NO❗️
MockAggregator Implementation AggregatorV3Interface
β”” setDecimals External ❗️ πŸ›‘ NO❗️
β”” setPrice External ❗️ πŸ›‘ NO❗️
β”” setPrevPrice External ❗️ πŸ›‘ NO❗️
β”” setPrevUpdateTime External ❗️ πŸ›‘ NO❗️
β”” setUpdateTime External ❗️ πŸ›‘ NO❗️
β”” setLatestRevert External ❗️ πŸ›‘ NO❗️
β”” setPrevRevert External ❗️ πŸ›‘ NO❗️
β”” setDecimalsRevert External ❗️ πŸ›‘ NO❗️
β”” setLatestRoundId External ❗️ πŸ›‘ NO❗️
β”” setPrevRoundId External ❗️ πŸ›‘ NO❗️
β”” decimals External ❗️ NO❗️
β”” latestRoundData External ❗️ NO❗️
β”” getRoundData External ❗️ NO❗️
β”” description External ❗️ NO❗️
β”” version External ❗️ NO❗️
DfrancSafeMath128Tester Implementation
β”” add External ❗️ NO❗️
β”” sub External ❗️ NO❗️
FunctionCaller Implementation
β”” setTroveManagerAddress External ❗️ πŸ›‘ NO❗️
β”” setTroveManagerHelpersAddress External ❗️ πŸ›‘ NO❗️
β”” setSortedTrovesAddress External ❗️ πŸ›‘ NO❗️
β”” setPriceFeedAddress External ❗️ πŸ›‘ NO❗️
β”” troveManager_getCurrentICR External ❗️ NO❗️
β”” sortedTroves_findInsertPosition External ❗️ NO❗️
ITroveManagerHelpers Interface IDfrancBase
β”” addTroveOwnerToArray External ❗️ πŸ›‘ NO❗️
β”” applyPendingRewards External ❗️ πŸ›‘ NO❗️
β”” checkRecoveryMode External ❗️ πŸ›‘ NO❗️
β”” closeTrove External ❗️ πŸ›‘ NO❗️
β”” decayBaseRateFromBorrowing External ❗️ πŸ›‘ NO❗️
β”” decreaseTroveColl External ❗️ πŸ›‘ NO❗️
β”” decreaseTroveDebt External ❗️ πŸ›‘ NO❗️
β”” getBorrowingFee External ❗️ NO❗️
β”” getBorrowingRateWithDecay External ❗️ NO❗️
β”” getBorrowingRate External ❗️ NO❗️
β”” getCurrentICR External ❗️ NO❗️
β”” getEntireDebtAndColl External ❗️ NO❗️
β”” getNominalICR External ❗️ NO❗️
β”” getPendingAssetReward External ❗️ NO❗️
β”” getPendingDCHFDebtReward External ❗️ NO❗️
β”” getRedemptionFeeWithDecay External ❗️ NO❗️
β”” getRedemptionRate External ❗️ NO❗️
β”” getRedemptionRateWithDecay External ❗️ NO❗️
β”” getTCR External ❗️ NO❗️
β”” getTroveColl External ❗️ NO❗️
β”” getTroveDebt External ❗️ NO❗️
β”” getTroveStake External ❗️ NO❗️
β”” getTroveStatus External ❗️ NO❗️
β”” hasPendingRewards External ❗️ NO❗️
β”” increaseTroveColl External ❗️ πŸ›‘ NO❗️
β”” increaseTroveDebt External ❗️ πŸ›‘ NO❗️
β”” removeStakeTrove External ❗️ πŸ›‘ NO❗️
β”” setTroveStatus External ❗️ πŸ›‘ NO❗️
β”” updateStakeAndTotalStakesTrove External ❗️ πŸ›‘ NO❗️
β”” updateTroveRewardSnapshots External ❗️ πŸ›‘ NO❗️
β”” getBorrowingFeeWithDecay External ❗️ NO❗️
β”” getTroveOwnersCount External ❗️ NO❗️
β”” getTroveFromTroveOwnersArray External ❗️ NO❗️
β”” setTroveDeptAndColl External ❗️ πŸ›‘ NO❗️
β”” isTroveActive External ❗️ NO❗️
β”” movePendingTroveRewardsToActivePool External ❗️ πŸ›‘ NO❗️
β”” removeStake External ❗️ πŸ›‘ NO❗️
β”” closeTrove External ❗️ πŸ›‘ NO❗️
β”” redistributeDebtAndColl External ❗️ πŸ›‘ NO❗️
β”” updateSystemSnapshots_excludeCollRemainder External ❗️ πŸ›‘ NO❗️
β”” _checkPotentialRecoveryMode External ❗️ NO❗️
β”” updateBaseRateFromRedemption External ❗️ πŸ›‘ NO❗️
β”” updateStakeAndTotalStakes External ❗️ πŸ›‘ NO❗️
β”” _requireValidMaxFeePercentage External ❗️ NO❗️
β”” _requireTCRoverMCR External ❗️ NO❗️
β”” _requireAmountGreaterThanZero External ❗️ NO❗️
β”” _requireDCHFBalanceCoversRedemption External ❗️ NO❗️
β”” applyPendingRewards External ❗️ πŸ›‘ NO❗️
β”” _getRedemptionFee External ❗️ NO❗️
β”” getTrove External ❗️ NO❗️
β”” getRewardSnapshots External ❗️ NO❗️
ITroveManager Interface IDfrancBase
β”” troveManagerHelpers External ❗️ NO❗️
β”” setAddresses External ❗️ πŸ›‘ NO❗️
β”” stabilityPoolManager External ❗️ NO❗️
β”” dchfToken External ❗️ NO❗️
β”” monStaking External ❗️ NO❗️
β”” liquidate External ❗️ πŸ›‘ NO❗️
β”” liquidateTroves External ❗️ πŸ›‘ NO❗️
β”” batchLiquidateTroves External ❗️ πŸ›‘ NO❗️
β”” redeemCollateral External ❗️ πŸ›‘ NO❗️
ITellorCaller Interface
β”” getTellorCurrentValue External ❗️ NO❗️
IStabilityPoolManager Interface
β”” isStabilityPool External ❗️ NO❗️
β”” addStabilityPool External ❗️ πŸ›‘ NO❗️
β”” getAssetStabilityPool External ❗️ NO❗️
β”” unsafeGetAssetStabilityPool External ❗️ NO❗️
IStabilityPool Interface IDeposit
β”” NAME External ❗️ NO❗️
β”” setAddresses External ❗️ πŸ›‘ NO❗️
β”” provideToSP External ❗️ πŸ›‘ NO❗️
β”” withdrawFromSP External ❗️ πŸ›‘ NO❗️
β”” withdrawAssetGainToTrove External ❗️ πŸ›‘ NO❗️
β”” offset External ❗️ πŸ›‘ NO❗️
β”” getAssetBalance External ❗️ NO❗️
β”” getTotalDCHFDeposits External ❗️ NO❗️
β”” getDepositorAssetGain External ❗️ NO❗️
β”” getDepositorMONGain External ❗️ NO❗️
β”” getCompoundedDCHFDeposit External ❗️ NO❗️
β”” getCompoundedTotalStake External ❗️ NO❗️
β”” getNameBytes External ❗️ NO❗️
β”” getAssetType External ❗️ NO❗️
ISortedTroves Interface
β”” setParams External ❗️ πŸ›‘ NO❗️
β”” insert External ❗️ πŸ›‘ NO❗️
β”” remove External ❗️ πŸ›‘ NO❗️
β”” reInsert External ❗️ πŸ›‘ NO❗️
β”” contains External ❗️ NO❗️
β”” isFull External ❗️ NO❗️
β”” isEmpty External ❗️ NO❗️
β”” getSize External ❗️ NO❗️
β”” getMaxSize External ❗️ NO❗️
β”” getFirst External ❗️ NO❗️
β”” getLast External ❗️ NO❗️
β”” getNext External ❗️ NO❗️
β”” getPrev External ❗️ NO❗️
β”” validInsertPosition External ❗️ NO❗️
β”” findInsertPosition External ❗️ NO❗️
IPriceFeed Interface
β”” addOracle External ❗️ πŸ›‘ NO❗️
β”” fetchPrice External ❗️ πŸ›‘ NO❗️
IPool Interface IDeposit
β”” getAssetBalance External ❗️ NO❗️
β”” getDCHFDebt External ❗️ NO❗️
β”” increaseDCHFDebt External ❗️ πŸ›‘ NO❗️
β”” decreaseDCHFDebt External ❗️ πŸ›‘ NO❗️
IMONStaking Interface
β”” monToken External ❗️ NO❗️
β”” setAddresses External ❗️ πŸ›‘ NO❗️
β”” stake External ❗️ πŸ›‘ NO❗️
β”” unstake External ❗️ πŸ›‘ NO❗️
β”” increaseF_Asset External ❗️ πŸ›‘ NO❗️
β”” increaseF_DCHF External ❗️ πŸ›‘ NO❗️
β”” getPendingAssetGain External ❗️ NO❗️
β”” getPendingDCHFGain External ❗️ NO❗️
IERC20Deposit Interface IERC20
β”” deposit External ❗️ πŸ’΅ NO❗️
IDfrancParameters Interface
β”” DECIMAL_PRECISION External ❗️ NO❗️
β”” _100pct External ❗️ NO❗️
β”” MCR External ❗️ NO❗️
β”” CCR External ❗️ NO❗️
β”” DCHF_GAS_COMPENSATION External ❗️ NO❗️
β”” MIN_NET_DEBT External ❗️ NO❗️
β”” PERCENT_DIVISOR External ❗️ NO❗️
β”” BORROWING_FEE_FLOOR External ❗️ NO❗️
β”” REDEMPTION_FEE_FLOOR External ❗️ NO❗️
β”” MAX_BORROWING_FEE External ❗️ NO❗️
β”” redemptionBlock External ❗️ NO❗️
β”” activePool External ❗️ NO❗️
β”” defaultPool External ❗️ NO❗️
β”” priceFeed External ❗️ NO❗️
β”” setAddresses External ❗️ πŸ›‘ NO❗️
β”” setPriceFeed External ❗️ πŸ›‘ NO❗️
β”” setMCR External ❗️ πŸ›‘ NO❗️
β”” setCCR External ❗️ πŸ›‘ NO❗️
β”” sanitizeParameters External ❗️ πŸ›‘ NO❗️
β”” setAsDefault External ❗️ πŸ›‘ NO❗️
β”” setAsDefaultWithRemptionBlock External ❗️ πŸ›‘ NO❗️
β”” setDCHFGasCompensation External ❗️ πŸ›‘ NO❗️
β”” setMinNetDebt External ❗️ πŸ›‘ NO❗️
β”” setPercentDivisor External ❗️ πŸ›‘ NO❗️
β”” setBorrowingFeeFloor External ❗️ πŸ›‘ NO❗️
β”” setMaxBorrowingFee External ❗️ πŸ›‘ NO❗️
β”” setRedemptionFeeFloor External ❗️ πŸ›‘ NO❗️
β”” removeRedemptionBlock External ❗️ πŸ›‘ NO❗️
IDfrancBase Interface
β”” dfrancParams External ❗️ NO❗️
ERC20Test Implementation ERC20Permit
β”” Public ❗️ πŸ›‘ ERC20
β”” mint Public ❗️ πŸ›‘ NO❗️
β”” transferFrom Public ❗️ πŸ›‘ NO❗️
β”” decimals Public ❗️ NO❗️
β”” setDecimals Public ❗️ πŸ›‘ NO❗️
ERC20Mock Implementation ERC20
β”” Public ❗️ πŸ’΅ ERC20
β”” mint Public ❗️ πŸ›‘ NO❗️
β”” burn Public ❗️ πŸ›‘ NO❗️
β”” transferInternal Public ❗️ πŸ›‘ NO❗️
β”” approveInternal Public ❗️ πŸ›‘ NO❗️
β”” decimals Public ❗️ NO❗️
Destructible Implementation
β”” External ❗️ πŸ’΅ NO❗️
β”” destruct External ❗️ πŸ›‘ NO❗️
DefaultPoolTester Implementation DefaultPool
β”” unprotectedIncreaseDCHFDebt External ❗️ πŸ›‘ NO❗️
β”” unprotectedPayable External ❗️ πŸ’΅ NO❗️
DSAuthority Implementation
β”” canCall Public ❗️ NO❗️
DSAuthEvents Implementation
DSAuth Implementation DSAuthEvents
β”” Public ❗️ πŸ›‘ NO❗️
β”” setOwner Public ❗️ πŸ›‘ auth
β”” setAuthority Public ❗️ πŸ›‘ auth
β”” isAuthorized Internal πŸ”’
DSNote Implementation
DSProxy Implementation DSAuth, DSNote
β”” Public ❗️ πŸ›‘ NO❗️
β”” External ❗️ πŸ’΅ NO❗️
β”” execute Public ❗️ πŸ’΅ NO❗️
β”” execute Public ❗️ πŸ’΅ auth note
β”” setCache Public ❗️ πŸ›‘ auth
DSProxyFactory Implementation
β”” build Public ❗️ πŸ›‘ NO❗️
β”” build Public ❗️ πŸ›‘ NO❗️
DSProxyCache Implementation
β”” read Public ❗️ NO❗️
β”” write Public ❗️ πŸ›‘ NO❗️
IDeposit Interface
β”” receivedERC20 External ❗️ πŸ›‘ NO❗️
CommunityIssuanceTester Implementation CommunityIssuance
β”” obtainMON External ❗️ πŸ›‘ NO❗️
β”” getLastUpdateTokenDistribution External ❗️ NO❗️
β”” unprotectedIssueMON External ❗️ πŸ›‘ NO❗️
IDefaultPool Interface IPool
β”” sendAssetToActivePool External ❗️ πŸ›‘ NO❗️
ChainlinkFlagMock Implementation FlagsInterface
β”” getFlag External ❗️ NO❗️
β”” setFlag External ❗️ πŸ›‘ NO❗️
β”” getFlags External ❗️ NO❗️
β”” raiseFlag External ❗️ πŸ›‘ NO❗️
β”” raiseFlags External ❗️ πŸ›‘ NO❗️
β”” lowerFlags External ❗️ πŸ›‘ NO❗️
β”” setRaisingAccessController External ❗️ πŸ›‘ NO❗️
IDCHFToken Implementation ERC20Permit
β”” emergencyStopMinting External ❗️ πŸ›‘ NO❗️
β”” mint External ❗️ πŸ›‘ NO❗️
β”” burn External ❗️ πŸ›‘ NO❗️
β”” sendToPool External ❗️ πŸ›‘ NO❗️
β”” returnFromPool External ❗️ πŸ›‘ NO❗️
ICommunityIssuance Interface
β”” setAddresses External ❗️ πŸ›‘ NO❗️
β”” issueMON External ❗️ πŸ›‘ NO❗️
β”” sendMON External ❗️ πŸ›‘ NO❗️
β”” addFundToStabilityPool External ❗️ πŸ›‘ NO❗️
β”” addFundToStabilityPoolFrom External ❗️ πŸ›‘ NO❗️
β”” transferFundToAnotherStabilityPool External ❗️ πŸ›‘ NO❗️
β”” setWeeklyDfrancDistribution External ❗️ πŸ›‘ NO❗️
ICollSurplusPool Interface IDeposit
β”” setAddresses External ❗️ πŸ›‘ NO❗️
β”” getAssetBalance External ❗️ NO❗️
β”” getCollateral External ❗️ NO❗️
β”” accountSurplus External ❗️ πŸ›‘ NO❗️
β”” claimColl External ❗️ πŸ›‘ NO❗️
BorrowerOperationsTester Implementation BorrowerOperations
β”” getNewICRFromTroveChange External ❗️ NO❗️
β”” getNewTCRFromTroveChange External ❗️ NO❗️
β”” getUSDValue External ❗️ NO❗️
β”” callInternalAdjustLoan External ❗️ πŸ›‘ NO❗️
β”” External ❗️ πŸ’΅ NO❗️
IBorrowerOperations Interface
β”” setAddresses External ❗️ πŸ›‘ NO❗️
β”” openTrove External ❗️ πŸ’΅ NO❗️
β”” addColl External ❗️ πŸ’΅ NO❗️
β”” moveETHGainToTrove External ❗️ πŸ’΅ NO❗️
β”” withdrawColl External ❗️ πŸ›‘ NO❗️
β”” withdrawDCHF External ❗️ πŸ›‘ NO❗️
β”” repayDCHF External ❗️ πŸ›‘ NO❗️
β”” closeTrove External ❗️ πŸ›‘ NO❗️
β”” adjustTrove External ❗️ πŸ’΅ NO❗️
β”” claimCollateral External ❗️ πŸ›‘ NO❗️
β”” getCompositeDebt External ❗️ NO❗️
ActivePoolTester Implementation ActivePool
β”” unprotectedIncreaseDCHFDebt External ❗️ πŸ›‘ NO❗️
β”” unprotectedPayable External ❗️ πŸ’΅ NO❗️
IActivePool Interface IPool
β”” sendAsset External ❗️ πŸ›‘ NO❗️
GasPool Implementation
DfrancParameters Implementation IDfrancParameters, OwnableUpgradeable, CheckContract
β”” setAddresses External ❗️ πŸ›‘ initializer
β”” setAdminContract External ❗️ πŸ›‘ onlyOwner
β”” setPriceFeed External ❗️ πŸ›‘ onlyOwner
β”” sanitizeParameters External ❗️ πŸ›‘ NO❗️
β”” setAsDefault External ❗️ πŸ›‘ onlyOwner
β”” setAsDefaultWithRemptionBlock External ❗️ πŸ›‘ isController
β”” _setAsDefault Private πŸ” πŸ›‘
β”” setCollateralParameters Public ❗️ πŸ›‘ onlyOwner
β”” setMCR Public ❗️ πŸ›‘ onlyOwner safeCheck
β”” setCCR Public ❗️ πŸ›‘ onlyOwner safeCheck
β”” setPercentDivisor Public ❗️ πŸ›‘ onlyOwner safeCheck
β”” setBorrowingFeeFloor Public ❗️ πŸ›‘ onlyOwner safeCheck
β”” setMaxBorrowingFee Public ❗️ πŸ›‘ onlyOwner safeCheck
β”” setDCHFGasCompensation Public ❗️ πŸ›‘ onlyOwner safeCheck
β”” setMinNetDebt Public ❗️ πŸ›‘ onlyOwner safeCheck
β”” setRedemptionFeeFloor Public ❗️ πŸ›‘ onlyOwner safeCheck
β”” removeRedemptionBlock External ❗️ πŸ›‘ onlyOwner
DefaultPool Implementation OwnableUpgradeable, CheckContract, IDefaultPool
β”” setAddresses External ❗️ πŸ›‘ initializer
β”” getAssetBalance External ❗️ NO❗️
β”” getDCHFDebt External ❗️ NO❗️
β”” sendAssetToActivePool External ❗️ πŸ›‘ callerIsTroveManager
β”” increaseDCHFDebt External ❗️ πŸ›‘ callerIsTroveManager
β”” decreaseDCHFDebt External ❗️ πŸ›‘ callerIsTroveManager
β”” receivedERC20 External ❗️ πŸ›‘ callerIsActivePool
β”” External ❗️ πŸ’΅ callerIsActivePool
DCHFToken Implementation CheckContract, IDCHFToken, Ownable
β”” Public ❗️ πŸ›‘ ERC20
β”” emergencyStopMinting External ❗️ πŸ›‘ onlyOwner
β”” mint External ❗️ πŸ›‘ NO❗️
β”” burn External ❗️ πŸ›‘ NO❗️
β”” sendToPool External ❗️ πŸ›‘ NO❗️
β”” returnFromPool External ❗️ πŸ›‘ NO❗️
β”” transfer Public ❗️ πŸ›‘ NO❗️
β”” transferFrom Public ❗️ πŸ›‘ NO❗️
β”” _requireValidRecipient Internal πŸ”’
β”” _requireCallerIsBorrowerOperations Internal πŸ”’
β”” _requireCallerIsBOorTroveMorSP Internal πŸ”’
β”” _requireCallerIsStabilityPool Internal πŸ”’
β”” _requireCallerIsTroveMorSP Internal πŸ”’

Legend

Symbol Meaning
πŸ›‘ Function can modify state
πŸ’΅ Function is payable

Releases

No releases published

Packages

No packages published