0 txs
336 calls
constructor
constructor()
functions
agents
viewfunction agents() view returns (address[] agentAddresses)
coverage
viewfunction coverage(address _agent) view returns (uint256 delegation)
epoch
viewfunction epoch() view returns (uint256 currentEpoch)
epochDuration
viewfunction epochDuration() view returns (uint256 duration)
feeRecipient
viewfunction feeRecipient() view returns (address)
liquidationThreshold
viewfunction liquidationThreshold(address _agent) view returns (uint256 lt)
ltv
viewfunction ltv(address _agent) view returns (uint256 currentLtv)
ltvBuffer
viewfunction ltvBuffer() view returns (uint256 buffer)
networkExists
viewfunction networkExists(address _network) view returns (bool)
networks
viewfunction networks(address _agent) view returns (address networkAddress)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
slashableCollateral
viewfunction slashableCollateral(address _agent) view returns (uint256 _slashableCollateral)
slashTimestamp
viewfunction slashTimestamp(address _agent) view returns (uint48 _slashTimestamp)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
addAgent
nonpayablefunction addAgent(address _agent, address _network, uint256 _ltv, uint256 _liquidationThreshold)
distributeRewards
nonpayablefunction distributeRewards(address _agent, address _asset)
initialize
nonpayablefunction initialize(address _accessControl, address _oracle, uint256 _epochDuration)
modifyAgent
nonpayablefunction modifyAgent(address _agent, uint256 _ltv, uint256 _liquidationThreshold)
registerNetwork
nonpayablefunction registerNetwork(address _network)
setFeeRecipient
nonpayablefunction setFeeRecipient(address _feeRecipient)
setLastBorrow
nonpayablefunction setLastBorrow(address _agent)
setLtvBuffer
nonpayablefunction setLtvBuffer(uint256 _ltvBuffer)
slash
nonpayablefunction slash(address _agent, address _liquidator, uint256 _amount)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
AddAgent
event AddAgent(address agent, address network, uint256 ltv, uint256 liquidationThreshold)
DistributeReward
event DistributeReward(address agent, address asset, uint256 amount)
Initialized
event Initialized(uint64 version)
ModifyAgent
event ModifyAgent(address agent, uint256 ltv, uint256 liquidationThreshold)
RegisterNetwork
event RegisterNetwork(address network)
SetFeeRecipient
event SetFeeRecipient(address feeRecipient)
SetLtvBuffer
event SetLtvBuffer(uint256 ltvBuffer)
SlashNetwork
event SlashNetwork(address network, uint256 slashShare)
Upgraded
event Upgraded(address indexed implementation)
errors
AccessDenied
error AccessDenied()
AddressEmptyCode
error AddressEmptyCode(address target)
AgentDoesNotExist
error AgentDoesNotExist()
DuplicateAgent
error DuplicateAgent()
DuplicateNetwork
error DuplicateNetwork()
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
FailedCall
error FailedCall()
InvalidInitialization
error InvalidInitialization()
InvalidLiquidationThreshold
error InvalidLiquidationThreshold()
InvalidLtvBuffer
error InvalidLtvBuffer()
InvalidNetwork
error InvalidNetwork()
LiquidationThresholdTooCloseToLtv
error LiquidationThresholdTooCloseToLtv()
NetworkAlreadyRegistered
error NetworkAlreadyRegistered()
NetworkDoesntExist
error NetworkDoesntExist()
NoSlashableCollateral
error NoSlashableCollateral()
NotInitializing
error NotInitializing()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a060405230608052348015610013575f5ffd5b5061001c610021565b6100d3565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100715760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100d05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051611c206100f95f395f81816113560152818161137f01526114c50152611c205ff3fe608060405260043610610147575f3560e01c80637473eea6116100b3578063b5e2efd21161006d578063b5e2efd2146103b5578063cbf82b6b146103d4578063e74b981b146103e8578063e74f823914610407578063ec913f6e14610426578063f01391e314610445575f5ffd5b80637473eea6146102d15780637c27951c146102f0578063900cf0cf146103265780639d4193d01461033a578063ad3cb1cc14610359578063b1732b2514610396575f5ffd5b80633e316460116101045780633e3164601461021a57806346904840146102495780634f1ef286146102755780634ff0876a1461028857806352d1902d1461029c57806358516661146102b0575f5ffd5b806301fdc8711461014b57806316405eba1461016c5780631794bb3c1461018b578063184aa723146101aa57806333024430146101c95780633d11c00d146101fb575b5f5ffd5b348015610156575f5ffd5b5061016a61016536600461188e565b610464565b005b348015610177575f5ffd5b5061016a6101863660046118a7565b6104a4565b348015610196575f5ffd5b5061016a6101a53660046118be565b61053d565b3480156101b5575f5ffd5b5061016a6101c436600461188e565b610680565b3480156101d4575f5ffd5b506101e86101e336600461188e565b61072e565b6040519081526020015b60405180910390f35b348015610206575f5ffd5b5061016a6102153660046118f8565b6107ef565b348015610225575f5ffd5b5061023961023436600461188e565b610979565b60405190151581526020016101f2565b348015610254575f5ffd5b5061025d610995565b6040516001600160a01b0390911681526020016101f2565b61016a61028336600461193d565b6109b0565b348015610293575f5ffd5b506101e86109cf565b3480156102a7575f5ffd5b506101e86109e3565b3480156102bb575f5ffd5b506102c46109fe565b6040516101f29190611a01565b3480156102dc575f5ffd5b506101e86102eb36600461188e565b610a15565b3480156102fb575f5ffd5b5061030f61030a36600461188e565b610a42565b60405165ffffffffffff90911681526020016101f2565b348015610331575f5ffd5b506101e8610aee565b348015610345575f5ffd5b5061016a610354366004611a4c565b610b10565b348015610364575f5ffd5b50610389604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101f29190611a7c565b3480156103a1575f5ffd5b506101e86103b036600461188e565b610c27565b3480156103c0575f5ffd5b5061025d6103cf36600461188e565b610c54565b3480156103df575f5ffd5b506101e8610c82565b3480156103f3575f5ffd5b5061016a61040236600461188e565b610c94565b348015610412575f5ffd5b5061016a6104213660046118be565b610cfd565b348015610431575f5ffd5b5061016a610440366004611ab1565b610ed2565b348015610450575f5ffd5b506101e861045f36600461188e565b611027565b6301fdc87160e01b610475816110d2565b5f61047e611192565b6001600160a01b039093165f908152600290930160205250506040902042600390910155565b630b202f5d60e11b6104b5816110d2565b6b033b2e3c9fd0803ce80000008211806104da57506a084595161401484a0000008211155b156104f857604051636c1780e160e01b815260040160405180910390fd5b81610501611192565b600701556040518281527fe313d43304ec07415da130b976360c52d0958c4548501de596b641d45affdb06906020015b60405180910390a15050565b5f6105466111b6565b805490915060ff600160401b820416159067ffffffffffffffff165f8115801561056d5750825b90505f8267ffffffffffffffff1660011480156105895750303b155b905081158015610597575080155b156105b55760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156105df57845460ff60401b1916600160401b1785555b6105e8886111de565b6105f06111f2565b5f6105f9611192565b6005810180546001600160a01b0319166001600160a01b038b16179055600681018890556a295be96e6406697200000060079091015550831561067657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b63184aa72360e01b610691816110d2565b5f61069a611192565b90506001600160a01b0383166106c3576040516386eab41b60e01b815260040160405180910390fd5b6106d060038201846111fc565b6106ed57604051630daf367960e31b815260040160405180910390fd5b6040516001600160a01b03841681527f432e17991659e61329de143fa96def1d8c7628735b000eb23dc2405e255b5b049060200160405180910390a1505050565b5f5f610738611192565b90505f61074484611027565b6001600160a01b038581165f818152600286016020526040808220549051630330244360e41b815260048101939093529394509290911690633302443090602401602060405180830381865afa1580156107a0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107c49190611af0565b90505f6107d086611217565b90506107e5836107e084846112c4565b6112c4565b9695505050505050565b5f6107f8611192565b6040516370a0823160e01b81523060048201529091505f906001600160a01b038416906370a0823190602401602060405180830381865afa15801561083f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108639190611af0565b90505f61086f8561072e565b9050805f0361089b576008830154610894906001600160a01b038681169116846112d3565b5050505050565b6001600160a01b038086165f9081526002850160205260409020548116906108c690861682856112d3565b604051633d11c00d60e01b81526001600160a01b0387811660048301528681166024830152821690633d11c00d906044015f604051808303815f87803b15801561090e575f5ffd5b505af1158015610920573d5f5f3e3d5ffd5b5050604080516001600160a01b03808b168252891660208201529081018690527f4fa9693cae526341d334e2862ca2413b2e503f1266255f9e0869fb36e6d89b17925060600190505b60405180910390a1505050505050565b5f61098f82610986611192565b6003019061132a565b92915050565b5f61099e611192565b600801546001600160a01b0316919050565b6109b861134b565b6109c1826113ef565b6109cb82826113f9565b5050565b5f5f6109d9611192565b6006015492915050565b5f6109ec6114ba565b505f516020611bcb5f395f51905f5290565b6060610a10610a0b611192565b611503565b905090565b5f610a1e611192565b6001600160a01b039092165f90815260029290920160205250604090206001015490565b5f5f610a4c611192565b9050610ac981600601546001610a60610aee565b610a6a9190611b1b565b610a749190611b2e565b6001600160a01b0385165f908152600284016020526040902060030154610a9b575f61150f565b6001600160a01b0385165f908152600284016020526040902060030154610ac490600190611b1b565b61150f565b9150428265ffffffffffff1603610ae857610ae5600183611b45565b91505b50919050565b5f5f610af8611192565b9050806006015442610b0a9190611b63565b91505090565b6309d4193d60e41b610b21816110d2565b5f610b2a611192565b90506b033b2e3c9fd0803ce8000000831115610b585760405162f9474b60e61b815260040160405180910390fd5b8315801590610b7457506007810154610b719085611b82565b83105b15610b925760405163334e665960e01b815260040160405180910390fd5b610b9c818661132a565b610bb95760405163d3227c9b60e01b815260040160405180910390fd5b6001600160a01b0385165f81815260028381016020908152604092839020600181018990559091018690558151928352820186905281018490527f3c915d4a6d4b9b388df3ad6b3d54bff5e2464bbcd7277c92403755a5456660379060600160405180910390a15050505050565b5f610c30611192565b6001600160a01b039092165f90815260029283016020526040902090910154919050565b5f610c5d611192565b6001600160a01b039283165f9081526002919091016020526040902054909116919050565b5f610c8b611192565b60070154905090565b63e74b981b60e01b610ca5816110d2565b81610cae611192565b60080180546001600160a01b0319166001600160a01b0392831617905560405190831681527f2e979f80fe4d43055c584cf4a8467c55875ea36728fc37176c05acd784eb7a7390602001610531565b63e74f823960e01b610d0e816110d2565b5f610d17611192565b90505f610d2386610a42565b6001600160a01b038781165f81815260028601602052604080822054905163814813c160e01b8152600481019390935265ffffffffffff85166024840152939450929091169190829063814813c190604401602060405180830381865afa158015610d90573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db49190611af0565b9050805f03610dd657604051633270bd9560e21b815260040160405180910390fd5b5f81610dea88670de0b6b3a7640000611b2e565b610df49190611b63565b9050670de0b6b3a7640000811115610e115750670de0b6b3a76400005b6040516332cfdfbf60e01b81526001600160a01b038a8116600483015289811660248301526044820183905265ffffffffffff861660648301528416906332cfdfbf906084015f604051808303815f87803b158015610e6e575f5ffd5b505af1158015610e80573d5f5f3e3d5ffd5b5050604080516001600160a01b0387168152602081018b90527f8b9aa548370653100f0db8fa686a6765f27dc2bea15c0d4f086a0c7b45789208935001905060405180910390a1505050505050505050565b6376489fb760e11b610ee3816110d2565b5f610eec611192565b90506b033b2e3c9fd0803ce8000000831115610f1a5760405162f9474b60e61b815260040160405180910390fd5b8315801590610f3657506007810154610f339085611b82565b83105b15610f545760405163334e665960e01b815260040160405180910390fd5b610f61600382018661132a565b610f7e57604051630dd8700160e01b815260040160405180910390fd5b610f8881876111fc565b610fa557604051635dc55b7960e11b815260040160405180910390fd5b6001600160a01b038681165f8181526002848101602090815260409283902080546001600160a01b031916958b169586178155600181018a90559091018790558151928352820192909252908101859052606081018490527ff09bbc524f2a69317c10cd96d69476f4fc87d19f290cba278613f4cca044d52490608001610969565b5f5f611031611192565b90505f61103d84610a42565b6001600160a01b038581165f8181526002860160205260409081902054905163814813c160e01b8152600481019290925265ffffffffffff8416602483015292935091169063814813c190604401602060405180830381865afa1580156110a6573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ca9190611af0565b949350505050565b5f7fb413d65cb88f23816c329284a0d3eb15a99df7963ab7402ade4c5da22bff6b0054604051633657648360e21b81526001600160e01b0319841660048201523060248201523360448201526001600160a01b039091169063d95d920c90606401602060405180830381865afa15801561114e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111729190611b95565b9050806109cb57604051634ca8886760e01b815260040160405180910390fd5b7f54b6f5557fb44acf280f59f684357ef1d216e247bba38a36a74ec93b2377e20090565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0061098f565b6111e661151e565b6111ef81611543565b50565b6111fa61151e565b565b5f611210836001600160a01b03841661158f565b9392505050565b5f5f611221611192565b6001600160a01b038085165f9081526002830160205260409020549192501663814813c184611251600142611b1b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015265ffffffffffff166024820152604401602060405180830381865afa1580156112a0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae59190611af0565b5f828218828410028218611210565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526113259084906115db565b505050565b6001600160a01b0381165f9081526001830160205260408120541515611210565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806113d157507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166113c55f516020611bcb5f395f51905f52546001600160a01b031690565b6001600160a01b031614155b156111fa5760405163703e46dd60e11b815260040160405180910390fd5b5f6109cb816110d2565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611453575060408051601f3d908101601f1916820190925261145091810190611af0565b60015b61148057604051634c9c8ce360e01b81526001600160a01b03831660048201526024015b60405180910390fd5b5f516020611bcb5f395f51905f5281146114b057604051632a87526960e21b815260048101829052602401611477565b611325838361164d565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146111fa5760405163703e46dd60e11b815260040160405180910390fd5b60605f611210836116a2565b5f828218828411028218611210565b6115266116fb565b6111fa57604051631afcd79f60e31b815260040160405180910390fd5b61154b61151e565b807fb413d65cb88f23816c329284a0d3eb15a99df7963ab7402ade4c5da22bff6b005b80546001600160a01b0319166001600160a01b039290921691909117905550565b5f8181526001830160205260408120546115d457508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561098f565b505f61098f565b5f5f60205f8451602086015f885af1806115fa576040513d5f823e3d81fd5b50505f513d9150811561161157806001141561161e565b6001600160a01b0384163b155b1561164757604051635274afe760e01b81526001600160a01b0385166004820152602401611477565b50505050565b61165682611714565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511561169a57611325828261175d565b6109cb6117cf565b6060815f018054806020026020016040519081016040528092919081815260200182805480156116ef57602002820191905f5260205f20905b8154815260200190600101908083116116db575b50505050509050919050565b5f6117046111b6565b54600160401b900460ff16919050565b806001600160a01b03163b5f0361174957604051634c9c8ce360e01b81526001600160a01b0382166004820152602401611477565b805f516020611bcb5f395f51905f5261156e565b60605f5f846001600160a01b0316846040516117799190611bb4565b5f60405180830381855af49150503d805f81146117b1576040519150601f19603f3d011682016040523d82523d5f602084013e6117b6565b606091505b50915091506117c68583836117ee565b95945050505050565b34156111fa5760405163b398979f60e01b815260040160405180910390fd5b606082611803576117fe8261184a565b611210565b815115801561181a57506001600160a01b0384163b155b1561184357604051639996b31560e01b81526001600160a01b0385166004820152602401611477565b5080611210565b80511561185a5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b80356001600160a01b0381168114611889575f5ffd5b919050565b5f6020828403121561189e575f5ffd5b61121082611873565b5f602082840312156118b7575f5ffd5b5035919050565b5f5f5f606084860312156118d0575f5ffd5b6118d984611873565b92506118e760208501611873565b929592945050506040919091013590565b5f5f60408385031215611909575f5ffd5b61191283611873565b915061192060208401611873565b90509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f5f6040838503121561194e575f5ffd5b61195783611873565b9150602083013567ffffffffffffffff811115611972575f5ffd5b8301601f81018513611982575f5ffd5b803567ffffffffffffffff81111561199c5761199c611929565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156119cb576119cb611929565b6040528181528282016020018710156119e2575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b602080825282518282018190525f918401906040840190835b81811015611a415783516001600160a01b0316835260209384019390920191600101611a1a565b509095945050505050565b5f5f5f60608486031215611a5e575f5ffd5b611a6784611873565b95602085013595506040909401359392505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f5f5f5f60808587031215611ac4575f5ffd5b611acd85611873565b9350611adb60208601611873565b93969395505050506040820135916060013590565b5f60208284031215611b00575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561098f5761098f611b07565b808202811582820484141761098f5761098f611b07565b65ffffffffffff828116828216039081111561098f5761098f611b07565b5f82611b7d57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561098f5761098f611b07565b5f60208284031215611ba5575f5ffd5b81518015158114611210575f5ffd5b5f82518060208501845e5f92019182525091905056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca264697066735822122046c5e519061fa83827217cca217b4aee910f089300ade758ef692109bba6901a64736f6c634300081c0033