diff --git a/PreLiquidationFactory.json b/PreLiquidationFactory.json new file mode 100644 index 0000000..72185c8 --- /dev/null +++ b/PreLiquidationFactory.json @@ -0,0 +1,559 @@ +{ + "abi": [ + { + "type": "constructor", + "inputs": [ + { + "name": "morpho", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "MORPHO", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IMorpho" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "createPreLiquidation", + "inputs": [ + { + "name": "id", + "type": "bytes32", + "internalType": "Id" + }, + { + "name": "preLiquidationParams", + "type": "tuple", + "internalType": "struct PreLiquidationParams", + "components": [ + { + "name": "preLltv", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "preLCF1", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "preLCF2", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "preLIF1", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "preLIF2", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "preLiquidationOracle", + "type": "address", + "internalType": "address" + } + ] + } + ], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IPreLiquidation" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "isPreLiquidation", + "inputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "CreatePreLiquidation", + "inputs": [ + { + "name": "preLiquidation", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "id", + "type": "bytes32", + "indexed": false, + "internalType": "Id" + }, + { + "name": "preLiquidationParams", + "type": "tuple", + "indexed": false, + "internalType": "struct PreLiquidationParams", + "components": [ + { + "name": "preLltv", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "preLCF1", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "preLCF2", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "preLIF1", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "preLIF2", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "preLiquidationOracle", + "type": "address", + "internalType": "address" + } + ] + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "ZeroAddress", + "inputs": [] + } + ], + "bytecode": { + "object": "0x60a034608257601f6121aa38819003918201601f19168301916001600160401b03831184841017608657808492602094604052833981010312608257516001600160a01b03811690819003608257801560735760805260405161210f908161009b8239608051818181608701526101b30152f35b63d92e233d60e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c9081631c32209214610119575080631ea36725146100af57633acb56241461003d575f80fd5b346100ab575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100ab57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100ab5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100ab5760043573ffffffffffffffffffffffffffffffffffffffff81168091036100ab575f525f602052602060ff60405f2054166040519015158152f35b346100ab5760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100ab576004359060c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc3601126100ab57611dd59081810181811067ffffffffffffffff82111761028a5781610100915f94610305833973ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001681528560208201526101e7604082016102b7565b03019082f5801561027f576020917fc36ddf254f2ae7c3a2c82dc525fed9a804cdaf8102b19b3caa5aeda5afcca38273ffffffffffffffffffffffffffffffffffffffff60e093169283926040519081526102438682016102b7565ba2805f525f825260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055604051908152f35b6040513d5f823e3d90fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b602435815260443560208201526064356040820152608435606082015260a435608082015260c4359073ffffffffffffffffffffffffffffffffffffffff82168092036100ab5760a0015256fe61022080604052346104675780611dd5803803809161001e8285610545565b83398101039061010082126104675761003681610568565b60c0602083015193603f19011261046757604051916100548361052a565b60408101518352606081015193602084019485526080820151926040850193845260a0830151906060860191825261009a60e060c0860151956080890196875201610568565b60a08701908152604051632e3071cd60e11b8152600481018590526001600160a01b0390921694909160c081602481895afa908115610473575f9161048d575b50608001516001600160801b03161561047e57604051632c3c915760e01b8152600481018590529260a084602481895afa938415610473575f946103c2575b508751966080850197885111156103b35789518151106103a457670de0b6b3a76400008a5111610395578151670de0b6b3a76400001161038657815183511061037757825188518015610363576ec097ce7bc90715b34b9f1000000000041061035457608087905260a09590955283516001600160a01b0390811660c052602085810151821660e052604080870151831661010052606087015183166101205298516101405298516101605298516101805293516101a05292516101c05291516101e052905185166102005251915163095ea7b360e01b815260048101919091525f19602482015291925f9260449290918491165af13d15601f3d1160015f51141617161561031e57604051611844908161059182396080518181816101ce0152818161028d0152611113015260a0518181816095015281816103b3015281816104180152610a94015260c051818181611361015261167f015260e051816116b8015261010051816116f401526101205181611730015261014051818181610590015281816106a101526117570152610160518181816105ca01528181610655015281816106800152610f740152610180518181816108310152610fbe01526101a0518181816108570152610fe501526101c0518181816106f0015261100d01526101e05181818161071701526110370152610200518181816104b4015261105d0152f35b60405162461bcd60e51b815260206004820152600e60248201526d1054141493d59157d1905253115160921b6044820152606490fd5b6331aff75360e01b5f5260045ffd5b634e487b7160e01b5f52601260045260245ffd5b63141da4bd60e21b5f5260045ffd5b630136247b60e51b5f5260045ffd5b630287fe3b60e31b5f5260045ffd5b631bc4f82360e01b5f5260045ffd5b63f0586c2360e01b5f5260045ffd5b90935060a0813d60a01161046b575b816103de60a09383610545565b81010312610467576040519060a08201906001600160401b038211838310176104535760809160405261041081610568565b835261041e60208201610568565b602084015261042f60408201610568565b604084015261044060608201610568565b606084015201516080820152925f610119565b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b3d91506103d1565b6040513d5f823e3d90fd5b630ecde9b360e31b5f5260045ffd5b905060c0813d60c011610522575b816104a860c09383610545565b810103126104675761051760a0604051926104c28461052a565b6104cb8161057c565b84526104d96020820161057c565b60208501526104ea6040820161057c565b60408501526104fb6060820161057c565b606085015261050c6080820161057c565b60808501520161057c565b60a08201525f6100da565b3d915061049b565b60c081019081106001600160401b0382111761045357604052565b601f909101601f19168101906001600160401b0382119082101761045357604052565b51906001600160a01b038216820361046757565b51906001600160801b03821682036104675756fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816305b4591c146110a6575080631d553cee14610f165780633078f50a146101f25780633acb5624146101835780637b9e68f2146100bb5763b3cea21714610060575f80fd5b346100b857807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b85760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b80fd5b50346100b857807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b85760a06100f4611636565b61018160405180926080809173ffffffffffffffffffffffffffffffffffffffff815116845273ffffffffffffffffffffffffffffffffffffffff602082015116602085015273ffffffffffffffffffffffffffffffffffffffff604082015116604085015273ffffffffffffffffffffffffffffffffffffffff60608201511660608501520151910152565bf35b50346100b857807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b857602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346100b85760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b85760043573ffffffffffffffffffffffffffffffffffffffff81168103610f125760243560643567ffffffffffffffff8111610f0e576102659036906004016114f4565b60443594918391908215871514610ee65773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016926102b6611636565b843b15610eb657610371604051917f151c1ade00000000000000000000000000000000000000000000000000000000835260048301906080809173ffffffffffffffffffffffffffffffffffffffff815116845273ffffffffffffffffffffffffffffffffffffffff602082015116602085015273ffffffffffffffffffffffffffffffffffffffff604082015116604085015273ffffffffffffffffffffffffffffffffffffffff60608201511660608501520151910152565b858160a48183895af18015610ec257908691610ecd575b5050604051907f5c60e39a0000000000000000000000000000000000000000000000000000000082527f0000000000000000000000000000000000000000000000000000000000000000600483015260c082602481885afa918215610ec2578692610e1f575b50604051917f93c520620000000000000000000000000000000000000000000000000000000083527f0000000000000000000000000000000000000000000000000000000000000000600484015273ffffffffffffffffffffffffffffffffffffffff89166024840152606083604481895afa928315610e14578793610d6c575b50604051917fa035b1fe00000000000000000000000000000000000000000000000000000000835260208360048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa928315610d61578893610d29575b5060206ec097ce7bc90715b34b9f1000000000610517856fffffffffffffffffffffffffffffffff60408901511661177e565b049401926fffffffffffffffffffffffffffffffff8451166fffffffffffffffffffffffffffffffff6040850151166fffffffffffffffffffffffffffffffff6060860151169160018201809211610c7f57620f42408301809311610c7f579061058192916117c8565b94670de0b6b3a76400006105b57f00000000000000000000000000000000000000000000000000000000000000008361177e565b048611610d0157670de0b6b3a76400006105ef7f00000000000000000000000000000000000000000000000000000000000000008361177e565b04861115610cd957670de0b6b3a76400009586810290808204881490151715610cac577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820190828211610c7f579161064e6106539261067a94611629565b611791565b7f00000000000000000000000000000000000000000000000000000000000000009061161c565b9b6106c57f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061161c565b9c86810290808204881490151715610b78578a876107429c9d9e9f6106ed9061074894611791565b9c7f0000000000000000000000000000000000000000000000000000000000000000928e61073b857f000000000000000000000000000000000000000000000000000000000000000061161c565b915061177e565b04611629565b9215610ba55750610759908b61177e565b6ec097ce7bc90715b34b9f0fffffffff8101809111610b4b576ec097ce7bc90715b34b9f1000000000900484810290808204861490151715610b4b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820190828211610b78576107ce929161064e91611629565b6fffffffffffffffffffffffffffffffff6060816040850151169301511690620f42408201809211610b4b5760018301809311610b4b5761082861088394936fffffffffffffffffffffffffffffffff9361087b936117c8565b985b856107428c7f00000000000000000000000000000000000000000000000000000000000000009361073b857f000000000000000000000000000000000000000000000000000000000000000061161c565b91511661177e565b04808511610b1b5750610a2f9261093160c0887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f876040988e9873ffffffffffffffffffffffffffffffffffffffff8b519a8b976020890152168b8701523360608701526080808701528160a0870152868601378b8582860101520116810103017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810184528361157b565b6109f38661093d611636565b8551968795869485937f20b76e8100000000000000000000000000000000000000000000000000000000855260048501906080809173ffffffffffffffffffffffffffffffffffffffff815116845273ffffffffffffffffffffffffffffffffffffffff602082015116602085015273ffffffffffffffffffffffffffffffffffffffff604082015116604085015273ffffffffffffffffffffffffffffffffffffffff60608201511660608501520151910152565b8360a48401528960c484015273ffffffffffffffffffffffffffffffffffffffff8d1660e48401526101206101048401526101248301906115bc565b03925af1928315610b0f578093610ac1575b505073ffffffffffffffffffffffffffffffffffffffff60409485519284845260208401528486840152169033907fd5b01f148b35d6069b626af105bf8881bc2e30ee1ce3de4630903abab0ba858060607f000000000000000000000000000000000000000000000000000000000000000092a482519182526020820152f35b909492506040853d604011610b07575b81610ade6040938361157b565b810103126100b8575073ffffffffffffffffffffffffffffffffffffffff604094519294610a41565b3d9150610ad1565b604051903d90823e3d90fd5b85604491867f44bb1e75000000000000000000000000000000000000000000000000000000008352600452602452fd5b60248a7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b989a50916fffffffffffffffffffffffffffffffff606081604084015116920151169060018101809111610b7857620f42408201809211610b785791610bf5610bfa9261064e889560443561177e565b61177e565b046ec097ce7bc90715b34b9f10000000008102908082046ec097ce7bc90715b34b9f10000000001490151715610c525761087b610c4c61088394936fffffffffffffffffffffffffffffffff93611791565b9a61082a565b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60048a7f0bb9a651000000000000000000000000000000000000000000000000000000008152fd5b60048a7ff78266a2000000000000000000000000000000000000000000000000000000008152fd5b9092506020813d602011610d59575b81610d456020938361157b565b81010312610d555751915f6104e4565b8780fd5b3d9150610d38565b6040513d8a823e3d90fd5b9092506060813d606011610e0c575b81610d886060938361157b565b81010312610e0857604051906060820182811067ffffffffffffffff821117610ddb57610dcf91604091825280518452610dc4602082016115ff565b6020850152016115ff565b6040820152915f61046f565b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b8680fd5b3d9150610d7b565b6040513d89823e3d90fd5b90915060c0813d60c011610eba575b81610e3b60c0938361157b565b81010312610eb657610eaa60a060405192610e5584611543565b610e5e816115ff565b8452610e6c602082016115ff565b6020850152610e7d604082016115ff565b6040850152610e8e606082016115ff565b6060850152610e9f608082016115ff565b6080850152016115ff565b60a0820152905f6103ee565b8580fd5b3d9150610e2e565b6040513d88823e3d90fd5b81610ed79161157b565b610ee257845f610388565b8480fd5b6004847ff0732dd7000000000000000000000000000000000000000000000000000000008152fd5b8380fd5b5080fd5b50346100b857807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b85760a0604051610f5381611543565b828152826020820152826040820152826060820152826080820152015260c07f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff604051610fb481611543565b82815260208101907f00000000000000000000000000000000000000000000000000000000000000008252604081017f0000000000000000000000000000000000000000000000000000000000000000815260608201907f0000000000000000000000000000000000000000000000000000000000000000825260a060808401937f000000000000000000000000000000000000000000000000000000000000000085520193857f0000000000000000000000000000000000000000000000000000000000000000168552604051968752516020870152516040860152516060850152516080840152511660a0820152f35b90503461149b5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261149b5760043560243567ffffffffffffffff811161149b576110fa9036906004016114f4565b929073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016938433036114cc5781019360808286031261149b5761115460208301611522565b9461116160408401611522565b606084013567ffffffffffffffff811161149b5784019180601f8401121561149b5782359067ffffffffffffffff821161149f576111c760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f850116018861157b565b8187526020828501011161149b576020815f928273ffffffffffffffffffffffffffffffffffffffff9601838a0137870101521694611204611636565b91803b1561149b575f92836101049273ffffffffffffffffffffffffffffffffffffffff6112e19560405198899788967f8720316d00000000000000000000000000000000000000000000000000000000885260048801906080809173ffffffffffffffffffffffffffffffffffffffff815116845273ffffffffffffffffffffffffffffffffffffffff602082015116602085015273ffffffffffffffffffffffffffffffffffffffff604082015116604085015273ffffffffffffffffffffffffffffffffffffffff60608201511660608501520151910152565b3560a48601521660c48401528960e48401525af1801561149057611479575b5090818492516113f7575b50602092606491604051917f23b872dd000000000000000000000000000000000000000000000000000000008352600483015230602483015260448201528273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af13d15601f3d116001845114161716156113995780f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5452414e534645525f46524f4d5f4641494c45440000000000000000000000006044820152fd5b833b15611475578261144491604051809381927f8e8beec40000000000000000000000000000000000000000000000000000000083528660048401526040602484015260448301906115bc565b038183885af1801561146a571561130b5761146083809261157b565b610f12575f61130b565b6040513d85823e3d90fd5b8280fd5b611487919294505f9061157b565b5f92905f611300565b6040513d5f823e3d90fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7fe51b5123000000000000000000000000000000000000000000000000000000005f5260045ffd5b9181601f8401121561149b5782359167ffffffffffffffff831161149b576020838186019501011161149b57565b359073ffffffffffffffffffffffffffffffffffffffff8216820361149b57565b60c0810190811067ffffffffffffffff82111761149f57604052565b60a0810190811067ffffffffffffffff82111761149f57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761149f57604052565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b51906fffffffffffffffffffffffffffffffff8216820361149b57565b91908203918211610cac57565b91908201809211610cac57565b5f60806040516116458161155f565b82815282602082015282604082015282606082015201526040516116688161155f565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016602082015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016604082015273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660608201527f0000000000000000000000000000000000000000000000000000000000000000608082015290565b81810292918115918404141715610cac57565b811561179b570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b906117d29161177e565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810191818311610cac5761180b9261064e91611629565b9056fea2646970667358221220a4400fdf55e00b78e863db05b6eb11bb6abb2d070d36a8977b6db4ab9c9282b464736f6c634300081b0033a2646970667358221220227462241114a37e7734947b7ce3473f41291d53b3cf3b82e51bba741d99666664736f6c634300081b0033", + "sourceMap": "657:1396:36:-:0;;;;;;;;;;;;;-1:-1:-1;;657:1396:36;;;;-1:-1:-1;;;;;657:1396:36;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;657:1396:36;;;;;;;;1144:20;;657:1396;;1201:24;;657:1396;;;;;;;;1201:24;657:1396;;;;;;;;;;;;;;;-1:-1:-1;657:1396:36;;-1:-1:-1;657:1396:36;;-1:-1:-1;657:1396:36;;;;;;-1:-1:-1;657:1396:36;;;;;-1:-1:-1;657:1396:36", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x6080806040526004361015610012575f80fd5b5f3560e01c9081631c32209214610119575080631ea36725146100af57633acb56241461003d575f80fd5b346100ab575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100ab57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100ab5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100ab5760043573ffffffffffffffffffffffffffffffffffffffff81168091036100ab575f525f602052602060ff60405f2054166040519015158152f35b346100ab5760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100ab576004359060c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc3601126100ab57611dd59081810181811067ffffffffffffffff82111761028a5781610100915f94610305833973ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001681528560208201526101e7604082016102b7565b03019082f5801561027f576020917fc36ddf254f2ae7c3a2c82dc525fed9a804cdaf8102b19b3caa5aeda5afcca38273ffffffffffffffffffffffffffffffffffffffff60e093169283926040519081526102438682016102b7565ba2805f525f825260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055604051908152f35b6040513d5f823e3d90fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b602435815260443560208201526064356040820152608435606082015260a435608082015260c4359073ffffffffffffffffffffffffffffffffffffffff82168092036100ab5760a0015256fe61022080604052346104675780611dd5803803809161001e8285610545565b83398101039061010082126104675761003681610568565b60c0602083015193603f19011261046757604051916100548361052a565b60408101518352606081015193602084019485526080820151926040850193845260a0830151906060860191825261009a60e060c0860151956080890196875201610568565b60a08701908152604051632e3071cd60e11b8152600481018590526001600160a01b0390921694909160c081602481895afa908115610473575f9161048d575b50608001516001600160801b03161561047e57604051632c3c915760e01b8152600481018590529260a084602481895afa938415610473575f946103c2575b508751966080850197885111156103b35789518151106103a457670de0b6b3a76400008a5111610395578151670de0b6b3a76400001161038657815183511061037757825188518015610363576ec097ce7bc90715b34b9f1000000000041061035457608087905260a09590955283516001600160a01b0390811660c052602085810151821660e052604080870151831661010052606087015183166101205298516101405298516101605298516101805293516101a05292516101c05291516101e052905185166102005251915163095ea7b360e01b815260048101919091525f19602482015291925f9260449290918491165af13d15601f3d1160015f51141617161561031e57604051611844908161059182396080518181816101ce0152818161028d0152611113015260a0518181816095015281816103b3015281816104180152610a94015260c051818181611361015261167f015260e051816116b8015261010051816116f401526101205181611730015261014051818181610590015281816106a101526117570152610160518181816105ca01528181610655015281816106800152610f740152610180518181816108310152610fbe01526101a0518181816108570152610fe501526101c0518181816106f0015261100d01526101e05181818161071701526110370152610200518181816104b4015261105d0152f35b60405162461bcd60e51b815260206004820152600e60248201526d1054141493d59157d1905253115160921b6044820152606490fd5b6331aff75360e01b5f5260045ffd5b634e487b7160e01b5f52601260045260245ffd5b63141da4bd60e21b5f5260045ffd5b630136247b60e51b5f5260045ffd5b630287fe3b60e31b5f5260045ffd5b631bc4f82360e01b5f5260045ffd5b63f0586c2360e01b5f5260045ffd5b90935060a0813d60a01161046b575b816103de60a09383610545565b81010312610467576040519060a08201906001600160401b038211838310176104535760809160405261041081610568565b835261041e60208201610568565b602084015261042f60408201610568565b604084015261044060608201610568565b606084015201516080820152925f610119565b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b3d91506103d1565b6040513d5f823e3d90fd5b630ecde9b360e31b5f5260045ffd5b905060c0813d60c011610522575b816104a860c09383610545565b810103126104675761051760a0604051926104c28461052a565b6104cb8161057c565b84526104d96020820161057c565b60208501526104ea6040820161057c565b60408501526104fb6060820161057c565b606085015261050c6080820161057c565b60808501520161057c565b60a08201525f6100da565b3d915061049b565b60c081019081106001600160401b0382111761045357604052565b601f909101601f19168101906001600160401b0382119082101761045357604052565b51906001600160a01b038216820361046757565b51906001600160801b03821682036104675756fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816305b4591c146110a6575080631d553cee14610f165780633078f50a146101f25780633acb5624146101835780637b9e68f2146100bb5763b3cea21714610060575f80fd5b346100b857807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b85760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b80fd5b50346100b857807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b85760a06100f4611636565b61018160405180926080809173ffffffffffffffffffffffffffffffffffffffff815116845273ffffffffffffffffffffffffffffffffffffffff602082015116602085015273ffffffffffffffffffffffffffffffffffffffff604082015116604085015273ffffffffffffffffffffffffffffffffffffffff60608201511660608501520151910152565bf35b50346100b857807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b857602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346100b85760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b85760043573ffffffffffffffffffffffffffffffffffffffff81168103610f125760243560643567ffffffffffffffff8111610f0e576102659036906004016114f4565b60443594918391908215871514610ee65773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016926102b6611636565b843b15610eb657610371604051917f151c1ade00000000000000000000000000000000000000000000000000000000835260048301906080809173ffffffffffffffffffffffffffffffffffffffff815116845273ffffffffffffffffffffffffffffffffffffffff602082015116602085015273ffffffffffffffffffffffffffffffffffffffff604082015116604085015273ffffffffffffffffffffffffffffffffffffffff60608201511660608501520151910152565b858160a48183895af18015610ec257908691610ecd575b5050604051907f5c60e39a0000000000000000000000000000000000000000000000000000000082527f0000000000000000000000000000000000000000000000000000000000000000600483015260c082602481885afa918215610ec2578692610e1f575b50604051917f93c520620000000000000000000000000000000000000000000000000000000083527f0000000000000000000000000000000000000000000000000000000000000000600484015273ffffffffffffffffffffffffffffffffffffffff89166024840152606083604481895afa928315610e14578793610d6c575b50604051917fa035b1fe00000000000000000000000000000000000000000000000000000000835260208360048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa928315610d61578893610d29575b5060206ec097ce7bc90715b34b9f1000000000610517856fffffffffffffffffffffffffffffffff60408901511661177e565b049401926fffffffffffffffffffffffffffffffff8451166fffffffffffffffffffffffffffffffff6040850151166fffffffffffffffffffffffffffffffff6060860151169160018201809211610c7f57620f42408301809311610c7f579061058192916117c8565b94670de0b6b3a76400006105b57f00000000000000000000000000000000000000000000000000000000000000008361177e565b048611610d0157670de0b6b3a76400006105ef7f00000000000000000000000000000000000000000000000000000000000000008361177e565b04861115610cd957670de0b6b3a76400009586810290808204881490151715610cac577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820190828211610c7f579161064e6106539261067a94611629565b611791565b7f00000000000000000000000000000000000000000000000000000000000000009061161c565b9b6106c57f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061161c565b9c86810290808204881490151715610b78578a876107429c9d9e9f6106ed9061074894611791565b9c7f0000000000000000000000000000000000000000000000000000000000000000928e61073b857f000000000000000000000000000000000000000000000000000000000000000061161c565b915061177e565b04611629565b9215610ba55750610759908b61177e565b6ec097ce7bc90715b34b9f0fffffffff8101809111610b4b576ec097ce7bc90715b34b9f1000000000900484810290808204861490151715610b4b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820190828211610b78576107ce929161064e91611629565b6fffffffffffffffffffffffffffffffff6060816040850151169301511690620f42408201809211610b4b5760018301809311610b4b5761082861088394936fffffffffffffffffffffffffffffffff9361087b936117c8565b985b856107428c7f00000000000000000000000000000000000000000000000000000000000000009361073b857f000000000000000000000000000000000000000000000000000000000000000061161c565b91511661177e565b04808511610b1b5750610a2f9261093160c0887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f876040988e9873ffffffffffffffffffffffffffffffffffffffff8b519a8b976020890152168b8701523360608701526080808701528160a0870152868601378b8582860101520116810103017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810184528361157b565b6109f38661093d611636565b8551968795869485937f20b76e8100000000000000000000000000000000000000000000000000000000855260048501906080809173ffffffffffffffffffffffffffffffffffffffff815116845273ffffffffffffffffffffffffffffffffffffffff602082015116602085015273ffffffffffffffffffffffffffffffffffffffff604082015116604085015273ffffffffffffffffffffffffffffffffffffffff60608201511660608501520151910152565b8360a48401528960c484015273ffffffffffffffffffffffffffffffffffffffff8d1660e48401526101206101048401526101248301906115bc565b03925af1928315610b0f578093610ac1575b505073ffffffffffffffffffffffffffffffffffffffff60409485519284845260208401528486840152169033907fd5b01f148b35d6069b626af105bf8881bc2e30ee1ce3de4630903abab0ba858060607f000000000000000000000000000000000000000000000000000000000000000092a482519182526020820152f35b909492506040853d604011610b07575b81610ade6040938361157b565b810103126100b8575073ffffffffffffffffffffffffffffffffffffffff604094519294610a41565b3d9150610ad1565b604051903d90823e3d90fd5b85604491867f44bb1e75000000000000000000000000000000000000000000000000000000008352600452602452fd5b60248a7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b989a50916fffffffffffffffffffffffffffffffff606081604084015116920151169060018101809111610b7857620f42408201809211610b785791610bf5610bfa9261064e889560443561177e565b61177e565b046ec097ce7bc90715b34b9f10000000008102908082046ec097ce7bc90715b34b9f10000000001490151715610c525761087b610c4c61088394936fffffffffffffffffffffffffffffffff93611791565b9a61082a565b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60048a7f0bb9a651000000000000000000000000000000000000000000000000000000008152fd5b60048a7ff78266a2000000000000000000000000000000000000000000000000000000008152fd5b9092506020813d602011610d59575b81610d456020938361157b565b81010312610d555751915f6104e4565b8780fd5b3d9150610d38565b6040513d8a823e3d90fd5b9092506060813d606011610e0c575b81610d886060938361157b565b81010312610e0857604051906060820182811067ffffffffffffffff821117610ddb57610dcf91604091825280518452610dc4602082016115ff565b6020850152016115ff565b6040820152915f61046f565b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b8680fd5b3d9150610d7b565b6040513d89823e3d90fd5b90915060c0813d60c011610eba575b81610e3b60c0938361157b565b81010312610eb657610eaa60a060405192610e5584611543565b610e5e816115ff565b8452610e6c602082016115ff565b6020850152610e7d604082016115ff565b6040850152610e8e606082016115ff565b6060850152610e9f608082016115ff565b6080850152016115ff565b60a0820152905f6103ee565b8580fd5b3d9150610e2e565b6040513d88823e3d90fd5b81610ed79161157b565b610ee257845f610388565b8480fd5b6004847ff0732dd7000000000000000000000000000000000000000000000000000000008152fd5b8380fd5b5080fd5b50346100b857807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100b85760a0604051610f5381611543565b828152826020820152826040820152826060820152826080820152015260c07f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff604051610fb481611543565b82815260208101907f00000000000000000000000000000000000000000000000000000000000000008252604081017f0000000000000000000000000000000000000000000000000000000000000000815260608201907f0000000000000000000000000000000000000000000000000000000000000000825260a060808401937f000000000000000000000000000000000000000000000000000000000000000085520193857f0000000000000000000000000000000000000000000000000000000000000000168552604051968752516020870152516040860152516060850152516080840152511660a0820152f35b90503461149b5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261149b5760043560243567ffffffffffffffff811161149b576110fa9036906004016114f4565b929073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016938433036114cc5781019360808286031261149b5761115460208301611522565b9461116160408401611522565b606084013567ffffffffffffffff811161149b5784019180601f8401121561149b5782359067ffffffffffffffff821161149f576111c760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f850116018861157b565b8187526020828501011161149b576020815f928273ffffffffffffffffffffffffffffffffffffffff9601838a0137870101521694611204611636565b91803b1561149b575f92836101049273ffffffffffffffffffffffffffffffffffffffff6112e19560405198899788967f8720316d00000000000000000000000000000000000000000000000000000000885260048801906080809173ffffffffffffffffffffffffffffffffffffffff815116845273ffffffffffffffffffffffffffffffffffffffff602082015116602085015273ffffffffffffffffffffffffffffffffffffffff604082015116604085015273ffffffffffffffffffffffffffffffffffffffff60608201511660608501520151910152565b3560a48601521660c48401528960e48401525af1801561149057611479575b5090818492516113f7575b50602092606491604051917f23b872dd000000000000000000000000000000000000000000000000000000008352600483015230602483015260448201528273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af13d15601f3d116001845114161716156113995780f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5452414e534645525f46524f4d5f4641494c45440000000000000000000000006044820152fd5b833b15611475578261144491604051809381927f8e8beec40000000000000000000000000000000000000000000000000000000083528660048401526040602484015260448301906115bc565b038183885af1801561146a571561130b5761146083809261157b565b610f12575f61130b565b6040513d85823e3d90fd5b8280fd5b611487919294505f9061157b565b5f92905f611300565b6040513d5f823e3d90fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7fe51b5123000000000000000000000000000000000000000000000000000000005f5260045ffd5b9181601f8401121561149b5782359167ffffffffffffffff831161149b576020838186019501011161149b57565b359073ffffffffffffffffffffffffffffffffffffffff8216820361149b57565b60c0810190811067ffffffffffffffff82111761149f57604052565b60a0810190811067ffffffffffffffff82111761149f57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761149f57604052565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b51906fffffffffffffffffffffffffffffffff8216820361149b57565b91908203918211610cac57565b91908201809211610cac57565b5f60806040516116458161155f565b82815282602082015282604082015282606082015201526040516116688161155f565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016602082015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016604082015273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660608201527f0000000000000000000000000000000000000000000000000000000000000000608082015290565b81810292918115918404141715610cac57565b811561179b570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b906117d29161177e565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810191818311610cac5761180b9261064e91611629565b9056fea2646970667358221220a4400fdf55e00b78e863db05b6eb11bb6abb2d070d36a8977b6db4ab9c9282b464736f6c634300081b0033a2646970667358221220227462241114a37e7734947b7ce3473f41291d53b3cf3b82e51bba741d99666664736f6c634300081b0033", + "sourceMap": "657:1396:36:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;793:31;657:1396;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1784:70;;;;;;;;;;;;;;;657:1396;1784:70;657:1396;1784:70;;;;657:1396;1820:6;657:1396;;;;;;;;;;;;;:::i;:::-;1784:70;;;;;;;;;657:1396;;1872:81;657:1396;;;;;;;;;;;;;;;;;:::i;:::-;1872:81;657:1396;;;;;;;;;;;;;;;;;;;;;;;1784:70;657:1396;;;;;;;;;1784:70;657:1396;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", + "linkReferences": {}, + "immutableReferences": { + "41134": [ + { + "start": 135, + "length": 32 + }, + { + "start": 435, + "length": 32 + } + ] + } + }, + "methodIdentifiers": { + "MORPHO()": "3acb5624", + "createPreLiquidation(bytes32,(uint256,uint256,uint256,uint256,uint256,address))": "1c322092", + "isPreLiquidation(address)": "1ea36725" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"morpho\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"preLiquidation\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"Id\",\"name\":\"id\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preLltv\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preLCF1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preLCF2\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preLIF1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preLIF2\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"preLiquidationOracle\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"struct PreLiquidationParams\",\"name\":\"preLiquidationParams\",\"type\":\"tuple\"}],\"name\":\"CreatePreLiquidation\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MORPHO\",\"outputs\":[{\"internalType\":\"contract IMorpho\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"Id\",\"name\":\"id\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preLltv\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preLCF1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preLCF2\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preLIF1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preLIF2\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"preLiquidationOracle\",\"type\":\"address\"}],\"internalType\":\"struct PreLiquidationParams\",\"name\":\"preLiquidationParams\",\"type\":\"tuple\"}],\"name\":\"createPreLiquidation\",\"outputs\":[{\"internalType\":\"contract IPreLiquidation\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isPreLiquidation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Morpho Labs\",\"custom:contact\":\"security@morpho.org\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"morpho\":\"The address of the Morpho contract.\"}},\"createPreLiquidation(bytes32,(uint256,uint256,uint256,uint256,uint256,address))\":{\"details\":\"Warning: This function will revert without data if the pre-liquidation already exists.\",\"params\":{\"id\":\"The Morpho market for PreLiquidations.\",\"preLiquidationParams\":\"The PreLiquidation params for the PreLiquidation contract.\"}}},\"title\":\"PreLiquidationFactory\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"MORPHO()\":{\"notice\":\"The address of the Morpho contract.\"},\"createPreLiquidation(bytes32,(uint256,uint256,uint256,uint256,uint256,address))\":{\"notice\":\"Creates a PreLiquidation contract.\"},\"isPreLiquidation(address)\":{\"notice\":\"Mapping which returns true if the address is a PreLiquidation contract created by this factory.\"}},\"notice\":\"A linear LIF and linear LCF pre-liquidation factory contract for Morpho.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/PreLiquidationFactory.sol\":\"PreLiquidationFactory\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":ds-test/=lib/solmate/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/morpho-blue/lib/halmos-cheatcodes/src/\",\":morpho-blue/=lib/morpho-blue/\",\":solmate/=lib/solmate/src/\"],\"viaIR\":true},\"sources\":{\"lib/morpho-blue/src/interfaces/IMorpho.sol\":{\"keccak256\":\"0xfd6960f01f379c22160ef7ccd26cce0c108da6c5a2c93a00b6575979b378389f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://88dabf6bbc7da5932b91db690bec17733017fd3e3305493888529d3c3ea255c9\",\"dweb:/ipfs/QmNNX3WXX7K9pEDadGVkt73bw4sbgXCt5ufCdC7vc6JNt2\"]},\"lib/morpho-blue/src/interfaces/IMorphoCallbacks.sol\":{\"keccak256\":\"0x6baa2f223dac77e9a6cc9f729951467332bf6fda9f3dcf92d6f70b86692b12bd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b2e1cd9d9a4b4a63f95d35938c3fd2ab2a69797674d444c23441e0afa121d11c\",\"dweb:/ipfs/QmU4sqFX974a2YAsyYsCuomrC9r67aQxnh9pBnBKmmd68H\"]},\"lib/morpho-blue/src/interfaces/IOracle.sol\":{\"keccak256\":\"0xddca994a05092a5c0f49e24ca63109149de7a7d655f9e3710dc2558079765b35\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://13975f1d2fad5b823b5b3a4a1e3e2d92dfad056cf62ecaa60fb18d7a65f5b816\",\"dweb:/ipfs/QmTDjRoMmC2Rt5JzkPbrwVf9vGKSLkDg9JtxbpeAkgw223\"]},\"lib/morpho-blue/src/libraries/ConstantsLib.sol\":{\"keccak256\":\"0x34f33fef6867defa982f42d0d543ec23d62a17580ba628dd109ad3a547e58637\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d5447f6ea5b7d83d5be7eab207d2a448caa82ce8b202090008b2fadcf87a8bfd\",\"dweb:/ipfs/Qme7ZvdhCmMrHA12AqDW5FCLwhdt5Z1c1HQ5pEkgi89YwQ\"]},\"lib/morpho-blue/src/libraries/ErrorsLib.sol\":{\"keccak256\":\"0x6d3b559fb48d50af2dbe1bb35d2caa1522aa794b1e979ad844ac5988b64b03be\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://7bec71f6aefb71f27b2dd40f5b29940fae6d7f51ccf970d2921507627d6dfd3f\",\"dweb:/ipfs/QmaxoZoNWif7eNew5rGT8zHtHH4qRKY3etimvG6i7n7xDZ\"]},\"lib/morpho-blue/src/libraries/MathLib.sol\":{\"keccak256\":\"0xa7354cbbcecef7bc0c94b61061c4e5da75515056b8e2db65e826b00d7369744a\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d7419c59bb906fcfa49320b68f265c3200090e5c30b194766256aee70b012e08\",\"dweb:/ipfs/Qmbo4uaW6XYnudya4bb6RU6riWXFk5M3CWJge5XzTTaEfd\"]},\"lib/morpho-blue/src/libraries/SharesMathLib.sol\":{\"keccak256\":\"0xe6d1c0ee97239bcda3ca8429fdbad2486faf4192312ce6c4b322772e038f01a8\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://0cf520d5984e253a2d2a9abe195c2d8a6c33b3cddc049175e93a5f22e9972c11\",\"dweb:/ipfs/QmP8rkFEMhx8X7jxtRUkLcq3MdFkTr3nxzof3vzwGhab8p\"]},\"lib/morpho-blue/src/libraries/UtilsLib.sol\":{\"keccak256\":\"0x9a98b6d9cd11924d5a15906046b7c26816a74c61abf9a3d51240a11a78983276\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://10c1fc76024655779bd19c4fb52cdbc062991f8ce1407721d927e9bdf930124c\",\"dweb:/ipfs/QmaYAuSMFXkLA4QTRSUki18XoitH2CvnLNmMMH1m1hKKio\"]},\"lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0xcdfd8db76b2a3415620e4d18cc5545f3d50de792dbf2c3dd5adb40cbe6f94b10\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://57b3ab70cde374af1cf2c9888636e8de6cf660f087b1c9abd805e9271e19fa35\",\"dweb:/ipfs/QmNrLDBAHYFjpjSd12jerm1AdBkDqEYUUaXgnT854BUZ97\"]},\"lib/solmate/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x6ab948013c2c7ca6351e593600425b0ec6df9035320280c678e735bce16e996b\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2ab977d0eeb2bf458f9798250215c646d2f3b1f90b5a7e2b506fdf3335c0f060\",\"dweb:/ipfs/QmYPRoPhNtBAmCSq7imN1scMVpKNQvMTpoqab3tXUx5Tnv\"]},\"src/PreLiquidation.sol\":{\"keccak256\":\"0x1bf41396cda3108b799e82c914acd7c0cd37ae542effd92f4baba487120e332e\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ea0d9119ea15249c20401f5cbaa9103aa224989bf569974c18f80378359fb59c\",\"dweb:/ipfs/QmeeBn9xMm7vmdZPyT8QF4WGp6vMPGfmprKVy9jADmtYBx\"]},\"src/PreLiquidationFactory.sol\":{\"keccak256\":\"0x379d66f353963b89b67de48d69774864dafeb3a0a1c61d78c37d0340f9600c91\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://45067be604d683b0aa045eba7b950587222ea72b0eee97a9439006229c7f295d\",\"dweb:/ipfs/Qmcz9yaxvmBvMgfz2gQXHNRgkCTDCj1PJYPrVmmBBPmeai\"]},\"src/interfaces/IPreLiquidation.sol\":{\"keccak256\":\"0x8f21ecf5eea9c321705b6724bf9ed47f454488674a8532dcc06111dcb3819b59\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://df831ecffc7e8c38ca28610dbeebbe5f17541a7d64896edacc423aad9c120445\",\"dweb:/ipfs/QmNUgHiP2Lcb5fTmqDc9eAxwdjBVnm2CLQok37A752cBBz\"]},\"src/interfaces/IPreLiquidationCallback.sol\":{\"keccak256\":\"0x08534ed8de1682570acb41c144e2c181dfc1b091f345311c3d0dbda4ae76bdbc\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://53b2aec9f56eda4d94608cae905c0bc7b919b2d1072134b87a636d3842cf7f36\",\"dweb:/ipfs/QmVJuG9uTLchvUjjqT6ZbNyP9Z2v92P9BpgjQHWdUinvDR\"]},\"src/interfaces/IPreLiquidationFactory.sol\":{\"keccak256\":\"0xbcf707e92bc9cf118f04f6e3794ee2a6f661b43278f6c2c71415d1b04138700e\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://07fe857f44ae020c66ef87f41afc27660fa86ec9ada674620191316eecb5cb77\",\"dweb:/ipfs/QmXtJdcWwVA6APvqryXWTRdt3gD3cGzqhiYRyxDyMuoT89\"]},\"src/libraries/ErrorsLib.sol\":{\"keccak256\":\"0x9d2a76aa118049710de84c2e2c70a0cf6beacb4a344d33ab00a924468074fa71\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://6169b952001b9bf0bf3cd41fd13d6740db404793d5946695a44d072656fe30ec\",\"dweb:/ipfs/QmdvF7mwsqjc4D9LoHoc3D8cwR5JPYQFJwEu5n4GY4tNpR\"]},\"src/libraries/EventsLib.sol\":{\"keccak256\":\"0xaeb2551182fd0e973a1bc06e79b4cc3df81ea96590020f68fb17975089110e7d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://7fe6cbd36780c4313bec3639ff0a5c15001371403d12477f2b070384082fe04d\",\"dweb:/ipfs/QmZBvyN3nPj3Xz5hacYKLEpAFEYnzJ9UZkSofC9cfh7dz5\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.27+commit.40a35a09" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "morpho", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "type": "error", + "name": "ZeroAddress" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "preLiquidation", + "type": "address", + "indexed": true + }, + { + "internalType": "Id", + "name": "id", + "type": "bytes32", + "indexed": false + }, + { + "internalType": "struct PreLiquidationParams", + "name": "preLiquidationParams", + "type": "tuple", + "components": [ + { + "internalType": "uint256", + "name": "preLltv", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "preLCF1", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "preLCF2", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "preLIF1", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "preLIF2", + "type": "uint256" + }, + { + "internalType": "address", + "name": "preLiquidationOracle", + "type": "address" + } + ], + "indexed": false + } + ], + "type": "event", + "name": "CreatePreLiquidation", + "anonymous": false + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "MORPHO", + "outputs": [ + { + "internalType": "contract IMorpho", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [ + { + "internalType": "Id", + "name": "id", + "type": "bytes32" + }, + { + "internalType": "struct PreLiquidationParams", + "name": "preLiquidationParams", + "type": "tuple", + "components": [ + { + "internalType": "uint256", + "name": "preLltv", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "preLCF1", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "preLCF2", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "preLIF1", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "preLIF2", + "type": "uint256" + }, + { + "internalType": "address", + "name": "preLiquidationOracle", + "type": "address" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "createPreLiquidation", + "outputs": [ + { + "internalType": "contract IPreLiquidation", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "isPreLiquidation", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + } + ], + "devdoc": { + "kind": "dev", + "methods": { + "constructor": { + "params": { + "morpho": "The address of the Morpho contract." + } + }, + "createPreLiquidation(bytes32,(uint256,uint256,uint256,uint256,uint256,address))": { + "details": "Warning: This function will revert without data if the pre-liquidation already exists.", + "params": { + "id": "The Morpho market for PreLiquidations.", + "preLiquidationParams": "The PreLiquidation params for the PreLiquidation contract." + } + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": { + "MORPHO()": { + "notice": "The address of the Morpho contract." + }, + "createPreLiquidation(bytes32,(uint256,uint256,uint256,uint256,uint256,address))": { + "notice": "Creates a PreLiquidation contract." + }, + "isPreLiquidation(address)": { + "notice": "Mapping which returns true if the address is a PreLiquidation contract created by this factory." + } + }, + "version": 1 + } + }, + "settings": { + "remappings": [ + "ds-test/=lib/solmate/lib/ds-test/src/", + "forge-std/=lib/forge-std/src/", + "halmos-cheatcodes/=lib/morpho-blue/lib/halmos-cheatcodes/src/", + "morpho-blue/=lib/morpho-blue/", + "solmate/=lib/solmate/src/" + ], + "optimizer": { + "enabled": true, + "runs": 999999 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "src/PreLiquidationFactory.sol": "PreLiquidationFactory" + }, + "evmVersion": "cancun", + "libraries": {}, + "viaIR": true + }, + "sources": { + "lib/morpho-blue/src/interfaces/IMorpho.sol": { + "keccak256": "0xfd6960f01f379c22160ef7ccd26cce0c108da6c5a2c93a00b6575979b378389f", + "urls": [ + "bzz-raw://88dabf6bbc7da5932b91db690bec17733017fd3e3305493888529d3c3ea255c9", + "dweb:/ipfs/QmNNX3WXX7K9pEDadGVkt73bw4sbgXCt5ufCdC7vc6JNt2" + ], + "license": "GPL-2.0-or-later" + }, + "lib/morpho-blue/src/interfaces/IMorphoCallbacks.sol": { + "keccak256": "0x6baa2f223dac77e9a6cc9f729951467332bf6fda9f3dcf92d6f70b86692b12bd", + "urls": [ + "bzz-raw://b2e1cd9d9a4b4a63f95d35938c3fd2ab2a69797674d444c23441e0afa121d11c", + "dweb:/ipfs/QmU4sqFX974a2YAsyYsCuomrC9r67aQxnh9pBnBKmmd68H" + ], + "license": "GPL-2.0-or-later" + }, + "lib/morpho-blue/src/interfaces/IOracle.sol": { + "keccak256": "0xddca994a05092a5c0f49e24ca63109149de7a7d655f9e3710dc2558079765b35", + "urls": [ + "bzz-raw://13975f1d2fad5b823b5b3a4a1e3e2d92dfad056cf62ecaa60fb18d7a65f5b816", + "dweb:/ipfs/QmTDjRoMmC2Rt5JzkPbrwVf9vGKSLkDg9JtxbpeAkgw223" + ], + "license": "GPL-2.0-or-later" + }, + "lib/morpho-blue/src/libraries/ConstantsLib.sol": { + "keccak256": "0x34f33fef6867defa982f42d0d543ec23d62a17580ba628dd109ad3a547e58637", + "urls": [ + "bzz-raw://d5447f6ea5b7d83d5be7eab207d2a448caa82ce8b202090008b2fadcf87a8bfd", + "dweb:/ipfs/Qme7ZvdhCmMrHA12AqDW5FCLwhdt5Z1c1HQ5pEkgi89YwQ" + ], + "license": "GPL-2.0-or-later" + }, + "lib/morpho-blue/src/libraries/ErrorsLib.sol": { + "keccak256": "0x6d3b559fb48d50af2dbe1bb35d2caa1522aa794b1e979ad844ac5988b64b03be", + "urls": [ + "bzz-raw://7bec71f6aefb71f27b2dd40f5b29940fae6d7f51ccf970d2921507627d6dfd3f", + "dweb:/ipfs/QmaxoZoNWif7eNew5rGT8zHtHH4qRKY3etimvG6i7n7xDZ" + ], + "license": "GPL-2.0-or-later" + }, + "lib/morpho-blue/src/libraries/MathLib.sol": { + "keccak256": "0xa7354cbbcecef7bc0c94b61061c4e5da75515056b8e2db65e826b00d7369744a", + "urls": [ + "bzz-raw://d7419c59bb906fcfa49320b68f265c3200090e5c30b194766256aee70b012e08", + "dweb:/ipfs/Qmbo4uaW6XYnudya4bb6RU6riWXFk5M3CWJge5XzTTaEfd" + ], + "license": "GPL-2.0-or-later" + }, + "lib/morpho-blue/src/libraries/SharesMathLib.sol": { + "keccak256": "0xe6d1c0ee97239bcda3ca8429fdbad2486faf4192312ce6c4b322772e038f01a8", + "urls": [ + "bzz-raw://0cf520d5984e253a2d2a9abe195c2d8a6c33b3cddc049175e93a5f22e9972c11", + "dweb:/ipfs/QmP8rkFEMhx8X7jxtRUkLcq3MdFkTr3nxzof3vzwGhab8p" + ], + "license": "GPL-2.0-or-later" + }, + "lib/morpho-blue/src/libraries/UtilsLib.sol": { + "keccak256": "0x9a98b6d9cd11924d5a15906046b7c26816a74c61abf9a3d51240a11a78983276", + "urls": [ + "bzz-raw://10c1fc76024655779bd19c4fb52cdbc062991f8ce1407721d927e9bdf930124c", + "dweb:/ipfs/QmaYAuSMFXkLA4QTRSUki18XoitH2CvnLNmMMH1m1hKKio" + ], + "license": "GPL-2.0-or-later" + }, + "lib/solmate/src/tokens/ERC20.sol": { + "keccak256": "0xcdfd8db76b2a3415620e4d18cc5545f3d50de792dbf2c3dd5adb40cbe6f94b10", + "urls": [ + "bzz-raw://57b3ab70cde374af1cf2c9888636e8de6cf660f087b1c9abd805e9271e19fa35", + "dweb:/ipfs/QmNrLDBAHYFjpjSd12jerm1AdBkDqEYUUaXgnT854BUZ97" + ], + "license": "AGPL-3.0-only" + }, + "lib/solmate/src/utils/SafeTransferLib.sol": { + "keccak256": "0x6ab948013c2c7ca6351e593600425b0ec6df9035320280c678e735bce16e996b", + "urls": [ + "bzz-raw://2ab977d0eeb2bf458f9798250215c646d2f3b1f90b5a7e2b506fdf3335c0f060", + "dweb:/ipfs/QmYPRoPhNtBAmCSq7imN1scMVpKNQvMTpoqab3tXUx5Tnv" + ], + "license": "AGPL-3.0-only" + }, + "src/PreLiquidation.sol": { + "keccak256": "0x1bf41396cda3108b799e82c914acd7c0cd37ae542effd92f4baba487120e332e", + "urls": [ + "bzz-raw://ea0d9119ea15249c20401f5cbaa9103aa224989bf569974c18f80378359fb59c", + "dweb:/ipfs/QmeeBn9xMm7vmdZPyT8QF4WGp6vMPGfmprKVy9jADmtYBx" + ], + "license": "GPL-2.0-or-later" + }, + "src/PreLiquidationFactory.sol": { + "keccak256": "0x379d66f353963b89b67de48d69774864dafeb3a0a1c61d78c37d0340f9600c91", + "urls": [ + "bzz-raw://45067be604d683b0aa045eba7b950587222ea72b0eee97a9439006229c7f295d", + "dweb:/ipfs/Qmcz9yaxvmBvMgfz2gQXHNRgkCTDCj1PJYPrVmmBBPmeai" + ], + "license": "GPL-2.0-or-later" + }, + "src/interfaces/IPreLiquidation.sol": { + "keccak256": "0x8f21ecf5eea9c321705b6724bf9ed47f454488674a8532dcc06111dcb3819b59", + "urls": [ + "bzz-raw://df831ecffc7e8c38ca28610dbeebbe5f17541a7d64896edacc423aad9c120445", + "dweb:/ipfs/QmNUgHiP2Lcb5fTmqDc9eAxwdjBVnm2CLQok37A752cBBz" + ], + "license": "GPL-2.0-or-later" + }, + "src/interfaces/IPreLiquidationCallback.sol": { + "keccak256": "0x08534ed8de1682570acb41c144e2c181dfc1b091f345311c3d0dbda4ae76bdbc", + "urls": [ + "bzz-raw://53b2aec9f56eda4d94608cae905c0bc7b919b2d1072134b87a636d3842cf7f36", + "dweb:/ipfs/QmVJuG9uTLchvUjjqT6ZbNyP9Z2v92P9BpgjQHWdUinvDR" + ], + "license": "GPL-2.0-or-later" + }, + "src/interfaces/IPreLiquidationFactory.sol": { + "keccak256": "0xbcf707e92bc9cf118f04f6e3794ee2a6f661b43278f6c2c71415d1b04138700e", + "urls": [ + "bzz-raw://07fe857f44ae020c66ef87f41afc27660fa86ec9ada674620191316eecb5cb77", + "dweb:/ipfs/QmXtJdcWwVA6APvqryXWTRdt3gD3cGzqhiYRyxDyMuoT89" + ], + "license": "GPL-2.0-or-later" + }, + "src/libraries/ErrorsLib.sol": { + "keccak256": "0x9d2a76aa118049710de84c2e2c70a0cf6beacb4a344d33ab00a924468074fa71", + "urls": [ + "bzz-raw://6169b952001b9bf0bf3cd41fd13d6740db404793d5946695a44d072656fe30ec", + "dweb:/ipfs/QmdvF7mwsqjc4D9LoHoc3D8cwR5JPYQFJwEu5n4GY4tNpR" + ], + "license": "GPL-2.0-or-later" + }, + "src/libraries/EventsLib.sol": { + "keccak256": "0xaeb2551182fd0e973a1bc06e79b4cc3df81ea96590020f68fb17975089110e7d", + "urls": [ + "bzz-raw://7fe6cbd36780c4313bec3639ff0a5c15001371403d12477f2b070384082fe04d", + "dweb:/ipfs/QmZBvyN3nPj3Xz5hacYKLEpAFEYnzJ9UZkSofC9cfh7dz5" + ], + "license": "GPL-2.0-or-later" + } + }, + "version": 1 + }, + "id": 36 +} diff --git a/foundry.toml b/foundry.toml index 17438dd..307ec2a 100644 --- a/foundry.toml +++ b/foundry.toml @@ -4,6 +4,7 @@ out = "out" libs = ["lib"] via_ir = true optimizer_runs = 999999 # Etherscan does not support verifying contracts with more optimization runs. +bytecode_hash = "none" [profile.default.fmt] wrap_comments = true