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
0x610120604052348015610010575f80fd5b5060405161242738038061242783398101604081905261002f91610072565b6001600160a01b03948516608052841660a05291831660c052821660e05216610100526100d3565b80516001600160a01b038116811461006d575f80fd5b919050565b5f805f805f60a08688031215610086575f80fd5b61008f86610057565b945061009d60208701610057565b93506100ab60408701610057565b92506100b960608701610057565b91506100c760808701610057565b90509295509295909350565b60805160a05160c05160e051610100516122d861014f5f395f81816119af01526119eb01525f818161166001526116b401525f8181610763015281816108cf0152818161094c01528181610da20152610ddb01525f81816101110152818161016a015281816103e8015261044101525f610ea001526122d85ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c806322d5d2ec1461004e578063af79b3fc14610063578063ccd164cb14610076578063cdac57b214610089575b5f80fd5b61006161005c366004611d68565b61009c565b005b610061610071366004611d68565b610373565b610061610084366004611e92565b610623565b610061610097366004611e92565b610bcc565b7fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c17160545f805160206122838339815191529060ff600160a81b909104165f19016100f857604051633ee5aeb560e01b815260040160405180910390fd5b60058101805460ff60a81b1916600160a81b179055333b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161580159061015057505f8111806101505750333214155b156101f857604051631846d2f560e31b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c23697a890602401602060405180830381865afa1580156101b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101db9190611f0b565b6101f857604051632c10e80160e21b815260040160405180910390fd5b5f886001600160a01b031663b2016bd46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610235573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102599190611f2a565b90506102ac81878b8b8b8b338c8c60405160240161027d9796959493929190611f45565b60408051601f198184030181529190526020810180516001600160e01b03166366d62bd960e11b179052610e52565b6040516370a0823160e01b81523060048201526001600160a01b038216906370a0823190602401602060405180830381865afa1580156102ee573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103129190611fa5565b96506103208a828933610f48565b5061035a73085780639cc2cacd35e474e71f4d000e2405d8f65f805160206122838339815191525b600501546001600160a01b0316611116565b5050600501805460ff60a81b1916905550505050505050565b7fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c17160545f805160206122838339815191529060ff600160a81b909104165f19016103cf57604051633ee5aeb560e01b815260040160405180910390fd5b60058101805460ff60a81b1916600160a81b179055333b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161580159061042757505f8111806104275750333214155b156104cf57604051631846d2f560e31b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c23697a890602401602060405180830381865afa15801561048e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104b29190611f0b565b6104cf57604051632c10e80160e21b815260040160405180910390fd5b5f886001600160a01b031663b2016bd46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561050c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105309190611f2a565b905061058381878b8b8b8b338c8c6040516024016105549796959493929190611f45565b60408051601f198184030181529190526020810180516001600160e01b031663ccd164cb60e01b179052610e52565b6040516370a0823160e01b81523060048201526001600160a01b038216906370a0823190602401602060405180830381865afa1580156105c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105e99190611fa5565b96506105f78a828933610f48565b5061035a73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb485f80516020612283833981519152610348565b3330146106435760405163e50434af60e01b815260040160405180910390fd5b5f805f808480602001905181019061065b9190612017565b50505093509350935093506106e78a6001600160a01b031663b2016bd46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106a5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106c99190611f2a565b73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb488986868661119f565b506040516323b872dd60e01b81526001600160a01b038781166004830152306024830152604482018b90528b16906323b872dd906064015f604051808303815f87803b158015610735575f80fd5b505af1158015610747573d5f803e3d5ffd5b50506040516370a0823160e01b81523060048201526107fe92507f0000000000000000000000000000000000000000000000000000000000000000915073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48906370a0823190602401602060405180830381865afa1580156107be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e29190611fa5565b73a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4891906113a6565b60405163eb02c30160e01b8152600481018a90525f906001600160a01b038c169063eb02c301906024016040805180830381865afa158015610842573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061086691906120f8565b915081905061087a8564e8d4a5100061212e565b106109425761088e64e8d4a5100082612145565b60405163f415afd760e01b81526001600160a01b038d81166004830152602482018d9052600160ff1b604483018190526064830152600160848301529195507f00000000000000000000000000000000000000000000000000000000000000009091169063f415afd79060a4015b6020604051808303815f875af1158015610918573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093c9190611fa5565b50610a12565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663f415afd78c8c61097c8d612164565b61098589612164565b6040516001600160e01b031960e087901b1681526001600160a01b0390941660048501526024840192909252604483015260648201526001608482015260a4015b6020604051808303815f875af11580156109e2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a069190611fa5565b50610a128b8b87611469565b506040516323b872dd60e01b81523060048201526001600160a01b038781166024830152604482018b90528b16906323b872dd906064015f604051808303815f87803b158015610a60575f80fd5b505af1158015610a72573d5f803e3d5ffd5b50505050610a808a8661151a565b5f8a6001600160a01b031663b2016bd46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610abd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae19190611f2a565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610b25573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b499190611fa5565b90506001600160a01b038b167f2a691206f32a9624672cbf15de7ebfcfabdd5ec6dab054b1e8a12f97df8b41528b610b818b8561217e565b5f610b8b8e612164565b610b948a612164565b604080519586526020860194909452928401919091526060830152608082015260a00160405180910390a25050505050505050505050565b333014610bec5760405163e50434af60e01b815260040160405180910390fd5b5f805f8084806020019051810190610c049190612017565b5050509350935093509350610c908a6001600160a01b031663b2016bd46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c4e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c729190611f2a565b73085780639cc2cacd35e474e71f4d000e2405d8f68986868661119f565b506040516323b872dd60e01b81526001600160a01b038781166004830152306024830152604482018b90528b16906323b872dd906064015f604051808303815f87803b158015610cde575f80fd5b505af1158015610cf0573d5f803e3d5ffd5b505060405163eb02c30160e01b8152600481018c90525f92506001600160a01b038d16915063eb02c301906024016040805180830381865afa158015610d38573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5c91906120f8565b915050808410610dd15760405163c1c8f15b60e01b81526001600160a01b038c81166004830152602482018c9052600160ff1b60448301819052606483015291945084917f0000000000000000000000000000000000000000000000000000000000000000169063c1c8f15b906084016108fc565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663c1c8f15b8c8c610e0b8d612164565b610e1489612164565b6040516001600160e01b031960e087901b1681526001600160a01b0390941660048501526024840192909252604483015260648201526084016109c6565b7fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c17160805460ff60a01b1916600160a01b1790556040515f80516020612283833981519152906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e0232b429086908690610edb90839088906020016121bf565b6040516020818303038152906040526040518463ffffffff1660e01b8152600401610f08939291906121e2565b5f604051808303815f87803b158015610f1f575f80fd5b505af1158015610f31573d5f803e3d5ffd5b50505050600501805460ff60a01b19169055505050565b60208401515f905f8051602061228383398151915290610f89907fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c1715c90611795565b610fa5576040516202e3a560eb1b815260040160405180910390fd5b835f03610fb5575f91505061110e565b6060860151518492501561105357610fd2858760200151866117bb565b85602001516001600160a01b031663ed52d54c868689604001518a606001516040518563ffffffff1660e01b81526004016110109493929190612208565b6020604051808303815f875af115801561102c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110509190611fa5565b91505b85608001518210156110785760405163ca1d512b60e01b815260040160405180910390fd5b85516001600160a01b03166110f657604051632e1a7d4d60e01b81526004810183905273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290632e1a7d4d906024015f604051808303815f87803b1580156110d1575f80fd5b505af11580156110e3573d5f803e3d5ffd5b505050506110f183836117cf565b61110c565b855161110c906001600160a01b03168484611867565b505b949350505050565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa15801561115a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061117e9190611fa5565b9050801561119a5761119a6001600160a01b0384168383611867565b505050565b5f845f036111ae57505f61139c565b5f805160206122838339815191526111e67fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c1715c85611795565b611202576040516202e3a560eb1b815260040160405180910390fd5b6001600160a01b038085165f9081526020839052604090205416806112245750835b61122f8982896117bb565b6040516370a0823160e01b81523060048201526001600160a01b038916906370a0823190602401602060405180830381865afa158015611271573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112959190611fa5565b92505f856001600160a01b0316856040516112b0919061226c565b5f604051808303815f865af19150503d805f81146112e9576040519150601f19603f3d011682016040523d82523d5f602084013e6112ee565b606091505b5050905080611303576040513d805f833e8082fd5b6040516370a0823160e01b815230600482015284906001600160a01b038b16906370a0823190602401602060405180830381865afa158015611347573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061136b9190611fa5565b611375919061217e565b93508684101561139857604051633e961df760e21b815260040160405180910390fd5b5050505b9695505050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526113f78482611898565b611463576040516001600160a01b0384811660248301525f604483015261145991869182169063095ea7b3906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050611939565b6114638482611939565b50505050565b60405163430da67f60e11b8152600481018390525f906001600160a01b0385169063861b4cfe90602401602060405180830381865afa1580156114ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114d29190611fa5565b9050670fffffffffffffff82811690603c84901c16818310806114f457508083115b156115125760405163e3f43bf160e01b815260040160405180910390fd5b505050505050565b5f826001600160a01b031663c3df65466040518163ffffffff1660e01b8152600401602060405180830381865afa158015611557573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061157b9190611f2a565b90505f816001600160a01b031663ecf1a3a66040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115ba573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115de9190611f2a565b6040516370a0823160e01b81523060048201529091505f906001600160a01b038316906370a0823190602401602060405180830381865afa158015611625573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116499190611fa5565b9050801561178e576116856001600160a01b0383167f0000000000000000000000000000000000000000000000000000000000000000836113a6565b604051633016a58160e01b81526001600160a01b038481166004830152602482018390525f60448301819052917f000000000000000000000000000000000000000000000000000000000000000090911690633016a581906064016020604051808303815f875af11580156116fc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117209190611fa5565b90505f805f878060200190518101906117399190612017565b9650965096505050505061178873085780639cc2cacd35e474e71f4d000e2405d8f6856127108461271061176d919061217e565b611777908a61212e565b6117819190612145565b868661199a565b50505050505b5050505050565b6001600160a01b0381165f90815260018301602052604081205415155b90505b92915050565b61119a6001600160a01b03841683836113a6565b804710156117f75760405163cd78605960e01b81523060048201526024015b60405180910390fd5b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611840576040519150601f19603f3d011682016040523d82523d5f602084013e611845565b606091505b505090508061119a57604051630a12f52160e11b815260040160405180910390fd5b6040516001600160a01b0383811660248301526044820183905261119a91859182169063a9059cbb90606401611427565b5f805f846001600160a01b0316846040516118b3919061226c565b5f604051808303815f865af19150503d805f81146118ec576040519150601f19603f3d011682016040523d82523d5f602084013e6118f1565b606091505b509150915081801561191b57508051158061191b57508080602001905181019061191b9190611f0b565b801561193057505f856001600160a01b03163b115b95945050505050565b5f61194d6001600160a01b03841683611a89565b905080515f1415801561197157508080602001905181019061196f9190611f0b565b155b1561119a57604051635274afe760e01b81526001600160a01b03841660048201526024016117ee565b5f845f036119a957505f611930565b6119d4867f0000000000000000000000000000000000000000000000000000000000000000876117bb565b604051633b54b55360e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ed52d54c90611a26908990899088908890600401612208565b6020604051808303815f875af1158015611a42573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a669190611fa5565b90508381101561193057604051633e961df760e21b815260040160405180910390fd5b60606117b283835f845f80856001600160a01b03168486604051611aad919061226c565b5f6040518083038185875af1925050503d805f8114611ae7576040519150601f19603f3d011682016040523d82523d5f602084013e611aec565b606091505b5091509150611afc868383611b08565b925050505b9392505050565b606082611b1d57611b1882611b64565b611b01565b8151158015611b3457506001600160a01b0384163b155b15611b5d57604051639996b31560e01b81526001600160a01b03851660048201526024016117ee565b5080611b01565b805115611b745780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b634e487b7160e01b5f52604160045260245ffd5b60405160c0810167ffffffffffffffff81118282101715611bc757611bc7611b90565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611bf657611bf6611b90565b604052919050565b6001600160a01b0381168114611b8d575f80fd5b8035611c1d81611bfe565b919050565b5f67ffffffffffffffff821115611c3b57611c3b611b90565b5060051b60200190565b5f82601f830112611c54575f80fd5b8135611c67611c6282611c22565b611bcd565b8082825260208201915060208360051b860101925085831115611c88575f80fd5b602085015b83811015611ca5578035835260209283019201611c8d565b5095945050505050565b5f67ffffffffffffffff821115611cc857611cc8611b90565b50601f01601f191660200190565b5f82601f830112611ce5575f80fd5b8135611cf3611c6282611caf565b818152846020838601011115611d07575f80fd5b816020850160208301375f918101602001919091529392505050565b5f8083601f840112611d33575f80fd5b50813567ffffffffffffffff811115611d4a575f80fd5b602083019150836020828501011115611d61575f80fd5b9250929050565b5f805f805f805f60c0888a031215611d7e575f80fd5b873567ffffffffffffffff811115611d94575f80fd5b880160c0818b031215611da5575f80fd5b611dad611ba4565b611db682611c12565b8152611dc460208301611c12565b602082015260408281013590820152606082013567ffffffffffffffff811115611dec575f80fd5b611df88c828501611c45565b6060830152506080828101359082015260a082013567ffffffffffffffff811115611e21575f80fd5b611e2d8c828501611cd6565b60a0830152509750611e43905060208901611c12565b955060408801359450606088013593506080880135925060a088013567ffffffffffffffff811115611e73575f80fd5b611e7f8a828b01611d23565b989b979a50959850939692959293505050565b5f805f805f8060c08789031215611ea7575f80fd5b8635611eb281611bfe565b95506020870135945060408701359350606087013592506080870135611ed781611bfe565b915060a087013567ffffffffffffffff811115611ef2575f80fd5b611efe89828a01611cd6565b9150509295509295509295565b5f60208284031215611f1b575f80fd5b81518015158114611b01575f80fd5b5f60208284031215611f3a575f80fd5b8151611b0181611bfe565b6001600160a01b0388811682526020820188905260408201879052606082018690528416608082015260c060a082018190528101829052818360e08301375f81830160e090810191909152601f909201601f191601019695505050505050565b5f60208284031215611fb5575f80fd5b5051919050565b5f82601f830112611fcb575f80fd5b8151611fd9611c6282611c22565b8082825260208201915060208360051b860101925085831115611ffa575f80fd5b602085015b83811015611ca5578051835260209283019201611fff565b5f805f805f805f60e0888a03121561202d575f80fd5b8751602089015160408a0151919850965061204781611bfe565b606089015190955067ffffffffffffffff811115612063575f80fd5b88015f601f82018b13612074575f80fd5b8151612082611c6282611caf565b8181528c6020838601011115612096575f80fd5b8160208501602083015e5f9181016020019190915260808b015160a08c0151919750955091505067ffffffffffffffff8111156120d1575f80fd5b6120dd8a828b01611fbc565b9250505f60c089015190508091505092959891949750929550565b5f8060408385031215612109575f80fd5b505080516020909101519092909150565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176117b5576117b561211a565b5f8261215f57634e487b7160e01b5f52601260045260245ffd5b500490565b5f600160ff1b82016121785761217861211a565b505f0390565b818103818111156117b5576117b561211a565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6001600160a01b03831681526040602082018190525f9061110e90830184612191565b60018060a01b0384168152826020820152606060408201525f6119306060830184612191565b6001600160a01b038516815260208082018590526040820184905260806060830181905283519083018190525f9184019060a0840190835b8181101561225e578351835260209384019390920191600101612240565b509098975050505050505050565b5f82518060208501845e5f92019182525091905056feac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c1715ba26469706673582212201cff70eab169e25d80ebc6dce540a733d60e1178956ff92beb9ecb3c33edf12c64736f6c634300081a0033000000000000000000000000bbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb000000000000000000000000250893ca4ba5d05626c785e8da758026928fcd24000000000000000000000000acdc0ab51178d0ae8f70c1ead7d3cf5421fdd66d00000000000000000000000012af4529129303d7fbd2563e242c4a28905259120000000000000000000000000000000000000000000000000000000000000000