@maplelabs/core-artifacts
Version:
Consist artifacts of the maple protocol
8,830 lines • 383 kB
JSON
{
"id": "425ed6f6a444e5094f5b65349930a00b",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.6.11",
"solcLongVersion": "0.6.11+commit.5ef660b1",
"input": {
"language": "Solidity",
"sources": {
"contracts/core/loan/v1/interfaces/ILoanFactory.sol": {
"content": "// SPDX-License-Identifier: AGPL-3.0-or-later // hevm: flattened sources of contracts/core/loan/v1/interfaces/ILoanFactory.sol\npragma solidity =0.6.11;\n\n////// contracts/core/globals/v1/interfaces/IMapleGlobals.sol\n/* pragma solidity 0.6.11; */\n\n/// @title MapleGlobals maintains a central source of parameters and allowlists for the Maple protocol.\ninterface IMapleGlobals {\n\n /**\n @dev Emits an event indicating the MapleGlobals contract was created.\n */\n event Initialized();\n\n /**\n @dev Emits an event indicating the validity of a Collateral Asset was set.\n @param asset The Collateral Asset to assign validity to.\n @param decimals The number of decimal places of `asset`.\n @param symbol The symbol of `asset`.\n @param valid The new validity status of `asset`.\n */\n event CollateralAssetSet(address asset, uint256 decimals, string symbol, bool valid);\n\n /**\n @dev Emits an event indicating the validity of a Liquidity Asset was set.\n @param asset The Liquidity Asset to assign validity to.\n @param decimals The number of decimal places of `asset`.\n @param symbol The symbol of `asset`.\n @param valid The new validity status of `asset`.\n */\n event LiquidityAssetSet(address asset, uint256 decimals, string symbol, bool valid);\n\n /**\n @dev Emits an event indicating the Oracle for an asset was set.\n @param asset The asset to update price for.\n @param oracle The new Oracle to use.\n */\n event OracleSet(address asset, address oracle);\n\n /**\n @dev This is unused.\n */\n event TransferRestrictionExemptionSet(address indexed exemptedContract, bool valid);\n\n /**\n @dev Emits an event indicating the validity of a Balancer Pool was set.\n @param balancerPool The address of Balancer Pool contract.\n @param valid The new validity status of a Balancer Pool.\n */\n event BalancerPoolSet(address balancerPool, bool valid);\n\n /**\n @dev Emits an event indicating a PendingGovernor was set.\n @param pendingGovernor The address of the new Pending Governor.\n */\n event PendingGovernorSet(address indexed pendingGovernor);\n\n /**\n @dev Emits an event indicating Governorship was accepted by a new account.\n @param governor The account that has accepted Governorship.\n */\n event GovernorAccepted(address indexed governor);\n\n /**\n @dev Emits an event indicating that some Governor controlled parameter was set.\n @param which The identifier of the parameter that was set.\n @param value The value the parameter was set to.\n */\n event GlobalsParamSet(bytes32 indexed which, uint256 value);\n\n /**\n @dev Emits an event indicating that some Governor controlled address was set.\n @param which The identifier of the address that was set.\n @param addr The address that was set.\n */\n event GlobalsAddressSet(bytes32 indexed which, address addr);\n\n /**\n @dev Emits an event indicating the protocol's paused state has been set.\n @param pause Whether the protocol was paused.\n */\n event ProtocolPaused(bool pause);\n\n /**\n @dev Emits an event indicating the GlobalAdmin was set.\n @param newGlobalAdmin The address of the new GlobalAdmin.\n */\n event GlobalAdminSet(address indexed newGlobalAdmin);\n\n /**\n @dev Emits an event indicating the validity of a Pool Delegate was set.\n @param poolDelegate The address of a Pool Delegate.\n @param valid Whether `poolDelegate` is a valid Pool Delegate.\n */\n event PoolDelegateSet(address indexed poolDelegate, bool valid);\n\n /**\n @dev The ERC-2222 Maple Token for the Maple protocol.\n */\n function mpl() external pure returns (address);\n\n /**\n @dev The Governor that is declared for governorship transfer. \n @dev Must be accepted for transfer to take effect. \n */\n function pendingGovernor() external view returns (address);\n\n /**\n @dev The Governor responsible for management of global Maple variables.\n */\n function governor() external view returns (address);\n\n /**\n @dev The MapleTreasury is the Treasury where all fees pass through for conversion, prior to distribution.\n */\n function mapleTreasury() external view returns (address);\n\n /**\n @dev The Global Admin of the whole network. \n @dev Has the power to switch off/on the functionality of entire protocol. \n */\n function globalAdmin() external view returns (address);\n\n /**\n @dev The amount of time a Borrower has to make a missed payment before a default can be triggered. \n */\n function defaultGracePeriod() external view returns (uint256);\n\n /**\n @dev The minimum amount of Pool cover that a Pool Delegate has to provide before they can finalize a Pool.\n */\n function swapOutRequired() external view returns (uint256);\n\n /**\n @dev The amount of time to allow a Borrower to drawdown on their Loan after funding period ends.\n */\n function fundingPeriod() external view returns (uint256);\n\n /**\n @dev The portion of drawdown that goes to the Pool Delegates and individual Lenders.\n */\n function investorFee() external view returns (uint256);\n\n /**\n @dev The portion of drawdown that goes to the MapleTreasury.\n */\n function treasuryFee() external view returns (uint256);\n\n /**\n @dev The maximum amount of slippage for Uniswap transactions.\n */\n function maxSwapSlippage() external view returns (uint256);\n\n /**\n @dev The minimum amount of LoanFDTs required to trigger liquidations (basis points percentage of totalSupply).\n */\n function minLoanEquity() external view returns (uint256);\n\n /**\n @dev The period (in secs) after which Stakers are allowed to unstake their BPTs from a StakeLocker.\n */\n function stakerCooldownPeriod() external view returns (uint256);\n\n /**\n @dev The period (in secs) after which LPs are allowed to withdraw their funds from a Pool.\n */\n function lpCooldownPeriod() external view returns (uint256);\n\n /**\n @dev The window of time (in secs) after `stakerCooldownPeriod` that an account has to withdraw before their intent to unstake is invalidated.\n */\n function stakerUnstakeWindow() external view returns (uint256);\n\n /**\n @dev The window of time (in secs) after `lpCooldownPeriod` that an account has to withdraw before their intent to withdraw is invalidated.\n */\n function lpWithdrawWindow() external view returns (uint256);\n\n /**\n @dev Whether the functionality of the entire protocol is paused.\n */\n function protocolPaused() external view returns (bool);\n\n /**\n @param liquidityAsset The address of a Liquidity Asset.\n @return Whether `liquidityAsset` is valid.\n */\n function isValidLiquidityAsset(address liquidityAsset) external view returns (bool);\n\n /**\n @param collateralAsset The address of a Collateral Asset.\n @return Whether `collateralAsset` is valid.\n */\n function isValidCollateralAsset(address collateralAsset) external view returns (bool);\n\n /**\n @param calc The address of a Calculator.\n @return Whether `calc` is valid.\n */\n function validCalcs(address calc) external view returns (bool);\n\n /**\n @dev Prevents unauthorized/unknown addresses from creating Pools.\n @param poolDelegate The address of a Pool Delegate.\n @return Whether `poolDelegate` is valid.\n */\n function isValidPoolDelegate(address poolDelegate) external view returns (bool);\n\n /**\n @param balancerPool The address of a Balancer Pool.\n @return Whether Maple has approved `balancerPool` for BPT staking.\n */\n function isValidBalancerPool(address balancerPool) external view returns (bool);\n\n /**\n @dev Determines the liquidation path of various assets in Loans and the Treasury. \n @dev The value provided will determine whether or not to perform a bilateral or triangular swap on Uniswap. \n @dev For example, `defaultUniswapPath[WBTC][USDC]` value would indicate what asset to convert WBTC into before conversion to USDC. \n @dev If `defaultUniswapPath[WBTC][USDC] == USDC`, then the swap is bilateral and no middle asset is swapped. \n @dev If `defaultUniswapPath[WBTC][USDC] == WETH`, then swap WBTC for WETH, then WETH for USDC. \n @param tokenA The address of the asset being swapped.\n @param tokenB The address of the final asset to receive.\n @return The intermediary asset for swaps, if any.\n */\n function defaultUniswapPath(address tokenA, address tokenB) external view returns (address);\n\n /**\n @param asset The address of some token.\n @return The Chainlink Oracle for the price of `asset`.\n */\n function oracleFor(address asset) external view returns (address);\n \n /**\n @param poolFactory The address of a Pool Factory.\n @return Whether `poolFactory` is valid.\n */\n function isValidPoolFactory(address poolFactory) external view returns (bool);\n\n /**\n @param loanFactory The address of a Loan Factory.\n @return Whether `loanFactory` is valid.\n */\n function isValidLoanFactory(address loanFactory) external view returns (bool);\n \n /**\n @param superFactory The core factory (e.g. PoolFactory, LoanFactory).\n @param subFactory The sub factory used by core factory (e.g. LiquidityLockerFactory).\n @return Whether `subFactory` is valid as it relates to `superFactory`.\n */\n function validSubFactories(address superFactory, address subFactory) external view returns (bool);\n \n /**\n @dev Sets the Staker cooldown period. \n @dev This change will affect the existing cool down period for the Stakers that already intended to unstake. \n @dev Only the Governor can call this function. \n @dev It emits a `GlobalsParamSet` event. \n @param newCooldownPeriod The new value for the cool down period.\n */\n function setStakerCooldownPeriod(uint256 newCooldownPeriod) external;\n\n /**\n @dev Sets the Liquidity Pool cooldown period. \n @dev This change will affect the existing cool down period for the LPs that already intended to withdraw. \n @dev Only the Governor can call this function. \n @dev It emits a `GlobalsParamSet` event. \n @param newCooldownPeriod The new value for the cool down period.\n */\n function setLpCooldownPeriod(uint256 newCooldownPeriod) external;\n\n /**\n @dev Sets the Staker unstake window. \n @dev This change will affect the existing window for the Stakers that already intended to unstake. \n @dev Only the Governor can call this function. \n @dev It emits a `GlobalsParamSet` event. \n @param newUnstakeWindow The new value for the unstake window.\n */\n function setStakerUnstakeWindow(uint256 newUnstakeWindow) external;\n\n /**\n @dev Sets the Liquidity Pool withdraw window. \n @dev This change will affect the existing window for the LPs that already intended to withdraw. \n @dev Only the Governor can call this function. \n @dev It emits a `GlobalsParamSet` event. \n @param newLpWithdrawWindow The new value for the withdraw window.\n */\n function setLpWithdrawWindow(uint256 newLpWithdrawWindow) external;\n\n /**\n @dev Sets the allowed Uniswap slippage percentage, in basis points. \n @dev Only the Governor can call this function. \n @dev It emits a `GlobalsParamSet` event. \n @param newMaxSlippage The new max slippage percentage (in basis points)\n */\n function setMaxSwapSlippage(uint256 newMaxSlippage) external;\n\n /**\n @dev Sets the Global Admin. \n @dev Only the Governor can call this function. \n @dev It emits a `GlobalAdminSet` event. \n @param newGlobalAdmin The new global admin address.\n */\n function setGlobalAdmin(address newGlobalAdmin) external;\n\n /**\n @dev Sets the validity of a Balancer Pool. \n @dev Only the Governor can call this function. \n @dev It emits a `BalancerPoolSet` event. \n @param balancerPool The address of Balancer Pool contract.\n @param valid The new validity status of a Balancer Pool.\n */\n function setValidBalancerPool(address balancerPool, bool valid) external;\n\n /**\n @dev Sets the paused/unpaused state of the protocol. \n @dev Only the Global Admin can call this function. \n @dev It emits a `ProtocolPaused` event. \n @param pause A boolean flag to switch externally facing functionality in the protocol on/off.\n */\n function setProtocolPause(bool pause) external;\n\n /**\n @dev Sets the validity of a PoolFactory. \n @dev Only the Governor can call this function. \n @param poolFactory The address of a PoolFactory.\n @param valid The new validity status of `poolFactory`.\n */\n function setValidPoolFactory(address poolFactory, bool valid) external;\n\n /**\n @dev Sets the validity of a LoanFactory. \n @dev Only the Governor can call this function. \n @param loanFactory The address of a LoanFactory.\n @param valid The new validity status of `loanFactory`.\n */\n function setValidLoanFactory(address loanFactory, bool valid) external;\n\n /**\n @dev Sets the validity of `subFactory` as it relates to `superFactory`. \n @dev Only the Governor can call this function. \n @param superFactory The core factory (e.g. PoolFactory, LoanFactory).\n @param subFactory The sub factory used by core factory (e.g. LiquidityLockerFactory).\n @param valid The new validity status of `subFactory` within context of `superFactory`.\n */\n function setValidSubFactory(address superFactory, address subFactory, bool valid) external;\n\n /**\n @dev Sets the path to swap an asset through Uniswap. \n @dev Only the Governor can call this function. \n @dev Set to == mid to enable a bilateral swap (single path swap). \n @dev Set to != mid to enable a triangular swap (multi path swap). \n @param from The address of the asset being swapped.\n @param to The address of the final asset to receive.\n @param mid The intermediary asset for swaps, if any.\n */\n function setDefaultUniswapPath(address from, address to, address mid) external;\n\n /**\n @dev Sets the validity of a Pool Delegate (those allowed to create Pools). \n @dev Only the Governor can call this function. \n @dev It emits a `PoolDelegateSet` event. \n @param poolDelegate The address to manage permissions for.\n @param valid The new validity status of a Pool Delegate.\n */\n function setPoolDelegateAllowlist(address poolDelegate, bool valid) external;\n\n /**\n @dev Sets the validity of an asset for collateral. \n @dev Only the Governor can call this function. \n @dev It emits a `CollateralAssetSet` event. \n @param asset The asset to assign validity to.\n @param valid The new validity status of a Collateral Asset.\n */\n function setCollateralAsset(address asset, bool valid) external;\n\n /**\n @dev Sets the validity of an asset for liquidity in Pools. \n @dev Only the Governor can call this function. \n @dev It emits a `LiquidityAssetSet` event. \n @param asset The asset to assign validity to.\n @param valid The new validity status a Liquidity Asset in Pools.\n */\n function setLiquidityAsset(address asset, bool valid) external;\n\n /**\n @dev Sets the validity of a calculator contract. \n @dev Only the Governor can call this function. \n @param calc The Calculator address.\n @param valid The new validity status of a Calculator.\n */\n function setCalc(address calc, bool valid) external;\n\n /**\n @dev Sets the investor fee (in basis points). \n @dev Only the Governor can call this function. \n @dev It emits a `GlobalsParamSet` event. \n @param _fee The fee, e.g., 50 = 0.50%.\n */\n function setInvestorFee(uint256 _fee) external;\n\n /**\n @dev Sets the treasury fee (in basis points). \n @dev Only the Governor can call this function. \n @dev It emits a `GlobalsParamSet` event. \n @param _fee The fee, e.g., 50 = 0.50%.\n */\n function setTreasuryFee(uint256 _fee) external;\n\n /**\n @dev Sets the MapleTreasury. \n @dev Only the Governor can call this function. \n @dev It emits a `GlobalsParamSet` event. \n @param _mapleTreasury A new MapleTreasury address.\n */\n function setMapleTreasury(address _mapleTreasury) external;\n\n /**\n @dev Sets the default grace period. \n @dev Only the Governor can call this function. \n @dev It emits a `GlobalsParamSet` event. \n @param _defaultGracePeriod The new number of seconds to set the grace period to.\n */\n function setDefaultGracePeriod(uint256 _defaultGracePeriod) external;\n\n /**\n @dev Sets the minimum Loan equity. \n @dev Only the Governor can call this function. \n @dev It emits a `GlobalsParamSet` event. \n @param _minLoanEquity The new minimum percentage of Loan equity an account must have to trigger liquidations.\n */\n function setMinLoanEquity(uint256 _minLoanEquity) external;\n\n /**\n @dev Sets the funding period. \n @dev Only the Governor can call this function. \n @dev It emits a `GlobalsParamSet` event. \n @param _fundingPeriod The number of seconds to set the drawdown grace period to.\n */\n function setFundingPeriod(uint256 _fundingPeriod) external;\n\n /**\n @dev Sets the the minimum Pool cover required to finalize a Pool. \n @dev Only the Governor can call this function. \n @dev It emits a `GlobalsParamSet` event. \n @param amt The new minimum swap out required.\n */\n function setSwapOutRequired(uint256 amt) external;\n\n /**\n @dev Sets a price feed's oracle. \n @dev Only the Governor can call this function. \n @dev It emits a `OracleSet` event. \n @param asset The asset to update price for.\n @param oracle The new Oracle to use for the price of `asset`.\n */\n function setPriceOracle(address asset, address oracle) external;\n\n /**\n @dev Sets a new Pending Governor. \n @dev This address can become Governor if they accept. \n @dev Only the Governor can call this function. \n @dev It emits a `PendingGovernorSet` event. \n @param _pendingGovernor The address of a new Pending Governor.\n */\n function setPendingGovernor(address _pendingGovernor) external;\n\n /**\n @dev Accept the Governor position. \n @dev Only the Pending Governor can call this function. \n @dev It emits a `GovernorAccepted` event. \n */\n function acceptGovernor() external;\n\n /**\n @dev Fetch price for asset from Chainlink oracles.\n @param asset The asset to fetch the price of.\n @return The price of asset in USD.\n */\n function getLatestPrice(address asset) external view returns (uint256);\n\n /**\n @dev Checks that a `subFactory` is valid as it relates to `superFactory`.\n @param superFactory The core factory (e.g. PoolFactory, LoanFactory).\n @param subFactory The sub factory used by core factory (e.g. LiquidityLockerFactory).\n @param factoryType The type expected for the subFactory. \n 0 = COLLATERAL_LOCKER_FACTORY, \n 1 = DEBT_LOCKER_FACTORY, \n 2 = FUNDING_LOCKER_FACTORY, \n 3 = LIQUIDITY_LOCKER_FACTORY, \n 4 = STAKE_LOCKER_FACTORY. \n */\n function isValidSubFactory(address superFactory, address subFactory, uint8 factoryType) external view returns (bool);\n\n /**\n @dev Checks that a Calculator is valid.\n @param calc The Calculator address.\n @param calcType The Calculator type.\n */\n function isValidCalc(address calc, uint8 calcType) external view returns (bool);\n\n /**\n @dev Returns the `lpCooldownPeriod` and `lpWithdrawWindow` as a tuple, for convenience.\n @return The value of `lpCooldownPeriod`.\n @return The value of `lpWithdrawWindow`.\n */\n function getLpCooldownParams() external view returns (uint256, uint256);\n\n}\n\n////// contracts/core/loan/v1/interfaces/ILoanFactory.sol\n/* pragma solidity 0.6.11; */\n\n/* import { IMapleGlobals } from \"../../../globals/v1/interfaces/IMapleGlobals.sol\"; */\n\n/// @title LoanFactory instantiates Loans.\ninterface ILoanFactory {\n\n /**\n @dev Emits an event indicating a LoanFactoryAdmin was allowed.\n @param loanFactoryAdmin The address of a LoanFactoryAdmin.\n @param allowed Whether `loanFactoryAdmin` is allowed as an admin of the LoanFactory.\n */\n event LoanFactoryAdminSet(address indexed loanFactoryAdmin, bool allowed);\n\n /**\n @dev Emits an event indicating a Loan was created.\n @param loan The address of the Loan.\n @param borrower The Borrower.\n @param liquidityAsset The asset the Loan will raise funding in.\n @param collateralAsset The asset the Loan will use as collateral.\n @param collateralLocker The address of the Collateral Locker.\n @param fundingLocker The address of the Funding Locker.\n @param specs The specifications for the Loan. \n [0] => apr, \n [1] => termDays, \n [2] => paymentIntervalDays, \n [3] => requestAmount, \n [4] => collateralRatio. \n @param calcs The calculators used for the Loan. \n [0] => repaymentCalc, \n [1] => lateFeeCalc, \n [2] => premiumCalc. \n @param name The name of the Loan FDTs.\n @param symbol The symbol of the Loan FDTs.\n */\n event LoanCreated(\n address loan,\n address indexed borrower,\n address indexed liquidityAsset,\n address collateralAsset,\n address collateralLocker,\n address fundingLocker,\n uint256[5] specs,\n address[3] calcs,\n string name,\n string symbol\n );\n\n /**\n @dev The Factory type of `CollateralLockerFactory`.\n */\n function CL_FACTORY() external view returns (uint8);\n\n /**\n @dev The Factory type of `FundingLockerFactory`.\n */\n function FL_FACTORY() external view returns (uint8);\n\n /**\n @dev The Calc type of `RepaymentCalc`.\n */\n function INTEREST_CALC_TYPE() external view returns (uint8);\n\n /**\n @dev The Calc type of `LateFeeCalc`.\n */\n function LATEFEE_CALC_TYPE() external view returns (uint8);\n\n /**\n @dev The Calc type of `PremiumCalc`.\n */\n function PREMIUM_CALC_TYPE() external view returns (uint8);\n\n /**\n @dev The instance of the MapleGlobals.\n */\n function globals() external view returns (IMapleGlobals);\n\n /**\n @dev The incrementor for number of Loans created.\n */\n function loansCreated() external view returns (uint256);\n\n /**\n @param index The index of a Loan.\n @return The address of the Loan at `index`.\n */\n function loans(uint256 index) external view returns (address);\n\n /**\n @param loan The address of a Loan.\n @return Whether `loan` is a Loan.\n */\n function isLoan(address loan) external view returns (bool);\n\n /**\n @param admin The address of a LoanFactoryAdmin.\n @return Whether `admin` has permission to do certain operations in case of disaster management.\n */\n function loanFactoryAdmins(address admin) external view returns (bool);\n\n /**\n @dev Sets MapleGlobals. \n @dev Only the Governor can call this function. \n @param newGlobals Address of new MapleGlobals.\n */\n function setGlobals(address newGlobals) external;\n\n /**\n @dev Create a new Loan. \n @dev It emits a `LoanCreated` event. \n @param liquidityAsset The asset the Loan will raise funding in.\n @param collateralAsset The asset the Loan will use as collateral.\n @param flFactory The factory to instantiate a FundingLocker from.\n @param clFactory The factory to instantiate a CollateralLocker from.\n @param specs The specifications for the Loan. \n [0] => apr, \n [1] => termDays, \n [2] => paymentIntervalDays, \n [3] => requestAmount, \n [4] => collateralRatio. \n @param calcs The calculators used for the Loan. \n [0] => repaymentCalc, \n [1] => lateFeeCalc, \n [2] => premiumCalc. \n @return loanAddress Address of the instantiated Loan.\n */\n function createLoan(\n address liquidityAsset,\n address collateralAsset,\n address flFactory,\n address clFactory,\n uint256[5] memory specs,\n address[3] memory calcs\n ) external returns (address);\n\n /**\n @dev Sets a LoanFactory Admin. Only the Governor can call this function.\n @dev It emits a `LoanFactoryAdminSet` event.\n @param loanFactoryAdmin An address being allowed or disallowed as a LoanFactory Admin.\n @param allowed The status of `loanFactoryAdmin` as an Admin.\n */\n function setLoanFactoryAdmin(address loanFactoryAdmin, bool allowed) external;\n\n /**\n @dev Triggers paused state. \n @dev Halts functionality for certain functions. \n @dev Only the Governor or a LoanFactory Admin can call this function.\n */\n function pause() external;\n\n /**\n @dev Triggers unpaused state. \n @dev Restores functionality for certain functions. \n @dev Only the Governor or a LoanFactory Admin can call this function.\n */\n function unpause() external;\n\n}\n"
}
},
"settings": {
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"abi",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers"
],
"": [
"ast"
]
}
}
}
},
"output": {
"contracts": {
"contracts/core/loan/v1/interfaces/ILoanFactory.sol": {
"ILoanFactory": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "loan",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "borrower",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "liquidityAsset",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "collateralAsset",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "collateralLocker",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "fundingLocker",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256[5]",
"name": "specs",
"type": "uint256[5]"
},
{
"indexed": false,
"internalType": "address[3]",
"name": "calcs",
"type": "address[3]"
},
{
"indexed": false,
"internalType": "string",
"name": "name",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "symbol",
"type": "string"
}
],
"name": "LoanCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "loanFactoryAdmin",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "allowed",
"type": "bool"
}
],
"name": "LoanFactoryAdminSet",
"type": "event"
},
{
"inputs": [],
"name": "CL_FACTORY",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "FL_FACTORY",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "INTEREST_CALC_TYPE",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "LATEFEE_CALC_TYPE",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "PREMIUM_CALC_TYPE",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "liquidityAsset",
"type": "address"
},
{
"internalType": "address",
"name": "collateralAsset",
"type": "address"
},
{
"internalType": "address",
"name": "flFactory",
"type": "address"
},
{
"internalType": "address",
"name": "clFactory",
"type": "address"
},
{
"internalType": "uint256[5]",
"name": "specs",
"type": "uint256[5]"
},
{
"internalType": "address[3]",
"name": "calcs",
"type": "address[3]"
}
],
"name": "createLoan",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "globals",
"outputs": [
{
"internalType": "contract IMapleGlobals",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "loan",
"type": "address"
}
],
"name": "isLoan",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "admin",
"type": "address"
}
],
"name": "loanFactoryAdmins",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "index",
"type": "uint256"
}
],
"name": "loans",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "loansCreated",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "pause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newGlobals",
"type": "address"
}
],
"name": "setGlobals",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "loanFactoryAdmin",
"type": "address"
},
{
"internalType": "bool",
"name": "allowed",
"type": "bool"
}
],
"name": "setLoanFactoryAdmin",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "unpause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"evm": {
"bytecode": {
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"methodIdentifiers": {
"CL_FACTORY()": "e70dd6cf",
"FL_FACTORY()": "38505fb0",
"INTEREST_CALC_TYPE()": "8c38922f",
"LATEFEE_CALC_TYPE()": "3493f4ca",
"PREMIUM_CALC_TYPE()": "7a8fe3c0",
"createLoan(address,address,address,address,uint256[5],address[3])": "d5ab2074",
"globals()": "c3124525",
"isLoan(address)": "2819cbc2",
"loanFactoryAdmins(address)": "a620e0ac",
"loans(uint256)": "e1ec3c68",
"loansCreated()": "ee9b75b5",
"pause()": "8456cb59",
"setGlobals(address)": "cc2e0a26",
"setLoanFactoryAdmin(address,bool)": "2cd0aca0",
"unpause()": "3f4ba83a"
}
}
},
"IMapleGlobals": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "balancerPool",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "valid",
"type": "bool"
}
],
"name": "BalancerPoolSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "decimals",
"type": "uint256"
},
{
"indexed": false,
"internalType": "string",
"name": "symbol",
"type": "string"
},
{
"indexed": false,
"internalType": "bool",
"name": "valid",
"type": "bool"
}
],
"name": "CollateralAssetSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newGlobalAdmin",
"type": "address"
}
],
"name": "GlobalAdminSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "which",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "address",
"name": "addr",
"type": "address"
}
],
"name": "GlobalsAddressSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "which",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "GlobalsParamSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "governor",
"type": "address"
}
],
"name": "GovernorAccepted",
"type": "event"
},
{
"anonymous": false,
"inputs": [],
"name": "Initialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "decimals",
"type": "uint256"
},
{
"indexed": false,
"internalType": "string",
"name": "symbol",
"type": "string"
},
{
"indexed": false,
"internalType": "bool",
"name": "valid",
"type": "bool"
}
],
"name": "LiquidityAssetSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "oracle",
"type": "address"
}
],
"name": "OracleSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "pendingGovernor",
"type": "address"
}
],
"name": "PendingGovernorSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "poolDelegate",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "valid",
"type": "bool"
}
],
"name": "PoolDelegateSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bool",
"name": "pause",
"type": "bool"
}
],
"name": "ProtocolPaused",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "exemptedContract",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "valid",
"type": "bool"
}
],
"name": "TransferRestrictionExemptionSet",
"type": "event"
},
{
"inputs": [],
"name": "acceptGovernor",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "defaultGracePeriod",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenA",
"type": "address"
},
{
"internalType": "address",
"name": "tokenB",
"type": "address"
}
],
"name": "defaultUniswapPath",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "fundingPeriod",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "asset",
"type": "address"
}
],
"name": "getLatestPrice",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getLpCooldownParams",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "globalAdmin",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "governor",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "investorFee",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "balancerPool",
"type": "address"
}
],
"name": "isValidBalancerPool",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "calc",
"type": "address"
},
{
"internalType": "uint8",
"name": "calcType",
"type": "uint8"
}
],
"name": "isValidCalc",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "collateralAsset",
"type": "address"
}
],
"name": "isValidCollateralAsset",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "liquidityAsset",
"type": "address"
}
],
"name": "isValidLiquidityAsset",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "loanFactory",
"type": "address"
}
],
"name": "isValidLoanFactory",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "poolDelegate",
"type": "address"
}
],
"name": "isValidPoolDelegate",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "poolFactory",
"type": "address"
}
],
"name": "isValidPoolFactory",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "superFactory",
"type": "address"
},
{
"internalType": "address",
"name": "subFactory",
"type": "address"
},
{
"internalType": "uint8",
"name": "factoryType",
"type": "uint8"
}
],
"name": "isValidSubFactory",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "lpCooldownPeriod",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "lpWithdrawWindow",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "mapleTreasury",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "maxSwapSlippage",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "minLoanEquity",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "mpl",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "asset",
"type": "address"
}
],
"name": "oracleFor",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "pendingGovernor",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "protocolPaused",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "calc",
"type": "address"
},
{
"internalType": "bool",
"name": "valid",
"type": "bool"
}
],
"name": "setCalc",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"internalType": "bool",
"name": "valid",
"type": "bool"
}
],
"name": "setCollateralAsset",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_defaultGracePeriod",
"type": "uint256"
}
],
"name": "setDefaultGracePeriod",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "address",
"name": "mid",
"type": "address"
}
],
"name": "setDefaultUniswapPath",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_fundingPeriod",
"type": "uint256"
}
],
"name": "setFundingPeriod",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newGlobalAdmin",
"type": "address"
}
],
"name": "setGlobalAdmin",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_fee",
"type": "uint256"
}
],
"name": "setInvestorFee",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"internalType": "bool",
"name": "valid",
"type": "bool"
}
],
"name": "setLiquidityAsset",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "newCooldownPeriod",
"type": "uint256"
}
],
"name": "setLpCooldownPeriod",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "newLpWithdrawWindow",
"type": "uint256"
}
],
"name": "setLpWithdrawWindow",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_mapleTreasury",
"type": "address"
}
],
"name": "setMapleTreasury",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "newMaxSlippage",
"type": "uint256"
}
],
"name": "setMaxSwapSlippage",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_minLoanEquity",
"type": "uint256"
}
],
"name": "setMinLoanEquity",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_pendingGovernor",
"type": "address"
}
],
"name": "setPendingGovernor",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "poolDelegate",
"type": "address"
},
{
"internalType": "bool",
"name": "valid",
"type": "bool"
}
],
"name": "setPoolDelegateAllowlist",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"internalType": "address",
"name": "oracle",
"type": "address"
}
],
"name": "setPriceOracle",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "pause",
"type": "bool"
}
],
"name": "setProtocolPause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "newCooldownPeriod",
"type": "uint256"
}
],
"name": "setStakerCooldownPeriod",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "newUnstakeWindow",
"type": "uint256"
}
],
"name": "setStakerUnstakeWindow",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amt",
"type": "uint256"
}
],
"name": "setSwapOutRequired",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_fee",
"type": "uint256"
}
],
"name": "setTreasuryFee",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "balancerPool",
"type": "address"
},
{
"internalType": "bool",
"name": "valid",
"type": "bool"
}
],
"name": "setValidBalancerPool",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "loanFactory",
"type": "address"
},
{
"internalType": "bool",
"name": "valid",
"type": "bool"
}
],
"name": "setValidLoanFactory",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "poolFactory",
"type": "address"
},
{
"internalType": "bool",
"name": "valid",
"type": "bool"
}
],
"name": "setValidPoolFactory",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "superFactory",
"type": "address"
},
{
"internalType": "address",
"name": "subFactory",
"type": "address"
},
{
"internalType": "bool",
"name": "valid",
"type": "bool"
}
],
"name": "setValidSubFactory",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "stakerCooldownPeriod",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "stakerUnstakeWindow",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "swapOutRequired",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "treasuryFee",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "calc",
"type": "address"
}
],
"name": "validCalcs",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "superFactory",
"type": "address"
},
{
"internalType": "address",
"name": "subFactory",
"type": "address"
}
],
"name": "validSubFactories",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
],
"evm": {
"bytecode": {
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"methodIdentifiers": {
"acceptGovernor()": "e58bb639",
"defaultGracePeriod()": "705d5f24",
"defaultUniswapPath(address,address)": "4d866592",
"fundingPeriod()": "74d7c62b",
"getLatestPrice(address)": "16345f18",
"getLpCooldownParams()": "9f51290b",
"globalAdmin()": "ec9a9368",
"governor()": "0c340a24",
"investorFee()": "16a12d7a",
"isValidBalancerPool(address)": "72a22d71",
"isValidCalc(address,uint8)": "1b5833f7",
"isValidCollateralAsset(address)": "8c14834b",
"isValidLiquidityAsset(address)": "8695118a",
"isValidLoanFactory(address)": "b53afda7",
"isValidPoolDelegate(address)": "372e3546",
"isValidPoolFactory(address)": "107c0240",
"isValidSubFactory(address,address,uint8)": "13d459fb",
"lpCooldownPeriod()": "dd02e0ec",
"lpWithdrawWindow()": "df3d02bd",
"mapleTreasury()": "a5a27605",
"maxSwapSlippage()": "55323195",
"minLoanEquity()": "4a2697c4",
"mpl()": "a0530946",
"oracleFor(address)": "aed019b9",
"pendingGovernor()": "e3056a34",
"protocolPaused()": "425fad58",
"setCalc(address,bool)": "be44ed6b",
"setCollateralAsset(address,bool)": "2fa6c88f",
"setDefaultGracePeriod(uint256)": "44c14f71",
"setDefaultUniswapPath(address,address,address)": "f3897663",
"setFundingPeriod(uint256)": "2a5aa292",
"setGlobalAdmin(address)": "c52bc31d",
"setInvestorFee(uint256)": "5e045467",
"setLiquidityAsset(address,bool)": "2daa0d89",
"setLpCooldownPeriod(uint256)": "8608a6e1",
"setLpWithdrawWindow(uint256)": "26718606",
"setMapleTreasury(address)": "7303de25",
"setMaxSwapSlippage(uint256)": "f33ef09a",
"setMinLoanEquity(uint256)": "298b795d",
"setPendingGovernor(address)": "f235757f",
"setPoolDelegateAllowlist(address,bool)": "efdb16fc",
"setPriceOracle(address,address)": "67a74ddc",
"setProtocolPause(bool)": "4e989118",
"setStakerCooldownPeriod(uint256)": "fd4a9121",
"setStakerUnstakeWindow(uint256)": "d1cdf301",
"setSwapOutRequired(uint256)": "dbc6c552",
"setTreasuryFee(uint256)": "77e741c7",
"setValidBalancerPool(address,bool)": "490dae64",
"setValidLoanFactory(address,bool)": "c9c67240",
"setValidPoolFactory(address,bool)": "6597b899",
"setValidSubFactory(address,address,bool)": "f85ee6f8",
"stakerCooldownPeriod()": "a965d6b5",
"stakerUnstakeWindow()": "2018b870",
"swapOutRequired()": "3106374c",
"treasuryFee()": "cc32d176",
"validCalcs(address)": "1beb84e7",
"validSubFactories(address,address)": "1b1804aa"
}
}
}
}
},
"sources": {
"contracts/core/loan/v1/interfaces/ILoanFactory.sol": {
"ast": {
"absolutePath": "contracts/core/loan/v1/interfaces/ILoanFactory.sol",
"exportedSymbols": {
"ILoanFactory": [
638
],
"IMapleGlobals": [
492
]
},
"id": 639,
"license": "AGPL-3.0-or-later",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"=",
"0.6",
".11"
],
"nodeType": "PragmaDirective",
"src": "127:24:0"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "interface",
"documentation": {
"id": 2,
"nodeType": "StructuredDocumentation",
"src": "246:104:0",
"text": "@title MapleGlobals maintains a central source of parameters and allowlists for the Maple protocol."
},
"fullyImplemented": false,
"id": 492,
"linearizedBaseContracts": [
492
],
"name": "IMapleGlobals",
"nodeType": "ContractDefinition",
"nodes": [
{
"anonymous": false,
"documentation": {
"id": 3,
"nodeType": "StructuredDocumentation",
"src": "381:91:0",
"text": "@dev Emits an event indicating the MapleGlobals contract was created."
},
"id": 5,
"name": "Initialized",
"nodeType": "EventDefinition",
"parameters": {
"id": 4,
"nodeType": "ParameterList",
"parameters": [],
"src": "494:2:0"
},
"src": "477:20:0"
},
{
"anonymous": false,
"documentation": {
"id": 6,
"nodeType": "StructuredDocumentation",
"src": "503:336:0",
"text": "@dev Emits an event indicating the validity of a Collateral Asset was set.\n@param asset The Collateral Asset to assign validity to.\n@param decimals The number of decimal places of `asset`.\n@param symbol The symbol of `asset`.\n@param valid The new validity status of `asset`."
},
"id": 16,
"name": "CollateralAssetSet",
"nodeType": "EventDefinition",
"parameters": {
"id": 15,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8,
"indexed": false,
"mutability": "mutable",
"name": "asset",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 16,
"src": "869:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 7,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "869:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 10,
"indexed": false,
"mutability": "mutable",
"name": "decimals",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 16,
"src": "884:16:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 9,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "884:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 12,
"indexed": false,
"mutability": "mutable",
"name": "symbol",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 16,
"src": "902:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 11,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "902:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 14,
"indexed": false,
"mutability": "mutable",
"name": "valid",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 16,
"src": "917:10:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 13,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "917:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "868:60:0"
},
"src": "844:85:0"
},
{
"anonymous": false,
"documentation": {
"id": 17,
"nodeType": "StructuredDocumentation",
"src": "935:334:0",
"text": "@dev Emits an event indicating the validity of a Liquidity Asset was set.\n@param asset The Liquidity Asset to assign validity to.\n@param decimals The number of decimal places of `asset`.\n@param symbol The symbol of `asset`.\n@param valid The new validity status of `asset`."
},
"id": 27,
"name": "LiquidityAssetSet",
"nodeType": "EventDefinition",
"parameters": {
"id": 26,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 19,
"indexed": false,
"mutability": "mutable",
"name": "asset",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 27,
"src": "1298:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 18,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1298:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 21,
"indexed": false,
"mutability": "mutable",
"name": "decimals",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 27,
"src": "1313:16:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 20,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1313:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 23,
"indexed": false,
"mutability": "mutable",
"name": "symbol",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 27,
"src": "1331:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 22,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1331:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 25,
"indexed": false,
"mutability": "mutable",
"name": "valid",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 27,
"src": "1346:10:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 24,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1346:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1297:60:0"
},
"src": "1274:84:0"
},
{
"anonymous": false,
"documentation": {
"id": 28,
"nodeType": "StructuredDocumentation",
"src": "1364:183:0",
"text": "@dev Emits an event indicating the Oracle for an asset was set.\n@param asset The asset to update price for.\n@param oracle The new Oracle to use."
},
"id": 34,
"name": "OracleSet",
"nodeType": "EventDefinition",
"parameters": {
"id": 33,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 30,
"indexed": false,
"mutability": "mutable",
"name": "asset",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 34,
"src": "1568:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 29,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1568:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 32,
"indexed": false,
"mutability": "mutable",
"name": "oracle",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 34,
"src": "1583:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 31,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1583:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1567:31:0"
},
"src": "1552:47:0"
},
{
"anonymous": false,
"documentation": {
"id": 35,
"nodeType": "StructuredDocumentation",
"src": "1605:40:0",
"text": "@dev This is unused."
},
"id": 41,
"name": "TransferRestrictionExemptionSet",
"nodeType": "EventDefinition",
"parameters": {
"id": 40,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 37,
"indexed": true,
"mutability": "mutable",
"name": "exemptedContract",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 41,
"src": "1688:32:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 36,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1688:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 39,
"indexed": false,
"mutability": "mutable",
"name": "valid",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 41,
"src": "1722:10:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 38,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1722:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1687:46:0"
},
"src": "1650:84:0"
},
{
"anonymous": false,
"documentation": {
"id": 42,
"nodeType": "StructuredDocumentation",
"src": "1740:232:0",
"text": "@dev Emits an event indicating the validity of a Balancer Pool was set.\n@param balancerPool The address of Balancer Pool contract.\n@param valid The new validity status of a Balancer Pool."
},
"id": 48,
"name": "BalancerPoolSet",
"nodeType": "EventDefinition",
"parameters": {
"id": 47,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 44,
"indexed": false,
"mutability": "mutable",
"name": "balancerPool",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 48,
"src": "1999:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 43,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1999:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 46,
"indexed": false,
"mutability": "mutable",
"name": "valid",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 48,
"src": "2021:10:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 45,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "2021:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1998:34:0"
},
"src": "1977:56:0"
},
{
"anonymous": false,
"documentation": {
"id": 49,
"nodeType": "StructuredDocumentation",
"src": "2039:151:0",
"text": "@dev Emits an event indicating a PendingGovernor was set.\n@param pendingGovernor The address of the new Pending Governor."
},
"id": 53,
"name": "PendingGovernorSet",
"nodeType": "EventDefinition",
"parameters": {
"id": 52,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 51,
"indexed": true,
"mutability": "mutable",
"name": "pendingGovernor",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 53,
"src": "2220:31:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 50,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2220:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2219:33:0"
},
"src": "2195:58:0"
},
{
"anonymous": false,
"documentation": {
"id": 54,
"nodeType": "StructuredDocumentation",
"src": "2259:164:0",
"text": "@dev Emits an event indicating Governorship was accepted by a new account.\n@param governor The account that has accepted Governorship."
},
"id": 58,
"name": "GovernorAccepted",
"nodeType": "EventDefinition",
"parameters": {
"id": 57,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 56,
"indexed": true,
"mutability": "mutable",
"name": "governor",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 58,
"src": "2451:24:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 55,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2451:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2450:26:0"
},
"src": "2428:49:0"
},
{
"anonymous": false,
"documentation": {
"id": 59,
"nodeType": "StructuredDocumentation",
"src": "2483:225:0",
"text": "@dev Emits an event indicating that some Governor controlled parameter was set.\n@param which The identifier of the parameter that was set.\n@param value The value the parameter was set to."
},
"id": 65,
"name": "GlobalsParamSet",
"nodeType": "EventDefinition",
"parameters": {
"id": 64,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 61,
"indexed": true,
"mutability": "mutable",
"name": "which",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 65,
"src": "2735:21:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 60,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "2735:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 63,
"indexed": false,
"mutability": "mutable",
"name": "value",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 65,
"src": "2758:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 62,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2758:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2734:38:0"
},
"src": "2713:60:0"
},
{
"anonymous": false,
"documentation": {
"id": 66,
"nodeType": "StructuredDocumentation",
"src": "2779:211:0",
"text": "@dev Emits an event indicating that some Governor controlled address was set.\n@param which The identifier of the address that was set.\n@param addr The address that was set."
},
"id": 72,
"name": "GlobalsAddressSet",
"nodeType": "EventDefinition",
"parameters": {
"id": 71,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 68,
"indexed": true,
"mutability": "mutable",
"name": "which",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 72,
"src": "3019:21:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 67,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "3019:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 70,
"indexed": false,
"mutability": "mutable",
"name": "addr",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 72,
"src": "3042:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 69,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3042:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3018:37:0"
},
"src": "2995:61:0"
},
{
"anonymous": false,
"documentation": {
"id": 73,
"nodeType": "StructuredDocumentation",
"src": "3062:148:0",
"text": "@dev Emits an event indicating the protocol's paused state has been set.\n@param pause Whether the protocol was paused."
},
"id": 77,
"name": "ProtocolPaused",
"nodeType": "EventDefinition",
"parameters": {
"id": 76,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 75,
"indexed": false,
"mutability": "mutable",
"name": "pause",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 77,
"src": "3236:10:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 74,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "3236:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3235:12:0"
},
"src": "3215:33:0"
},
{
"anonymous": false,
"documentation": {
"id": 78,
"nodeType": "StructuredDocumentation",
"src": "3254:143:0",
"text": "@dev Emits an event indicating the GlobalAdmin was set.\n@param newGlobalAdmin The address of the new GlobalAdmin."
},
"id": 82,
"name": "GlobalAdminSet",
"nodeType": "EventDefinition",
"parameters": {
"id": 81,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 80,
"indexed": true,
"mutability": "mutable",
"name": "newGlobalAdmin",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 82,
"src": "3423:30:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 79,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3423:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3422:32:0"
},
"src": "3402:53:0"
},
{
"anonymous": false,
"documentation": {
"id": 83,
"nodeType": "StructuredDocumentation",
"src": "3461:230:0",
"text": "@dev Emits an event indicating the validity of a Pool Delegate was set.\n@param poolDelegate The address of a Pool Delegate.\n@param valid Whether `poolDelegate` is a valid Pool Delegate."
},
"id": 89,
"name": "PoolDelegateSet",
"nodeType": "EventDefinition",
"parameters": {
"id": 88,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 85,
"indexed": true,
"mutability": "mutable",
"name": "poolDelegate",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 89,
"src": "3718:28:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 84,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3718:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 87,
"indexed": false,
"mutability": "mutable",
"name": "valid",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 89,
"src": "3748:10:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 86,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "3748:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3717:42:0"
},
"src": "3696:64:0"
},
{
"body": null,
"documentation": {
"id": 90,
"nodeType": "StructuredDocumentation",
"src": "3766:73:0",
"text": "@dev The ERC-2222 Maple Token for the Maple protocol."
},
"functionSelector": "a0530946",
"id": 95,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "mpl",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 91,
"nodeType": "ParameterList",
"parameters": [],
"src": "3856:2:0"
},
"returnParameters": {
"id": 94,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 93,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 95,
"src": "3882:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 92,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3882:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3881:9:0"
},
"scope": 492,
"src": "3844:47:0",
"stateMutability": "pure",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 96,
"nodeType": "StructuredDocumentation",
"src": "3897:142:0",
"text": "@dev The Governor that is declared for governorship transfer. \n@dev Must be accepted for transfer to take effect. "
},
"functionSelector": "e3056a34",
"id": 101,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "pendingGovernor",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 97,
"nodeType": "ParameterList",
"parameters": [],
"src": "4068:2:0"
},
"returnParameters": {
"id": 100,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 99,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 101,
"src": "4094:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 98,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4094:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4093:9:0"
},
"scope": 492,
"src": "4044:59:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 102,
"nodeType": "StructuredDocumentation",
"src": "4109:91:0",
"text": "@dev The Governor responsible for management of global Maple variables."
},
"functionSelector": "0c340a24",
"id": 107,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "governor",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 103,
"nodeType": "ParameterList",
"parameters": [],
"src": "4222:2:0"
},
"returnParameters": {
"id": 106,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 105,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 107,
"src": "4248:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 104,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4248:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4247:9:0"
},
"scope": 492,
"src": "4205:52:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 108,
"nodeType": "StructuredDocumentation",
"src": "4263:125:0",
"text": "@dev The MapleTreasury is the Treasury where all fees pass through for conversion, prior to distribution."
},
"functionSelector": "a5a27605",
"id": 113,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "mapleTreasury",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 109,
"nodeType": "ParameterList",
"parameters": [],
"src": "4415:2:0"
},
"returnParameters": {
"id": 112,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 111,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 113,
"src": "4441:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 110,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4441:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4440:9:0"
},
"scope": 492,
"src": "4393:57:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 114,
"nodeType": "StructuredDocumentation",
"src": "4456:147:0",
"text": "@dev The Global Admin of the whole network. \n@dev Has the power to switch off/on the functionality of entire protocol. "
},
"functionSelector": "ec9a9368",
"id": 119,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "globalAdmin",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 115,
"nodeType": "ParameterList",
"parameters": [],
"src": "4628:2:0"
},
"returnParameters": {
"id": 118,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 117,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 119,
"src": "4654:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 116,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4654:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4653:9:0"
},
"scope": 492,
"src": "4608:55:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 120,
"nodeType": "StructuredDocumentation",
"src": "4669:119:0",
"text": "@dev The amount of time a Borrower has to make a missed payment before a default can be triggered. "
},
"functionSelector": "705d5f24",
"id": 125,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "defaultGracePeriod",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 121,
"nodeType": "ParameterList",
"parameters": [],
"src": "4820:2:0"
},
"returnParameters": {
"id": 124,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 123,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 125,
"src": "4846:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 122,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4846:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4845:9:0"
},
"scope": 492,
"src": "4793:62:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 126,
"nodeType": "StructuredDocumentation",
"src": "4861:126:0",
"text": "@dev The minimum amount of Pool cover that a Pool Delegate has to provide before they can finalize a Pool."
},
"functionSelector": "3106374c",
"id": 131,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "swapOutRequired",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 127,
"nodeType": "ParameterList",
"parameters": [],
"src": "5016:2:0"
},
"returnParameters": {
"id": 130,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 129,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 131,
"src": "5042:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 128,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5042:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5041:9:0"
},
"scope": 492,
"src": "4992:59:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 132,
"nodeType": "StructuredDocumentation",
"src": "5057:116:0",
"text": "@dev The amount of time to allow a Borrower to drawdown on their Loan after funding period ends."
},
"functionSelector": "74d7c62b",
"id": 137,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "fundingPeriod",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 133,
"nodeType": "ParameterList",
"parameters": [],
"src": "5200:2:0"
},
"returnParameters": {
"id": 136,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 135,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 137,
"src": "5226:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 134,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5226:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5225:9:0"
},
"scope": 492,
"src": "5178:57:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 138,
"nodeType": "StructuredDocumentation",
"src": "5241:104:0",
"text": "@dev The portion of drawdown that goes to the Pool Delegates and individual Lenders."
},
"functionSelector": "16a12d7a",
"id": 143,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "investorFee",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 139,
"nodeType": "ParameterList",
"parameters": [],
"src": "5370:2:0"
},
"returnParameters": {
"id": 142,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 141,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 143,
"src": "5396:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 140,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5396:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5395:9:0"
},
"scope": 492,
"src": "5350:55:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 144,
"nodeType": "StructuredDocumentation",
"src": "5411:80:0",
"text": "@dev The portion of drawdown that goes to the MapleTreasury."
},
"functionSelector": "cc32d176",
"id": 149,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "treasuryFee",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 145,
"nodeType": "ParameterList",
"parameters": [],
"src": "5516:2:0"
},
"returnParameters": {
"id": 148,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 147,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 149,
"src": "5542:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 146,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5542:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5541:9:0"
},
"scope": 492,
"src": "5496:55:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 150,
"nodeType": "StructuredDocumentation",
"src": "5557:81:0",
"text": "@dev The maximum amount of slippage for Uniswap transactions."
},
"functionSelector": "55323195",
"id": 155,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "maxSwapSlippage",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 151,
"nodeType": "ParameterList",
"parameters": [],
"src": "5667:2:0"
},
"returnParameters": {
"id": 154,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 153,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 155,
"src": "5693:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 152,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5693:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5692:9:0"
},
"scope": 492,
"src": "5643:59:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 156,
"nodeType": "StructuredDocumentation",
"src": "5708:130:0",
"text": "@dev The minimum amount of LoanFDTs required to trigger liquidations (basis points percentage of totalSupply)."
},
"functionSelector": "4a2697c4",
"id": 161,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "minLoanEquity",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 157,
"nodeType": "ParameterList",
"parameters": [],
"src": "5865:2:0"
},
"returnParameters": {
"id": 160,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 159,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 161,
"src": "5891:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 158,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5891:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5890:9:0"
},
"scope": 492,
"src": "5843:57:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 162,
"nodeType": "StructuredDocumentation",
"src": "5906:119:0",
"text": "@dev The period (in secs) after which Stakers are allowed to unstake their BPTs from a StakeLocker."
},
"functionSelector": "a965d6b5",
"id": 167,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "stakerCooldownPeriod",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 163,
"nodeType": "ParameterList",
"parameters": [],
"src": "6059:2:0"
},
"returnParameters": {
"id": 166,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 165,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 167,
"src": "6085:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 164,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6085:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6084:9:0"
},
"scope": 492,
"src": "6030:64:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 168,
"nodeType": "StructuredDocumentation",
"src": "6100:110:0",
"text": "@dev The period (in secs) after which LPs are allowed to withdraw their funds from a Pool."
},
"functionSelector": "dd02e0ec",
"id": 173,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "lpCooldownPeriod",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 169,
"nodeType": "ParameterList",
"parameters": [],
"src": "6240:2:0"
},
"returnParameters": {
"id": 172,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 171,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 173,
"src": "6266:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 170,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6266:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6265:9:0"
},
"scope": 492,
"src": "6215:60:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 174,
"nodeType": "StructuredDocumentation",
"src": "6281:161:0",
"text": "@dev The window of time (in secs) after `stakerCooldownPeriod` that an account has to withdraw before their intent to unstake is invalidated."
},
"functionSelector": "2018b870",
"id": 179,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "stakerUnstakeWindow",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 175,
"nodeType": "ParameterList",
"parameters": [],
"src": "6475:2:0"
},
"returnParameters": {
"id": 178,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 177,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 179,
"src": "6501:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 176,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6501:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6500:9:0"
},
"scope": 492,
"src": "6447:63:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 180,
"nodeType": "StructuredDocumentation",
"src": "6516:158:0",
"text": "@dev The window of time (in secs) after `lpCooldownPeriod` that an account has to withdraw before their intent to withdraw is invalidated."
},
"functionSelector": "df3d02bd",
"id": 185,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "lpWithdrawWindow",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 181,
"nodeType": "ParameterList",
"parameters": [],
"src": "6704:2:0"
},
"returnParameters": {
"id": 184,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 183,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 185,
"src": "6730:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 182,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6730:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6729:9:0"
},
"scope": 492,
"src": "6679:60:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 186,
"nodeType": "StructuredDocumentation",
"src": "6745:84:0",
"text": "@dev Whether the functionality of the entire protocol is paused."
},
"functionSelector": "425fad58",
"id": 191,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "protocolPaused",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 187,
"nodeType": "ParameterList",
"parameters": [],
"src": "6857:2:0"
},
"returnParameters": {
"id": 190,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 189,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 191,
"src": "6883:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 188,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "6883:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6882:6:0"
},
"scope": 492,
"src": "6834:55:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 192,
"nodeType": "StructuredDocumentation",
"src": "6895:127:0",
"text": "@param liquidityAsset The address of a Liquidity Asset.\n@return Whether `liquidityAsset` is valid."
},
"functionSelector": "8695118a",
"id": 199,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "isValidLiquidityAsset",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 195,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 194,
"mutability": "mutable",
"name": "liquidityAsset",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 199,
"src": "7058:22:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 193,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7058:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7057:24:0"
},
"returnParameters": {
"id": 198,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 197,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 199,
"src": "7105:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 196,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "7105:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7104:6:0"
},
"scope": 492,
"src": "7027:84:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 200,
"nodeType": "StructuredDocumentation",
"src": "7117:130:0",
"text": "@param collateralAsset The address of a Collateral Asset.\n@return Whether `collateralAsset` is valid."
},
"functionSelector": "8c14834b",
"id": 207,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "isValidCollateralAsset",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 203,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 202,
"mutability": "mutable",
"name": "collateralAsset",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 207,
"src": "7284:23:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 201,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7284:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7283:25:0"
},
"returnParameters": {
"id": 206,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 205,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 207,
"src": "7332:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 204,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "7332:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7331:6:0"
},
"scope": 492,
"src": "7252:86:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 208,
"nodeType": "StructuredDocumentation",
"src": "7344:102:0",
"text": "@param calc The address of a Calculator.\n@return Whether `calc` is valid."
},
"functionSelector": "1beb84e7",
"id": 215,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "validCalcs",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 211,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 210,
"mutability": "mutable",
"name": "calc",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 215,
"src": "7471:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 209,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7471:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7470:14:0"
},
"returnParameters": {
"id": 214,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 213,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 215,
"src": "7508:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 212,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "7508:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7507:6:0"
},
"scope": 492,
"src": "7451:63:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 216,
"nodeType": "StructuredDocumentation",
"src": "7520:198:0",
"text": "@dev Prevents unauthorized/unknown addresses from creating Pools.\n@param poolDelegate The address of a Pool Delegate.\n@return Whether `poolDelegate` is valid."
},
"functionSelector": "372e3546",
"id": 223,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "isValidPoolDelegate",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 219,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 218,
"mutability": "mutable",
"name": "poolDelegate",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 223,
"src": "7752:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 217,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7752:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7751:22:0"
},
"returnParameters": {
"id": 222,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 221,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 223,
"src": "7797:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 220,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "7797:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7796:6:0"
},
"scope": 492,
"src": "7723:80:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 224,
"nodeType": "StructuredDocumentation",
"src": "7809:147:0",
"text": "@param balancerPool The address of a Balancer Pool.\n@return Whether Maple has approved `balancerPool` for BPT staking."
},
"functionSelector": "72a22d71",
"id": 231,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "isValidBalancerPool",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 227,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 226,
"mutability": "mutable",
"name": "balancerPool",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 231,
"src": "7990:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 225,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7990:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7989:22:0"
},
"returnParameters": {
"id": 230,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 229,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 231,
"src": "8035:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 228,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "8035:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8034:6:0"
},
"scope": 492,
"src": "7961:80:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 232,
"nodeType": "StructuredDocumentation",
"src": "8047:768:0",
"text": "@dev Determines the liquidation path of various assets in Loans and the Treasury. \n@dev The value provided will determine whether or not to perform a bilateral or triangular swap on Uniswap. \n@dev For example, `defaultUniswapPath[WBTC][USDC]` value would indicate what asset to convert WBTC into before conversion to USDC. \n@dev If `defaultUniswapPath[WBTC][USDC] == USDC`, then the swap is bilateral and no middle asset is swapped. \n@dev If `defaultUniswapPath[WBTC][USDC] == WETH`, then swap WBTC for WETH, then WETH for USDC. \n@param tokenA The address of the asset being swapped.\n@param tokenB The address of the final asset to receive.\n@return The intermediary asset for swaps, if any."
},
"functionSelector": "4d866592",
"id": 241,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "defaultUniswapPath",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 237,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 234,
"mutability": "mutable",
"name": "tokenA",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 241,
"src": "8848:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 233,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "8848:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 236,
"mutability": "mutable",
"name": "tokenB",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 241,
"src": "8864:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 235,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "8864:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8847:32:0"
},
"returnParameters": {
"id": 240,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 239,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 241,
"src": "8903:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 238,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "8903:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8902:9:0"
},
"scope": 492,
"src": "8820:92:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 242,
"nodeType": "StructuredDocumentation",
"src": "8918:123:0",
"text": "@param asset The address of some token.\n@return The Chainlink Oracle for the price of `asset`."
},
"functionSelector": "aed019b9",
"id": 249,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "oracleFor",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 245,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 244,
"mutability": "mutable",
"name": "asset",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 249,
"src": "9065:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 243,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "9065:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "9064:15:0"
},
"returnParameters": {
"id": 248,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 247,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 249,
"src": "9103:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 246,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "9103:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "9102:9:0"
},
"scope": 492,
"src": "9046:66:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 250,
"nodeType": "StructuredDocumentation",
"src": "9122:118:0",
"text": "@param poolFactory The address of a Pool Factory.\n@return Whether `poolFactory` is valid."
},
"functionSelector": "107c0240",
"id": 257,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "isValidPoolFactory",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 253,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 252,
"mutability": "mutable",
"name": "poolFactory",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 257,
"src": "9273:19:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 251,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "9273:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "9272:21:0"
},
"returnParameters": {
"id": 256,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 255,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 257,
"src": "9317:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 254,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "9317:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "9316:6:0"
},
"scope": 492,
"src": "9245:78:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 258,
"nodeType": "StructuredDocumentation",
"src": "9329:118:0",
"text": "@param loanFactory The address of a Loan Factory.\n@return Whether `loanFactory` is valid."
},
"functionSelector": "b53afda7",
"id": 265,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "isValidLoanFactory",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 261,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 260,
"mutability": "mutable",
"name": "loanFactory",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 265,
"src": "9480:19:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 259,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "9480:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "9479:21:0"
},
"returnParameters": {
"id": 264,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 263,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 265,
"src": "9524:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 262,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "9524:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "9523:6:0"
},
"scope": 492,
"src": "9452:78:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 266,
"nodeType": "StructuredDocumentation",
"src": "9540:266:0",
"text": "@param superFactory The core factory (e.g. PoolFactory, LoanFactory).\n@param subFactory The sub factory used by core factory (e.g. LiquidityLockerFactory).\n@return Whether `subFactory` is valid as it relates to `superFactory`."
},
"functionSelector": "1b1804aa",
"id": 275,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "validSubFactories",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 271,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 268,
"mutability": "mutable",
"name": "superFactory",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 275,
"src": "9838:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 267,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "9838:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 270,
"mutability": "mutable",
"name": "subFactory",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 275,
"src": "9860:18:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 269,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "9860:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "9837:42:0"
},
"returnParameters": {
"id": 274,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 273,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 275,
"src": "9903:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 272,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "9903:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "9902:6:0"
},
"scope": 492,
"src": "9811:98:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 276,
"nodeType": "StructuredDocumentation",
"src": "9919:363:0",
"text": "@dev Sets the Staker cooldown period. \n@dev This change will affect the existing cool down period for the Stakers that already intended to unstake. \n@dev Only the Governor can call this function. \n@dev It emits a `GlobalsParamSet` event. \n@param newCooldownPeriod The new value for the cool down period."
},
"functionSelector": "fd4a9121",
"id": 281,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setStakerCooldownPeriod",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 279,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 278,
"mutability": "mutable",
"name": "newCooldownPeriod",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 281,
"src": "10320:25:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 277,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "10320:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "10319:27:0"
},
"returnParameters": {
"id": 280,
"nodeType": "ParameterList",
"parameters": [],
"src": "10355:0:0"
},
"scope": 492,
"src": "10287:69:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 282,
"nodeType": "StructuredDocumentation",
"src": "10362:368:0",
"text": "@dev Sets the Liquidity Pool cooldown period. \n@dev This change will affect the existing cool down period for the LPs that already intended to withdraw. \n@dev Only the Governor can call this function. \n@dev It emits a `GlobalsParamSet` event. \n@param newCooldownPeriod The new value for the cool down period."
},
"functionSelector": "8608a6e1",
"id": 287,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setLpCooldownPeriod",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 285,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 284,
"mutability": "mutable",
"name": "newCooldownPeriod",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 287,
"src": "10764:25:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 283,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "10764:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "10763:27:0"
},
"returnParameters": {
"id": 286,
"nodeType": "ParameterList",
"parameters": [],
"src": "10799:0:0"
},
"scope": 492,
"src": "10735:65:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 288,
"nodeType": "StructuredDocumentation",
"src": "10806:349:0",
"text": "@dev Sets the Staker unstake window. \n@dev This change will affect the existing window for the Stakers that already intended to unstake. \n@dev Only the Governor can call this function. \n@dev It emits a `GlobalsParamSet` event. \n@param newUnstakeWindow The new value for the unstake window."
},
"functionSelector": "d1cdf301",
"id": 293,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setStakerUnstakeWindow",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 291,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 290,
"mutability": "mutable",
"name": "newUnstakeWindow",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 293,
"src": "11192:24:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 289,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "11192:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "11191:26:0"
},
"returnParameters": {
"id": 292,
"nodeType": "ParameterList",
"parameters": [],
"src": "11226:0:0"
},
"scope": 492,
"src": "11160:67:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 294,
"nodeType": "StructuredDocumentation",
"src": "11233:359:0",
"text": "@dev Sets the Liquidity Pool withdraw window. \n@dev This change will affect the existing window for the LPs that already intended to withdraw. \n@dev Only the Governor can call this function. \n@dev It emits a `GlobalsParamSet` event. \n@param newLpWithdrawWindow The new value for the withdraw window."
},
"functionSelector": "26718606",
"id": 299,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setLpWithdrawWindow",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 297,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 296,
"mutability": "mutable",
"name": "newLpWithdrawWindow",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 299,
"src": "11626:27:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 295,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "11626:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "11625:29:0"
},
"returnParameters": {
"id": 298,
"nodeType": "ParameterList",
"parameters": [],
"src": "11663:0:0"
},
"scope": 492,
"src": "11597:67:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 300,
"nodeType": "StructuredDocumentation",
"src": "11670:280:0",
"text": "@dev Sets the allowed Uniswap slippage percentage, in basis points. \n@dev Only the Governor can call this function. \n@dev It emits a `GlobalsParamSet` event. \n@param newMaxSlippage The new max slippage percentage (in basis points)"
},
"functionSelector": "f33ef09a",
"id": 305,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setMaxSwapSlippage",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 303,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 302,
"mutability": "mutable",
"name": "newMaxSlippage",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 305,
"src": "11983:22:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 301,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "11983:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "11982:24:0"
},
"returnParameters": {
"id": 304,
"nodeType": "ParameterList",
"parameters": [],
"src": "12015:0:0"
},
"scope": 492,
"src": "11955:61:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 306,
"nodeType": "StructuredDocumentation",
"src": "12022:211:0",
"text": "@dev Sets the Global Admin. \n@dev Only the Governor can call this function. \n@dev It emits a `GlobalAdminSet` event. \n@param newGlobalAdmin The new global admin address."
},
"functionSelector": "c52bc31d",
"id": 311,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setGlobalAdmin",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 309,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 308,
"mutability": "mutable",
"name": "newGlobalAdmin",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 311,
"src": "12262:22:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 307,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "12262:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "12261:24:0"
},
"returnParameters": {
"id": 310,
"nodeType": "ParameterList",
"parameters": [],
"src": "12294:0:0"
},
"scope": 492,
"src": "12238:57:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 312,
"nodeType": "StructuredDocumentation",
"src": "12301:314:0",
"text": "@dev Sets the validity of a Balancer Pool. \n@dev Only the Governor can call this function. \n@dev It emits a `BalancerPoolSet` event. \n@param balancerPool The address of Balancer Pool contract.\n@param valid The new validity status of a Balancer Pool."
},
"functionSelector": "490dae64",
"id": 319,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setValidBalancerPool",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 317,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 314,
"mutability": "mutable",
"name": "balancerPool",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 319,
"src": "12650:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 313,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "12650:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 316,
"mutability": "mutable",
"name": "valid",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 319,
"src": "12672:10:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 315,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "12672:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "12649:34:0"
},
"returnParameters": {
"id": 318,
"nodeType": "ParameterList",
"parameters": [],
"src": "12692:0:0"
},
"scope": 492,
"src": "12620:73:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 320,
"nodeType": "StructuredDocumentation",
"src": "12699:290:0",
"text": "@dev Sets the paused/unpaused state of the protocol. \n@dev Only the Global Admin can call this function. \n@dev It emits a `ProtocolPaused` event. \n@param pause A boolean flag to switch externally facing functionality in the protocol on/off."
},
"functionSelector": "4e989118",
"id": 325,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setProtocolPause",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 323,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 322,
"mutability": "mutable",
"name": "pause",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 325,
"src": "13020:10:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 321,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "13020:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "13019:12:0"
},
"returnParameters": {
"id": 324,
"nodeType": "ParameterList",
"parameters": [],
"src": "13040:0:0"
},
"scope": 492,
"src": "12994:47:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 326,
"nodeType": "StructuredDocumentation",
"src": "13047:247:0",
"text": "@dev Sets the validity of a PoolFactory. \n@dev Only the Governor can call this function. \n@param poolFactory The address of a PoolFactory.\n@param valid The new validity status of `poolFactory`."
},
"functionSelector": "6597b899",
"id": 333,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setValidPoolFactory",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 331,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 328,
"mutability": "mutable",
"name": "poolFactory",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 333,
"src": "13328:19:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 327,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "13328:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 330,
"mutability": "mutable",
"name": "valid",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 333,
"src": "13349:10:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 329,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "13349:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "13327:33:0"
},
"returnParameters": {
"id": 332,
"nodeType": "ParameterList",
"parameters": [],
"src": "13369:0:0"
},
"scope": 492,
"src": "13299:71:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 334,
"nodeType": "StructuredDocumentation",
"src": "13376:247:0",
"text": "@dev Sets the validity of a LoanFactory. \n@dev Only the Governor can call this function. \n@param loanFactory The address of a LoanFactory.\n@param valid The new validity status of `loanFactory`."
},
"functionSelector": "c9c67240",
"id": 341,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setValidLoanFactory",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 339,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 336,
"mutability": "mutable",
"name": "loanFactory",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 341,
"src": "13657:19:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 335,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "13657:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 338,
"mutability": "mutable",
"name": "valid",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 341,
"src": "13678:10:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 337,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "13678:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "13656:33:0"
},
"returnParameters": {
"id": 340,
"nodeType": "ParameterList",
"parameters": [],
"src": "13698:0:0"
},
"scope": 492,
"src": "13628:71:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 342,
"nodeType": "StructuredDocumentation",
"src": "13705:428:0",
"text": "@dev Sets the validity of `subFactory` as it relates to `superFactory`. \n@dev Only the Governor can call this function. \n@param superFactory The core factory (e.g. PoolFactory, LoanFactory).\n@param subFactory The sub factory used by core factory (e.g. LiquidityLockerFactory).\n@param valid The new validity status of `subFactory` within context of `superFactory`."
},
"functionSelector": "f85ee6f8",
"id": 351,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setValidSubFactory",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 349,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 344,
"mutability": "mutable",
"name": "superFactory",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 351,
"src": "14166:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 343,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "14166:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 346,
"mutability": "mutable",
"name": "subFactory",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 351,
"src": "14188:18:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 345,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "14188:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 348,
"mutability": "mutable",
"name": "valid",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 351,
"src": "14208:10:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 347,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "14208:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "14165:54:0"
},
"returnParameters": {
"id": 350,
"nodeType": "ParameterList",
"parameters": [],
"src": "14228:0:0"
},
"scope": 492,
"src": "14138:91:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 352,
"nodeType": "StructuredDocumentation",
"src": "14235:472:0",
"text": "@dev Sets the path to swap an asset through Uniswap. \n@dev Only the Governor can call this function. \n@dev Set to == mid to enable a bilateral swap (single path swap). \n@dev Set to != mid to enable a triangular swap (multi path swap). \n@param from The address of the asset being swapped.\n@param to The address of the final asset to receive.\n@param mid The intermediary asset for swaps, if any."
},
"functionSelector": "f3897663",
"id": 361,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setDefaultUniswapPath",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 359,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 354,
"mutability": "mutable",
"name": "from",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 361,
"src": "14743:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 353,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "14743:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 356,
"mutability": "mutable",
"name": "to",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 361,
"src": "14757:10:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 355,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "14757:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 358,
"mutability": "mutable",
"name": "mid",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 361,
"src": "14769:11:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 357,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "14769:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "14742:39:0"
},
"returnParameters": {
"id": 360,
"nodeType": "ParameterList",
"parameters": [],
"src": "14790:0:0"
},
"scope": 492,
"src": "14712:79:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 362,
"nodeType": "StructuredDocumentation",
"src": "14797:346:0",
"text": "@dev Sets the validity of a Pool Delegate (those allowed to create Pools). \n@dev Only the Governor can call this function. \n@dev It emits a `PoolDelegateSet` event. \n@param poolDelegate The address to manage permissions for.\n@param valid The new validity status of a Pool Delegate."
},
"functionSelector": "efdb16fc",
"id": 369,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setPoolDelegateAllowlist",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 367,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 364,
"mutability": "mutable",
"name": "poolDelegate",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 369,
"src": "15182:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 363,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "15182:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 366,
"mutability": "mutable",
"name": "valid",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 369,
"src": "15204:10:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 365,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "15204:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "15181:34:0"
},
"returnParameters": {
"id": 368,
"nodeType": "ParameterList",
"parameters": [],
"src": "15224:0:0"
},
"scope": 492,
"src": "15148:77:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 370,
"nodeType": "StructuredDocumentation",
"src": "15231:308:0",
"text": "@dev Sets the validity of an asset for collateral. \n@dev Only the Governor can call this function. \n@dev It emits a `CollateralAssetSet` event. \n@param asset The asset to assign validity to.\n@param valid The new validity status of a Collateral Asset."
},
"functionSelector": "2fa6c88f",
"id": 377,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setCollateralAsset",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 375,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 372,
"mutability": "mutable",
"name": "asset",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 377,
"src": "15572:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 371,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "15572:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 374,
"mutability": "mutable",
"name": "valid",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 377,
"src": "15587:10:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 373,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "15587:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "15571:27:0"
},
"returnParameters": {
"id": 376,
"nodeType": "ParameterList",
"parameters": [],
"src": "15607:0:0"
},
"scope": 492,
"src": "15544:64:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 378,
"nodeType": "StructuredDocumentation",
"src": "15614:320:0",
"text": "@dev Sets the validity of an asset for liquidity in Pools. \n@dev Only the Governor can call this function. \n@dev It emits a `LiquidityAssetSet` event. \n@param asset The asset to assign validity to.\n@param valid The new validity status a Liquidity Asset in Pools."
},
"functionSelector": "2daa0d89",
"id": 385,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setLiquidityAsset",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 383,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 380,
"mutability": "mutable",
"name": "asset",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 385,
"src": "15966:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 379,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "15966:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 382,
"mutability": "mutable",
"name": "valid",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 385,
"src": "15981:10:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 381,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "15981:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "15965:27:0"
},
"returnParameters": {
"id": 384,
"nodeType": "ParameterList",
"parameters": [],
"src": "16001:0:0"
},
"scope": 492,
"src": "15939:63:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 386,
"nodeType": "StructuredDocumentation",
"src": "16008:236:0",
"text": "@dev Sets the validity of a calculator contract. \n@dev Only the Governor can call this function. \n@param calc The Calculator address.\n@param valid The new validity status of a Calculator."
},
"functionSelector": "be44ed6b",
"id": 393,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setCalc",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 391,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 388,
"mutability": "mutable",
"name": "calc",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 393,
"src": "16266:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 387,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "16266:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 390,
"mutability": "mutable",
"name": "valid",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 393,
"src": "16280:10:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 389,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "16280:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "16265:26:0"
},
"returnParameters": {
"id": 392,
"nodeType": "ParameterList",
"parameters": [],
"src": "16300:0:0"
},
"scope": 492,
"src": "16249:52:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 394,
"nodeType": "StructuredDocumentation",
"src": "16307:225:0",
"text": "@dev Sets the investor fee (in basis points). \n@dev Only the Governor can call this function. \n@dev It emits a `GlobalsParamSet` event. \n@param _fee The fee, e.g., 50 = 0.50%."
},
"functionSelector": "5e045467",
"id": 399,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setInvestorFee",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 397,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 396,
"mutability": "mutable",
"name": "_fee",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 399,
"src": "16561:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 395,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "16561:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "16560:14:0"
},
"returnParameters": {
"id": 398,
"nodeType": "ParameterList",
"parameters": [],
"src": "16583:0:0"
},
"scope": 492,
"src": "16537:47:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 400,
"nodeType": "StructuredDocumentation",
"src": "16590:225:0",
"text": "@dev Sets the treasury fee (in basis points). \n@dev Only the Governor can call this function. \n@dev It emits a `GlobalsParamSet` event. \n@param _fee The fee, e.g., 50 = 0.50%."
},
"functionSelector": "77e741c7",
"id": 405,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setTreasuryFee",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 403,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 402,
"mutability": "mutable",
"name": "_fee",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 405,
"src": "16844:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 401,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "16844:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "16843:14:0"
},
"returnParameters": {
"id": 404,
"nodeType": "ParameterList",
"parameters": [],
"src": "16866:0:0"
},
"scope": 492,
"src": "16820:47:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 406,
"nodeType": "StructuredDocumentation",
"src": "16873:220:0",
"text": "@dev Sets the MapleTreasury. \n@dev Only the Governor can call this function. \n@dev It emits a `GlobalsParamSet` event. \n@param _mapleTreasury A new MapleTreasury address."
},
"functionSelector": "7303de25",
"id": 411,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setMapleTreasury",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 409,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 408,
"mutability": "mutable",
"name": "_mapleTreasury",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 411,
"src": "17124:22:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 407,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "17124:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "17123:24:0"
},
"returnParameters": {
"id": 410,
"nodeType": "ParameterList",
"parameters": [],
"src": "17156:0:0"
},
"scope": 492,
"src": "17098:59:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 412,
"nodeType": "StructuredDocumentation",
"src": "17163:257:0",
"text": "@dev Sets the default grace period. \n@dev Only the Governor can call this function. \n@dev It emits a `GlobalsParamSet` event. \n@param _defaultGracePeriod The new number of seconds to set the grace period to."
},
"functionSelector": "44c14f71",
"id": 417,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setDefaultGracePeriod",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 415,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 414,
"mutability": "mutable",
"name": "_defaultGracePeriod",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 417,
"src": "17456:27:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 413,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "17456:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "17455:29:0"
},
"returnParameters": {
"id": 416,
"nodeType": "ParameterList",
"parameters": [],
"src": "17493:0:0"
},
"scope": 492,
"src": "17425:69:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 418,
"nodeType": "StructuredDocumentation",
"src": "17500:285:0",
"text": "@dev Sets the minimum Loan equity. \n@dev Only the Governor can call this function. \n@dev It emits a `GlobalsParamSet` event. \n@param _minLoanEquity The new minimum percentage of Loan equity an account must have to trigger liquidations."
},
"functionSelector": "298b795d",
"id": 423,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setMinLoanEquity",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 421,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 420,
"mutability": "mutable",
"name": "_minLoanEquity",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 423,
"src": "17816:22:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 419,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "17816:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "17815:24:0"
},
"returnParameters": {
"id": 422,
"nodeType": "ParameterList",
"parameters": [],
"src": "17848:0:0"
},
"scope": 492,
"src": "17790:59:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 424,
"nodeType": "StructuredDocumentation",
"src": "17855:251:0",
"text": "@dev Sets the funding period. \n@dev Only the Governor can call this function. \n@dev It emits a `GlobalsParamSet` event. \n@param _fundingPeriod The number of seconds to set the drawdown grace period to."
},
"functionSelector": "2a5aa292",
"id": 429,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setFundingPeriod",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 427,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 426,
"mutability": "mutable",
"name": "_fundingPeriod",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 429,
"src": "18137:22:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 425,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "18137:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "18136:24:0"
},
"returnParameters": {
"id": 428,
"nodeType": "ParameterList",
"parameters": [],
"src": "18169:0:0"
},
"scope": 492,
"src": "18111:59:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 430,
"nodeType": "StructuredDocumentation",
"src": "18176:252:0",
"text": "@dev Sets the the minimum Pool cover required to finalize a Pool. \n@dev Only the Governor can call this function. \n@dev It emits a `GlobalsParamSet` event. \n@param amt The new minimum swap out required."
},
"functionSelector": "dbc6c552",
"id": 435,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setSwapOutRequired",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 433,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 432,
"mutability": "mutable",
"name": "amt",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 435,
"src": "18461:11:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 431,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "18461:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "18460:13:0"
},
"returnParameters": {
"id": 434,
"nodeType": "ParameterList",
"parameters": [],
"src": "18482:0:0"
},
"scope": 492,
"src": "18433:50:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 436,
"nodeType": "StructuredDocumentation",
"src": "18489:282:0",
"text": "@dev Sets a price feed's oracle. \n@dev Only the Governor can call this function. \n@dev It emits a `OracleSet` event. \n@param asset The asset to update price for.\n@param oracle The new Oracle to use for the price of `asset`."
},
"functionSelector": "67a74ddc",
"id": 443,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setPriceOracle",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 441,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 438,
"mutability": "mutable",
"name": "asset",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 443,
"src": "18800:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 437,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "18800:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 440,
"mutability": "mutable",
"name": "oracle",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 443,
"src": "18815:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 439,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "18815:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "18799:31:0"
},
"returnParameters": {
"id": 442,
"nodeType": "ParameterList",
"parameters": [],
"src": "18839:0:0"
},
"scope": 492,
"src": "18776:64:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 444,
"nodeType": "StructuredDocumentation",
"src": "18846:305:0",
"text": "@dev Sets a new Pending Governor. \n@dev This address can become Governor if they accept. \n@dev Only the Governor can call this function. \n@dev It emits a `PendingGovernorSet` event. \n@param _pendingGovernor The address of a new Pending Governor."
},
"functionSelector": "f235757f",
"id": 449,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setPendingGovernor",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 447,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 446,
"mutability": "mutable",
"name": "_pendingGovernor",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 449,
"src": "19184:24:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 445,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "19184:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "19183:26:0"
},
"returnParameters": {
"id": 448,
"nodeType": "ParameterList",
"parameters": [],
"src": "19218:0:0"
},
"scope": 492,
"src": "19156:63:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 450,
"nodeType": "StructuredDocumentation",
"src": "19225:170:0",
"text": "@dev Accept the Governor position. \n@dev Only the Pending Governor can call this function. \n@dev It emits a `GovernorAccepted` event. "
},
"functionSelector": "e58bb639",
"id": 453,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "acceptGovernor",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 451,
"nodeType": "ParameterList",
"parameters": [],
"src": "19423:2:0"
},
"returnParameters": {
"id": 452,
"nodeType": "ParameterList",
"parameters": [],
"src": "19434:0:0"
},
"scope": 492,
"src": "19400:35:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 454,
"nodeType": "StructuredDocumentation",
"src": "19441:171:0",
"text": "@dev Fetch price for asset from Chainlink oracles.\n@param asset The asset to fetch the price of.\n@return The price of asset in USD."
},
"functionSelector": "16345f18",
"id": 461,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "getLatestPrice",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 457,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 456,
"mutability": "mutable",
"name": "asset",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 461,
"src": "19641:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 455,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "19641:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "19640:15:0"
},
"returnParameters": {
"id": 460,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 459,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 461,
"src": "19679:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 458,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "19679:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "19678:9:0"
},
"scope": 492,
"src": "19617:71:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 462,
"nodeType": "StructuredDocumentation",
"src": "19694:641:0",
"text": "@dev Checks that a `subFactory` is valid as it relates to `superFactory`.\n@param superFactory The core factory (e.g. PoolFactory, LoanFactory).\n@param subFactory The sub factory used by core factory (e.g. LiquidityLockerFactory).\n@param factoryType The type expected for the subFactory. \n0 = COLLATERAL_LOCKER_FACTORY, \n1 = DEBT_LOCKER_FACTORY, \n2 = FUNDING_LOCKER_FACTORY, \n3 = LIQUIDITY_LOCKER_FACTORY, \n4 = STAKE_LOCKER_FACTORY. "
},
"functionSelector": "13d459fb",
"id": 473,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "isValidSubFactory",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 469,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 464,
"mutability": "mutable",
"name": "superFactory",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 473,
"src": "20367:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 463,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "20367:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 466,
"mutability": "mutable",
"name": "subFactory",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 473,
"src": "20389:18:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 465,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "20389:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 468,
"mutability": "mutable",
"name": "factoryType",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 473,
"src": "20409:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 467,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "20409:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "20366:61:0"
},
"returnParameters": {
"id": 472,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 471,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 473,
"src": "20451:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 470,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "20451:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "20450:6:0"
},
"scope": 492,
"src": "20340:117:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 474,
"nodeType": "StructuredDocumentation",
"src": "20463:154:0",
"text": "@dev Checks that a Calculator is valid.\n@param calc The Calculator address.\n@param calcType The Calculator type."
},
"functionSelector": "1b5833f7",
"id": 483,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "isValidCalc",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 479,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 476,
"mutability": "mutable",
"name": "calc",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 483,
"src": "20643:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 475,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "20643:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 478,
"mutability": "mutable",
"name": "calcType",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 483,
"src": "20657:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 477,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "20657:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "20642:30:0"
},
"returnParameters": {
"id": 482,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 481,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 483,
"src": "20696:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 480,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "20696:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "20695:6:0"
},
"scope": 492,
"src": "20622:80:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 484,
"nodeType": "StructuredDocumentation",
"src": "20708:208:0",
"text": "@dev Returns the `lpCooldownPeriod` and `lpWithdrawWindow` as a tuple, for convenience.\n@return The value of `lpCooldownPeriod`.\n@return The value of `lpWithdrawWindow`."
},
"functionSelector": "9f51290b",
"id": 491,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "getLpCooldownParams",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 485,
"nodeType": "ParameterList",
"parameters": [],
"src": "20949:2:0"
},
"returnParameters": {
"id": 490,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 487,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 491,
"src": "20975:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 486,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "20975:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 489,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 491,
"src": "20984:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 488,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "20984:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "20974:18:0"
},
"scope": 492,
"src": "20921:72:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
}
],
"scope": 639,
"src": "350:20646:0"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "interface",
"documentation": {
"id": 493,
"nodeType": "StructuredDocumentation",
"src": "21176:43:0",
"text": "@title LoanFactory instantiates Loans."
},
"fullyImplemented": false,
"id": 638,
"linearizedBaseContracts": [
638
],
"name": "ILoanFactory",
"nodeType": "ContractDefinition",
"nodes": [
{
"anonymous": false,
"documentation": {
"id": 494,
"nodeType": "StructuredDocumentation",
"src": "21249:253:0",
"text": "@dev Emits an event indicating a LoanFactoryAdmin was allowed.\n@param loanFactoryAdmin The address of a LoanFactoryAdmin.\n@param allowed Whether `loanFactoryAdmin` is allowed as an admin of the LoanFactory."
},
"id": 500,
"name": "LoanFactoryAdminSet",
"nodeType": "EventDefinition",
"parameters": {
"id": 499,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 496,
"indexed": true,
"mutability": "mutable",
"name": "loanFactoryAdmin",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 500,
"src": "21533:32:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 495,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "21533:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 498,
"indexed": false,
"mutability": "mutable",
"name": "allowed",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 500,
"src": "21567:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 497,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "21567:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "21532:48:0"
},
"src": "21507:74:0"
},
{
"anonymous": false,
"documentation": {
"id": 501,
"nodeType": "StructuredDocumentation",
"src": "21587:1176:0",
"text": "@dev Emits an event indicating a Loan was created.\n@param loan The address of the Loan.\n@param borrower The Borrower.\n@param liquidityAsset The asset the Loan will raise funding in.\n@param collateralAsset The asset the Loan will use as collateral.\n@param collateralLocker The address of the Collateral Locker.\n@param fundingLocker The address of the Funding Locker.\n@param specs The specifications for the Loan. \n[0] => apr, \n[1] => termDays, \n[2] => paymentIntervalDays, \n[3] => requestAmount, \n[4] => collateralRatio. \n@param calcs The calculators used for the Loan. \n[0] => repaymentCalc, \n[1] => lateFeeCalc, \n[2] => premiumCalc. \n@param name The name of the Loan FDTs.\n@param symbol The symbol of the Loan FDTs."
},
"id": 527,
"name": "LoanCreated",
"nodeType": "EventDefinition",
"parameters": {
"id": 526,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 503,
"indexed": false,
"mutability": "mutable",
"name": "loan",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 527,
"src": "22795:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 502,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "22795:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 505,
"indexed": true,
"mutability": "mutable",
"name": "borrower",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 527,
"src": "22817:24:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 504,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "22817:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 507,
"indexed": true,
"mutability": "mutable",
"name": "liquidityAsset",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 527,
"src": "22851:30:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 506,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "22851:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 509,
"indexed": false,
"mutability": "mutable",
"name": "collateralAsset",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 527,
"src": "22891:23:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 508,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "22891:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 511,
"indexed": false,
"mutability": "mutable",
"name": "collateralLocker",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 527,
"src": "22924:24:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 510,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "22924:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 513,
"indexed": false,
"mutability": "mutable",
"name": "fundingLocker",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 527,
"src": "22958:21:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 512,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "22958:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 517,
"indexed": false,
"mutability": "mutable",
"name": "specs",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 527,
"src": "22989:16:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$5_memory_ptr",
"typeString": "uint256[5]"
},
"typeName": {
"baseType": {
"id": 514,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "22989:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 516,
"length": {
"argumentTypes": null,
"hexValue": "35",
"id": 515,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "22997:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_5_by_1",
"typeString": "int_const 5"
},
"value": "5"
},
"nodeType": "ArrayTypeName",
"src": "22989:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$5_storage_ptr",
"typeString": "uint256[5]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 521,
"indexed": false,
"mutability": "mutable",
"name": "calcs",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 527,
"src": "23015:16:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$3_memory_ptr",
"typeString": "address[3]"
},
"typeName": {
"baseType": {
"id": 518,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "23015:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 520,
"length": {
"argumentTypes": null,
"hexValue": "33",
"id": 519,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "23023:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_3_by_1",
"typeString": "int_const 3"
},
"value": "3"
},
"nodeType": "ArrayTypeName",
"src": "23015:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$3_storage_ptr",
"typeString": "address[3]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 523,
"indexed": false,
"mutability": "mutable",
"name": "name",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 527,
"src": "23041:11:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 522,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "23041:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 525,
"indexed": false,
"mutability": "mutable",
"name": "symbol",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 527,
"src": "23062:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 524,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "23062:6:0",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "22785:296:0"
},
"src": "22768:314:0"
},
{
"body": null,
"documentation": {
"id": 528,
"nodeType": "StructuredDocumentation",
"src": "23088:71:0",
"text": "@dev The Factory type of `CollateralLockerFactory`."
},
"functionSelector": "e70dd6cf",
"id": 533,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "CL_FACTORY",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 529,
"nodeType": "ParameterList",
"parameters": [],
"src": "23183:2:0"
},
"returnParameters": {
"id": 532,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 531,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 533,
"src": "23209:5:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 530,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "23209:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "23208:7:0"
},
"scope": 638,
"src": "23164:52:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 534,
"nodeType": "StructuredDocumentation",
"src": "23222:68:0",
"text": "@dev The Factory type of `FundingLockerFactory`."
},
"functionSelector": "38505fb0",
"id": 539,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "FL_FACTORY",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 535,
"nodeType": "ParameterList",
"parameters": [],
"src": "23314:2:0"
},
"returnParameters": {
"id": 538,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 537,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 539,
"src": "23340:5:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 536,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "23340:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "23339:7:0"
},
"scope": 638,
"src": "23295:52:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 540,
"nodeType": "StructuredDocumentation",
"src": "23353:58:0",
"text": "@dev The Calc type of `RepaymentCalc`."
},
"functionSelector": "8c38922f",
"id": 545,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "INTEREST_CALC_TYPE",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 541,
"nodeType": "ParameterList",
"parameters": [],
"src": "23443:2:0"
},
"returnParameters": {
"id": 544,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 543,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 545,
"src": "23469:5:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 542,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "23469:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "23468:7:0"
},
"scope": 638,
"src": "23416:60:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 546,
"nodeType": "StructuredDocumentation",
"src": "23482:56:0",
"text": "@dev The Calc type of `LateFeeCalc`."
},
"functionSelector": "3493f4ca",
"id": 551,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "LATEFEE_CALC_TYPE",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 547,
"nodeType": "ParameterList",
"parameters": [],
"src": "23569:2:0"
},
"returnParameters": {
"id": 550,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 549,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 551,
"src": "23595:5:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 548,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "23595:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "23594:7:0"
},
"scope": 638,
"src": "23543:59:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 552,
"nodeType": "StructuredDocumentation",
"src": "23608:56:0",
"text": "@dev The Calc type of `PremiumCalc`."
},
"functionSelector": "7a8fe3c0",
"id": 557,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "PREMIUM_CALC_TYPE",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 553,
"nodeType": "ParameterList",
"parameters": [],
"src": "23695:2:0"
},
"returnParameters": {
"id": 556,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 555,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 557,
"src": "23721:5:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 554,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "23721:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "23720:7:0"
},
"scope": 638,
"src": "23669:59:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 558,
"nodeType": "StructuredDocumentation",
"src": "23734:58:0",
"text": "@dev The instance of the MapleGlobals."
},
"functionSelector": "c3124525",
"id": 563,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "globals",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 559,
"nodeType": "ParameterList",
"parameters": [],
"src": "23813:2:0"
},
"returnParameters": {
"id": 562,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 561,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 563,
"src": "23839:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IMapleGlobals_$492",
"typeString": "contract IMapleGlobals"
},
"typeName": {
"contractScope": null,
"id": 560,
"name": "IMapleGlobals",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 492,
"src": "23839:13:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IMapleGlobals_$492",
"typeString": "contract IMapleGlobals"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "23838:15:0"
},
"scope": 638,
"src": "23797:57:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 564,
"nodeType": "StructuredDocumentation",
"src": "23860:69:0",
"text": "@dev The incrementor for number of Loans created."
},
"functionSelector": "ee9b75b5",
"id": 569,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "loansCreated",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 565,
"nodeType": "ParameterList",
"parameters": [],
"src": "23955:2:0"
},
"returnParameters": {
"id": 568,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 567,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 569,
"src": "23981:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 566,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "23981:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "23980:9:0"
},
"scope": 638,
"src": "23934:56:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 570,
"nodeType": "StructuredDocumentation",
"src": "23996:106:0",
"text": "@param index The index of a Loan.\n@return The address of the Loan at `index`."
},
"functionSelector": "e1ec3c68",
"id": 577,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "loans",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 573,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 572,
"mutability": "mutable",
"name": "index",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 577,
"src": "24122:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 571,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "24122:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "24121:15:0"
},
"returnParameters": {
"id": 576,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 575,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 577,
"src": "24160:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 574,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "24160:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "24159:9:0"
},
"scope": 638,
"src": "24107:62:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 578,
"nodeType": "StructuredDocumentation",
"src": "24175:97:0",
"text": "@param loan The address of a Loan.\n@return Whether `loan` is a Loan."
},
"functionSelector": "2819cbc2",
"id": 585,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "isLoan",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 581,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 580,
"mutability": "mutable",
"name": "loan",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 585,
"src": "24293:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 579,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "24293:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "24292:14:0"
},
"returnParameters": {
"id": 584,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 583,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 585,
"src": "24330:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 582,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "24330:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "24329:6:0"
},
"scope": 638,
"src": "24277:59:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 586,
"nodeType": "StructuredDocumentation",
"src": "24342:172:0",
"text": "@param admin The address of a LoanFactoryAdmin.\n@return Whether `admin` has permission to do certain operations in case of disaster management."
},
"functionSelector": "a620e0ac",
"id": 593,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "loanFactoryAdmins",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 589,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 588,
"mutability": "mutable",
"name": "admin",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 593,
"src": "24546:13:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 587,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "24546:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "24545:15:0"
},
"returnParameters": {
"id": 592,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 591,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 593,
"src": "24584:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 590,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "24584:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "24583:6:0"
},
"scope": 638,
"src": "24519:71:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 594,
"nodeType": "StructuredDocumentation",
"src": "24596:159:0",
"text": "@dev Sets MapleGlobals. \n@dev Only the Governor can call this function. \n@param newGlobals Address of new MapleGlobals."
},
"functionSelector": "cc2e0a26",
"id": 599,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setGlobals",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 597,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 596,
"mutability": "mutable",
"name": "newGlobals",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 599,
"src": "24780:18:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 595,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "24780:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "24779:20:0"
},
"returnParameters": {
"id": 598,
"nodeType": "ParameterList",
"parameters": [],
"src": "24808:0:0"
},
"scope": 638,
"src": "24760:49:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 600,
"nodeType": "StructuredDocumentation",
"src": "24815:1071:0",
"text": "@dev Create a new Loan. \n@dev It emits a `LoanCreated` event. \n@param liquidityAsset The asset the Loan will raise funding in.\n@param collateralAsset The asset the Loan will use as collateral.\n@param flFactory The factory to instantiate a FundingLocker from.\n@param clFactory The factory to instantiate a CollateralLocker from.\n@param specs The specifications for the Loan. \n[0] => apr, \n[1] => termDays, \n[2] => paymentIntervalDays, \n[3] => requestAmount, \n[4] => collateralRatio. \n@param calcs The calculators used for the Loan. \n[0] => repaymentCalc, \n[1] => lateFeeCalc, \n[2] => premiumCalc. \n@return loanAddress Address of the instantiated Loan."
},
"functionSelector": "d5ab2074",
"id": 621,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "createLoan",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 617,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 602,
"mutability": "mutable",
"name": "liquidityAsset",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 621,
"src": "25920:22:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 601,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "25920:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 604,
"mutability": "mutable",
"name": "collateralAsset",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 621,
"src": "25952:23:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 603,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "25952:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 606,
"mutability": "mutable",
"name": "flFactory",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 621,
"src": "25985:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 605,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "25985:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 608,
"mutability": "mutable",
"name": "clFactory",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 621,
"src": "26012:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 607,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "26012:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 612,
"mutability": "mutable",
"name": "specs",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 621,
"src": "26039:23:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$5_memory_ptr",
"typeString": "uint256[5]"
},
"typeName": {
"baseType": {
"id": 609,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "26039:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 611,
"length": {
"argumentTypes": null,
"hexValue": "35",
"id": 610,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "26047:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_5_by_1",
"typeString": "int_const 5"
},
"value": "5"
},
"nodeType": "ArrayTypeName",
"src": "26039:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$5_storage_ptr",
"typeString": "uint256[5]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 616,
"mutability": "mutable",
"name": "calcs",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 621,
"src": "26072:23:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$3_memory_ptr",
"typeString": "address[3]"
},
"typeName": {
"baseType": {
"id": 613,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "26072:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 615,
"length": {
"argumentTypes": null,
"hexValue": "33",
"id": 614,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "26080:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_3_by_1",
"typeString": "int_const 3"
},
"value": "3"
},
"nodeType": "ArrayTypeName",
"src": "26072:10:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$3_storage_ptr",
"typeString": "address[3]"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "25910:191:0"
},
"returnParameters": {
"id": 620,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 619,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 621,
"src": "26120:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 618,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "26120:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "26119:9:0"
},
"scope": 638,
"src": "25891:238:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 622,
"nodeType": "StructuredDocumentation",
"src": "26135:322:0",
"text": "@dev Sets a LoanFactory Admin. Only the Governor can call this function.\n@dev It emits a `LoanFactoryAdminSet` event.\n@param loanFactoryAdmin An address being allowed or disallowed as a LoanFactory Admin.\n@param allowed The status of `loanFactoryAdmin` as an Admin."
},
"functionSelector": "2cd0aca0",
"id": 629,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "setLoanFactoryAdmin",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 627,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 624,
"mutability": "mutable",
"name": "loanFactoryAdmin",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 629,
"src": "26491:24:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 623,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "26491:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 626,
"mutability": "mutable",
"name": "allowed",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 629,
"src": "26517:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 625,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "26517:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "26490:40:0"
},
"returnParameters": {
"id": 628,
"nodeType": "ParameterList",
"parameters": [],
"src": "26539:0:0"
},
"scope": 638,
"src": "26462:78:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 630,
"nodeType": "StructuredDocumentation",
"src": "26546:183:0",
"text": "@dev Triggers paused state. \n@dev Halts functionality for certain functions. \n@dev Only the Governor or a LoanFactory Admin can call this function."
},
"functionSelector": "8456cb59",
"id": 633,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "pause",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 631,
"nodeType": "ParameterList",
"parameters": [],
"src": "26748:2:0"
},
"returnParameters": {
"id": 632,
"nodeType": "ParameterList",
"parameters": [],
"src": "26759:0:0"
},
"scope": 638,
"src": "26734:26:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": {
"id": 634,
"nodeType": "StructuredDocumentation",
"src": "26766:188:0",
"text": "@dev Triggers unpaused state. \n@dev Restores functionality for certain functions. \n@dev Only the Governor or a LoanFactory Admin can call this function."
},
"functionSelector": "3f4ba83a",
"id": 637,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "unpause",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 635,
"nodeType": "ParameterList",
"parameters": [],
"src": "26975:2:0"
},
"returnParameters": {
"id": 636,
"nodeType": "ParameterList",
"parameters": [],
"src": "26986:0:0"
},
"scope": 638,
"src": "26959:28:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
}
],
"scope": 639,
"src": "21219:5771:0"
}
],
"src": "127:26864:0"
},
"id": 0
}
}
}
}