0 txs
1 call
constructor
constructor(address _morpho, address _poolManager, address _shortPoolManager, address _converter, address _whitelist)
functions
closeOrRemoveLongPositionFlashLoan
nonpayablefunction closeOrRemoveLongPositionFlashLoan(tuple params, address pool, uint256 positionId, uint256 amountOut, uint256 borrowAmount, bytes data)
closeOrRemoveLongPositionFlashLoanWithUSDC
nonpayablefunction closeOrRemoveLongPositionFlashLoanWithUSDC(tuple params, address pool, uint256 positionId, uint256 amountOut, uint256 borrowAmount, bytes data)
onCloseOrRemoveLongPositionFlashLoan
nonpayablefunction onCloseOrRemoveLongPositionFlashLoan(address pool, uint256 position, uint256 amount, uint256 borrowAmount, address recipient, bytes data)
onCloseOrRemoveLongPositionFlashLoanWithUSDC
nonpayablefunction onCloseOrRemoveLongPositionFlashLoanWithUSDC(address pool, uint256 position, uint256 amount, uint256 borrowAmount, address recipient, bytes data)
events
PositionOperate
event PositionOperate(address indexed pool, uint256 positionId, int256 userCollateralsDelta, int256 userDebtsDelta, int256 newColl, int256 newDebt)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
ErrorDebtRatioOutOfRange
error ErrorDebtRatioOutOfRange()
ErrorInsufficientAmountSwapped
error ErrorInsufficientAmountSwapped()
ErrorInsufficientOutput
error ErrorInsufficientOutput()
ErrorNotFromSelf
error ErrorNotFromSelf()
ErrorTargetNotApproved
error ErrorTargetNotApproved()
ErrorTopLevelCall
error ErrorTopLevelCall()
FailedInnerCall
error FailedInnerCall()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x610120604052348015610010575f80fd5b506040516123b33803806123b383398101604081905261002f91610072565b6001600160a01b03948516608052841660a05291831660c052821660e05216610100526100d3565b80516001600160a01b038116811461006d575f80fd5b919050565b5f805f805f60a08688031215610086575f80fd5b61008f86610057565b945061009d60208701610057565b93506100ab60408701610057565b92506100b960608701610057565b91506100c760808701610057565b90509295509295909350565b60805160a05160c05160e051610100516122726101415f395f8181611949015261198501525f81816115fa015261164e01525f81816106fd01528181610869015281816108e601528181610d3c0152610d7501525f818161013701526103db01525f610e3a01526122725ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c806322d5d2ec1461004e578063af79b3fc14610063578063ccd164cb14610076578063cdac57b214610089575b5f80fd5b61006161005c366004611d02565b61009c565b005b610061610071366004611d02565b610340565b610061610084366004611e2c565b6105bd565b610061610097366004611e2c565b610b66565b7fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c17160545f8051602061221d8339815191529060ff600160a81b909104165f19016100f857604051633ee5aeb560e01b815260040160405180910390fd5b60058101805460ff60a81b1916600160a81b179055333b8015158061011d5750333214155b156101c557604051631846d2f560e31b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c23697a890602401602060405180830381865afa158015610184573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a89190611ea5565b6101c557604051632c10e80160e21b815260040160405180910390fd5b5f886001600160a01b031663b2016bd46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610202573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102269190611ec4565b905061027981878b8b8b8b338c8c60405160240161024a9796959493929190611edf565b60408051601f198184030181529190526020810180516001600160e01b03166366d62bd960e11b179052610dec565b6040516370a0823160e01b81523060048201526001600160a01b038216906370a0823190602401602060405180830381865afa1580156102bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102df9190611f3f565b96506102ed8a828933610ee2565b5061032773085780639cc2cacd35e474e71f4d000e2405d8f65f8051602061221d8339815191525b600501546001600160a01b03166110b0565b5050600501805460ff60a81b1916905550505050505050565b7fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c17160545f8051602061221d8339815191529060ff600160a81b909104165f190161039c57604051633ee5aeb560e01b815260040160405180910390fd5b60058101805460ff60a81b1916600160a81b179055333b801515806103c15750333214155b1561046957604051631846d2f560e31b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c23697a890602401602060405180830381865afa158015610428573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061044c9190611ea5565b61046957604051632c10e80160e21b815260040160405180910390fd5b5f886001600160a01b031663b2016bd46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104ca9190611ec4565b905061051d81878b8b8b8b338c8c6040516024016104ee9796959493929190611edf565b60408051601f198184030181529190526020810180516001600160e01b031663ccd164cb60e01b179052610dec565b6040516370a0823160e01b81523060048201526001600160a01b038216906370a0823190602401602060405180830381865afa15801561055f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105839190611f3f565b96506105918a828933610ee2565b5061032773a0b86991c6218b36c1d19d4a2e9eb0ce3606eb485f8051602061221d833981519152610315565b3330146105dd5760405163e50434af60e01b815260040160405180910390fd5b5f805f80848060200190518101906105f59190611fb1565b50505093509350935093506106818a6001600160a01b031663b2016bd46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561063f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106639190611ec4565b73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4889868686611139565b506040516323b872dd60e01b81526001600160a01b038781166004830152306024830152604482018b90528b16906323b872dd906064015f604051808303815f87803b1580156106cf575f80fd5b505af11580156106e1573d5f803e3d5ffd5b50506040516370a0823160e01b815230600482015261079892507f0000000000000000000000000000000000000000000000000000000000000000915073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48906370a0823190602401602060405180830381865afa158015610758573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061077c9190611f3f565b73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb489190611340565b60405163eb02c30160e01b8152600481018a90525f906001600160a01b038c169063eb02c301906024016040805180830381865afa1580156107dc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108009190612092565b91508190506108148564e8d4a510006120c8565b106108dc5761082864e8d4a51000826120df565b60405163f415afd760e01b81526001600160a01b038d81166004830152602482018d9052600160ff1b604483018190526064830152600160848301529195507f00000000000000000000000000000000000000000000000000000000000000009091169063f415afd79060a4015b6020604051808303815f875af11580156108b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108d69190611f3f565b506109ac565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663f415afd78c8c6109168d6120fe565b61091f896120fe565b6040516001600160e01b031960e087901b1681526001600160a01b0390941660048501526024840192909252604483015260648201526001608482015260a4015b6020604051808303815f875af115801561097c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a09190611f3f565b506109ac8b8b87611403565b506040516323b872dd60e01b81523060048201526001600160a01b038781166024830152604482018b90528b16906323b872dd906064015f604051808303815f87803b1580156109fa575f80fd5b505af1158015610a0c573d5f803e3d5ffd5b50505050610a1a8a866114b4565b5f8a6001600160a01b031663b2016bd46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a57573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a7b9190611ec4565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610abf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae39190611f3f565b90506001600160a01b038b167f2a691206f32a9624672cbf15de7ebfcfabdd5ec6dab054b1e8a12f97df8b41528b610b1b8b85612118565b5f610b258e6120fe565b610b2e8a6120fe565b604080519586526020860194909452928401919091526060830152608082015260a00160405180910390a25050505050505050505050565b333014610b865760405163e50434af60e01b815260040160405180910390fd5b5f805f8084806020019051810190610b9e9190611fb1565b5050509350935093509350610c2a8a6001600160a01b031663b2016bd46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0c9190611ec4565b73085780639cc2cacd35e474e71f4d000e2405d8f689868686611139565b506040516323b872dd60e01b81526001600160a01b038781166004830152306024830152604482018b90528b16906323b872dd906064015f604051808303815f87803b158015610c78575f80fd5b505af1158015610c8a573d5f803e3d5ffd5b505060405163eb02c30160e01b8152600481018c90525f92506001600160a01b038d16915063eb02c301906024016040805180830381865afa158015610cd2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf69190612092565b915050808410610d6b5760405163c1c8f15b60e01b81526001600160a01b038c81166004830152602482018c9052600160ff1b60448301819052606483015291945084917f0000000000000000000000000000000000000000000000000000000000000000169063c1c8f15b90608401610896565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663c1c8f15b8c8c610da58d6120fe565b610dae896120fe565b6040516001600160e01b031960e087901b1681526001600160a01b039094166004850152602484019290925260448301526064820152608401610960565b7fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c17160805460ff60a01b1916600160a01b1790556040515f8051602061221d833981519152906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e0232b429086908690610e759083908890602001612159565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401610ea29392919061217c565b5f604051808303815f87803b158015610eb9575f80fd5b505af1158015610ecb573d5f803e3d5ffd5b50505050600501805460ff60a01b19169055505050565b60208401515f905f8051602061221d83398151915290610f23907fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c1715c9061172f565b610f3f576040516202e3a560eb1b815260040160405180910390fd5b835f03610f4f575f9150506110a8565b60608601515184925015610fed57610f6c85876020015186611755565b85602001516001600160a01b031663ed52d54c868689604001518a606001516040518563ffffffff1660e01b8152600401610faa94939291906121a2565b6020604051808303815f875af1158015610fc6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fea9190611f3f565b91505b85608001518210156110125760405163ca1d512b60e01b815260040160405180910390fd5b85516001600160a01b031661109057604051632e1a7d4d60e01b81526004810183905273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290632e1a7d4d906024015f604051808303815f87803b15801561106b575f80fd5b505af115801561107d573d5f803e3d5ffd5b5050505061108b8383611769565b6110a6565b85516110a6906001600160a01b03168484611801565b505b949350505050565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa1580156110f4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111189190611f3f565b90508015611134576111346001600160a01b0384168383611801565b505050565b5f845f0361114857505f611336565b5f8051602061221d8339815191526111807fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c1715c8561172f565b61119c576040516202e3a560eb1b815260040160405180910390fd5b6001600160a01b038085165f9081526020839052604090205416806111be5750835b6111c9898289611755565b6040516370a0823160e01b81523060048201526001600160a01b038916906370a0823190602401602060405180830381865afa15801561120b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061122f9190611f3f565b92505f856001600160a01b03168560405161124a9190612206565b5f604051808303815f865af19150503d805f8114611283576040519150601f19603f3d011682016040523d82523d5f602084013e611288565b606091505b505090508061129d576040513d805f833e8082fd5b6040516370a0823160e01b815230600482015284906001600160a01b038b16906370a0823190602401602060405180830381865afa1580156112e1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113059190611f3f565b61130f9190612118565b93508684101561133257604051633e961df760e21b815260040160405180910390fd5b5050505b9695505050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526113918482611832565b6113fd576040516001600160a01b0384811660248301525f60448301526113f391869182169063095ea7b3906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050506118d3565b6113fd84826118d3565b50505050565b60405163430da67f60e11b8152600481018390525f906001600160a01b0385169063861b4cfe90602401602060405180830381865afa158015611448573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061146c9190611f3f565b9050670fffffffffffffff82811690603c84901c168183108061148e57508083115b156114ac5760405163e3f43bf160e01b815260040160405180910390fd5b505050505050565b5f826001600160a01b031663c3df65466040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115159190611ec4565b90505f816001600160a01b031663ecf1a3a66040518163ffffffff1660e01b8152600401602060405180830381865afa158015611554573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115789190611ec4565b6040516370a0823160e01b81523060048201529091505f906001600160a01b038316906370a0823190602401602060405180830381865afa1580156115bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115e39190611f3f565b905080156117285761161f6001600160a01b0383167f000000000000000000000000000000000000000000000000000000000000000083611340565b604051633016a58160e01b81526001600160a01b038481166004830152602482018390525f60448301819052917f000000000000000000000000000000000000000000000000000000000000000090911690633016a581906064016020604051808303815f875af1158015611696573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116ba9190611f3f565b90505f805f878060200190518101906116d39190611fb1565b9650965096505050505061172273085780639cc2cacd35e474e71f4d000e2405d8f685612710846127106117079190612118565b611711908a6120c8565b61171b91906120df565b8686611934565b50505050505b5050505050565b6001600160a01b0381165f90815260018301602052604081205415155b90505b92915050565b6111346001600160a01b0384168383611340565b804710156117915760405163cd78605960e01b81523060048201526024015b60405180910390fd5b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146117da576040519150601f19603f3d011682016040523d82523d5f602084013e6117df565b606091505b505090508061113457604051630a12f52160e11b815260040160405180910390fd5b6040516001600160a01b0383811660248301526044820183905261113491859182169063a9059cbb906064016113c1565b5f805f846001600160a01b03168460405161184d9190612206565b5f604051808303815f865af19150503d805f8114611886576040519150601f19603f3d011682016040523d82523d5f602084013e61188b565b606091505b50915091508180156118b55750805115806118b55750808060200190518101906118b59190611ea5565b80156118ca57505f856001600160a01b03163b115b95945050505050565b5f6118e76001600160a01b03841683611a23565b905080515f1415801561190b5750808060200190518101906119099190611ea5565b155b1561113457604051635274afe760e01b81526001600160a01b0384166004820152602401611788565b5f845f0361194357505f6118ca565b61196e867f000000000000000000000000000000000000000000000000000000000000000087611755565b604051633b54b55360e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ed52d54c906119c09089908990889088906004016121a2565b6020604051808303815f875af11580156119dc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a009190611f3f565b9050838110156118ca57604051633e961df760e21b815260040160405180910390fd5b606061174c83835f845f80856001600160a01b03168486604051611a479190612206565b5f6040518083038185875af1925050503d805f8114611a81576040519150601f19603f3d011682016040523d82523d5f602084013e611a86565b606091505b5091509150611a96868383611aa2565b925050505b9392505050565b606082611ab757611ab282611afe565b611a9b565b8151158015611ace57506001600160a01b0384163b155b15611af757604051639996b31560e01b81526001600160a01b0385166004820152602401611788565b5080611a9b565b805115611b0e5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b634e487b7160e01b5f52604160045260245ffd5b60405160c0810167ffffffffffffffff81118282101715611b6157611b61611b2a565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611b9057611b90611b2a565b604052919050565b6001600160a01b0381168114611b27575f80fd5b8035611bb781611b98565b919050565b5f67ffffffffffffffff821115611bd557611bd5611b2a565b5060051b60200190565b5f82601f830112611bee575f80fd5b8135611c01611bfc82611bbc565b611b67565b8082825260208201915060208360051b860101925085831115611c22575f80fd5b602085015b83811015611c3f578035835260209283019201611c27565b5095945050505050565b5f67ffffffffffffffff821115611c6257611c62611b2a565b50601f01601f191660200190565b5f82601f830112611c7f575f80fd5b8135611c8d611bfc82611c49565b818152846020838601011115611ca1575f80fd5b816020850160208301375f918101602001919091529392505050565b5f8083601f840112611ccd575f80fd5b50813567ffffffffffffffff811115611ce4575f80fd5b602083019150836020828501011115611cfb575f80fd5b9250929050565b5f805f805f805f60c0888a031215611d18575f80fd5b873567ffffffffffffffff811115611d2e575f80fd5b880160c0818b031215611d3f575f80fd5b611d47611b3e565b611d5082611bac565b8152611d5e60208301611bac565b602082015260408281013590820152606082013567ffffffffffffffff811115611d86575f80fd5b611d928c828501611bdf565b6060830152506080828101359082015260a082013567ffffffffffffffff811115611dbb575f80fd5b611dc78c828501611c70565b60a0830152509750611ddd905060208901611bac565b955060408801359450606088013593506080880135925060a088013567ffffffffffffffff811115611e0d575f80fd5b611e198a828b01611cbd565b989b979a50959850939692959293505050565b5f805f805f8060c08789031215611e41575f80fd5b8635611e4c81611b98565b95506020870135945060408701359350606087013592506080870135611e7181611b98565b915060a087013567ffffffffffffffff811115611e8c575f80fd5b611e9889828a01611c70565b9150509295509295509295565b5f60208284031215611eb5575f80fd5b81518015158114611a9b575f80fd5b5f60208284031215611ed4575f80fd5b8151611a9b81611b98565b6001600160a01b0388811682526020820188905260408201879052606082018690528416608082015260c060a082018190528101829052818360e08301375f81830160e090810191909152601f909201601f191601019695505050505050565b5f60208284031215611f4f575f80fd5b5051919050565b5f82601f830112611f65575f80fd5b8151611f73611bfc82611bbc565b8082825260208201915060208360051b860101925085831115611f94575f80fd5b602085015b83811015611c3f578051835260209283019201611f99565b5f805f805f805f60e0888a031215611fc7575f80fd5b8751602089015160408a01519198509650611fe181611b98565b606089015190955067ffffffffffffffff811115611ffd575f80fd5b88015f601f82018b1361200e575f80fd5b815161201c611bfc82611c49565b8181528c6020838601011115612030575f80fd5b8160208501602083015e5f9181016020019190915260808b015160a08c0151919750955091505067ffffffffffffffff81111561206b575f80fd5b6120778a828b01611f56565b9250505f60c089015190508091505092959891949750929550565b5f80604083850312156120a3575f80fd5b505080516020909101519092909150565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761174f5761174f6120b4565b5f826120f957634e487b7160e01b5f52601260045260245ffd5b500490565b5f600160ff1b8201612112576121126120b4565b505f0390565b8181038181111561174f5761174f6120b4565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6001600160a01b03831681526040602082018190525f906110a89083018461212b565b60018060a01b0384168152826020820152606060408201525f6118ca606083018461212b565b6001600160a01b038516815260208082018590526040820184905260806060830181905283519083018190525f9184019060a0840190835b818110156121f85783518352602093840193909201916001016121da565b509098975050505050505050565b5f82518060208501845e5f92019182525091905056feac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c1715ba2646970667358221220069b6fb7cd3dbd9b12edadf749c054cc35a9b7223965ea8a52a52ecea326fd4064736f6c634300081a0033000000000000000000000000bbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb000000000000000000000000250893ca4ba5d05626c785e8da758026928fcd24000000000000000000000000acdc0ab51178d0ae8f70c1ead7d3cf5421fdd66d00000000000000000000000012af4529129303d7fbd2563e242c4a2890525912000000000000000000000000ac94b8ea0e3a080f0fa6ae89cc873d956f72aa3e