0 txs
2.4k calls
constructor
constructor(address _morpho, address _poolManager, address _whitelist)
functions
closeOrRemovePositionFlashLoanV2
nonpayablefunction closeOrRemovePositionFlashLoanV2(tuple params, address pool, uint256 positionId, uint256 amountOut, uint256 borrowAmount, bytes data)
onCloseOrRemovePositionFlashLoanV2
nonpayablefunction onCloseOrRemovePositionFlashLoanV2(address pool, uint256 position, uint256 amount, uint256 borrowAmount, address recipient, bytes data)
onOpenOrAddPositionFlashLoanV2
nonpayablefunction onOpenOrAddPositionFlashLoanV2(address pool, uint256 position, uint256 amount, uint256 repayAmount, address recipient, bytes data)
openOrAddPositionFlashLoanV2
payablefunction openOrAddPositionFlashLoanV2(tuple params, address pool, uint256 positionId, uint256 borrowAmount, bytes data) payable
events
CloseOrRemove
event CloseOrRemove(address pool, uint256 position, address recipient, uint256 colls, uint256 debts, uint256 borrows)
OpenOrAdd
event OpenOrAdd(address pool, uint256 position, address recipient, uint256 colls, uint256 debts, uint256 borrows)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
ErrorDebtRatioOutOfRange
error ErrorDebtRatioOutOfRange()
ErrorInsufficientAmountSwapped
error ErrorInsufficientAmountSwapped()
ErrorInsufficientOutput
error ErrorInsufficientOutput()
ErrorMsgValueMismatch
error ErrorMsgValueMismatch()
ErrorNotFromSelf
error ErrorNotFromSelf()
ErrorTargetNotApproved
error ErrorTargetNotApproved()
ErrorTopLevelCall
error ErrorTopLevelCall()
FailedInnerCall
error FailedInnerCall()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x60e060405234801561000f575f80fd5b5060405161230638038061230683398101604081905261002e91610065565b6001600160a01b03928316608052821660a0521660c0526100a5565b80516001600160a01b0381168114610060575f80fd5b919050565b5f805f60608486031215610077575f80fd5b6100808461004a565b925061008e6020850161004a565b915061009c6040850161004a565b90509250925092565b60805160a05160c05161220d6100f95f395f81816101be015281816101fa0152818161055601526105e501525f81816107a90152818161080201528181610a800152610ad901525f61103b015261220d5ff3fe60806040526004361061003e575f3560e01c806352b8b9181461004257806391a5eb6e14610063578063e8e9fc2a14610082578063ef9e1aa7146100a1575b5f80fd5b34801561004d575f80fd5b5061006161005c366004611b04565b6100b4565b005b34801561006e575f80fd5b5061006161007d366004611b04565b6103ae565b34801561008d575f80fd5b5061006161009c366004611c35565b610734565b6100616100af366004611d5b565b610a0b565b3330146100d45760405163e50434af60e01b815260040160405180910390fd5b5f805f80848060200190518101906100ec9190611e78565b9350935093509350885f14610159576040516323b872dd60e01b81526001600160a01b038b16906323b872dd9061012b90899030908e90600401611f13565b5f604051808303815f87803b158015610142575f80fd5b505af1158015610154573d5f803e3d5ffd5b505050505b6101e38a6001600160a01b031663b2016bd46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610198573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101bc9190611f37565b7f00000000000000000000000000000000000000000000000000000000000000008a610d1c565b60405163c1c8f15b60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c1c8f15b90610235908d908d908d908990600401611f52565b6020604051808303815f875af1158015610251573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102759190611f78565b98506102828a8a86610d35565b6040516323b872dd60e01b81526001600160a01b038b16906323b872dd906102b29030908a908e90600401611f13565b5f604051808303815f87803b1580156102c9575f80fd5b505af11580156102db573d5f803e3d5ffd5b505050507fefb5855145ed1940ea61c1e8e082831c9e86b8b07380d71605f907563fd16c228a8a888b878c60405161031896959493929190611f8f565b60405180910390a16103a173085780639cc2cacd35e474e71f4d000e2405d8f68b6001600160a01b031663b2016bd46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610374573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103989190611f37565b858a8686610de6565b5050505050505050505050565b3330146103ce5760405163e50434af60e01b815260040160405180910390fd5b5f805f80848060200190518101906103e69190611e78565b935093509350935061046f8a6001600160a01b031663b2016bd46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561042d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104519190611f37565b73085780639cc2cacd35e474e71f4d000e2405d8f689868686610de6565b506040516323b872dd60e01b81526001600160a01b038b16906323b872dd906104a090899030908e90600401611f13565b5f604051808303815f87803b1580156104b7575f80fd5b505af11580156104c9573d5f803e3d5ffd5b505060405163eb02c30160e01b8152600481018c90525f92506001600160a01b038d16915063eb02c301906024016040805180830381865afa158015610511573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105359190611fc8565b9150508084106105db5760405163c1c8f15b60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c1c8f15b90610595908e908e90600160ff1b908190600401611f52565b6020604051808303815f875af11580156105b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105d59190611f78565b50610689565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663c1c8f15b8c8c6106158d611ffe565b61061e89611ffe565b6040518563ffffffff1660e01b815260040161063d9493929190611f52565b6020604051808303815f875af1158015610659573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061067d9190611f78565b506106898b8b87610d35565b6040516323b872dd60e01b81526001600160a01b038c16906323b872dd906106b99030908b908f90600401611f13565b5f604051808303815f87803b1580156106d0575f80fd5b505af11580156106e2573d5f803e3d5ffd5b505050507f6b2943119bf45b44d68ae3f2644034410fc9735d1db57a2c991f0d465fe584788b8b898c888d60405161071f96959493929190611f8f565b60405180910390a15050505050505050505050565b7fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c17160545f805160206121b88339815191529060ff600160a81b909104165f190161079057604051633ee5aeb560e01b815260040160405180910390fd5b60058101805460ff60a81b1916600160a81b179055333b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316158015906107e857505f8111806107e85750333214155b1561089057604051631846d2f560e31b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c23697a890602401602060405180830381865afa15801561084f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108739190612018565b61089057604051632c10e80160e21b815260040160405180910390fd5b5f886001600160a01b031663b2016bd46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108f19190611f37565b905061094481878b8b8b8b338c8c6040516024016109159796959493929190612037565b60408051601f198184030181529190526020810180516001600160e01b03166348d2f5b760e11b179052610fed565b6040516370a0823160e01b81523060048201526001600160a01b038216906370a0823190602401602060405180830381865afa158015610986573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109aa9190611f78565b96506109b88a8289336110e3565b506109f273085780639cc2cacd35e474e71f4d000e2405d8f65f805160206121b88339815191525b600501546001600160a01b03166112b1565b5050600501805460ff60a81b1916905550505050505050565b7fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c17160545f805160206121b88339815191529060ff600160a81b909104165f1901610a6757604051633ee5aeb560e01b815260040160405180910390fd5b60058101805460ff60a81b1916600160a81b179055333b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615801590610abf57505f811180610abf5750333214155b15610b6757604051631846d2f560e31b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c23697a890602401602060405180830381865afa158015610b26573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4a9190612018565b610b6757604051632c10e80160e21b815260040160405180910390fd5b5f85610bd28a8a6001600160a01b031663b2016bd46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ba9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bcd9190611f37565b611335565b610bdc9190612097565b9050610c8e886001600160a01b031663b2016bd46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c1d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c419190611f37565b878a8a858b338c8c604051602401610c5f9796959493929190612037565b60408051601f198184030181529190526020810180516001600160e01b0316630a57172360e31b179052610fed565b610d04886001600160a01b031663b2016bd46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ccd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf19190611f37565b5f805160206121b88339815191526109e0565b5050600501805460ff60a81b19169055505050505050565b610d306001600160a01b03841683836115e0565b505050565b60405163430da67f60e11b8152600481018390525f906001600160a01b0385169063861b4cfe90602401602060405180830381865afa158015610d7a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d9e9190611f78565b9050670fffffffffffffff82811690603c84901c1681831080610dc057508083115b15610dde5760405163e3f43bf160e01b815260040160405180910390fd5b505050505050565b5f845f03610df557505f610fe3565b5f805160206121b8833981519152610e2d7fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c1715c856116a3565b610e49576040516202e3a560eb1b815260040160405180910390fd5b6001600160a01b038085165f908152602083905260409020541680610e6b5750835b610e76898289610d1c565b6040516370a0823160e01b81523060048201526001600160a01b038916906370a0823190602401602060405180830381865afa158015610eb8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610edc9190611f78565b92505f856001600160a01b031685604051610ef791906120aa565b5f604051808303815f865af19150503d805f8114610f30576040519150601f19603f3d011682016040523d82523d5f602084013e610f35565b606091505b5050905080610f4a576040513d805f833e8082fd5b6040516370a0823160e01b815230600482015284906001600160a01b038b16906370a0823190602401602060405180830381865afa158015610f8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fb29190611f78565b610fbc91906120c0565b935086841015610fdf57604051633e961df760e21b815260040160405180910390fd5b5050505b9695505050505050565b7fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c17160805460ff60a01b1916600160a01b1790556040515f805160206121b8833981519152906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e0232b4290869086906110769083908890602001612101565b6040516020818303038152906040526040518463ffffffff1660e01b81526004016110a393929190612124565b5f604051808303815f87803b1580156110ba575f80fd5b505af11580156110cc573d5f803e3d5ffd5b50505050600501805460ff60a01b19169055505050565b60208401515f905f805160206121b883398151915290611124907fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c1715c906116a3565b611140576040516202e3a560eb1b815260040160405180910390fd5b835f03611150575f9150506112a9565b606086015151849250156111ee5761116d85876020015186610d1c565b85602001516001600160a01b031663ed52d54c868689604001518a606001516040518563ffffffff1660e01b81526004016111ab9493929190612153565b6020604051808303815f875af11580156111c7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111eb9190611f78565b91505b85608001518210156112135760405163ca1d512b60e01b815260040160405180910390fd5b85516001600160a01b031661129157604051632e1a7d4d60e01b81526004810183905273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290632e1a7d4d906024015f604051808303815f87803b15801561126c575f80fd5b505af115801561127e573d5f803e3d5ffd5b5050505061128c83836116c7565b6112a7565b85516112a7906001600160a01b0316848461175f565b505b949350505050565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa1580156112f5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113199190611f78565b90508015610d3057610d306001600160a01b038416838361175f565b60408201515f905f805160206121b883398151915290611376907fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c1715c906116a3565b611392576040516202e3a560eb1b815260040160405180910390fd5b6113a4845f0151308660200151611790565b506040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa1580156113e7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061140b9190611f78565b9150826001600160a01b0316845f01516001600160a01b03160361142f57506115da565b83515f906001600160a01b03166114af5784604001516001600160a01b03168560200151866060015160405161146591906120aa565b5f6040518083038185875af1925050503d805f811461149f576040519150601f19603f3d011682016040523d82523d5f602084013e6114a4565b606091505b505080915050611552565b6040808601516001600160a01b039081165f9081526020859052919091205416806114db575060408501515b6114ed865f0151828860200151610d1c565b85604001516001600160a01b0316866060015160405161150d91906120aa565b5f604051808303815f865af19150503d805f8114611546576040519150601f19603f3d011682016040523d82523d5f602084013e61154b565b606091505b5090925050505b80611563576040513d805f833e8082fd5b6040516370a0823160e01b815230600482015283906001600160a01b038616906370a0823190602401602060405180830381865afa1580156115a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115cb9190611f78565b6115d591906120c0565b925050505b92915050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b17905261163184826117e0565b61169d576040516001600160a01b0384811660248301525f604483015261169391869182169063095ea7b3906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505061187d565b61169d848261187d565b50505050565b6001600160a01b0381165f90815260018301602052604081205415155b9392505050565b804710156116ef5760405163cd78605960e01b81523060048201526024015b60405180910390fd5b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611738576040519150601f19603f3d011682016040523d82523d5f602084013e61173d565b606091505b5050905080610d3057604051630a12f52160e11b815260040160405180910390fd5b6040516001600160a01b03838116602483015260448201839052610d3091859182169063a9059cbb90606401611661565b5f6001600160a01b0384166117c4578134146117bf5760405163ed39c7cb60e01b815260040160405180910390fd5b6117d9565b6117d96001600160a01b0385163385856118de565b5092915050565b5f805f846001600160a01b0316846040516117fb91906120aa565b5f604051808303815f865af19150503d805f8114611834576040519150601f19603f3d011682016040523d82523d5f602084013e611839565b606091505b50915091508180156118635750805115806118635750808060200190518101906118639190612018565b80156115d55750505050506001600160a01b03163b151590565b5f6118916001600160a01b03841683611906565b905080515f141580156118b55750808060200190518101906118b39190612018565b155b15610d3057604051635274afe760e01b81526001600160a01b03841660048201526024016116e6565b61169d84856001600160a01b03166323b872dd86868660405160240161166193929190611f13565b60606116c083835f845f80856001600160a01b0316848660405161192a91906120aa565b5f6040518083038185875af1925050503d805f8114611964576040519150601f19603f3d011682016040523d82523d5f602084013e611969565b606091505b5091509150610fe386838360608261198957611984826119d0565b6116c0565b81511580156119a057506001600160a01b0384163b155b156119c957604051639996b31560e01b81526001600160a01b03851660048201526024016116e6565b50806116c0565b8051156119e05780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b6001600160a01b03811681146119f9575f80fd5b8035611a1b816119fc565b919050565b634e487b7160e01b5f52604160045260245ffd5b60405160c081016001600160401b0381118282101715611a5657611a56611a20565b60405290565b604051601f8201601f191681016001600160401b0381118282101715611a8457611a84611a20565b604052919050565b5f6001600160401b03821115611aa457611aa4611a20565b50601f01601f191660200190565b5f82601f830112611ac1575f80fd5b8135611ad4611acf82611a8c565b611a5c565b818152846020838601011115611ae8575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f8060c08789031215611b19575f80fd5b8635611b24816119fc565b95506020870135945060408701359350606087013592506080870135611b49816119fc565b915060a08701356001600160401b03811115611b63575f80fd5b611b6f89828a01611ab2565b9150509295509295509295565b5f82601f830112611b8b575f80fd5b81356001600160401b03811115611ba457611ba4611a20565b8060051b611bb460208201611a5c565b91825260208185018101929081019086841115611bcf575f80fd5b6020860192505b83831015610fe3578235825260209283019290910190611bd6565b5f8083601f840112611c01575f80fd5b5081356001600160401b03811115611c17575f80fd5b602083019150836020828501011115611c2e575f80fd5b9250929050565b5f805f805f805f60c0888a031215611c4b575f80fd5b87356001600160401b03811115611c60575f80fd5b880160c0818b031215611c71575f80fd5b611c79611a34565b611c8282611a10565b8152611c9060208301611a10565b60208201526040828101359082015260608201356001600160401b03811115611cb7575f80fd5b611cc38c828501611b7c565b6060830152506080828101359082015260a08201356001600160401b03811115611ceb575f80fd5b611cf78c828501611ab2565b60a0830152509750611d0d905060208901611a10565b955060408801359450606088013593506080880135925060a08801356001600160401b03811115611d3c575f80fd5b611d488a828b01611bf1565b989b979a50959850939692959293505050565b5f805f805f8060a08789031215611d70575f80fd5b86356001600160401b03811115611d85575f80fd5b870160c0818a031215611d96575f80fd5b611d9e611a34565b611da782611a10565b815260208281013590820152611dbf60408301611a10565b604082015260608201356001600160401b03811115611ddc575f80fd5b611de88b828501611ab2565b6060830152506080828101359082015260a08201356001600160401b03811115611e10575f80fd5b611e1c8b828501611ab2565b60a0830152509650611e32905060208801611a10565b9450604087013593506060870135925060808701356001600160401b03811115611e5a575f80fd5b611e6689828a01611bf1565b979a9699509497509295939492505050565b5f805f8060808587031215611e8b575f80fd5b8451602086015160408701519195509350611ea5816119fc565b60608601519092506001600160401b03811115611ec0575f80fd5b8501601f81018713611ed0575f80fd5b8051611ede611acf82611a8c565b818152886020838501011115611ef2575f80fd5b8160208401602083015e5f6020838301015280935050505092959194509250565b6001600160a01b039384168152919092166020820152604081019190915260600190565b5f60208284031215611f47575f80fd5b81516116c0816119fc565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b5f60208284031215611f88575f80fd5b5051919050565b6001600160a01b03968716815260208101959095529290941660408401526060830152608082019290925260a081019190915260c00190565b5f8060408385031215611fd9575f80fd5b505080516020909101519092909150565b634e487b7160e01b5f52601160045260245ffd5b5f600160ff1b820161201257612012611fea565b505f0390565b5f60208284031215612028575f80fd5b815180151581146116c0575f80fd5b6001600160a01b0388811682526020820188905260408201879052606082018690528416608082015260c060a082018190528101829052818360e08301375f81830160e090810191909152601f909201601f191601019695505050505050565b808201808211156115da576115da611fea565b5f82518060208501845e5f920191825250919050565b818103818111156115da576115da611fea565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6001600160a01b03831681526040602082018190525f906112a9908301846120d3565b60018060a01b0384168152826020820152606060408201525f61214a60608301846120d3565b95945050505050565b6001600160a01b038516815260208082018590526040820184905260806060830181905283519083018190525f9184019060a0840190835b818110156121a957835183526020938401939092019160010161218b565b50909897505050505050505056feac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c1715ba26469706673582212208fdeebd356f7204990392e46d90ad71f38956b1866f1bc10294d2036007c6c9064736f6c634300081a0033000000000000000000000000bbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb000000000000000000000000250893ca4ba5d05626c785e8da758026928fcd240000000000000000000000000000000000000000000000000000000000000000