0 txs
1 call
constructor
No constructor.
functions
loop
nonpayablefunction loop(address morpho, tuple morphoMarketParams, tuple loopInfo)
uniswapV3SwapCallback
nonpayablefunction uniswapV3SwapCallback(int256 amount0Delta, int256 amount1Delta, bytes data)
withdrawBackingToken
nonpayablefunction withdrawBackingToken(address morpho, tuple morphoMarketParams, uint256 amount)
events
LoopShortExecuted
event LoopShortExecuted(address indexed sender, address indexed exposureToken, address indexed backingToken, uint256 exposureAmountIncrease, uint256 backingAmountIncrease, uint256 exposureTokensSold, uint256 backingTokensBought, bytes32 borrowMarketId)
WithdrawBackingTokenFromShort
event WithdrawBackingTokenFromShort(address indexed sender, address indexed exposureToken, address indexed backingToken, uint256 amount, bytes32 borrowMarketId)
errors
InvalidCaller
error InvalidCaller()
InvalidMarketParams
error InvalidMarketParams()
ReentrantCall
error ReentrantCall()
SwapTooExpensive
error SwapTooExpensive(address token, uint256 minAmountOut, uint256 actualAmountOut)
UnrecognizedChain
error UnrecognizedChain(uint256)
creation bytecode
0x608060405234601c57600e6020565b6126ea61002b82396126ea90f35b6026565b60405190565b5f80fdfe60806040526004361015610013575b610488565b61001d5f3561004c565b806318a2bbb914610047578063c1472983146100425763fa461e330361000e57610451565b61035a565b6101ff565b60e01c90565b60405190565b5f80fd5b5f80fd5b5f80fd5b73ffffffffffffffffffffffffffffffffffffffff1690565b61008690610064565b90565b6100928161007d565b0361009957565b5f80fd5b905035906100aa82610089565b565b5f80fd5b601f801991011690565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b906100f1906100b0565b810190811067ffffffffffffffff82111761010b57604052565b6100ba565b9061012361011c610052565b92836100e7565b565b90565b61013181610125565b0361013857565b5f80fd5b9050359061014982610128565b565b919060a0838203126101bb576101b49061016560a0610110565b93610172825f830161009d565b5f860152610183826020830161009d565b6020860152610195826040830161009d565b60408601526101a7826060830161009d565b606086015260800161013c565b6080830152565b6100ac565b909160e0828403126101f5576101f26101db845f850161009d565b936101e9816020860161014b565b9360c00161013c565b90565b61005c565b5f0190565b3461022e576102186102123660046101c0565b91610635565b610220610052565b8061022a816101fa565b0390f35b610058565b62ffffff1690565b61024481610233565b0361024b57565b5f80fd5b9050359061025c8261023b565b565b151590565b61026c8161025e565b0361027357565b5f80fd5b9050359061028482610263565b565b919060e08382031261031a57610313906102a060e0610110565b936102ad825f830161009d565b5f8601526102be826020830161009d565b60208601526102d0826040830161024f565b60408601526102e2826060830161013c565b60608601526102f4826080830161013c565b60808601526103068260a0830161013c565b60a086015260c001610277565b60c0830152565b6100ac565b90916101a0828403126103555761035261033b845f850161009d565b93610349816020860161014b565b9360c001610286565b90565b61005c565b346103895761037361036d36600461031f565b91610bf2565b61037b610052565b80610385816101fa565b0390f35b610058565b90565b61039a8161038e565b036103a157565b5f80fd5b905035906103b282610391565b565b5f80fd5b5f80fd5b5f80fd5b909182601f830112156103fa5781359167ffffffffffffffff83116103f55760200192600183028401116103f057565b6103bc565b6103b8565b6103b4565b9160608383031261044c57610416825f85016103a5565b9261042483602083016103a5565b92604082013567ffffffffffffffff81116104475761044392016103c0565b9091565b610060565b61005c565b346104835761046d6104643660046103ff565b92919091611280565b610475610052565b8061047f816101fa565b0390f35b610058565b5f80fd5b90565b6104a361049e6104a892610064565b61048c565b610064565b90565b6104b49061048f565b90565b6104c0906104ab565b90565b6104cc9061048f565b90565b6104d8906104c3565b90565b6104e4906104c3565b90565b5f80fd5b60e01b90565b5f9103126104fb57565b61005c565b6105099061007d565b9052565b61051690610125565b9052565b90608080610572936105325f8201515f860190610500565b61054460208201516020860190610500565b61055660408201516040860190610500565b61056860608201516060860190610500565b015191019061050d565b565b61057d90610125565b9052565b61058a9061007d565b9052565b6105c46105cb946105ba60e0949897956105b061010086019a5f87019061051a565b60a0850190610574565b60c0830190610581565b0190610581565b565b6105d5610052565b3d5f823e3d90fd5b6105e7905161007d565b90565b90565b6105f6906105ea565b90565b610602906104c3565b90565b61060e906105ea565b9052565b91602061063392949361062c60408201965f830190610574565b0190610605565b565b610644610649919392936104b7565b6104cf565b638720316d83839261065a306104db565b610663306104db565b823b1561075e575f9461069486926106899461067d610052565b998a98899788966104eb565b86526004860161058e565b03925af180156107595761072d575b506106ad306104db565b6106b85f84016105dd565b906106d76106d26106cb602087016105dd565b949561167b565b6105ed565b61071361070d6107077f82ab2c2164f3297c303ce6bdcfcb6fc5005f61b521ec6b7a168f874714452245946105f9565b946105f9565b946105f9565b9461072861071f610052565b92839283610612565b0390a4565b61074c905f3d8111610752575b61074481836100e7565b8101906104f1565b5f6106a3565b503d61073a565b6105cd565b6104e7565b61076d905161025e565b90565b6107799061048f565b90565b61078590610770565b90565b610791906104c3565b90565b905051906107a182610128565b565b906020828203126107bc576107b9915f01610794565b90565b61005c565b91906107d4905f60208501940190610581565b565b6107e09051610125565b90565b906107ed90610125565b9052565b6107fb9051610233565b90565b6108079061048f565b90565b610813906107fe565b90565b61081f906104c3565b90565b90565b61083961083461083e92610822565b61048c565b610064565b90565b61085e73fffd8963efd1fc6a506488495d951d5263988d26610825565b90565b90565b61087861087361087d92610861565b61048c565b610064565b90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b6108b96108bf91610064565b91610064565b90039073ffffffffffffffffffffffffffffffffffffffff82116108df57565b610880565b90565b6108fb6108f6610900926108e4565b61048c565b610064565b90565b6109116401000276a36108e7565b90565b61092061092691610064565b91610064565b019073ffffffffffffffffffffffffffffffffffffffff821161094557565b610880565b6109546080610110565b90565b52565b906109649061007d565b9052565b52565b52565b61097790610233565b9052565b906040806109af936109935f8201515f860190610500565b6109a560208201516020860190610500565b015191019061096e565b565b90608080610a09936109c95f8201515f860190610500565b6109db60208201516020860190610500565b6109ed60408201516040860190610500565b6109ff60608201516060860190610500565b015191019061050d565b565b610a149061025e565b9052565b9060c080610a9493610a305f8201515f860190610500565b610a4260208201516020860190610500565b610a546040820151604086019061096e565b610a666060820151606086019061050d565b610a786080820151608086019061050d565b610a8a60a082015160a086019061050d565b0151910190610a0b565b565b906101206060610add93610ab05f8201515f86019061097b565b610ac1602082015183860190610500565b610ad3604082015160808601906109b1565b0151910190610a18565b565b9190610af3905f6102008501940190610a96565b565b90505190610b0282610391565b565b9190604083820312610b2c5780610b20610b29925f8601610af5565b93602001610af5565b90565b61005c565b610b3a9061025e565b9052565b610b479061038e565b9052565b610b5490610064565b9052565b5190565b60209181520190565b90825f9392825e0152565b610b8f610b98602093610b9d93610b8681610b58565b93848093610b5c565b95869101610b65565b6100b0565b0190565b9193610bd8610bef9694610bce610be29497610bc460a08801995f890190610581565b6020870190610b31565b6040850190610b3e565b6060830190610b4b565b6080818403910152610b70565b90565b9190610bfc6117b0565b610c08602082016105dd565b610c25610c1f610c1a602086016105dd565b61007d565b9161007d565b14158015610f14575b610edf57610c3e60c08301610763565b610df9575b815f01610c4f906105dd565b9282602001610c5d906105dd565b9383606001610c6b906107d6565b948181610c779061007d565b90610c819061007d565b10919085604001610c91906107f1565b90610c9b92611832565b93610ca4611a1e565b85610cae91611dbd565b610cb79061080a565b610cc090610816565b9263128acb089030610cd1906104db565b958498610cdd90611f03565b945f1497610d8695610d725f96610d4f610d9196610d46610d639760409f610dd557610d3e610d1d610d0d610903565b610d176001610864565b90610914565b985b9593610d35610d2c61094a565b978f8901610957565b6020870161095a565b8f8501610968565b6060830161096b565b610d57610052565b94859160208301610adf565b602082018103825203846100e7565b610d7a610052565b9a8b998a9889976104eb565b875260048701610ba1565b03925af18015610dd057610da3575b50565b610dc39060403d8111610dc9575b610dbb81836100e7565b810190610b04565b50610da0565b503d610db1565b6105cd565b610d3e610df3610de3610841565b610ded6001610864565b906108ad565b98610d1f565b610e4b6020610e19610e14610e0f8387016105dd565b61077c565b610788565b6370a0823190610e40610e2b306104db565b92610e34610052565b958694859384936104eb565b8352600483016107c1565b03915afa908115610eda575f91610eac575b50610e6a60a084016107d6565b610e7c610e7683610125565b91610125565b11155f14610ea35750610e9e610e9460a084016107d6565b5b60a084016107e3565b610c43565b610e9e90610e95565b610ecd915060203d8111610ed3575b610ec581836100e7565b8101906107a3565b5f610e5d565b503d610ebb565b6105cd565b5f7f494e780700000000000000000000000000000000000000000000000000000000815280610f10600482016101fa565b0390fd5b50610f205f82016105dd565b610f3c610f36610f315f86016105dd565b61007d565b9161007d565b1415610c2e565b9190606083820312610f8f57610f8890610f5d6060610110565b93610f6a825f830161009d565b5f860152610f7b826020830161009d565b602086015260400161024f565b6040830152565b6100ac565b919061020083820312610ff457610fed90610faf6080610110565b93610fbc825f8301610f43565b5f860152610fcd826060830161009d565b6020860152610fdf826080830161014b565b604086015261012001610286565b6060830152565b6100ac565b906102008282031261101357611010915f01610f94565b90565b61005c565b90565b61102f61102a61103492611018565b61048c565b61038e565b90565b6110409061038e565b7f8000000000000000000000000000000000000000000000000000000000000000811461106c575f0390565b610880565b61108561108061108a9261038e565b61048c565b610125565b90565b6040906110b66110bd94969593966110ac60608401985f850190610581565b6020830190610574565b0190610574565b565b6110ce6110d491939293610125565b92610125565b82018092116110df57565b610880565b6110f86110f36110fd92611018565b61048c565b610125565b90565b67ffffffffffffffff811161111e5761111a6020916100b0565b0190565b6100ba565b9061113561113083611100565b610110565b918252565b369037565b9061116461114c83611123565b9260208061115a8693611100565b920191039061113a565b565b909261119a906111906111a796946111866101008601975f87019061051a565b60a0850190610574565b60c0830190610581565b60e0818403910152610b70565b90565b91906040838203126111d257806111c66111cf925f8601610794565b93602001610794565b90565b61005c565b6111e0906110e4565b9052565b909594926112319461122061122a926112166101009661120c61012088019c5f89019061051a565b60a0870190610574565b60c08501906111d7565b60e0830190610581565b0190610581565b565b9095949261127e9461126d6112779261126360809661125960a088019c5f890190610574565b6020870190610574565b6040850190610574565b6060830190610574565b0190610605565b565b9192611298919361128f611f54565b90810190610ff9565b906060820151906112bc6112b76112ad611a1e565b5f86015190611dbd565b61080a565b90336112d86112d26112cd85610816565b61007d565b9161007d565b0361164257806112f06112ea5f61101b565b9161038e565b125f1461162c5761130861130382611037565b611071565b5b948161131d6113175f61101b565b9161038e565b135f1461161d575061132e90611071565b5b908461134e611348611343608087016107d6565b610125565b91610125565b106115cb5761136961136260a085016107d6565b86906110bf565b61139761138461137f60206040890151016105dd565b61077c565b611390602088016105dd565b839161201f565b6113b36113ae6113a9602088016105dd565b6104b7565b6104cf565b9063238d657990604087015190926113ca306104db565b6113db6113d65f6110e4565b61113f565b823b156115c6575f9461140c8692611401946113f5610052565b998a98899788966104eb565b865260048601611166565b03925af180156115c157611595575b5061143861143361142e602087016105dd565b6104b7565b6104cf565b9060406350d8cd4b9281870151906114775f879661148282611459306104db565b611462306104db565b9161146b610052565b9b8c998a9889976104eb565b8752600487016111e4565b03925af1918215611590576114ba92611563575b506114b36114ad6114a85f87016105dd565b61077c565b91610816565b83916120d9565b6114c3306104db565b906114cf5f84016105dd565b9261155e6114df602083016105dd565b9561150f61150a604061150060a06114f9606089016107d6565b97016107d6565b969a93015161167b565b6105ed565b9061154c6115466115407f5dc81cfdc66264a72ea45b6e99a7e9a30db31ed3984731126bc7b41827168d1e986105f9565b986105f9565b986105f9565b98611555610052565b95869586611233565b0390a4565b6115839060403d8111611589575b61157b81836100e7565b8101906111aa565b50611496565b503d611571565b6105cd565b6115b4905f3d81116115ba575b6115ac81836100e7565b8101906104f1565b5f61141b565b503d6115a2565b6105cd565b6104e7565b84836116196115e860806115e1602085016105dd565b93016107d6565b925f9384937f3824a8c40000000000000000000000000000000000000000000000000000000085526004850161108d565b0390fd5b6116279150611071565b61132f565b61163d61163886611037565b611071565b611309565b5f7f48f5c3ed00000000000000000000000000000000000000000000000000000000815280611673600482016101fa565b0390fd5b5f90565b60a090611686611677565b502090565b5f1c90565b6116a461169f6116a992610125565b61048c565b610125565b90565b6116b86116bd9161168b565b611690565b90565b6116d46116cf6116d992610861565b61048c565b610125565b90565b6116eb6116f191939293610125565b92610125565b82039182116116fc57565b610880565b5f1b90565b61171a61171561171f92610125565b611701565b6105ea565b90565b6117666117616117517f08e807f0e311ef1048643adc5ad6a1816eb08663ef138ef8a0dbdde4c66f79456116ac565b61175b60016116c0565b906116dc565b611706565b90565b6117ad6117a86117987f439f1088d898f3d7db77e1b77d28920aa2581569b138503f27dfbbc6bae651da6116ac565b6117a260016116c0565b906116dc565b611706565b90565b6117b8611722565b6117c0611769565b5c905d565b6117cf6060610110565b90565b5f90565b5f90565b6117e26117c5565b9060208080846117f06117d2565b8152016117fb6117d2565b8152016118066117d6565b81525050565b6118146117da565b90565b6118216060610110565b90565b9061182e90610233565b9052565b9161183b61180c565b508261184f6118498461007d565b9161007d565b11611885575b61187961188292611870611867611817565b955f870161095a565b6020850161095a565b60408301611824565b90565b6118796118829293925050611855565b5f90565b731f98431c8ad98523631ae4a59f267346ea31f98490565b90565b6118c86118c36118cd926118b1565b61048c565b610125565b90565b90565b6118e76118e26118ec926118d0565b61048c565b610125565b90565b90565b61190661190161190b926118ef565b61048c565b610125565b90565b90565b61192561192061192a9261190e565b61048c565b610125565b90565b90565b61194461193f6119499261192d565b61048c565b610125565b90565b73db1d10011ad0ff90774d0c6bb92e5c5c8b4461f790565b90565b61197b61197661198092611964565b61048c565b610125565b90565b7333128a8fc17869897dce68ed026d694621f6fdfd90565b90565b6119b26119ad6119b79261199b565b61048c565b610125565b90565b73afe208a311b21f13ef87e33a90049fc17a7acdec90565b90565b6119e96119e46119ee926119d2565b61048c565b610125565b90565b737a5028bda40e7b173c278c5342087826455ea25a90565b9190611a1c905f60208501940190610574565b565b611a26611895565b5046611a3b611a3560016116c0565b91610125565b14611b9c5746611a54611a4e600a6118b4565b91610125565b14611b915746611a6e611a6861a4b16118d3565b91610125565b14611b865746611a87611a8160896118f2565b91610125565b14611b7b5746611aa0611a9a6005611911565b91610125565b14611b705746611ab9611ab36038611930565b91610125565b14611b655746611ad3611acd612105611967565b91610125565b14611b5a5746611aed611ae761a4ec61199e565b91610125565b14611b4f5746611b07611b016101e06119d5565b91610125565b14611b4457611b40465f9182917f6b8c198400000000000000000000000000000000000000000000000000000000835260048301611a09565b0390fd5b611b4c6119f1565b90565b611b576119ba565b90565b611b62611983565b90565b611b6d61194c565b90565b611b78611899565b90565b611b83611899565b90565b611b8e611899565b90565b611b99611899565b90565b611ba4611899565b90565b60209181520190565b5f7f506f6f6c416464726573733a2077726f6e6720746f6b656e206f726465720000910152565b611be4601e602092611ba7565b611bed81611bb0565b0190565b611c069060208101905f818303910152611bd7565b90565b15611c1057565b611c18610052565b7f08c379a000000000000000000000000000000000000000000000000000000000815280611c4860048201611bf1565b0390fd5b611c5590610233565b9052565b604090611c82611c899496959396611c7860608401985f850190610581565b6020830190610581565b0190611c4c565b565b60200190565b90565b611ca8611ca3611cad92611c91565b611701565b6105ea565b90565b611cd97fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54611c94565b90565b905090565b5f7fff00000000000000000000000000000000000000000000000000000000000000910152565b611d1460018092611cdc565b611d1d81611ce1565b0190565b60601b90565b611d3090611d21565b90565b611d3c90611d27565b90565b611d4b611d509161007d565b611d33565b9052565b90565b611d63611d68916105ea565b611d54565b9052565b60209392611d956014611d9d94611d8d611d868996611d08565b8092611d3f565b018092611d57565b018092611d57565b0190565b611db5611db0611dba92610125565b61048c565b610064565b90565b611eac611eb692611e94611eb193611dd3611895565b50611e05611de25f85016105dd565b611dff611df9611df4602088016105dd565b61007d565b9161007d565b10611c09565b91611e52611e145f83016105dd565b611e43611e2f6040611e28602087016105dd565b95016107f1565b611e37610052565b94859360208501611c59565b602082018103825203826100e7565b611e64611e5e82610b58565b91611c8b565b2091611e85611e71611cb0565b611e79610052565b94859360208501611d6c565b602082018103825203826100e7565b611ea6611ea082610b58565b91611c8b565b206116ac565b611da1565b6104c3565b90565b5f90565b90565b611ed4611ecf611ed992611ebd565b61048c565b610125565b90565b15611ee357565b5f80fd5b611efb611ef6611f0092610125565b61048c565b61038e565b90565b611f5190611f0f611eb9565b50611f4c81611f46611f407f8000000000000000000000000000000000000000000000000000000000000000611ec0565b91610125565b10611edc565b611ee7565b90565b5f611f5d611722565b5d565b63ffffffff1690565b7fffffffff000000000000000000000000000000000000000000000000000000001690565b611fa2611f9d611fa792611f60565b6104eb565b611f69565b90565b916020611fcb929493611fc460408201965f830190610581565b0190610574565b565b60ff1690565b611fe7611fe2611fec92611018565b61048c565b611fcd565b90565b611ff890611fd3565b9052565b91602061201d92949361201660408201965f830190610581565b0190611fef565b565b909161206060049161205161203763095ea7b3611f8e565b9186612041610052565b9586946020860190815201611faa565b602082018103825203826100e7565b9061207561206f828490612183565b1561025e565b61207f575b505050565b6120cc60046120d1946120c784916120b861209d63095ea7b3611f8e565b915f906120a8610052565b9687946020860190815201611ffc565b602082018103825203836100e7565b61236c565b61236c565b5f808061207a565b9161211d60049261210e61212295936120f563a9059cbb611f8e565b926120fe610052565b9687946020860190815201611faa565b602082018103825203836100e7565b61236c565b565b5f90565b606090565b3d5f146121485761213d3d611123565b903d5f602084013e5b565b612150612128565b90612146565b9050519061216382610263565b565b9060208282031261217e5761217b915f01612156565b90565b61005c565b905f809161218f612124565b5061219984610788565b9082602082019151925af16121ac61212d565b816121d7575b5090816121be575b5090565b6121d191506121cc90610788565b6123d8565b5f6121ba565b90506121e281610b58565b6121f46121ee5f6110e4565b91610125565b14908115612204575b505f6121b2565b61221f9150602061221482610b58565b818301019101612165565b5f6121fd565b67ffffffffffffffff81116122435761223f6020916100b0565b0190565b6100ba565b9061225a61225583612225565b610110565b918252565b5f7f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564910152565b6122906020612248565b9061229d6020830161225f565b565b6122a7612286565b90565b60207f6f74207375636365656400000000000000000000000000000000000000000000917f5361666545524332303a204552433230206f7065726174696f6e20646964206e5f8201520152565b612304602a604092611ba7565b61230d816122aa565b0190565b6123269060208101905f8183039101526122f7565b90565b1561233057565b612338610052565b7f08c379a00000000000000000000000000000000000000000000000000000000081528061236860048201612311565b0390fd5b6123b59161237c61238b92610788565b9061238561229f565b916123f8565b61239481610b58565b6123a66123a05f6110e4565b91610125565b149081156123b7575b50612329565b565b6123d2915060206123c782610b58565b818301019101612165565b5f6123af565b6123e0612124565b503b6123f46123ee5f6110e4565b91610125565b1190565b906124179291612406612128565b50906124115f6110e4565b916124e8565b90565b612423906104c3565b90565b60207f722063616c6c0000000000000000000000000000000000000000000000000000917f416464726573733a20696e73756666696369656e742062616c616e636520666f5f8201520152565b6124806026604092611ba7565b61248981612426565b0190565b6124a29060208101905f818303910152612473565b90565b156124ac57565b6124b4610052565b7f08c379a0000000000000000000000000000000000000000000000000000000008152806124e46004820161248d565b0390fd5b915f809161253e95936124f9612128565b506125206125063061241a565b3161251961251385610125565b91610125565b10156124a5565b8591602082019151925af19161253461212d565b90929091926125dd565b90565b5f7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000910152565b612575601d602092611ba7565b61257e81612541565b0190565b6125979060208101905f818303910152612568565b90565b156125a157565b6125a9610052565b7f08c379a0000000000000000000000000000000000000000000000000000000008152806125d960048201612582565b0390fd5b9192906125e8612128565b505f1461262c57506125f982610b58565b61260b6126055f6110e4565b91610125565b14612615575b5090565b612621612626916123d8565b61259a565b5f612611565b8261267f565b5190565b61265561265e6020936126639361264c81612632565b93848093611ba7565b95869101610b65565b6100b0565b0190565b61267c9160208201915f818403910152612636565b90565b9061268982610b58565b61269b6126955f6110e4565b91610125565b115f146126ab5750805190602001fd5b6126e6906126b7610052565b9182917f08c379a000000000000000000000000000000000000000000000000000000000835260048301612667565b0390fd