0 txs
77 calls
constructor
constructor(address _morpho, address _poolManager, address _whitelist)
functions
closeOrRemoveShortPositionFlashLoan
nonpayablefunction closeOrRemoveShortPositionFlashLoan(tuple params, address pool, uint256 positionId, uint256 fxUSDWithdrawAmount, uint256 debtTokenBorrowAmount, bytes data)
onCloseOrRemoveShortPositionFlashLoan
nonpayablefunction onCloseOrRemoveShortPositionFlashLoan(address pool, uint256 position, uint256 fxUSDWithdrawAmount, uint256 debtTokenBorrowAmount, address recipient, bytes data)
onOpenOrAddShortPositionFlashLoan
nonpayablefunction onOpenOrAddShortPositionFlashLoan(address pool, uint256 position, uint256 fxUSDSupplyAmount, uint256 debtTokenBorrowAmount, address recipient, bytes data)
openOrAddShortPositionFlashLoan
payablefunction openOrAddShortPositionFlashLoan(tuple params, address pool, uint256 positionId, uint256 debtTokenBorrowAmount, bytes data) payable
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()
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
0x60e060405234801561000f575f80fd5b5060405161224738038061224783398101604081905261002e91610065565b6001600160a01b03928316608052821660a0521660c0526100a5565b80516001600160a01b0381168114610060575f80fd5b919050565b5f805f60608486031215610077575f80fd5b6100808461004a565b925061008e6020850161004a565b915061009c6040850161004a565b90509250925092565b60805160a05160c0516121556100f25f395f81816102030152818161025d0152818161092401528181610a1d0152610ac101525f818161044d015261068901525f61123101526121555ff3fe60806040526004361061003e575f3560e01c80634ca5e33d1461004257806399414c1014610063578063ad0acfdc14610076578063c9a89af114610095575b5f80fd5b34801561004d575f80fd5b5061006161005c366004611a4f565b6100b4565b005b610061610071366004611b0b565b6103b2565b348015610081575f80fd5b50610061610090366004611c9d565b6105ee565b3480156100a0575f80fd5b506100616100af366004611a4f565b61087b565b3330146100d45760405163e50434af60e01b815260040160405180910390fd5b5f805f80848060200190518101906100ec9190611dc3565b93509350935093505f8890506101798b6001600160a01b031663f8d898986040518163ffffffff1660e01b8152600401602060405180830381865afa158015610137573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061015b9190611e5e565b73085780639cc2cacd35e474e71f4d000e2405d8f68a878787610c67565b610183908a611e8d565b985089156101e9576040516323b872dd60e01b81526001600160a01b038c16906323b872dd906101bb908a9030908f90600401611ea0565b5f604051808303815f87803b1580156101d2575f80fd5b505af11580156101e4573d5f803e3d5ffd5b505050505b61022873085780639cc2cacd35e474e71f4d000e2405d8f67f00000000000000000000000000000000000000000000000000000000000000008b610e6e565b620f424061023989620f4241611ec4565b6102439190611edb565b60405163c1c8f15b60e01b81529098506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c1c8f15b90610298908e908e908e908e90600401611efa565b6020604051808303815f875af11580156102b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102d89190611f20565b99506102e58b8b87610e87565b6040516323b872dd60e01b81526001600160a01b038c16906323b872dd906103159030908b908f90600401611ea0565b5f604051808303815f87803b15801561032c575f80fd5b505af115801561033e573d5f803e3d5ffd5b505050508a6001600160a01b03167f2a691206f32a9624672cbf15de7ebfcfabdd5ec6dab054b1e8a12f97df8b41528b8361037890611f37565b6040805192835260208301919091525f90820152606081018c9052608081018b905260a00160405180910390a25050505050505050505050565b7fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c17160545f805160206121008339815191529060ff600160a81b909104165f190161040e57604051633ee5aeb560e01b815260040160405180910390fd5b60058101805460ff60a81b1916600160a81b179055333b801515806104335750333214155b156104db57604051631846d2f560e31b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c23697a890602401602060405180830381865afa15801561049a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104be9190611f51565b6104db57604051632c10e80160e21b815260040160405180910390fd5b5f6104fa8973085780639cc2cacd35e474e71f4d000e2405d8f6610f38565b90505f886001600160a01b031663f8d898986040518163ffffffff1660e01b8152600401602060405180830381865afa158015610539573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061055d9190611e5e565b90506105b081888b8b868c338d8d6040516024016105819796959493929190611f70565b60408051601f198184030181529190526020810180516001600160e01b0316634ca5e33d60e01b1790526111e3565b6105d5815f805160206121008339815191525b600501546001600160a01b03166112d9565b505050600501805460ff60a81b19169055505050505050565b7fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c17160545f805160206121008339815191529060ff600160a81b909104165f190161064a57604051633ee5aeb560e01b815260040160405180910390fd5b60058101805460ff60a81b1916600160a81b179055333b8015158061066f5750333214155b1561071757604051631846d2f560e31b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c23697a890602401602060405180830381865afa1580156106d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fa9190611f51565b61071757604051632c10e80160e21b815260040160405180910390fd5b5f886001600160a01b031663f8d898986040518163ffffffff1660e01b8152600401602060405180830381865afa158015610754573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107789190611e5e565b90506107cb81878b8b8b8b338c8c60405160240161079c9796959493929190611f70565b60408051601f198184030181529190526020810180516001600160e01b031663c9a89af160e01b1790526111e3565b6040516370a0823160e01b815230600482015261084a908b9073085780639cc2cacd35e474e71f4d000e2405d8f69081906370a0823190602401602060405180830381865afa158015610820573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108449190611f20565b3361135d565b50610862815f805160206121008339815191526105c3565b5050600501805460ff60a81b1916905550505050505050565b33301461089b5760405163e50434af60e01b815260040160405180910390fd5b5f805f80848060200190518101906108b39190611dc3565b93509350935093505f8a6001600160a01b031663f8d898986040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108f8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061091c9190611e5e565b9050610949817f00000000000000000000000000000000000000000000000000000000000000008a610e6e565b6040516323b872dd60e01b81526001600160a01b038c16906323b872dd90610979908a9030908f90600401611ea0565b5f604051808303815f87803b158015610990575f80fd5b505af11580156109a2573d5f803e3d5ffd5b505060405163eb02c30160e01b8152600481018d90525f92506001600160a01b038e16915063eb02c301906024016040805180830381865afa1580156109ea573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a0e9190611fd0565b509050808a10610ab7578099507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c1c8f15b8d8d600160ff1b806040518563ffffffff1660e01b8152600401610a719493929190611efa565b6020604051808303815f875af1158015610a8d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab19190611f20565b50610b65565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663c1c8f15b8d8d610af18e611f37565b610afa8e611f37565b6040518563ffffffff1660e01b8152600401610b199493929190611efa565b6020604051808303815f875af1158015610b35573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b599190611f20565b50610b658c8c88610e87565b8b6001600160a01b03166323b872dd308a8e6040518463ffffffff1660e01b8152600401610b9593929190611ea0565b5f604051808303815f87803b158015610bac575f80fd5b505af1158015610bbe573d5f803e3d5ffd5b50505050610be473085780639cc2cacd35e474e71f4d000e2405d8f683878c8888610c67565b506001600160a01b038c167f2a691206f32a9624672cbf15de7ebfcfabdd5ec6dab054b1e8a12f97df8b41528c610c1b888e611ff2565b5f610c258f611f37565b610c2e8f611f37565b604080519586526020860194909452928401919091526060830152608082015260a00160405180910390a2505050505050505050505050565b5f845f03610c7657505f610e64565b5f80516020612100833981519152610cae7fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c1715c8561152b565b610cca576040516202e3a560eb1b815260040160405180910390fd5b6001600160a01b038085165f908152602083905260409020541680610cec5750835b610cf7898289610e6e565b6040516370a0823160e01b81523060048201526001600160a01b038916906370a0823190602401602060405180830381865afa158015610d39573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5d9190611f20565b92505f856001600160a01b031685604051610d789190612005565b5f604051808303815f865af19150503d805f8114610db1576040519150601f19603f3d011682016040523d82523d5f602084013e610db6565b606091505b5050905080610dcb576040513d805f833e8082fd5b6040516370a0823160e01b815230600482015284906001600160a01b038b16906370a0823190602401602060405180830381865afa158015610e0f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e339190611f20565b610e3d9190611ff2565b935086841015610e6057604051633e961df760e21b815260040160405180910390fd5b5050505b9695505050505050565b610e826001600160a01b038416838361154f565b505050565b60405163430da67f60e11b8152600481018390525f906001600160a01b0385169063861b4cfe90602401602060405180830381865afa158015610ecc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef09190611f20565b9050670fffffffffffffff82811690603c84901c1681831080610f1257508083115b15610f305760405163e3f43bf160e01b815260040160405180910390fd5b505050505050565b60408201515f905f8051602061210083398151915290610f79907fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c1715c9061152b565b610f95576040516202e3a560eb1b815260040160405180910390fd5b610fa7845f0151308660200151611612565b506040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610fea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061100e9190611f20565b9150826001600160a01b0316845f01516001600160a01b03160361103257506111dd565b83515f906001600160a01b03166110b25784604001516001600160a01b0316856020015186606001516040516110689190612005565b5f6040518083038185875af1925050503d805f81146110a2576040519150601f19603f3d011682016040523d82523d5f602084013e6110a7565b606091505b505080915050611155565b6040808601516001600160a01b039081165f9081526020859052919091205416806110de575060408501515b6110f0865f0151828860200151610e6e565b85604001516001600160a01b031686606001516040516111109190612005565b5f604051808303815f865af19150503d805f8114611149576040519150601f19603f3d011682016040523d82523d5f602084013e61114e565b606091505b5090925050505b80611166576040513d805f833e8082fd5b6040516370a0823160e01b815230600482015283906001600160a01b038616906370a0823190602401602060405180830381865afa1580156111aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ce9190611f20565b6111d89190611ff2565b925050505b92915050565b7fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c17160805460ff60a01b1916600160a01b1790556040515f80516020612100833981519152906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e0232b42908690869061126c9083908890602001612049565b6040516020818303038152906040526040518463ffffffff1660e01b81526004016112999392919061206c565b5f604051808303815f87803b1580156112b0575f80fd5b505af11580156112c2573d5f803e3d5ffd5b50505050600501805460ff60a01b19169055505050565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa15801561131d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113419190611f20565b90508015610e8257610e826001600160a01b0384168383611662565b60208401515f905f805160206121008339815191529061139e907fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c1715c9061152b565b6113ba576040516202e3a560eb1b815260040160405180910390fd5b835f036113ca575f915050611523565b60608601515184925015611468576113e785876020015186610e6e565b85602001516001600160a01b031663ed52d54c868689604001518a606001516040518563ffffffff1660e01b8152600401611425949392919061209b565b6020604051808303815f875af1158015611441573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114659190611f20565b91505b856080015182101561148d5760405163ca1d512b60e01b815260040160405180910390fd5b85516001600160a01b031661150b57604051632e1a7d4d60e01b81526004810183905273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290632e1a7d4d906024015f604051808303815f87803b1580156114e6575f80fd5b505af11580156114f8573d5f803e3d5ffd5b505050506115068383611693565b611521565b8551611521906001600160a01b03168484611662565b505b949350505050565b6001600160a01b0381165f90815260018301602052604081205415155b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526115a0848261172b565b61160c576040516001600160a01b0384811660248301525f604483015261160291869182169063095ea7b3906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050506117c8565b61160c84826117c8565b50505050565b5f6001600160a01b038416611646578134146116415760405163ed39c7cb60e01b815260040160405180910390fd5b61165b565b61165b6001600160a01b038516338585611829565b5092915050565b6040516001600160a01b03838116602483015260448201839052610e8291859182169063a9059cbb906064016115d0565b804710156116bb5760405163cd78605960e01b81523060048201526024015b60405180910390fd5b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611704576040519150601f19603f3d011682016040523d82523d5f602084013e611709565b606091505b5050905080610e8257604051630a12f52160e11b815260040160405180910390fd5b5f805f846001600160a01b0316846040516117469190612005565b5f604051808303815f865af19150503d805f811461177f576040519150601f19603f3d011682016040523d82523d5f602084013e611784565b606091505b50915091508180156117ae5750805115806117ae5750808060200190518101906117ae9190611f51565b80156111d85750505050506001600160a01b03163b151590565b5f6117dc6001600160a01b03841683611851565b905080515f141580156118005750808060200190518101906117fe9190611f51565b155b15610e8257604051635274afe760e01b81526001600160a01b03841660048201526024016116b2565b61160c84856001600160a01b03166323b872dd8686866040516024016115d093929190611ea0565b606061154883835f845f80856001600160a01b031684866040516118759190612005565b5f6040518083038185875af1925050503d805f81146118af576040519150601f19603f3d011682016040523d82523d5f602084013e6118b4565b606091505b5091509150610e648683836060826118d4576118cf8261191b565b611548565b81511580156118eb57506001600160a01b0384163b155b1561191457604051639996b31560e01b81526001600160a01b03851660048201526024016116b2565b5080611548565b80511561192b5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b6001600160a01b0381168114611944575f80fd5b803561196681611947565b919050565b634e487b7160e01b5f52604160045260245ffd5b60405160c081016001600160401b03811182821017156119a1576119a161196b565b60405290565b604051601f8201601f191681016001600160401b03811182821017156119cf576119cf61196b565b604052919050565b5f6001600160401b038211156119ef576119ef61196b565b50601f01601f191660200190565b5f82601f830112611a0c575f80fd5b8135611a1f611a1a826119d7565b6119a7565b818152846020838601011115611a33575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f8060c08789031215611a64575f80fd5b8635611a6f81611947565b95506020870135945060408701359350606087013592506080870135611a9481611947565b915060a08701356001600160401b03811115611aae575f80fd5b611aba89828a016119fd565b9150509295509295509295565b5f8083601f840112611ad7575f80fd5b5081356001600160401b03811115611aed575f80fd5b602083019150836020828501011115611b04575f80fd5b9250929050565b5f805f805f8060a08789031215611b20575f80fd5b86356001600160401b03811115611b35575f80fd5b870160c0818a031215611b46575f80fd5b611b4e61197f565b611b578261195b565b815260208281013590820152611b6f6040830161195b565b604082015260608201356001600160401b03811115611b8c575f80fd5b611b988b8285016119fd565b6060830152506080828101359082015260a08201356001600160401b03811115611bc0575f80fd5b611bcc8b8285016119fd565b60a0830152509650611be290506020880161195b565b9450604087013593506060870135925060808701356001600160401b03811115611c0a575f80fd5b611c1689828a01611ac7565b979a9699509497509295939492505050565b5f82601f830112611c37575f80fd5b81356001600160401b03811115611c5057611c5061196b565b8060051b611c60602082016119a7565b91825260208185018101929081019086841115611c7b575f80fd5b6020860192505b83831015610e64578235825260209283019290910190611c82565b5f805f805f805f60c0888a031215611cb3575f80fd5b87356001600160401b03811115611cc8575f80fd5b880160c0818b031215611cd9575f80fd5b611ce161197f565b611cea8261195b565b8152611cf86020830161195b565b60208201526040828101359082015260608201356001600160401b03811115611d1f575f80fd5b611d2b8c828501611c28565b6060830152506080828101359082015260a08201356001600160401b03811115611d53575f80fd5b611d5f8c8285016119fd565b60a0830152509750611d7590506020890161195b565b955060408801359450606088013593506080880135925060a08801356001600160401b03811115611da4575f80fd5b611db08a828b01611ac7565b989b979a50959850939692959293505050565b5f805f8060808587031215611dd6575f80fd5b8451602086015160408701519195509350611df081611947565b60608601519092506001600160401b03811115611e0b575f80fd5b8501601f81018713611e1b575f80fd5b8051611e29611a1a826119d7565b818152886020838501011115611e3d575f80fd5b8160208401602083015e5f6020838301015280935050505092959194509250565b5f60208284031215611e6e575f80fd5b815161154881611947565b634e487b7160e01b5f52601160045260245ffd5b808201808211156111dd576111dd611e79565b6001600160a01b039384168152919092166020820152604081019190915260600190565b80820281158282048414176111dd576111dd611e79565b5f82611ef557634e487b7160e01b5f52601260045260245ffd5b500490565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b5f60208284031215611f30575f80fd5b5051919050565b5f600160ff1b8201611f4b57611f4b611e79565b505f0390565b5f60208284031215611f61575f80fd5b81518015158114611548575f80fd5b6001600160a01b0388811682526020820188905260408201879052606082018690528416608082015260c060a082018190528101829052818360e08301375f81830160e090810191909152601f909201601f191601019695505050505050565b5f8060408385031215611fe1575f80fd5b505080516020909101519092909150565b818103818111156111dd576111dd611e79565b5f82518060208501845e5f920191825250919050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6001600160a01b03831681526040602082018190525f906115239083018461201b565b60018060a01b0384168152826020820152606060408201525f612092606083018461201b565b95945050505050565b6001600160a01b038516815260208082018590526040820184905260806060830181905283519083018190525f9184019060a0840190835b818110156120f15783518352602093840193909201916001016120d3565b50909897505050505050505056feac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c1715ba264697066735822122069e50150652033ff958fdaabc2bda0a55e9b153f84bf40e8c091ee0cd025812764736f6c634300081a0033000000000000000000000000bbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb000000000000000000000000acdc0ab51178d0ae8f70c1ead7d3cf5421fdd66d000000000000000000000000ac94b8ea0e3a080f0fa6ae89cc873d956f72aa3e