0 txs
209 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
0x60e060405234801561000f575f80fd5b506040516122bb3803806122bb83398101604081905261002e91610065565b6001600160a01b03928316608052821660a0521660c0526100a5565b80516001600160a01b0381168114610060575f80fd5b919050565b5f805f60608486031215610077575f80fd5b6100808461004a565b925061008e6020850161004a565b915061009c6040850161004a565b90509250925092565b60805160a05160c0516121bb6101005f395f81816102030152818161025d0152818161098a01528181610a830152610b2701525f8181610427015281816104800152818161069601526106ef01525f61129701526121bb5ff3fe60806040526004361061003e575f3560e01c80634ca5e33d1461004257806399414c1014610063578063ad0acfdc14610076578063c9a89af114610095575b5f80fd5b34801561004d575f80fd5b5061006161005c366004611ab5565b6100b4565b005b610061610071366004611b71565b6103b2565b348015610081575f80fd5b50610061610090366004611d03565b610621565b3480156100a0575f80fd5b506100616100af366004611ab5565b6108e1565b3330146100d45760405163e50434af60e01b815260040160405180910390fd5b5f805f80848060200190518101906100ec9190611e29565b93509350935093505f8890506101798b6001600160a01b031663f8d898986040518163ffffffff1660e01b8152600401602060405180830381865afa158015610137573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061015b9190611ec4565b73085780639cc2cacd35e474e71f4d000e2405d8f68a878787610ccd565b610183908a611ef3565b985089156101e9576040516323b872dd60e01b81526001600160a01b038c16906323b872dd906101bb908a9030908f90600401611f06565b5f604051808303815f87803b1580156101d2575f80fd5b505af11580156101e4573d5f803e3d5ffd5b505050505b61022873085780639cc2cacd35e474e71f4d000e2405d8f67f00000000000000000000000000000000000000000000000000000000000000008b610ed4565b620f424061023989620f4241611f2a565b6102439190611f41565b60405163c1c8f15b60e01b81529098506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c1c8f15b90610298908e908e908e908e90600401611f60565b6020604051808303815f875af11580156102b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102d89190611f86565b99506102e58b8b87610eed565b6040516323b872dd60e01b81526001600160a01b038c16906323b872dd906103159030908b908f90600401611f06565b5f604051808303815f87803b15801561032c575f80fd5b505af115801561033e573d5f803e3d5ffd5b505050508a6001600160a01b03167f2a691206f32a9624672cbf15de7ebfcfabdd5ec6dab054b1e8a12f97df8b41528b8361037890611f9d565b6040805192835260208301919091525f90820152606081018c9052608081018b905260a00160405180910390a25050505050505050505050565b7fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c17160545f805160206121668339815191529060ff600160a81b909104165f190161040e57604051633ee5aeb560e01b815260040160405180910390fd5b60058101805460ff60a81b1916600160a81b179055333b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161580159061046657505f8111806104665750333214155b1561050e57604051631846d2f560e31b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c23697a890602401602060405180830381865afa1580156104cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f19190611fb7565b61050e57604051632c10e80160e21b815260040160405180910390fd5b5f61052d8973085780639cc2cacd35e474e71f4d000e2405d8f6610f9e565b90505f886001600160a01b031663f8d898986040518163ffffffff1660e01b8152600401602060405180830381865afa15801561056c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105909190611ec4565b90506105e381888b8b868c338d8d6040516024016105b49796959493929190611fd6565b60408051601f198184030181529190526020810180516001600160e01b0316634ca5e33d60e01b179052611249565b610608815f805160206121668339815191525b600501546001600160a01b031661133f565b505050600501805460ff60a81b19169055505050505050565b7fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c17160545f805160206121668339815191529060ff600160a81b909104165f190161067d57604051633ee5aeb560e01b815260040160405180910390fd5b60058101805460ff60a81b1916600160a81b179055333b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316158015906106d557505f8111806106d55750333214155b1561077d57604051631846d2f560e31b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c23697a890602401602060405180830381865afa15801561073c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107609190611fb7565b61077d57604051632c10e80160e21b815260040160405180910390fd5b5f886001600160a01b031663f8d898986040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107ba573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107de9190611ec4565b905061083181878b8b8b8b338c8c6040516024016108029796959493929190611fd6565b60408051601f198184030181529190526020810180516001600160e01b031663c9a89af160e01b179052611249565b6040516370a0823160e01b81523060048201526108b0908b9073085780639cc2cacd35e474e71f4d000e2405d8f69081906370a0823190602401602060405180830381865afa158015610886573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108aa9190611f86565b336113c3565b506108c8815f805160206121668339815191526105f6565b5050600501805460ff60a81b1916905550505050505050565b3330146109015760405163e50434af60e01b815260040160405180910390fd5b5f805f80848060200190518101906109199190611e29565b93509350935093505f8a6001600160a01b031663f8d898986040518163ffffffff1660e01b8152600401602060405180830381865afa15801561095e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109829190611ec4565b90506109af817f00000000000000000000000000000000000000000000000000000000000000008a610ed4565b6040516323b872dd60e01b81526001600160a01b038c16906323b872dd906109df908a9030908f90600401611f06565b5f604051808303815f87803b1580156109f6575f80fd5b505af1158015610a08573d5f803e3d5ffd5b505060405163eb02c30160e01b8152600481018d90525f92506001600160a01b038e16915063eb02c301906024016040805180830381865afa158015610a50573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a749190612036565b509050808a10610b1d578099507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c1c8f15b8d8d600160ff1b806040518563ffffffff1660e01b8152600401610ad79493929190611f60565b6020604051808303815f875af1158015610af3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b179190611f86565b50610bcb565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663c1c8f15b8d8d610b578e611f9d565b610b608e611f9d565b6040518563ffffffff1660e01b8152600401610b7f9493929190611f60565b6020604051808303815f875af1158015610b9b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bbf9190611f86565b50610bcb8c8c88610eed565b8b6001600160a01b03166323b872dd308a8e6040518463ffffffff1660e01b8152600401610bfb93929190611f06565b5f604051808303815f87803b158015610c12575f80fd5b505af1158015610c24573d5f803e3d5ffd5b50505050610c4a73085780639cc2cacd35e474e71f4d000e2405d8f683878c8888610ccd565b506001600160a01b038c167f2a691206f32a9624672cbf15de7ebfcfabdd5ec6dab054b1e8a12f97df8b41528c610c81888e612058565b5f610c8b8f611f9d565b610c948f611f9d565b604080519586526020860194909452928401919091526060830152608082015260a00160405180910390a2505050505050505050505050565b5f845f03610cdc57505f610eca565b5f80516020612166833981519152610d147fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c1715c85611591565b610d30576040516202e3a560eb1b815260040160405180910390fd5b6001600160a01b038085165f908152602083905260409020541680610d525750835b610d5d898289610ed4565b6040516370a0823160e01b81523060048201526001600160a01b038916906370a0823190602401602060405180830381865afa158015610d9f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc39190611f86565b92505f856001600160a01b031685604051610dde919061206b565b5f604051808303815f865af19150503d805f8114610e17576040519150601f19603f3d011682016040523d82523d5f602084013e610e1c565b606091505b5050905080610e31576040513d805f833e8082fd5b6040516370a0823160e01b815230600482015284906001600160a01b038b16906370a0823190602401602060405180830381865afa158015610e75573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e999190611f86565b610ea39190612058565b935086841015610ec657604051633e961df760e21b815260040160405180910390fd5b5050505b9695505050505050565b610ee86001600160a01b03841683836115b5565b505050565b60405163430da67f60e11b8152600481018390525f906001600160a01b0385169063861b4cfe90602401602060405180830381865afa158015610f32573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f569190611f86565b9050670fffffffffffffff82811690603c84901c1681831080610f7857508083115b15610f965760405163e3f43bf160e01b815260040160405180910390fd5b505050505050565b60408201515f905f8051602061216683398151915290610fdf907fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c1715c90611591565b610ffb576040516202e3a560eb1b815260040160405180910390fd5b61100d845f0151308660200151611678565b506040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015611050573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110749190611f86565b9150826001600160a01b0316845f01516001600160a01b0316036110985750611243565b83515f906001600160a01b03166111185784604001516001600160a01b0316856020015186606001516040516110ce919061206b565b5f6040518083038185875af1925050503d805f8114611108576040519150601f19603f3d011682016040523d82523d5f602084013e61110d565b606091505b5050809150506111bb565b6040808601516001600160a01b039081165f908152602085905291909120541680611144575060408501515b611156865f0151828860200151610ed4565b85604001516001600160a01b03168660600151604051611176919061206b565b5f604051808303815f865af19150503d805f81146111af576040519150601f19603f3d011682016040523d82523d5f602084013e6111b4565b606091505b5090925050505b806111cc576040513d805f833e8082fd5b6040516370a0823160e01b815230600482015283906001600160a01b038616906370a0823190602401602060405180830381865afa158015611210573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112349190611f86565b61123e9190612058565b925050505b92915050565b7fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c17160805460ff60a01b1916600160a01b1790556040515f80516020612166833981519152906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e0232b4290869086906112d290839088906020016120af565b6040516020818303038152906040526040518463ffffffff1660e01b81526004016112ff939291906120d2565b5f604051808303815f87803b158015611316575f80fd5b505af1158015611328573d5f803e3d5ffd5b50505050600501805460ff60a01b19169055505050565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015611383573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113a79190611f86565b90508015610ee857610ee86001600160a01b03841683836116c8565b60208401515f905f8051602061216683398151915290611404907fac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c1715c90611591565b611420576040516202e3a560eb1b815260040160405180910390fd5b835f03611430575f915050611589565b606086015151849250156114ce5761144d85876020015186610ed4565b85602001516001600160a01b031663ed52d54c868689604001518a606001516040518563ffffffff1660e01b815260040161148b9493929190612101565b6020604051808303815f875af11580156114a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114cb9190611f86565b91505b85608001518210156114f35760405163ca1d512b60e01b815260040160405180910390fd5b85516001600160a01b031661157157604051632e1a7d4d60e01b81526004810183905273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc290632e1a7d4d906024015f604051808303815f87803b15801561154c575f80fd5b505af115801561155e573d5f803e3d5ffd5b5050505061156c83836116f9565b611587565b8551611587906001600160a01b031684846116c8565b505b949350505050565b6001600160a01b0381165f90815260018301602052604081205415155b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526116068482611791565b611672576040516001600160a01b0384811660248301525f604483015261166891869182169063095ea7b3906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505061182e565b611672848261182e565b50505050565b5f6001600160a01b0384166116ac578134146116a75760405163ed39c7cb60e01b815260040160405180910390fd5b6116c1565b6116c16001600160a01b03851633858561188f565b5092915050565b6040516001600160a01b03838116602483015260448201839052610ee891859182169063a9059cbb90606401611636565b804710156117215760405163cd78605960e01b81523060048201526024015b60405180910390fd5b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f811461176a576040519150601f19603f3d011682016040523d82523d5f602084013e61176f565b606091505b5050905080610ee857604051630a12f52160e11b815260040160405180910390fd5b5f805f846001600160a01b0316846040516117ac919061206b565b5f604051808303815f865af19150503d805f81146117e5576040519150601f19603f3d011682016040523d82523d5f602084013e6117ea565b606091505b50915091508180156118145750805115806118145750808060200190518101906118149190611fb7565b801561123e5750505050506001600160a01b03163b151590565b5f6118426001600160a01b038416836118b7565b905080515f141580156118665750808060200190518101906118649190611fb7565b155b15610ee857604051635274afe760e01b81526001600160a01b0384166004820152602401611718565b61167284856001600160a01b03166323b872dd86868660405160240161163693929190611f06565b60606115ae83835f845f80856001600160a01b031684866040516118db919061206b565b5f6040518083038185875af1925050503d805f8114611915576040519150601f19603f3d011682016040523d82523d5f602084013e61191a565b606091505b5091509150610eca86838360608261193a5761193582611981565b6115ae565b815115801561195157506001600160a01b0384163b155b1561197a57604051639996b31560e01b81526001600160a01b0385166004820152602401611718565b50806115ae565b8051156119915780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b6001600160a01b03811681146119aa575f80fd5b80356119cc816119ad565b919050565b634e487b7160e01b5f52604160045260245ffd5b60405160c081016001600160401b0381118282101715611a0757611a076119d1565b60405290565b604051601f8201601f191681016001600160401b0381118282101715611a3557611a356119d1565b604052919050565b5f6001600160401b03821115611a5557611a556119d1565b50601f01601f191660200190565b5f82601f830112611a72575f80fd5b8135611a85611a8082611a3d565b611a0d565b818152846020838601011115611a99575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f8060c08789031215611aca575f80fd5b8635611ad5816119ad565b95506020870135945060408701359350606087013592506080870135611afa816119ad565b915060a08701356001600160401b03811115611b14575f80fd5b611b2089828a01611a63565b9150509295509295509295565b5f8083601f840112611b3d575f80fd5b5081356001600160401b03811115611b53575f80fd5b602083019150836020828501011115611b6a575f80fd5b9250929050565b5f805f805f8060a08789031215611b86575f80fd5b86356001600160401b03811115611b9b575f80fd5b870160c0818a031215611bac575f80fd5b611bb46119e5565b611bbd826119c1565b815260208281013590820152611bd5604083016119c1565b604082015260608201356001600160401b03811115611bf2575f80fd5b611bfe8b828501611a63565b6060830152506080828101359082015260a08201356001600160401b03811115611c26575f80fd5b611c328b828501611a63565b60a0830152509650611c489050602088016119c1565b9450604087013593506060870135925060808701356001600160401b03811115611c70575f80fd5b611c7c89828a01611b2d565b979a9699509497509295939492505050565b5f82601f830112611c9d575f80fd5b81356001600160401b03811115611cb657611cb66119d1565b8060051b611cc660208201611a0d565b91825260208185018101929081019086841115611ce1575f80fd5b6020860192505b83831015610eca578235825260209283019290910190611ce8565b5f805f805f805f60c0888a031215611d19575f80fd5b87356001600160401b03811115611d2e575f80fd5b880160c0818b031215611d3f575f80fd5b611d476119e5565b611d50826119c1565b8152611d5e602083016119c1565b60208201526040828101359082015260608201356001600160401b03811115611d85575f80fd5b611d918c828501611c8e565b6060830152506080828101359082015260a08201356001600160401b03811115611db9575f80fd5b611dc58c828501611a63565b60a0830152509750611ddb9050602089016119c1565b955060408801359450606088013593506080880135925060a08801356001600160401b03811115611e0a575f80fd5b611e168a828b01611b2d565b989b979a50959850939692959293505050565b5f805f8060808587031215611e3c575f80fd5b8451602086015160408701519195509350611e56816119ad565b60608601519092506001600160401b03811115611e71575f80fd5b8501601f81018713611e81575f80fd5b8051611e8f611a8082611a3d565b818152886020838501011115611ea3575f80fd5b8160208401602083015e5f6020838301015280935050505092959194509250565b5f60208284031215611ed4575f80fd5b81516115ae816119ad565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561124357611243611edf565b6001600160a01b039384168152919092166020820152604081019190915260600190565b808202811582820484141761124357611243611edf565b5f82611f5b57634e487b7160e01b5f52601260045260245ffd5b500490565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b5f60208284031215611f96575f80fd5b5051919050565b5f600160ff1b8201611fb157611fb1611edf565b505f0390565b5f60208284031215611fc7575f80fd5b815180151581146115ae575f80fd5b6001600160a01b0388811682526020820188905260408201879052606082018690528416608082015260c060a082018190528101829052818360e08301375f81830160e090810191909152601f909201601f191601019695505050505050565b5f8060408385031215612047575f80fd5b505080516020909101519092909150565b8181038181111561124357611243611edf565b5f82518060208501845e5f920191825250919050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6001600160a01b03831681526040602082018190525f9061158990830184612081565b60018060a01b0384168152826020820152606060408201525f6120f86060830184612081565b95945050505050565b6001600160a01b038516815260208082018590526040820184905260806060830181905283519083018190525f9184019060a0840190835b81811015612157578351835260209384019390920191600101612139565b50909897505050505050505056feac318a26e36b2aca24ebcc70260de3def8e072144b293eb8d60e905c83c1715ba264697066735822122062e7e7b824dc191efffda4ea042be2eae9f309ba1d26a93a1f7b30bc5d4c4fff64736f6c634300081a0033000000000000000000000000bbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb000000000000000000000000acdc0ab51178d0ae8f70c1ead7d3cf5421fdd66d0000000000000000000000000000000000000000000000000000000000000000