0 txs
889 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
0x60e060405234801561000f575f80fd5b5060405161229238038061229283398101604081905261002e91610065565b6001600160a01b03928316608052821660a0521660c0526100a5565b80516001600160a01b0381168114610060575f80fd5b919050565b5f805f60608486031215610077575f80fd5b6100808461004a565b925061008e6020850161004a565b915061009c6040850161004a565b90509250925092565b60805160a05160c0516121a76100eb5f395f81816101be015281816101fa0152818161055601526105e501525f81816107cf0152610a7301525f610fd501526121a75ff3fe60806040526004361061003e575f3560e01c806352b8b9181461004257806391a5eb6e14610063578063e8e9fc2a14610082578063ef9e1aa7146100a1575b5f80fd5b34801561004d575f80fd5b5061006161005c366004611a9e565b6100b4565b005b34801561006e575f80fd5b5061006161007d366004611a9e565b6103ae565b34801561008d575f80fd5b5061006161009c366004611bcf565b610734565b6100616100af366004611cf5565b6109d8565b3330146100d45760405163e50434af60e01b815260040160405180910390fd5b5f805f80848060200190518101906100ec9190611e12565b9350935093509350885f14610159576040516323b872dd60e01b81526001600160a01b038b16906323b872dd9061012b90899030908e90600401611ead565b5f604051808303815f87803b158015610142575f80fd5b505af1158015610154573d5f803e3d5ffd5b505050505b6101e38a6001600160a01b031663b2016bd46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610198573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101bc9190611ed1565b7f00000000000000000000000000000000000000000000000000000000000000008a610cb6565b60405163c1c8f15b60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c1c8f15b90610235908d908d908d908990600401611eec565b6020604051808303815f875af1158015610251573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102759190611f12565b98506102828a8a86610ccf565b6040516323b872dd60e01b81526001600160a01b038b16906323b872dd906102b29030908a908e90600401611ead565b5f604051808303815f87803b1580156102c9575f80fd5b505af11580156102db573d5f803e3d5ffd5b505050507fefb5855145ed1940ea61c1e8e082831c9e86b8b07380d71605f907563fd16c228a8a888b878c60405161031896959493929190611f29565b60405180910390a16103a173085780639cc2cacd35e474e71f4d000e2405d8f68b6001600160a01b031663b2016bd46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610374573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103989190611ed1565b858a8686610d80565b5050505050505050505050565b3330146103ce5760405163e50434af60e01b815260040160405180910390fd5b5f805f80848060200190518101906103e69190611e12565b935093509350935061046f8a6001600160a01b031663b2016bd46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561042d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104519190611ed1565b73085780639cc2cacd35e474e71f4d000e2405d8f689868686610d80565b506040516323b872dd60e01b81526001600160a01b038b16906323b872dd906104a090899030908e90600401611ead565b5f604051808303815f87803b1580156104b7575f80fd5b505af11580156104c9573d5f803e3d5ffd5b505060405163eb02c30160e01b8152600481018c90525f92506001600160a01b038d16915063eb02c301906024016040805180830381865afa158015610511573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105359190611f62565b9150508084106105db5760405163c1c8f15b60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c1c8f15b90610595908e908e90600160ff1b908190600401611eec565b6020604051808303815f875af11580156105b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105d59190611f12565b50610689565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663c1c8f15b8c8c6106158d611f98565b61061e89611f98565b6040518563ffffffff1660e01b815260040161063d9493929190611eec565b6020604051808303815f875af1158015610659573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061067d9190611f12565b506106898b8b87610ccf565b6040516323b872dd60e01b81526001600160a01b038c16906323b872dd906106b99030908b908f90600401611ead565b5f604051808303815f87803b1580156106d0575f80fd5b505af11580156106e2573d5f803e3d5ffd5b505050507f6b2943119bf45b44d68ae3f2644034410fc9735d1db57a2c991f0d465fe584788b8b898c888d60405161071f96959493929190611f29565b60405180910390a15050505050505050505050565b7fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c17160545f805160206121528339815191529060ff600160a81b909104165f190161079057604051633ee5aeb560e01b815260040160405180910390fd5b60058101805460ff60a81b1916600160a81b179055333b801515806107b55750333214155b1561085d57604051631846d2f560e31b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c23697a890602401602060405180830381865afa15801561081c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108409190611fb2565b61085d57604051632c10e80160e21b815260040160405180910390fd5b5f886001600160a01b031663b2016bd46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561089a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108be9190611ed1565b905061091181878b8b8b8b338c8c6040516024016108e29796959493929190611fd1565b60408051601f198184030181529190526020810180516001600160e01b03166348d2f5b760e11b179052610f87565b6040516370a0823160e01b81523060048201526001600160a01b038216906370a0823190602401602060405180830381865afa158015610953573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109779190611f12565b96506109858a82893361107d565b506109bf73085780639cc2cacd35e474e71f4d000e2405d8f65f805160206121528339815191525b600501546001600160a01b031661124b565b5050600501805460ff60a81b1916905550505050505050565b7fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c17160545f805160206121528339815191529060ff600160a81b909104165f1901610a3457604051633ee5aeb560e01b815260040160405180910390fd5b60058101805460ff60a81b1916600160a81b179055333b80151580610a595750333214155b15610b0157604051631846d2f560e31b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c23697a890602401602060405180830381865afa158015610ac0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae49190611fb2565b610b0157604051632c10e80160e21b815260040160405180910390fd5b5f85610b6c8a8a6001600160a01b031663b2016bd46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b43573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b679190611ed1565b6112cf565b610b769190612031565b9050610c28886001600160a01b031663b2016bd46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bb7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bdb9190611ed1565b878a8a858b338c8c604051602401610bf99796959493929190611fd1565b60408051601f198184030181529190526020810180516001600160e01b0316630a57172360e31b179052610f87565b610c9e886001600160a01b031663b2016bd46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c67573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c8b9190611ed1565b5f805160206121528339815191526109ad565b5050600501805460ff60a81b19169055505050505050565b610cca6001600160a01b038416838361157a565b505050565b60405163430da67f60e11b8152600481018390525f906001600160a01b0385169063861b4cfe90602401602060405180830381865afa158015610d14573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d389190611f12565b9050670fffffffffffffff82811690603c84901c1681831080610d5a57508083115b15610d785760405163e3f43bf160e01b815260040160405180910390fd5b505050505050565b5f845f03610d8f57505f610f7d565b5f80516020612152833981519152610dc77fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c1715c8561163d565b610de3576040516202e3a560eb1b815260040160405180910390fd5b6001600160a01b038085165f908152602083905260409020541680610e055750835b610e10898289610cb6565b6040516370a0823160e01b81523060048201526001600160a01b038916906370a0823190602401602060405180830381865afa158015610e52573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e769190611f12565b92505f856001600160a01b031685604051610e919190612044565b5f604051808303815f865af19150503d805f8114610eca576040519150601f19603f3d011682016040523d82523d5f602084013e610ecf565b606091505b5050905080610ee4576040513d805f833e8082fd5b6040516370a0823160e01b815230600482015284906001600160a01b038b16906370a0823190602401602060405180830381865afa158015610f28573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f4c9190611f12565b610f56919061205a565b935086841015610f7957604051633e961df760e21b815260040160405180910390fd5b5050505b9695505050505050565b7fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c17160805460ff60a01b1916600160a01b1790556040515f80516020612152833981519152906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e0232b429086908690611010908390889060200161209b565b6040516020818303038152906040526040518463ffffffff1660e01b815260040161103d939291906120be565b5f604051808303815f87803b158015611054575f80fd5b505af1158015611066573d5f803e3d5ffd5b50505050600501805460ff60a01b19169055505050565b60208401515f905f80516020612152833981519152906110be907fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c1715c9061163d565b6110da576040516202e3a560eb1b815260040160405180910390fd5b835f036110ea575f915050611243565b606086015151849250156111885761110785876020015186610cb6565b85602001516001600160a01b031663ed52d54c868689604001518a606001516040518563ffffffff1660e01b815260040161114594939291906120ed565b6020604051808303815f875af1158015611161573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111859190611f12565b91505b85608001518210156111ad5760405163ca1d512b60e01b815260040160405180910390fd5b85516001600160a01b031661122b57604051632e1a7d4d60e01b81526004810183905273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290632e1a7d4d906024015f604051808303815f87803b158015611206575f80fd5b505af1158015611218573d5f803e3d5ffd5b505050506112268383611661565b611241565b8551611241906001600160a01b031684846116f9565b505b949350505050565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa15801561128f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112b39190611f12565b90508015610cca57610cca6001600160a01b03841683836116f9565b60408201515f905f8051602061215283398151915290611310907fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c1715c9061163d565b61132c576040516202e3a560eb1b815260040160405180910390fd5b61133e845f015130866020015161172a565b506040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611381573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113a59190611f12565b9150826001600160a01b0316845f01516001600160a01b0316036113c95750611574565b83515f906001600160a01b03166114495784604001516001600160a01b0316856020015186606001516040516113ff9190612044565b5f6040518083038185875af1925050503d805f8114611439576040519150601f19603f3d011682016040523d82523d5f602084013e61143e565b606091505b5050809150506114ec565b6040808601516001600160a01b039081165f908152602085905291909120541680611475575060408501515b611487865f0151828860200151610cb6565b85604001516001600160a01b031686606001516040516114a79190612044565b5f604051808303815f865af19150503d805f81146114e0576040519150601f19603f3d011682016040523d82523d5f602084013e6114e5565b606091505b5090925050505b806114fd576040513d805f833e8082fd5b6040516370a0823160e01b815230600482015283906001600160a01b038616906370a0823190602401602060405180830381865afa158015611541573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115659190611f12565b61156f919061205a565b925050505b92915050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526115cb848261177a565b611637576040516001600160a01b0384811660248301525f604483015261162d91869182169063095ea7b3906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050611817565b6116378482611817565b50505050565b6001600160a01b0381165f90815260018301602052604081205415155b9392505050565b804710156116895760405163cd78605960e01b81523060048201526024015b60405180910390fd5b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146116d2576040519150601f19603f3d011682016040523d82523d5f602084013e6116d7565b606091505b5050905080610cca57604051630a12f52160e11b815260040160405180910390fd5b6040516001600160a01b03838116602483015260448201839052610cca91859182169063a9059cbb906064016115fb565b5f6001600160a01b03841661175e578134146117595760405163ed39c7cb60e01b815260040160405180910390fd5b611773565b6117736001600160a01b038516338585611878565b5092915050565b5f805f846001600160a01b0316846040516117959190612044565b5f604051808303815f865af19150503d805f81146117ce576040519150601f19603f3d011682016040523d82523d5f602084013e6117d3565b606091505b50915091508180156117fd5750805115806117fd5750808060200190518101906117fd9190611fb2565b801561156f5750505050506001600160a01b03163b151590565b5f61182b6001600160a01b038416836118a0565b905080515f1415801561184f57508080602001905181019061184d9190611fb2565b155b15610cca57604051635274afe760e01b81526001600160a01b0384166004820152602401611680565b61163784856001600160a01b03166323b872dd8686866040516024016115fb93929190611ead565b606061165a83835f845f80856001600160a01b031684866040516118c49190612044565b5f6040518083038185875af1925050503d805f81146118fe576040519150601f19603f3d011682016040523d82523d5f602084013e611903565b606091505b5091509150610f7d8683836060826119235761191e8261196a565b61165a565b815115801561193a57506001600160a01b0384163b155b1561196357604051639996b31560e01b81526001600160a01b0385166004820152602401611680565b508061165a565b80511561197a5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b6001600160a01b0381168114611993575f80fd5b80356119b581611996565b919050565b634e487b7160e01b5f52604160045260245ffd5b60405160c081016001600160401b03811182821017156119f0576119f06119ba565b60405290565b604051601f8201601f191681016001600160401b0381118282101715611a1e57611a1e6119ba565b604052919050565b5f6001600160401b03821115611a3e57611a3e6119ba565b50601f01601f191660200190565b5f82601f830112611a5b575f80fd5b8135611a6e611a6982611a26565b6119f6565b818152846020838601011115611a82575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f8060c08789031215611ab3575f80fd5b8635611abe81611996565b95506020870135945060408701359350606087013592506080870135611ae381611996565b915060a08701356001600160401b03811115611afd575f80fd5b611b0989828a01611a4c565b9150509295509295509295565b5f82601f830112611b25575f80fd5b81356001600160401b03811115611b3e57611b3e6119ba565b8060051b611b4e602082016119f6565b91825260208185018101929081019086841115611b69575f80fd5b6020860192505b83831015610f7d578235825260209283019290910190611b70565b5f8083601f840112611b9b575f80fd5b5081356001600160401b03811115611bb1575f80fd5b602083019150836020828501011115611bc8575f80fd5b9250929050565b5f805f805f805f60c0888a031215611be5575f80fd5b87356001600160401b03811115611bfa575f80fd5b880160c0818b031215611c0b575f80fd5b611c136119ce565b611c1c826119aa565b8152611c2a602083016119aa565b60208201526040828101359082015260608201356001600160401b03811115611c51575f80fd5b611c5d8c828501611b16565b6060830152506080828101359082015260a08201356001600160401b03811115611c85575f80fd5b611c918c828501611a4c565b60a0830152509750611ca79050602089016119aa565b955060408801359450606088013593506080880135925060a08801356001600160401b03811115611cd6575f80fd5b611ce28a828b01611b8b565b989b979a50959850939692959293505050565b5f805f805f8060a08789031215611d0a575f80fd5b86356001600160401b03811115611d1f575f80fd5b870160c0818a031215611d30575f80fd5b611d386119ce565b611d41826119aa565b815260208281013590820152611d59604083016119aa565b604082015260608201356001600160401b03811115611d76575f80fd5b611d828b828501611a4c565b6060830152506080828101359082015260a08201356001600160401b03811115611daa575f80fd5b611db68b828501611a4c565b60a0830152509650611dcc9050602088016119aa565b9450604087013593506060870135925060808701356001600160401b03811115611df4575f80fd5b611e0089828a01611b8b565b979a9699509497509295939492505050565b5f805f8060808587031215611e25575f80fd5b8451602086015160408701519195509350611e3f81611996565b60608601519092506001600160401b03811115611e5a575f80fd5b8501601f81018713611e6a575f80fd5b8051611e78611a6982611a26565b818152886020838501011115611e8c575f80fd5b8160208401602083015e5f6020838301015280935050505092959194509250565b6001600160a01b039384168152919092166020820152604081019190915260600190565b5f60208284031215611ee1575f80fd5b815161165a81611996565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b5f60208284031215611f22575f80fd5b5051919050565b6001600160a01b03968716815260208101959095529290941660408401526060830152608082019290925260a081019190915260c00190565b5f8060408385031215611f73575f80fd5b505080516020909101519092909150565b634e487b7160e01b5f52601160045260245ffd5b5f600160ff1b8201611fac57611fac611f84565b505f0390565b5f60208284031215611fc2575f80fd5b8151801515811461165a575f80fd5b6001600160a01b0388811682526020820188905260408201879052606082018690528416608082015260c060a082018190528101829052818360e08301375f81830160e090810191909152601f909201601f191601019695505050505050565b8082018082111561157457611574611f84565b5f82518060208501845e5f920191825250919050565b8181038181111561157457611574611f84565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6001600160a01b03831681526040602082018190525f906112439083018461206d565b60018060a01b0384168152826020820152606060408201525f6120e4606083018461206d565b95945050505050565b6001600160a01b038516815260208082018590526040820184905260806060830181905283519083018190525f9184019060a0840190835b81811015612143578351835260209384019390920191600101612125565b50909897505050505050505056feac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c1715ba26469706673582212206735f4e8a5dae59b0c09ff69d087195928f8724190f4d39b47af3a87be55d53264736f6c634300081a0033000000000000000000000000bbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb000000000000000000000000250893ca4ba5d05626c785e8da758026928fcd24000000000000000000000000ac94b8ea0e3a080f0fa6ae89cc873d956f72aa3e