0 txs
322 calls
constructor
constructor(address _initialRescuer, address _initialExecutor, uint80 _baseInterestRate, uint80 _maxInterestRate, uint256 _kinkUtilizationRatio, uint80 _kinkInterestRate)
functions
calculateInterestRate
viewfunction calculateInterestRate(uint256 utilizationRatio) view returns (uint96 interestRate)
executor
viewfunction executor() view returns (address)
explicitFunctionAccess
viewfunction explicitFunctionAccess(address, bytes4) view returns (bool)
inRescueMode
viewfunction inRescueMode() view returns (bool)
rateParams
viewfunction rateParams() view returns (uint80 baseInterestRate, uint80 maxInterestRate, uint80 kinkInterestRate, uint256 kinkUtilizationRatio)
rescuer
viewfunction rescuer() view returns (address)
acceptExecutor
nonpayablefunction acceptExecutor()
acceptRescuer
nonpayablefunction acceptRescuer()
proposeNewExecutor
nonpayablefunction proposeNewExecutor(address account)
proposeNewRescuer
nonpayablefunction proposeNewRescuer(address account)
setExplicitAccess
nonpayablefunction setExplicitAccess(address allowedCaller, tuple[] access)
setRateParams
nonpayablefunction setRateParams(uint80 _baseInterestRate, uint80 _maxInterestRate, uint256 _kinkUtilizationRatio, uint80 _kinkInterestRate)
setRescueMode
nonpayablefunction setRescueMode(bool value)
events
ExplicitAccessSet
event ExplicitAccessSet(address indexed account, bytes4 indexed fnSelector, bool indexed value)
InterestRateParamsSet
event InterestRateParamsSet(uint80 _baseInterestRate, uint80 _maxInterestRate, uint256 _kinkUtilizationRatio, uint80 _kinkInterestRate)
NewExecutorAccepted
event NewExecutorAccepted(address indexed oldExecutor, address indexed newExecutor)
NewExecutorProposed
event NewExecutorProposed(address indexed oldExecutor, address indexed oldProposedExecutor, address indexed newProposedExecutor)
NewRescuerAccepted
event NewRescuerAccepted(address indexed oldRescuer, address indexed newRescuer)
NewRescuerProposed
event NewRescuerProposed(address indexed oldRescuer, address indexed oldProposedRescuer, address indexed newProposedRescuer)
RescueModeSet
event RescueModeSet(bool indexed value)
errors
InvalidAccess
error InvalidAccess()
InvalidAddress
error InvalidAddress()
InvalidParam
error InvalidParam()
creation bytecode
0x60806040523480156200001157600080fd5b50604051620016743803806200167483398101604081905262000034916200029e565b85856001600160a01b0382166200005e5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038116620000865760405163e6c4247b60e01b815260040160405180910390fd5b816001600160a01b0316816001600160a01b031603620000b95760405163e6c4247b60e01b815260040160405180910390fd5b600080546001600160a01b039384166001600160a01b03199182161790915560018054929093169116179055620000f384848484620000ff565b50505050505062000316565b816000036200012157604051633494a40d60e21b815260040160405180910390fd5b670de0b6b3a764000082106200014a57604051633494a40d60e21b815260040160405180910390fd5b806001600160501b0316846001600160501b031611156200017e57604051633494a40d60e21b815260040160405180910390fd5b826001600160501b0316816001600160501b03161115620001b257604051633494a40d60e21b815260040160405180910390fd5b60408051608080820183526001600160501b0387811680845287821660208086018290529287168587018190526060958601899052600580546001600160a01b03191684176a0100000000000000000000840217600160a01b600160f01b031916600160a01b83021790556006899055865192835292820152938401869052918301919091527fa2dbecdd60c4ca54d7188f698dee8224753057c4e6fb4bf957301ed9d982082c910160405180910390a150505050565b80516001600160a01b03811681146200028157600080fd5b919050565b80516001600160501b03811681146200028157600080fd5b60008060008060008060c08789031215620002b857600080fd5b620002c38762000269565b9550620002d36020880162000269565b9450620002e36040880162000286565b9350620002f36060880162000286565b9250608087015191506200030a60a0880162000286565b90509295509295509295565b61134e80620003266000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80638112c4af1161008c578063c34c08e511610066578063c34c08e5146101d9578063d9a349c1146101f9578063daeccc791461020c578063f80b0a2f1461023a57600080fd5b80638112c4af1461018e57806390d3b37914610196578063bfccf0ec146101c657600080fd5b80631810fe7f116100bd5780631810fe7f1461011f5780631f2114051461014157806338a631831461014957600080fd5b8063032ef901146100e457806307f184f1146100f95780630ccbd83e1461010c575b600080fd5b6100f76100f2366004610f9b565b6102bb565b005b6100f7610107366004610fda565b61036a565b6100f761011a36600461100f565b6104a2565b60035461012c9060ff1681565b60405190151581526020015b60405180910390f35b6100f7610518565b6000546101699073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610138565b6100f7610637565b6101a96101a436600461105c565b610777565b6040516bffffffffffffffffffffffff9091168152602001610138565b6100f76101d4366004611075565b6107ce565b6001546101699073ffffffffffffffffffffffffffffffffffffffff1681565b6100f7610207366004610fda565b6109d5565b61012c61021a36600461112b565b600260209081526000928352604080842090915290825290205460ff1681565b6005546006546102839169ffffffffffffffffffff808216926a010000000000000000000083048216927401000000000000000000000000000000000000000090049091169084565b604051610138949392919069ffffffffffffffffffff9485168152928416602084015292166040820152606081019190915260800190565b60005473ffffffffffffffffffffffffffffffffffffffff16331461030c576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604051811515907f18f4a9a726c72020fd959c636d2fd464c6cefe90afeaea3c830b971614cf70b690600090a2600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103bb576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116610408576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035460405173ffffffffffffffffffffffffffffffffffffffff808416926101009004169033907f374d23b359cab0f8963c5c1715a6de7974f53af00aecc27de50d93906b70943e90600090a46003805473ffffffffffffffffffffffffffffffffffffffff909216610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff909216919091179055565b6104d0336000357fffffffff0000000000000000000000000000000000000000000000000000000016610b1a565b610506576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61051284848484610bde565b50505050565b60045473ffffffffffffffffffffffffffffffffffffffff163314610569576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005473ffffffffffffffffffffffffffffffffffffffff1633036105ba576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600154604051339173ffffffffffffffffffffffffffffffffffffffff16907fe963dc9c0d2165b080440a5d2665566142f2426b1ea15f3da8390b0fd336b06490600090a3600180547fffffffffffffffffffffffff00000000000000000000000000000000000000009081163317909155600480549091169055565b600354610100900473ffffffffffffffffffffffffffffffffffffffff16331461068d576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60015473ffffffffffffffffffffffffffffffffffffffff1633036106de576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008054604051339273ffffffffffffffffffffffffffffffffffffffff909216917ff07131157ebea15896dc89264eb9a7572e67cc9fad6b855015730fcec10704e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055600380547fffffffffffffffffffffff0000000000000000000000000000000000000000ff169055565b6000670de0b6b3a764000082111561079557670de0b6b3a764000091505b61079e82610df5565b9050674563918244f400006bffffffffffffffffffffffff821611156107c95750674563918244f400005b919050565b6107fc336000357fffffffff0000000000000000000000000000000000000000000000000000000016610b1a565b610832576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831661087f576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805180820190915260008082526020820152819060005b828110156109cd578484828181106108b2576108b261115e565b9050604002018036038101906108c8919061118d565b91508160200151151582600001517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168773ffffffffffffffffffffffffffffffffffffffff167ff5736e75de2c751f775d4c5ed517289f77074f8c337f451ba4c0c3ed1dd7f9ad60405160405180910390a460208281015173ffffffffffffffffffffffffffffffffffffffff8816600090815260028352604080822086517fffffffff000000000000000000000000000000000000000000000000000000001683529093529190912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790556109c68161123e565b9050610898565b505050505050565b610a03336000357fffffffff0000000000000000000000000000000000000000000000000000000016610b1a565b610a39576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116610a86576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60045460015460405173ffffffffffffffffffffffffffffffffffffffff8085169381169216907f4857570a90fe0a0fc580e89a287e77576141ac8e2e8b3710cd26db44f44156c190600090a4600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60035460009060ff1615610b4c575060005473ffffffffffffffffffffffffffffffffffffffff838116911614610bd8565b60015473ffffffffffffffffffffffffffffffffffffffff84811691161480610bc7575073ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083207fffffffff000000000000000000000000000000000000000000000000000000008616845290915290205460ff165b15610bd457506001610bd8565b5060005b92915050565b81600003610c18576040517fd252903400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b670de0b6b3a76400008210610c59576040517fd252903400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8069ffffffffffffffffffff168469ffffffffffffffffffff161115610cab576040517fd252903400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8269ffffffffffffffffffff168169ffffffffffffffffffff161115610cfd576040517fd252903400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080516080808201835269ffffffffffffffffffff87811680845287821660208086018290529287168587018190526060958601899052600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001684176a01000000000000000000008402177fffff00000000000000000000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000083021790556006899055865192835292820152938401869052918301919091527fa2dbecdd60c4ca54d7188f698dee8224753057c4e6fb4bf957301ed9d982082c910160405180910390a150505050565b6040805160808101825260055469ffffffffffffffffffff80821683526a010000000000000000000082048116602084015274010000000000000000000000000000000000000000909104169181019190915260065460608201819052600091908290841115610f075760008260600151670de0b6b3a7640000610e799190611276565b83604001518460200151610e8d9190611289565b610eab9069ffffffffffffffffffff16670de0b6b3a76400006112b3565b610eb591906112ca565b9050826040015169ffffffffffffffffffff16670de0b6b3a7640000846060015187610ee19190611276565b610eeb90846112b3565b610ef591906112ca565b610eff9190611305565b915050610f84565b60608201518251604084015160009291610f2091611289565b610f3e9069ffffffffffffffffffff16670de0b6b3a76400006112b3565b610f4891906112ca565b835190915069ffffffffffffffffffff16670de0b6b3a7640000610f6c83886112b3565b610f7691906112ca565b610f809190611305565b9150505b9392505050565b803580151581146107c957600080fd5b600060208284031215610fad57600080fd5b610f8482610f8b565b803573ffffffffffffffffffffffffffffffffffffffff811681146107c957600080fd5b600060208284031215610fec57600080fd5b610f8482610fb6565b803569ffffffffffffffffffff811681146107c957600080fd5b6000806000806080858703121561102557600080fd5b61102e85610ff5565b935061103c60208601610ff5565b92506040850135915061105160608601610ff5565b905092959194509250565b60006020828403121561106e57600080fd5b5035919050565b60008060006040848603121561108a57600080fd5b61109384610fb6565b9250602084013567ffffffffffffffff808211156110b057600080fd5b818601915086601f8301126110c457600080fd5b8135818111156110d357600080fd5b8760208260061b85010111156110e857600080fd5b6020830194508093505050509250925092565b80357fffffffff00000000000000000000000000000000000000000000000000000000811681146107c957600080fd5b6000806040838503121561113e57600080fd5b61114783610fb6565b9150611155602084016110fb565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006040828403121561119f57600080fd5b6040516040810181811067ffffffffffffffff821117156111e9577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040526111f5836110fb565b815261120360208401610f8b565b60208201529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361126f5761126f61120f565b5060010190565b81810381811115610bd857610bd861120f565b69ffffffffffffffffffff8281168282160390808211156112ac576112ac61120f565b5092915050565b8082028115828204841417610bd857610bd861120f565b600082611300577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b80820180821115610bd857610bd861120f56fea26469706673582212202a5e3a18eaf14404f24247e0ccfbfd08951ec67396367b72990919bdeb3baf6364736f6c634300081300330000000000000000000000009f90430179d9b67341bfa50559bc7b8e35629f1b000000000000000000000000b1e8ab0a81aadf632a653e46caeda1593d71d14300000000000000000000000000000000000000000000000000b1a2bc2ec5000000000000000000000000000000000000000000000000000002c68af0bb1400000000000000000000000000000000000000000000000000000c7d713b49da0000000000000000000000000000000000000000000000000000016345785d8a0000