0 txs
10 calls
constructor
No constructor.
functions
_getExtensionFunctions
purefunction _getExtensionFunctions() pure returns (bytes4[])
blocksPerYear
viewfunction blocksPerYear() view returns (uint256)
calculateAdjustmentAmountDeltas
purefunction calculateAdjustmentAmountDeltas(uint256 targetRatio, uint256 collateralAssetPrice, uint256 borrowedAssetPrice, uint256 expectedSlippage, uint256 positionSupplyAmount, uint256 debtAmount) pure returns (uint256 supplyDelta, uint256 borrowsDelta)
feeDistributor
viewfunction feeDistributor() view returns (address)
getAccountsWithOpenPositions
viewfunction getAccountsWithOpenPositions() view returns (address[])
getAllWhitelistedSwapRouters
viewfunction getAllWhitelistedSwapRouters() view returns (address[])
getBorrowableMarketsByCollateral
viewfunction getBorrowableMarketsByCollateral(address _collateralMarket) view returns (address[])
getMinBorrowNative
viewfunction getMinBorrowNative() view returns (uint256)
getPositionsByAccount
viewfunction getPositionsByAccount(address account) view returns (address[] positions, bool[] closed)
getPositionsExtension
viewfunction getPositionsExtension(bytes4 msgSig) view returns (address)
getRedemptionStrategies
viewfunction getRedemptionStrategies(address inputToken, address outputToken) view returns (address[] strategies, bytes[] strategiesData)
getWhitelistedCollateralMarkets
viewfunction getWhitelistedCollateralMarkets() view returns (address[])
isSwapRoutersWhitelisted
viewfunction isSwapRoutersWhitelisted(address swapRouter) view returns (bool)
liquidatorsRegistry
viewfunction liquidatorsRegistry() view returns (address)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
_setPositionsExtension
nonpayablefunction _setPositionsExtension(bytes4 msgSig, address extension)
_setWhitelistedSwapRouters
nonpayablefunction _setWhitelistedSwapRouters(address[] newSet)
acceptOwnership
nonpayablefunction acceptOwnership()
closeAndRemoveUserPosition
nonpayablefunction closeAndRemoveUserPosition(address position, address aggregatorTarget, bytes aggregatorData) returns (bool)
closeAndRemoveUserPosition
nonpayablefunction closeAndRemoveUserPosition(address position) returns (bool)
removeClosedPosition
nonpayablefunction removeClosedPosition(address closedPosition) returns (bool)
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
errors
NoSuchPosition
error NoSuchPosition()
PositionNotClosed
error PositionNotClosed()
creation bytecode
0x608060405234801561001057600080fd5b5061001a3361001f565b61008b565b600180546001600160a01b03191690556100388161003b565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b611dfe8061009a6000396000f3fe608060405234801561001057600080fd5b50600436106101575760003560e01c806386ef7482116100c3578063d337a1da1161007c578063d337a1da14610302578063e30c397814610315578063ed287f3f14610326578063f2fde38b14610347578063f4e610661461035a578063fc1de02c1461036d57600080fd5b806386ef74821461028557806389f8132e146102b85780638da5cb5b146102cd578063a339d751146102de578063a385fb96146102e6578063ca2de6bc146102ef57600080fd5b806320b84b921161011557806320b84b92146102045780632eb0e4721461022c57806360552ee51461023f578063613396f814610262578063715018a61461027557806379ba50971461027d57600080fd5b8062d407d11461015c5780630973e916146101715780630d43e8ad1461019b5780630da2262c146101c657806312468b77146101dc57806316bb997f146101f1575b600080fd5b61016f61016a366004611619565b610375565b005b61018461017f3660046116b8565b610415565b60405161019292919061171a565b60405180910390f35b6009546101ae906001600160a01b031681565b6040516001600160a01b039091168152602001610192565b6101ce61053a565b604051908152602001610192565b6101e46105ad565b6040516101929190611773565b600a546101ae906001600160a01b031681565b610217610212366004611786565b6105b9565b60408051928352602083019190915201610192565b61016f61023a3660046117e1565b6107c6565b61025261024d366004611840565b610808565b6040519015158152602001610192565b6102526102703660046116b8565b610a00565b61016f610a13565b61016f610a68565b6101ae6102933660046118e0565b6001600160e01b0319166000908152600c60205260409020546001600160a01b031690565b6102c0610ae2565b60405161019291906118fb565b6000546001600160a01b03166101ae565b6101e4610f6f565b6101ce600b5481565b6102526102fd3660046116b8565b610f7b565b6102526103103660046116b8565b610f87565b6001546001600160a01b03166101ae565b610339610334366004611949565b611079565b6040516101929291906119b7565b61016f6103553660046116b8565b611102565b6101e46103683660046116b8565b611173565b6101e4611197565b61037d6111a3565b6000610389600d6111ff565b905060005b81518110156103cd576103c48282815181106103ac576103ac611a58565b6020026020010151600d61121390919063ffffffff16565b5060010161038e565b5060005b8251811015610410576104078382815181106103ef576103ef611a58565b6020026020010151600d61122890919063ffffffff16565b506001016103d1565b505050565b6001600160a01b0381166000908152600460205260409020606090819061043b906111ff565b9150815167ffffffffffffffff81111561045757610457611599565b604051908082528060200260200182016040528015610480578160200160208202803683370190505b50905060005b8251811015610534578281815181106104a1576104a1611a58565b60200260200101516001600160a01b0316633e2f147f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050a9190611a6e565b82828151811061051c5761051c611a58565b91151560209283029190910190910152600101610486565b50915091565b6009546040805163fdb25fb160e01b815290516000926001600160a01b03169163fdb25fb19160048083019260209291908290030181865afa158015610584573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a89190611a90565b905090565b60606105a860026111ff565b600080806127106105ca8782611abf565b6105dc90670de0b6b3a7640000611ad2565b6105e69190611aff565b905060008080670de0b6b3a76400006105ff898d611ad2565b6106099190611aff565b90506000670de0b6b3a7640000610620898d611ad2565b61062a9190611aff565b90508c6000610641670de0b6b3a764000083611b13565b9050868f61064f8587611b13565b61066187670de0b6b3a7640000611ad2565b61066b9190611aff565b10955085156106db5761068682670de0b6b3a7640000611ad2565b6106908483611ad2565b61069a9190611b13565b6106a48486611ad2565b6106ae8785611ad2565b6106b89190611b13565b6106ca90670de0b6b3a7640000611ad2565b6106d49190611aff565b965061073e565b6106e58282611ad2565b6106f784670de0b6b3a7640000611ad2565b6107019190611b13565b61070b8684611ad2565b6107158587611ad2565b61071f9190611b13565b61073190670de0b6b3a7640000611ad2565b61073b9190611aff565b96505b505050505061074d828b61123d565b94508861076283670de0b6b3a7640000611ad2565b61076c9190611aff565b9350801561079857670de0b6b3a76400006107878486611ad2565b6107919190611aff565b93506107b8565b670de0b6b3a76400006107ab8487611ad2565b6107b59190611aff565b94505b505050965096945050505050565b6107ce6111a3565b6001600160e01b0319919091166000908152600c6020526040902080546001600160a01b0319166001600160a01b03909216919091179055565b60006108126111a3565b6000846001600160a01b031663cb2af14b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610852573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108769190611b26565b90506001600160a01b0384161561097f5760405163a235299360e01b8152670de0b6b3a7640000600482015260009081906001600160a01b0388169063a2352993906024016040805180830381865afa1580156108d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fb9190611b43565b60405163cca2198760e01b815291935091506001600160a01b0388169063cca2198790610934908690869086908c908c90600401611b67565b6020604051808303816000875af1158015610953573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109779190611a90565b5050506109ed565b604051632f86e2dd60e01b81526001600160a01b038281166004830152861690632f86e2dd906024016020604051808303816000875af11580156109c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109eb9190611a90565b505b6109f78582611278565b95945050505050565b6000610a0d600d83611366565b92915050565b610a1b6111a3565b60405162461bcd60e51b815260206004820152601e60248201527f72656e6f756e6365206f776e657273686970206e6f7420616c6c6f776564000060448201526064015b60405180910390fd5b60015433906001600160a01b03168114610ad65760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610a5f565b610adf81611388565b50565b60408051600f80825261020082019092526060919060009082602082016101e08036833701905050905063328b79af60e21b81610b1e84611ba1565b93508360ff1681518110610b3457610b34611a58565b60200260200101906001600160e01b03191690816001600160e01b03191681525050604051806060016040528060318152602001611d7560319139805190602001208183610b8190611ba1565b93508360ff1681518110610b9757610b97611a58565b60200260200101906001600160e01b03191690816001600160e01b03191681525050604051806060016040528060238152602001611da660239139805190602001208183610be490611ba1565b93508360ff1681518110610bfa57610bfa611a58565b6001600160e01b031990921660209283029190910190910152630368898b60e21b81610c2584611ba1565b93508360ff1681518110610c3b57610c3b611a58565b6001600160e01b03199092166020928302919091019091015263ed287f3f60e01b81610c6684611ba1565b93508360ff1681518110610c7c57610c7c611a58565b6001600160e01b031990921660209283029190910190910152637a73083360e11b81610ca784611ba1565b93508360ff1681518110610cbd57610cbd611a58565b6001600160e01b03199092166020928302919091019091015263a339d75160e01b81610ce884611ba1565b93508360ff1681518110610cfe57610cfe611a58565b6001600160e01b0319909216602092830291909101909101526312468b7760e01b81610d2984611ba1565b93508360ff1681518110610d3f57610d3f611a58565b6001600160e01b0319909216602092830291909101909101526304b9f48b60e11b81610d6a84611ba1565b93508360ff1681518110610d8057610d80611a58565b6001600160e01b031990921660209283029190910190910152634377ba4160e11b81610dab84611ba1565b93508360ff1681518110610dc157610dc1611a58565b6001600160e01b031990921660209283029190910190910152631758723960e11b81610dec84611ba1565b93508360ff1681518110610e0257610e02611a58565b6001600160e01b031990921660209283029190910190910152633f07780b60e21b81610e2d84611ba1565b93508360ff1681518110610e4357610e43611a58565b6001600160e01b031990921660209283029190910190910152630c2672df60e31b81610e6e84611ba1565b93508360ff1681518110610e8457610e84611a58565b6001600160e01b03199092166020928302919091019091015262d407d160e01b81610eae84611ba1565b93508360ff1681518110610ec457610ec4611a58565b6001600160e01b03199092166020928302919091019091015263105c25c960e11b81610eef84611ba1565b93508360ff1681518110610f0557610f05611a58565b6001600160e01b03199092166020928302919091019091015260ff821615610a0d5760405162461bcd60e51b815260206004820152601c60248201527f7573652074686520636f7272656374206172726179206c656e677468000000006044820152606401610a5f565b60606105a860056111ff565b6000610a0d8233611278565b6000610f916111a3565b6000826001600160a01b031663cb2af14b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff59190611b26565b604051632f86e2dd60e01b81526001600160a01b03808316600483015291925090841690632f86e2dd906024016020604051808303816000875af1158015611041573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110659190611a90565b506110708382611278565b9150505b919050565b600a5460405163ed287f3f60e01b81526001600160a01b0384811660048301528381166024830152606092839291169063ed287f3f90604401600060405180830381865afa1580156110cf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110f79190810190611c85565b915091509250929050565b61110a6111a3565b600180546001600160a01b0383166001600160a01b0319909116811790915561113b6000546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6001600160a01b0381166000908152600760205260409020606090610a0d906111ff565b60606105a8600d6111ff565b6000546001600160a01b031633146111fd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610a5f565b565b6060600061120c836113a1565b9392505050565b600061120c836001600160a01b0384166113fd565b600061120c836001600160a01b0384166114f0565b60008161125284670de0b6b3a7640000611ad2565b61125c9190611aff565b90506112688284611d4a565b15610a0d5761120c600182611abf565b6001600160a01b038116600090815260046020526040812061129a8185611366565b6112b757604051632af0900d60e21b815260040160405180910390fd5b836001600160a01b0316633e2f147f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113199190611a6e565b611336576040516345916a4760e11b815260040160405180910390fd5b6113408185611213565b915061134b8161153f565b60000361135f5761135d600284611213565b505b5092915050565b6001600160a01b0381166000908152600183016020526040812054151561120c565b600180546001600160a01b0319169055610adf81611549565b6060816000018054806020026020016040519081016040528092919081815260200182805480156113f157602002820191906000526020600020905b8154815260200190600101908083116113dd575b50505050509050919050565b600081815260018301602052604081205480156114e6576000611421600183611b13565b855490915060009061143590600190611b13565b905081811461149a57600086600001828154811061145557611455611a58565b906000526020600020015490508087600001848154811061147857611478611a58565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806114ab576114ab611d5e565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610a0d565b6000915050610a0d565b600081815260018301602052604081205461153757508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610a0d565b506000610a0d565b6000610a0d825490565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156115d8576115d8611599565b604052919050565b600067ffffffffffffffff8211156115fa576115fa611599565b5060051b60200190565b6001600160a01b0381168114610adf57600080fd5b6000602080838503121561162c57600080fd5b823567ffffffffffffffff81111561164357600080fd5b8301601f8101851361165457600080fd5b8035611667611662826115e0565b6115af565b81815260059190911b8201830190838101908783111561168657600080fd5b928401925b828410156116ad57833561169e81611604565b8252928401929084019061168b565b979650505050505050565b6000602082840312156116ca57600080fd5b813561120c81611604565b60008151808452602080850194506020840160005b8381101561170f5781516001600160a01b0316875295820195908201906001016116ea565b509495945050505050565b60408152600061172d60408301856116d5565b82810360208481019190915284518083528582019282019060005b81811015611766578451151583529383019391830191600101611748565b5090979650505050505050565b60208152600061120c60208301846116d5565b60008060008060008060c0878903121561179f57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b80356001600160e01b03198116811461107457600080fd5b600080604083850312156117f457600080fd5b6117fd836117c9565b9150602083013561180d81611604565b809150509250929050565b600067ffffffffffffffff82111561183257611832611599565b50601f01601f191660200190565b60008060006060848603121561185557600080fd5b833561186081611604565b9250602084013561187081611604565b9150604084013567ffffffffffffffff81111561188c57600080fd5b8401601f8101861361189d57600080fd5b80356118ab61166282611818565b8181528760208385010111156118c057600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156118f257600080fd5b61120c826117c9565b6020808252825182820181905260009190848201906040850190845b8181101561193d5783516001600160e01b03191683529284019291840191600101611917565b50909695505050505050565b6000806040838503121561195c57600080fd5b82356117fd81611604565b60005b8381101561198257818101518382015260200161196a565b50506000910152565b600081518084526119a3816020860160208601611967565b601f01601f19169290920160200192915050565b604080825283519082018190526000906020906060840190828701845b828110156119f95781516001600160a01b0316845292840192908401906001016119d4565b50505083810382850152845180825282820190600581901b8301840187850160005b83811015611a4957601f19868403018552611a3783835161198b565b94870194925090860190600101611a1b565b50909998505050505050505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a8057600080fd5b8151801515811461120c57600080fd5b600060208284031215611aa257600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a0d57610a0d611aa9565b8082028115828204841417610a0d57610a0d611aa9565b634e487b7160e01b600052601260045260246000fd5b600082611b0e57611b0e611ae9565b500490565b81810381811115610a0d57610a0d611aa9565b600060208284031215611b3857600080fd5b815161120c81611604565b60008060408385031215611b5657600080fd5b505080516020909101519092909150565b6001600160a01b03868116825260208201869052604082018590528316606082015260a0608082018190526000906116ad9083018461198b565b600060ff821680611bb457611bb4611aa9565b6000190192915050565b600082601f830112611bcf57600080fd5b81516020611bdf611662836115e0565b82815260059290921b84018101918181019086841115611bfe57600080fd5b8286015b84811015611c7a57805167ffffffffffffffff811115611c225760008081fd5b8701603f81018913611c345760008081fd5b848101516040611c4661166283611818565b8281528b82848601011115611c5b5760008081fd5b611c6a83898301848701611967565b8652505050918301918301611c02565b509695505050505050565b60008060408385031215611c9857600080fd5b825167ffffffffffffffff80821115611cb057600080fd5b818501915085601f830112611cc457600080fd5b81516020611cd4611662836115e0565b82815260059290921b84018101918181019089841115611cf357600080fd5b948201945b83861015611d1a578551611d0b81611604565b82529482019490820190611cf8565b91880151919650909350505080821115611d3357600080fd5b50611d4085828601611bbe565b9150509250929050565b600082611d5957611d59611ae9565b500690565b634e487b7160e01b600052603160045260246000fdfe636c6f7365416e6452656d6f766555736572506f736974696f6e28616464726573732c616464726573732c627974657329636c6f7365416e6452656d6f766555736572506f736974696f6e286164647265737329a2646970667358221220a7b40ffc999204ce977dd919b723b341957356ef82bc3c8fbab911ed50dab65564736f6c63430008160033