From 98571f58b1b161bf4f54144f4ffd1e3edf35fc16 Mon Sep 17 00:00:00 2001 From: Sara Reynolds <30504811+snreynolds@users.noreply.github.com> Date: Mon, 12 Aug 2024 18:56:59 -0400 Subject: [PATCH] add core deploys to periphery (#293) * add core deploys to periphery * one console2 * remove run latest * rename run-latest * .gitignore * delete old deploy pool manager --- .gitignore | 4 +- .../11155111/run-latest.json | 69 +++++++++++++++++++ .../11155111/run-latest.json | 48 +++++++++++++ .../11155111/run-latest.json | 48 +++++++++++++ .../{run-1721766499.json => run-latest.json} | 0 script/01_PoolManager.s.sol | 21 ++++++ script/02_PoolModifyLiquidityTest.s.sol | 18 +++++ script/03_PoolSwapTest.s.sol | 18 +++++ test/script/DeployPoolManager.t.sol | 27 ++++++++ .../DeployPoolMofifyLiquidityTest.t.sol | 26 +++++++ test/script/DeployPoolSwapTest.t.sol | 26 +++++++ 11 files changed, 304 insertions(+), 1 deletion(-) create mode 100644 broadcast/01_PoolManager.s.sol/11155111/run-latest.json create mode 100644 broadcast/02_PoolModifyLiquidityTest.s.sol/11155111/run-latest.json create mode 100644 broadcast/03_PoolSwapTest.s.sol/11155111/run-latest.json rename broadcast/DeployStateView.s.sol/11155111/{run-1721766499.json => run-latest.json} (100%) create mode 100644 script/01_PoolManager.s.sol create mode 100644 script/02_PoolModifyLiquidityTest.s.sol create mode 100644 script/03_PoolSwapTest.s.sol create mode 100644 test/script/DeployPoolManager.t.sol create mode 100644 test/script/DeployPoolMofifyLiquidityTest.t.sol create mode 100644 test/script/DeployPoolSwapTest.t.sol diff --git a/.gitignore b/.gitignore index 785fb393..f4ebe6d3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ cache/ foundry-out/ -.vscode/ \ No newline at end of file +.vscode/ +broadcast/*/*/dry-run/*.json +broadcast/*/*/run-[0-9]*.json \ No newline at end of file diff --git a/broadcast/01_PoolManager.s.sol/11155111/run-latest.json b/broadcast/01_PoolManager.s.sol/11155111/run-latest.json new file mode 100644 index 00000000..732bc8a7 --- /dev/null +++ b/broadcast/01_PoolManager.s.sol/11155111/run-latest.json @@ -0,0 +1,69 @@ +{ + "transactions": [ + { + "hash": "0xae8b5df5aeaac2faf35a24f27312c4defd3eefbca9243f504e68621e5fae551c", + "transactionType": "CREATE", + "contractName": "PoolManager", + "contractAddress": "0xf242ce588b030d0895c51c0730f2368680f80644", + "function": null, + "arguments": [ + "200000" + ], + "transaction": { + "from": "0xb7a249bdeff39727b5eb4c7ad458f682bae6adad", + "gas": "0x69aa97", + "value": "0x0", + "input": "0x60c034609d57601f615fff38819003918201601f19168301916001600160401b0383118484101760a157808492602094604052833981010312609d57515f80546001600160a01b03191633908117825560405192917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a36080523060a052615f4990816100b6823960805181611317015260a051816135f40152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60a0806040526004361015610012575f80fd5b5f3560e01c908162fdd58e14612d7f5750806301ffc9a714612cc0578063095bcdb614612c165780630b0d9c0914612b8a57806311da60b414612b2f578063156e29f614612a7f5780631e2eaeaf14612a45578063234266d7146127ce5780632d7713891461270c57806335fd631a146126985780633dd45adb14612634578063426a8493146125b057806348c8949114612325578063527596511461220d578063558a729714612136578063598af9e71461209e5780635a6bcfda146115e2578063695c5bf514610f3f5780637e87ce7d14610e0257806380f0b44c14610ce15780638161b87414610be95780638da5cb5b14610b9957806397e8cd4e14610b365780639bf6645f14610ae9578063a584119414610aa8578063b6363cf214610a17578063dbd035ff146109c1578063f02de3b214610970578063f135baaa14610936578063f2fde38b1461088a578063f3cd914c146104ff578063f5298aca146103345763fe99049a14610186575f80fd5b346103305760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610330576101bd612de9565b6101c5612e0c565b90604435917f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac72885961027973ffffffffffffffffffffffffffffffffffffffff80606435951693843314158061030d575b610287575b845f52600460205260405f20875f5260205260405f2061023a878254613097565b90551693845f52600460205260405f20865f5260205260405f2061025f8282546130a4565b905560408051338152602081019290925290918291820190565b0390a4602060405160018152f35b845f52600560205260405f208233165f5260205260405f20875f5260205260405f2054867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036102da575b5050610219565b6102e391613097565b855f52600560205260405f208333165f5260205260405f20885f5260205260405f20555f866102d3565b50845f52600360205260405f208233165f5260205260ff60405f20541615610214565b5f80fd5b346103305761034236612e2f565b7fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab235c156104d7577f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac7288596103ed73ffffffffffffffffffffffffffffffffffffffff805f9516956103bb6103b38661322a565b339089613270565b169233841415806104a0575b6103f2575b8385526004602052604085208686526020526040852061025f828254613097565b0390a4005b83855260056020526040852073ffffffffffffffffffffffffffffffffffffffff33168652602052604085208686526020526040852054817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610459575b50506103cc565b61046291613097565b84865260056020526040862073ffffffffffffffffffffffffffffffffffffffff331687526020526040862087875260205260408620558681610452565b5083855260036020526040852073ffffffffffffffffffffffffffffffffffffffff3316865260205260ff604086205416156103c7565b7f54e3ca0d000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610330576101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103305761053836612f2b565b60607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5c36011261033057604051906060820182811067ffffffffffffffff82111761085d5760405260a4358015158103610330578252602082019060c435825260e4359073ffffffffffffffffffffffffffffffffffffffff8216820361033057604084019182526101043567ffffffffffffffff8111610330576105e1903690600401612ff7565b9290937fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab235c156104d7576106136135dd565b51156108355760a0822092835f52600660205260405f209061063482613644565b60808401958482828a8a5173ffffffffffffffffffffffffffffffffffffffff169361065f94613c01565b90949195606088015160020b968b511515915173ffffffffffffffffffffffffffffffffffffffff1691604051986106968a612ebc565b895260208901526040880152606087015262ffffff166080860152885115155f149862ffffff6107b7986106ec6107a49860209d6108155773ffffffffffffffffffffffffffffffffffffffff8b511695614d47565b9492968291926107e8575b505073ffffffffffffffffffffffffffffffffffffffff6040850151169360606fffffffffffffffffffffffffffffffff60a08301511691015160020b90604051958860801d600f0b875288600f0b60208801526040870152606086015260808501521660a08301527f40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f60c03393a38673ffffffffffffffffffffffffffffffffffffffff8a5116613e3e565b809491946107bf575b5050823391613720565b604051908152f35b73ffffffffffffffffffffffffffffffffffffffff6107e19251169083613720565b84806107ad565b73ffffffffffffffffffffffffffffffffffffffff165f5260018f5260405f209081540190558e806106f7565b73ffffffffffffffffffffffffffffffffffffffff8e8c01511695614d47565b7fbe8b8507000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b346103305760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610330577fffffffffffffffffffffffff00000000000000000000000000000000000000006108e2612de9565b73ffffffffffffffffffffffffffffffffffffffff5f549161090782841633146130b1565b1691829116175f55337f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b346103305760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610330576004355c5f5260205ff35b34610330575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033057602073ffffffffffffffffffffffffffffffffffffffff60025416604051908152f35b34610330576109cf36613025565b6040519160408360208152836020820152019160051b8301916020806040850193925b8335548152019101908483821015610a0e5750602080916109f2565b60408186030190f35b346103305760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033057610a4e612de9565b73ffffffffffffffffffffffffffffffffffffffff610a6b612e0c565b91165f52600360205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060ff60405f2054166040519015158152f35b346103305760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033057610ae7610ae2612de9565b613154565b005b3461033057610af736613025565b6040519160408360208152836020820152019160051b8301916020806040850193925b83355c8152019101908483821015610a0e575060208091610b1a565b346103305760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103305773ffffffffffffffffffffffffffffffffffffffff610b82612de9565b165f526001602052602060405f2054604051908152f35b34610330575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033057602073ffffffffffffffffffffffffffffffffffffffff5f5416604051908152f35b346103305760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033057610c20612de9565b610c28612e0c565b9060443573ffffffffffffffffffffffffffffffffffffffff600254163303610cb9576020926107b79180610cb1575073ffffffffffffffffffffffffffffffffffffffff81165f526001845260405f20549283915b73ffffffffffffffffffffffffffffffffffffffff81165f526001865260405f20610caa848254613097565b9055613378565b928391610c7e565b7f48f5c3ed000000000000000000000000000000000000000000000000000000005f5260045ffd5b346103305760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033057610d18612de9565b7fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab235c156104d757335f90815273ffffffffffffffffffffffffffffffffffffffff8216602052604090205c610d6e60243561322a565b600f0b908103610dda577fffffffffffffffffffffffffffffffff800000000000000000000000000000008114610dad57610ae79133915f0390613270565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7fbda73abf000000000000000000000000000000000000000000000000000000005f5260045ffd5b346103305760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033057610e3a36612f2b565b610e42612f19565b9073ffffffffffffffffffffffffffffffffffffffff600254163303610cb9576103e9610fff831610623e900062fff0008416101615610f0e57602060a07fe9c42593e71f84403b84352cd168d693e2c9fcd1fdbcc3feb21d92b43e6696f9922092835f526006825260405f20610eb881613644565b805479ffffff00000000000000000000000000000000000000000000008360b81b16907fffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffff1617905562ffffff60405191168152a2005b62ffffff827fa7abe2f7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b346103305760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033057610f7736612f2b565b60a4359073ffffffffffffffffffffffffffffffffffffffff82168083036103305760c43567ffffffffffffffff811161033057610fb9903690600401612ff7565b90610fc26135dd565b6060840193845160020b617fff81136115b75750845160020b6001811261158c575073ffffffffffffffffffffffffffffffffffffffff81511692602082019373ffffffffffffffffffffffffffffffffffffffff855116908181101561155e5750506080820173ffffffffffffffffffffffffffffffffffffffff81511695604084019661105762ffffff89511682613a74565b15611533575061106c62ffffff885116613b32565b91805173ffffffffffffffffffffffffffffffffffffffff811690813303611470575b505060a08520955f73ffffffffffffffffffffffffffffffffffffffff6002541680611312575b50875f52600660205260405f2090815473ffffffffffffffffffffffffffffffffffffffff166112ea5773ffffffffffffffffffffffffffffffffffffffff7fdd466e674ea557f56295e2d0218a125ea4b4f0f6f3307b95f85e6110838d64389860a09860209f98839662ffffff96859661114e7cffffff00000000000000000000000000000000000000000000000000009d614989565b9c8d9460d01b169079ffffff00000000000000000000000000000000000000000000008f76ffffff00000000000000000000000000000000000000008f9188901b16179160b81b16171790558851908a868316928333036111e8575b5050505050505116995116995116995160020b91511690604051998a528a8a01526040890152606088015260020b95866080820152a4604051908152f35b611000166111f7575b816111aa565b6112ae6112da926112df96604051966020947fa910f80f00000000000000000000000000000000000000000000000000000000899687015233602487015261128c604487018c73ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b60e486015260020b610104850152610120610124850152610144840191613116565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101845283612ed8565b613fe2565b508f8881808a6111f1565b7f7983c051000000000000000000000000000000000000000000000000000000005f5260045ffd5b90505a7f0000000000000000000000000000000000000000000000000000000000000000809110611448575f8091604051938260208601917f553bfc370000000000000000000000000000000000000000000000000000000083526113c58d602489019073ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b60a487526113d460c488612ed8565b81965193f160203d141680611435575b80611427575b8061140c575b156114045762ffffff600191165b906110b6565b505f806113fe565b506103e9610fff821610623e900062fff000831610166113f0565b5062ffffff811681146113ea565b60405191503d5f833e5f825192526113e4565b7f1ee49702000000000000000000000000000000000000000000000000000000005f5260045ffd5b6120001661147f575b8061108f565b61152c90604051907f3440d82000000000000000000000000000000000000000000000000000000000602083015233602483015261150a604483018973ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b8460e48301526101006101048301526112da826112ae61012482018a8d613116565b508a611479565b7fe65af6a0000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7f6e6c9830000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b7fe9e90588000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7fb70024f8000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b34610330576101407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103305761161b36612f2b565b60807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5c360112610330576040519061165282612e84565b60a4358060020b810361033057825260c4358060020b810361033057602083015260e43560408301526101043560608301526101243567ffffffffffffffff8111610330576116a5903690600401612ff7565b92907fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab235c156104d7576116d66135dd565b60a0832093845f52600660205260405f20906116f182613644565b608085015173ffffffffffffffffffffffffffffffffffffffff811690813303611fc5575b5050835160020b92602085015160020b966117346040870151613853565b95606088015160020b9860608201516040519a6117508c612ea0565b338c528860208d01528260408d015289600f0b60608d015260808c015260a08b01525f9080881215611f8e577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276188812611f6257620d89e88113611f3757604051986117ba8a612e84565b5f8a525f60208b01525f60408b01525f60608b015280600f0b611c87575b60048801988060020b5f528960205260405f20998360020b5f5260205260405f20895460a01c60020b8281125f14611c35575060028060018d0154600184015490039c015491015490039c5b60a073ffffffffffffffffffffffffffffffffffffffff8251169101519060405191602683015284600683015282600383015281525f603a600c83012091816040820152816020820152525f526006890160205260405f20986fffffffffffffffffffffffffffffffff8a54169a83600f0b155f14611bd8578b15611bb0576118e760409f6119c59c6118e1916119d79f5b60018301956118d960026118cd848a5485036141c1565b950192835485036141c1565b96555561322a565b9161322a565b6fffffffffffffffffffffffffffffffff169060801b179b5f84600f0b12611b46575b5082600f0b611a0f575b5050505061193b61192c8960801d8360801d01613853565b9189600f0b90600f0b01613853565b6fffffffffffffffffffffffffffffffff169060801b1791815160020b90602083015160020b8b8401516060850151918d5194855260208501528c84015260608301527ff208f4912782fd25c7f114ca3723a2d5dd6f3bcc3ac8db5af63baa85f711d5ec60803393a38773ffffffffffffffffffffffffffffffffffffffff608082015116613922565b809491946119e3575b50833391613720565b82519182526020820152f35b611a099073ffffffffffffffffffffffffffffffffffffffff6080840151169083613720565b856119ce565b809192939450548060a01c60020b9073ffffffffffffffffffffffffffffffffffffffff16908381125f14611a775750505091611a6591611a5f611a55611a6a956144e5565b91600f0b926144e5565b906148b4565b613853565b60801b5b8a808080611914565b948091939295125f14611b12576fffffffffffffffffffffffffffffffff92611acf611a65611ae594611abc611a65600396611ab68b600f0b916144e5565b876148b4565b93611aca89600f0b926144e5565b614857565b84169060801b17940192600f0b828454166148fb565b167fffffffffffffffffffffffffffffffff00000000000000000000000000000000825416179055611a6e565b9150611b2f935091611b29611a55611a65946144e5565b90614857565b6fffffffffffffffffffffffffffffffff16611a6e565b808f9151611b86575b0151611b5c575b8e61190a565b611b81848260049160020b5f52016020525f6002604082208281558260018201550155565b611b56565b611bab848460049160020b5f52016020525f6002604082208281558260018201550155565b611b4f565b7faefeb924000000000000000000000000000000000000000000000000000000005f5260045ffd5b6118e760409f6119c59c6118e1916119d79f6fffffffffffffffffffffffffffffffff611c088a600f0b836148fb565b167fffffffffffffffffffffffffffffffff000000000000000000000000000000008454161783556118b6565b909a908413611c5b5760028060018d0154600184015490039c015491015490039c611824565b99600260018b015460018d01549003600183015490039b81808d0154910154900391015490039c611824565b8860020b5f5260048801602052886fffffffffffffffffffffffffffffffff60405f20805490611ce1838316928d611cc288600f0b866148fb565b9415968787871615141597611f08575b505086600f0b9060801d613df7565b60801b8383161790551660208c01528a528160020b5f526004880160205260405f208054906fffffffffffffffffffffffffffffffff8216611d2684600f0b826148fb565b901592836fffffffffffffffffffffffffffffffff831615141593611ee1575b84600f0b9060801d600f0b03916f7fffffffffffffffffffffffffffffff83137fffffffffffffffffffffffffffffffff80000000000000000000000000000000841217610dad57826fffffffffffffffffffffffffffffffff935060801b8383161790551660608c015260408b0152898c5f83600f0b1215611e09575b5051611def575b60408a0151156117d857611dea60808d015160020b8360058b01614499565b6117d8565b611e0460808d015160020b8a60058b01614499565b611dcb565b60016fffffffffffffffffffffffffffffffff602060808294015160020b940151169280807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2761805028180620d89e80502030501810416809111611eb5576fffffffffffffffffffffffffffffffff60608c01511611611e8957898c611dc4565b507fb8e3c385000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b897fb8e3c385000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b8b5460a01c60020b8613611d465760018c0154600184015560028c01546002840155611d46565b815460a01c60020b1215611f1d575b8f611cd2565b80600160029201546001860155015460028401558d611f17565b7f1ad777f8000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b877fd5e2f7ab000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b87604491604051917fc4433ed500000000000000000000000000000000000000000000000000000000835260048301526024820152fd5b5f604087015113808091612091575b156120265750506040517f259982e500000000000000000000000000000000000000000000000000000000602082015261201d916112da826112ae86898b8d3360248701613799565b505b8680611716565b159081612083575b5061203a575b5061201f565b6040517f21d0ee7000000000000000000000000000000000000000000000000000000000602082015261207c916112da826112ae86898b8d3360248701613799565b5086612034565b61020091501615158861202e565b5061080082161515611fd4565b346103305760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610330576120d5612de9565b73ffffffffffffffffffffffffffffffffffffffff6120f2612e0c565b91165f52600560205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205260405f206044355f52602052602060405f2054604051908152f35b346103305760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103305761216d612de9565b602435908115158092036103305773ffffffffffffffffffffffffffffffffffffffff90335f52600360205260405f208282165f5260205260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff851617905560405192835216907fceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa26760203392a3602060405160018152f35b346103305760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103305761224536612f2b565b61224d612f19565b906280000062ffffff60408301511614801590612301575b6122d95760a0906122758361375c565b205f52600660205260405f209061228b82613644565b81547fffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffff1660d09190911b7cffffff000000000000000000000000000000000000000000000000000016179055005b7f30d21641000000000000000000000000000000000000000000000000000000005f5260045ffd5b5073ffffffffffffffffffffffffffffffffffffffff608082015116331415612265565b346103305760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103305760043567ffffffffffffffff811161033057612374903690600401612ff7565b7fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab235c61258857612400915f9160017fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab235d60405193849283927f91dd7346000000000000000000000000000000000000000000000000000000008452602060048501526024840191613116565b038183335af190811561257d575f916124d5575b507f7d4b3164c6e45b97e7d87b7125a44c5828d005af88f9d751cfd78729c5d99a0b5c6124ad5760406020915f7fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab235d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f835194859381855280519182918282880152018686015e5f85828601015201168101030190f35b7f5212cba1000000000000000000000000000000000000000000000000000000005f5260045ffd5b90503d805f833e6124e68183612ed8565b8101906020818303126103305780519067ffffffffffffffff8211610330570181601f820112156103305780519067ffffffffffffffff821161085d576040519261255960207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8601160185612ed8565b8284526020838301011161033057815f9260208093018386015e8301015281612414565b6040513d5f823e3d90fd5b7f5090d6c6000000000000000000000000000000000000000000000000000000005f5260045ffd5b346103305773ffffffffffffffffffffffffffffffffffffffff6125d336612e2f565b91929092335f52600560205260405f208282165f5260205260405f20845f526020528260405f205560405192835216907fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a760203392a4602060405160018152f35b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033057612666612de9565b7fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab235c156104d7576107b76020916134fb565b346103305760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610330576024356004356040519160408360208152826020820152019060051b8301916001602060408501935b83548152019101908483821015610a0e575060206001916126f0565b346103305760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103305760043573ffffffffffffffffffffffffffffffffffffffff81168091036103305761277e73ffffffffffffffffffffffffffffffffffffffff5f541633146130b1565b807fffffffffffffffffffffffff000000000000000000000000000000000000000060025416176002557fb4bd8ef53df690b9943d3318996006dbb82a25f54719d8c8035b516a2a5b8acc5f80a2005b34610330576101007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103305761280736612f2b565b60c4359060a43560e43567ffffffffffffffff81116103305761282e903690600401612ff7565b9190937fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab235c156104d7576128606135dd565b60a084205f52600660205260405f209461287986613644565b6080850194855173ffffffffffffffffffffffffffffffffffffffff8116908133036129ed575b50506fffffffffffffffffffffffffffffffff6003880154169586156129c5576020976128cc8661322a565b5f036128d78661322a565b5f036fffffffffffffffffffffffffffffffff169060801b1797866129ac575b85612991575b505061290a338884613720565b519273ffffffffffffffffffffffffffffffffffffffff841693843303612936575b8888604051908152f35b601016612944575b8061292c565b612985956112da936112ae926040519788957fe1b4af69000000000000000000000000000000000000000000000000000000008d880152336024880161368a565b5082808080808061293e565b61299d60029187614100565b910190815401905588806128fd565b6129b68188614100565b600183019081540190556128f7565b7fa74f97ab000000000000000000000000000000000000000000000000000000005f5260045ffd5b6020166129fb575b806128a0565b6040517fb6a8b0fa000000000000000000000000000000000000000000000000000000006020820152612a3e916112da826112ae8a888a8c8a336024880161368a565b50876129f5565b346103305760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033057600435545f5260205ff35b3461033057612a8d36612e2f565b907fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab235c156104d7577f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac7288596103ed73ffffffffffffffffffffffffffffffffffffffff805f941695612b0c612aff8761322a565b8603600f0b339089613270565b16938484526004602052604084208685526020526040842061025f8282546130a4565b5f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610330577fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab235c156104d75760206107b7336134fb565b346103305760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033057612bc1612de9565b612bc9612e0c565b604435907fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab235c156104d757610ae792612c11612c048461322a565b5f03600f0b339083613270565b613378565b346103305773ffffffffffffffffffffffffffffffffffffffff612c3936612e2f565b91929092335f52600460205260405f20845f5260205260405f20612c5e848254613097565b90551690815f52600460205260405f20835f5260205260405f20612c838282546130a4565b9055604080513380825260208201939093527f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac7288599181908101610279565b346103305760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610330576004357fffffffff00000000000000000000000000000000000000000000000000000000811680910361033057807f01ffc9a70000000000000000000000000000000000000000000000000000000060209214908115612d55575b506040519015158152f35b7f0f632fb30000000000000000000000000000000000000000000000000000000091501482612d4a565b346103305760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103305760209073ffffffffffffffffffffffffffffffffffffffff612dce612de9565b165f526004825260405f206024355f52825260405f20548152f35b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361033057565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361033057565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60609101126103305760043573ffffffffffffffffffffffffffffffffffffffff8116810361033057906024359060443590565b6080810190811067ffffffffffffffff82111761085d57604052565b60c0810190811067ffffffffffffffff82111761085d57604052565b60a0810190811067ffffffffffffffff82111761085d57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761085d57604052565b60a4359062ffffff8216820361033057565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60a09101126103305760405190612f6282612ebc565b8160043573ffffffffffffffffffffffffffffffffffffffff8116810361033057815260243573ffffffffffffffffffffffffffffffffffffffff8116810361033057602082015260443562ffffff811681036103305760408201526064358060020b81036103305760608201526084359073ffffffffffffffffffffffffffffffffffffffff821682036103305760800152565b9181601f840112156103305782359167ffffffffffffffff8311610330576020838186019501011161033057565b9060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8301126103305760043567ffffffffffffffff811161033057826023820112156103305780600401359267ffffffffffffffff84116103305760248460051b83010111610330576024019190565b91908203918211610dad57565b91908201809211610dad57565b156130b857565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152fd5b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093818652868601375f8582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff7f27e098c505d44ec3574004bca052aabf76bd35004c182099d8c575fb238593b95c166132025773ffffffffffffffffffffffffffffffffffffffff81169081156131fe576131b790613b4f565b907f27e098c505d44ec3574004bca052aabf76bd35004c182099d8c575fb238593b95d7f1e0745a7db1623981f0b2a5d4232364c00787266eb75ad546f190e6cebe9bd955d565b5050565b7f996caf65000000000000000000000000000000000000000000000000000000005f5260045ffd5b6f8000000000000000000000000000000081101561324857600f0b90565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b9190600f0b918215613373576132a6919073ffffffffffffffffffffffffffffffffffffffff8092165f521660205260405f2090565b6132b2815c9283613be6565b80915d61332357507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f7d4b3164c6e45b97e7d87b7125a44c5828d005af88f9d751cfd78729c5d99a0b5c017f7d4b3164c6e45b97e7d87b7125a44c5828d005af88f9d751cfd78729c5d99a0b5d5b565b1561332a57565b60017f7d4b3164c6e45b97e7d87b7125a44c5828d005af88f9d751cfd78729c5d99a0b5c017f7d4b3164c6e45b97e7d87b7125a44c5828d005af88f9d751cfd78729c5d99a0b5d565b505050565b90919073ffffffffffffffffffffffffffffffffffffffff811690816134165750505f80808093855af1156133aa5750565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f3d604051937f8549db59000000000000000000000000000000000000000000000000000000008552600485015260406024850152806044850152805f606486013e011660640190fd5b60205f60448194968260409573ffffffffffffffffffffffffffffffffffffffff988751998a947fa9059cbb00000000000000000000000000000000000000000000000000000000865216600485015260248401525af13d15601f3d1160018551141617169282815282602082015201521561348f5750565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f3d604051937fb12c5f9c000000000000000000000000000000000000000000000000000000008552600485015260406024850152806044850152805f606486013e011660640190fd5b7f27e098c505d44ec3574004bca052aabf76bd35004c182099d8c575fb238593b95c919073ffffffffffffffffffffffffffffffffffffffff8316613550576133219034935b61354a8561322a565b90613270565b346135b5576133219061358c7f1e0745a7db1623981f0b2a5d4232364c00787266eb75ad546f190e6cebe9bd955c61358786613b4f565b613097565b935f7f27e098c505d44ec3574004bca052aabf76bd35004c182099d8c575fb238593b95d613541565b7f19d245cf000000000000000000000000000000000000000000000000000000005f5260045ffd5b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361361c57565b7f0d89438e000000000000000000000000000000000000000000000000000000005f5260045ffd5b5473ffffffffffffffffffffffffffffffffffffffff161561366257565b7f486aa307000000000000000000000000000000000000000000000000000000005f5260045ffd5b91926137056101209473ffffffffffffffffffffffffffffffffffffffff61371d999794168552602085019073ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b60c083015260e0820152816101008201520191613116565b90565b9073ffffffffffffffffffffffffffffffffffffffff6020613321949361374f85848351168660801d90613270565b01511690600f0b90613270565b62ffffff16620f4240811161376e5750565b7f14002113000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9061371d95936138166101609473ffffffffffffffffffffffffffffffffffffffff61384594168552602085019073ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b8051600290810b60c08501526020820151900b60e0840152604081015161010084015260600151610120830152565b816101408201520191613116565b9081600f0b91820361324857565b91610180936138df61390e9273ffffffffffffffffffffffffffffffffffffffff61371d9a9895168652602086019073ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b8051600290810b60c08601526020820151900b60e0850152604081015161010085015260600151610120840152565b610140820152816101608201520191613116565b929593945f9573ffffffffffffffffffffffffffffffffffffffff85163314613a6a57875f6040860151135f146139fc576104008616613965575b505050505050565b6139f0969897506139dd926139e9969594926139b1926040519687957f5a2a81000000000000000000000000000000000000000000000000000000000060208801523360248801613861565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282612ed8565b6002821615159161492c565b809261494c565b915f808080808061395d565b94939291906101008516613a1257505050505050565b6139f0969850859750613a5e92916139b1916139e9976040519687957f8db2b6520000000000000000000000000000000000000000000000000000000060208801523360248801613861565b6001821615159161492c565b505f955050505050565b608081161580613b26575b613afc57604081161580613b1a575b613afc5761040081161580613b0e575b613afc5761010081161580613b02575b613afc5773ffffffffffffffffffffffffffffffffffffffff8116613adc575062ffffff1662800000141590565b613fff161590811591613aed575090565b62800000915062ffffff161490565b50505f90565b50600181161515613aae565b50600281161515613a9e565b50600481161515613a8e565b50600881161515613a7f565b6280000062ffffff821614613b4a5761371d8161375c565b505f90565b73ffffffffffffffffffffffffffffffffffffffff1680613b6f57504790565b6020602491604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa90811561257d575f91613bb7575090565b90506020813d602011613bde575b81613bd260209383612ed8565b81010312610330575190565b3d9150613bc5565b9190915f8382019384129112908015821691151617610dad57565b6020830151955f9586959194913373ffffffffffffffffffffffffffffffffffffffff851614613dea5760808416613c3b575b5050505050565b613d23926139b1613d1d92613d09946040519586947f575e24b4000000000000000000000000000000000000000000000000000000006020870152336024870152613cd3604487018c73ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b8051151560e487015260208101516101048701526040015173ffffffffffffffffffffffffffffffffffffffff16610124860152565b610140610144850152610164840191613116565b82613fe2565b916060835103613dc2576040015162ffffff166280000014613db6575b600816613d51575b80808080613c34565b604001519250608083901d600f0b8015613d4857613d72905f861295613be6565b9315613dae575f84135b613d86575f613d48565b7ffa0b71d6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f8412613d7c565b60608201519350613d40565b7f1e048e1d000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f965086955050505050565b90600f0b90600f0b01907fffffffffffffffffffffffffffffffff8000000000000000000000000000000082126f7fffffffffffffffffffffffffffffff831317610dad57565b9196959394929473ffffffffffffffffffffffffffffffffffffffff83163314613fd5578460801d94600f0b938860408516613efd575b50505050505f9481600f0b15801590613ef1575b613e95575b5050509190565b613ecc9395505f60208201511290511515145f14613ed4576fffffffffffffffffffffffffffffffff169060801b175b809361494c565b5f8080613e8e565b906fffffffffffffffffffffffffffffffff169060801b17613ec5565b5082600f0b1515613e89565b613fb9613fc5946139b1611a6595613fcb999895613f9e613cd3966040519788967fb47b2fb1000000000000000000000000000000000000000000000000000000006020890152336024890152604488019073ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b8c610144850152610160610164850152610184840191613116565b6004821615159161492c565b90613df7565b5f80808088613e75565b5050505050909150905f90565b9190915f80602085519501948582855af11561407e5750604051917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f3d011683016040523d83523d9060208401915f833e602084511091821561404a575b5050613dc257565b5190517fffffffff000000000000000000000000000000000000000000000000000000009182169116141590505f80614042565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f3d73ffffffffffffffffffffffffffffffffffffffff604051947f319d54c300000000000000000000000000000000000000000000000000000000865216600485015260406024850152806044850152805f606486013e011660640190fd5b908160801b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff70010000000000000000000000000000000084099282808510940393808503948584111561033057146141ba5770010000000000000000000000000000000082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b5091500490565b90808202917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff828209918380841093039280840393847001000000000000000000000000000000001115610330571461423a57700100000000000000000000000000000000910990828211900360801b910360801c1790565b50505060801c90565b818102907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83820990828083109203918083039283620f4240111561033057146142c2577fde8f6cefed634549b62c77574f722e1ac57e23f24d8fd5cb790fb65668c2613993620f4240910990828211900360fa1b910360061c170290565b5050620f424091500490565b90808202917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff828209918380841093039280840393846c010000000000000000000000001115610330571461433f576c01000000000000000000000000910990828211900360a01b910360601c1790565b50505060601c90565b908160601b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6c0100000000000000000000000084099282808510940393808503948584111561033057146141ba576c0100000000000000000000000082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b91818302917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818509938380861095039480860395868511156103305714614491579082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b505091500490565b919060020b9060020b908181076144c75705908160081d5f52602052600160ff60405f2092161b8154189055565b601c906044926040519163d4d8f3e683526020830152604082015201fd5b60020b908160ff1d82810118620d89e8811161482b5763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a5940010270010000000000000000000000000000000018916002811661480f575b600481166147f3575b600881166147d7575b601081166147bb575b6020811661479f575b60408116614783575b60808116614767575b610100811661474b575b610200811661472f575b6104008116614713575b61080081166146f7575b61100081166146db575b61200081166146bf575b61400081166146a3575b6180008116614687575b62010000811661466b575b620200008116614650575b620400008116614635575b620800001661461c575b5f126145f5575b0160201c90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff046145ee565b6b048a170391f7dc42444e8fa290910260801c906145e7565b6d2216e584f5fa1ea926041bedfe9890920260801c916145dd565b916e5d6af8dedb81196699c329225ee6040260801c916145d2565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c916145c7565b916f31be135f97d08fd981231505542fcfa60260801c916145bc565b916f70d869a156d2a1b890bb3df62baf32f70260801c916145b2565b916fa9f746462d870fdf8a65dc1f90e061e50260801c916145a8565b916fd097f3bdfd2022b8845ad8f792aa58250260801c9161459e565b916fe7159475a2c29b7443b29c7fa6e889d90260801c91614594565b916ff3392b0822b70005940c7a398e4b70f30260801c9161458a565b916ff987a7253ac413176f2b074cf7815e540260801c91614580565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c91614576565b916ffe5dee046a99a2a811c461f1969c30530260801c9161456c565b916fff2ea16466c96a3843ec78b326b528610260801c91614563565b916fff973b41fa98c081472e6896dfb254c00260801c9161455a565b916fffcb9843d60f6159c9db58835c9266440260801c91614551565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c91614548565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c9161453f565b916ffff97272373d413259a46990580e213a0260801c91614536565b827f8b86327a000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b905f83600f0b125f1461488c57614882925f036fffffffffffffffffffffffffffffffff1691615c21565b5f81126132485790565b6148a8926fffffffffffffffffffffffffffffffff1691615bc6565b5f8112613248575f0390565b905f83600f0b125f146148df57614882925f036fffffffffffffffffffffffffffffffff1691615d18565b6148a8926fffffffffffffffffffffffffffffffff1691615c61565b906fffffffffffffffffffffffffffffffff90600f0b911601908160801c61491f57565b6393dafdf15f526004601cfd5b9061493691613fe2565b9015613b4a576040815103613dc2576040015190565b61496f906149618360801d8260801d03613853565b92600f0b90600f0b03613853565b6fffffffffffffffffffffffffffffffff169060801b1790565b73fffd8963efd1fc6a506488495d951d516396168273ffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffd895d83011611614cce5777ffffffffffffffffffffffffffffffffffffffff000000008160201b16806fffffffffffffffffffffffffffffffff811160071b90811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c9060ff821160031b91821c92600f841160021b93841c94600160038711811b96871c1196171717171717179060808210155f14614cc4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8182011c5b800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c80029081607f1c8260ff1c1c80029283607f1c8460ff1c1c80029485607f1c8660ff1c1c80029687607f1c8860ff1c1c80029889607f1c8a60ff1c1c80029a8b607f1c8c60ff1c1c80029c8d80607f1c9060ff1c1c800260cd1c6604000000000000169d60cc1c6608000000000000169c60cb1c6610000000000000169b60ca1c6620000000000000169a60c91c6640000000000000169960c81c6680000000000000169860c71c670100000000000000169760c61c670200000000000000169660c51c670400000000000000169560c41c670800000000000000169460c31c671000000000000000169360c21c672000000000000000169260c11c674000000000000000169160c01c67800000000000000016907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800160401b1717171717171717171717171717693627a301d71055774c85027ffffffffffffffffffffffffffffffffffd709b7e5480fba5a50fed5e62ffc556810160801d60020b906fdb2df09e81959a81455e260799a0632f0160801d60020b918282145f14614c815750905090565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff614cb5846144e5565b1611614cbf575090565b905090565b81607f031b614a99565b73ffffffffffffffffffffffffffffffffffffffff907f61487524000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b8115614d1a570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b9190915f604051614d5781612ea0565b5f815260208101905f8252604081015f815260608201965f885260808301965f885260a08401975f895284998854906020850151159a6fffffffffffffffffffffffffffffffff60038c0154169384928d155f14615bb7575f610fff8660b81c169b5b60408a01518c52528473ffffffffffffffffffffffffffffffffffffffff168099528460a01c60020b90528c155f14615bac5760018c0154905b5252608084015162400000811615615b9d5762bfffff16614e148161375c565b61ffff8816615b7757945b855f60408701511297620f424062ffffff83161480615b6f575b615b4757604087015115615b315750508a615ad157606085019073ffffffffffffffffffffffffffffffffffffffff82511681811015615a9a5750505173ffffffffffffffffffffffffffffffffffffffff166401000276a38110615a6f57505b60405160805260e060805101608051811067ffffffffffffffff82111761085d576040525f608051525f602060805101525f604060805101525f606060805101525f6080805101525f60a060805101525f60c060805101525b8a51158015615a32575b6158e55773ffffffffffffffffffffffffffffffffffffffff60408c0151166080515260608b015160020b845160020b90815f818307129105038b155f1461578c5760ff8116918160020b60081d60010b5f5260058c0160205260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60018086011b0190541691821592831593845f1461575757610330577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2761894817f07060605060205040602030205040301060502050303040105050304000000006f8421084210842108cc6318c6db6d54be60ff946fffffffffffffffffffffffffffffffff1060071b83811c67ffffffffffffffff1060061b1783811c63ffffffff1060051b1783811c61ffff1060041b1783811c861060031b1792831c1c601f161a1790031660020b900360020b0260020b5b905b15156040608051015260020b8060206080510152131561572a575b620d89e86020608051015160020b121561571a575b8973ffffffffffffffffffffffffffffffffffffffff6150aa6020608051015160020b6144e5565b1680606060805101528c73ffffffffffffffffffffffffffffffffffffffff60408201511673ffffffffffffffffffffffffffffffffffffffff606089015116906fffffffffffffffffffffffffffffffff60a08401511692519262ffffff8b169473ffffffffffffffffffffffffffffffffffffffff60ff8815168583101885831802851816831015935f86125f1461554a5786620f4240039161515183885f03614243565b861561552b57615170858760ff8d151686861018868618028618615c61565b975b8882106154525750508160ff73ffffffffffffffffffffffffffffffffffffffff9a15168183101891180218958691620f424082145f14615443575050845b935b1561543557916151c292615c21565b905b60c0608051015260a060805101526080805101521660408c015285155f146153f75760a060805101515f8112613248578b51038b5261520f60808051015160c06080510151906130a4565b5f81126132485760208c018051918203918213600116610dad57525b61ffff87166153c4575b6fffffffffffffffffffffffffffffffff60a08c015116806153a4575b5073ffffffffffffffffffffffffffffffffffffffff60408c01511673ffffffffffffffffffffffffffffffffffffffff606060805101511681145f146153665750604060805101516152bd575b60ff8a15166020608051015160020b0360020b60608c0152614ef3565b89615342576fffffffffffffffffffffffffffffffff61532960808d015160028c01545b6020608051015160020b60020b5f5260048d0160205260405f2091600183019081549003905560028201908154900390555460801d8d8d15615334575b60a0015183166148fb565b1660a08c01526152a0565b5f91909103600f0b9061531e565b6fffffffffffffffffffffffffffffffff6153298c608060018d01549101516152e1565b73ffffffffffffffffffffffffffffffffffffffff6080515116810361538d575b50614ef3565b61539690614989565b60020b60608c01525f615387565b6153b49060c06080510151614100565b60808c019081510190525f615252565b96620f424060808051015161ffff89169060c06080510151010204908160c060805101510360c060805101520196615235565b60808051015160c06080510151015f8112613248578b51018b5260a060805101515f81126132485761542e60208d01918251613be6565b905261522b565b61543e92615d18565b6151c2565b61544d9187615dbf565b6151b1565b975098505050508094501581151761551e5773ffffffffffffffffffffffffffffffffffffffff9482156154ba5761548b908583615e5e565b935b8480828486156154ab576154a092615c61565b8095015f03936151b3565b916154b592615bc6565b6154a0565b6154f6906154f1908781116154fc576154e9906fffffffffffffffffffffffffffffffff88169060601b614d10565b8784166130a4565b615ef2565b9361548d565b615519906fffffffffffffffffffffffffffffffff881690614348565b6154e9565b634f2461b85f526004601cfd5b6155448560ff8c15168585101885851802851888615bc6565b97615172565b91969395949386156156fb5761556f888560ff84151686861018868618028618615c21565b945b8581106155d657509173ffffffffffffffffffffffffffffffffffffffff97918160ff6155c396951516818310189118021880965b156155c857916155b592615c61565b809380620f42400391615dbf565b6151c4565b6155d192615bc6565b6155b5565b945050505081851582151761551e5784156156d15773ffffffffffffffffffffffffffffffffffffffff81116156785760601b6fffffffffffffffffffffffffffffffff86168082061515910401905b73ffffffffffffffffffffffffffffffffffffffff8116958287111561566b5773ffffffffffffffffffffffffffffffffffffffff6155c393819803165b80966155a6565b634323a5555f526004601cfd5b6fffffffffffffffffffffffffffffffff86166156a3816c01000000000000000000000000846143fa565b918115614d1a576c0100000000000000000000000090096156c5575b90615626565b600101806156bf575f80fd5b90856156f66155c39373ffffffffffffffffffffffffffffffffffffffff9884615de8565b615664565b6157148860ff8315168585101885851802851886615d18565b94615571565b620d89e860206080510152615082565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276186020608051015261506d565b50507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276189360020b900360020b0260020b615050565b600101908160020b908260ff16928260081d60010b5f5260058d016020527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160ff60405f2093161b011990541691821592831593845f146158ac57610330577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276189481600160ff931901167e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f6101e07f804040554300526644320000502061067405302602000010750620017611707760fc7fb6db6db6ddddddddd34d34d349249249210842108c6318c639ce739cffffffff860260f81c161b60f71c1692831c63d76453e004161a17031660020b0160020b0260020b5b90615052565b505060ff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276189481031660020b0160020b0260020b6158a6565b90919996989397929550606087015160a01b76ffffff0000000000000000000000000000000000000000167fffffffffffffffffff000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff60408a0151169216171782556fffffffffffffffffffffffffffffffff60a0870151168091036159ed575b5081156159de57600260808601519101555b15146159c1576159a7604061599b6020850151613853565b92015183519003613853565b6fffffffffffffffffffffffffffffffff169060801b1793565b6040015181516159d19103613853565b6159a76020830151613853565b60016080860151910155615983565b6fffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffff000000000000000000000000000000006003830154161760038201555f615971565b5073ffffffffffffffffffffffffffffffffffffffff60408c01511673ffffffffffffffffffffffffffffffffffffffff60608601511614614efd565b7f9e4d7cc7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b60449250604051917f7c9c6e8f00000000000000000000000000000000000000000000000000000000835260048301526024820152fd5b606085019073ffffffffffffffffffffffffffffffffffffffff82511681811115615a9a5750505173ffffffffffffffffffffffffffffffffffffffff1673fffd8963efd1fc6a506488495d951d5263988d26811015615a6f5750614e9a565b9a509a50505050975050505050505f925f929190565b7f96206246000000000000000000000000000000000000000000000000000000005f5260045ffd5b508815614e39565b62ffffff168061ffff891602620f424080820615159104019061ffff8916010394614e1f565b508060d01c62ffffff16614e14565b60028c015490614df4565b5f610fff8660c41c169b614dba565b6fffffffffffffffffffffffffffffffff6c010000000000000000000000009173ffffffffffffffffffffffffffffffffffffffff80600195169116038060ff1d90810118931692615c1881856142ce565b93091515160190565b6fffffffffffffffffffffffffffffffff9073ffffffffffffffffffffffffffffffffffffffff8061371d9594169116038060ff1d9081011891166142ce565b9073ffffffffffffffffffffffffffffffffffffffff811673ffffffffffffffffffffffffffffffffffffffff831611615d12575b73ffffffffffffffffffffffffffffffffffffffff8216928315615d06577bffffffffffffffffffffffffffffffff00000000000000000000000073ffffffffffffffffffffffffffffffffffffffff615cfa948185169403169160601b16615dbf565b90808206151591040190565b62bfc9215f526004601cfd5b90615c96565b73ffffffffffffffffffffffffffffffffffffffff821673ffffffffffffffffffffffffffffffffffffffff821611615db9575b73ffffffffffffffffffffffffffffffffffffffff8116918215615d065761371d937bffffffffffffffffffffffffffffffff00000000000000000000000073ffffffffffffffffffffffffffffffffffffffff615db4948185169403169160601b166143fa565b614d10565b90615d4c565b929190615dcd8282866143fa565b938215614d1a5709615ddb57565b9060010190811561033057565b91908115615e59577bffffffffffffffffffffffffffffffff00000000000000000000000073ffffffffffffffffffffffffffffffffffffffff9160601b169216918282029183838311918404141615615e4c5761371d926154f192820391615dbf565b63f5c787f15f526004601cfd5b505090565b90918015615eec5773ffffffffffffffffffffffffffffffffffffffff7bffffffffffffffffffffffffffffffff000000000000000000000000819460601b16921680820281615eae8483614d10565b14615ed4575b5090615ec3615ec89284614d10565b6130a4565b80820615159104011690565b8301838110615eb4579150615ee892615dbf565b1690565b50905090565b9073ffffffffffffffffffffffffffffffffffffffff82169182036132485756fea2646970667358221220869bd0bb084561b6548d25f7df7705a61a4ab603a2e434d0334613bc910ea31364736f6c634300081a00330000000000000000000000000000000000000000000000000000000000030d40", + "nonce": "0x3", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xd982eb", + "logs": [ + { + "address": "0xf242ce588b030d0895c51c0730f2368680f80644", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000b7a249bdeff39727b5eb4c7ad458f682bae6adad" + ], + "data": "0x", + "blockHash": "0xbe2e0a1495d4ce221acefeb888c03d41bddf4f2e34daf178b2918ffa4921dce9", + "blockNumber": "0x629a6e", + "transactionHash": "0xae8b5df5aeaac2faf35a24f27312c4defd3eefbca9243f504e68621e5fae551c", + "transactionIndex": "0x36", + "logIndex": "0x83", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000800000000000000000000040000000000000200000020000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xae8b5df5aeaac2faf35a24f27312c4defd3eefbca9243f504e68621e5fae551c", + "transactionIndex": "0x36", + "blockHash": "0xbe2e0a1495d4ce221acefeb888c03d41bddf4f2e34daf178b2918ffa4921dce9", + "blockNumber": "0x629a6e", + "gasUsed": "0x514826", + "effectiveGasPrice": "0x180be5bdd", + "from": "0xb7a249bdeff39727b5eb4c7ad458f682bae6adad", + "to": null, + "contractAddress": "0xf242ce588b030d0895c51c0730f2368680f80644" + } + ], + "libraries": [], + "pending": [], + "returns": { + "manager": { + "internal_type": "contract IPoolManager", + "value": "0xf242cE588b030d0895C51C0730F2368680f80644" + } + }, + "timestamp": 1723140369, + "chain": 11155111, + "commit": "8f392139" +} \ No newline at end of file diff --git a/broadcast/02_PoolModifyLiquidityTest.s.sol/11155111/run-latest.json b/broadcast/02_PoolModifyLiquidityTest.s.sol/11155111/run-latest.json new file mode 100644 index 00000000..f5a85f3d --- /dev/null +++ b/broadcast/02_PoolModifyLiquidityTest.s.sol/11155111/run-latest.json @@ -0,0 +1,48 @@ +{ + "transactions": [ + { + "hash": "0x0e36efb3560fe4f336ed0a49c320c1d094ef0b371a690efd6556c93cc8f86fd9", + "transactionType": "CREATE", + "contractName": "PoolModifyLiquidityTest", + "contractAddress": "0x39bf2eff94201cfaa471932655404f63315147a4", + "function": null, + "arguments": [ + "0xc021A7Deb4a939fd7E661a0669faB5ac7Ba2D5d6" + ], + "transaction": { + "from": "0x7024cc7e60d6560f0b5877da2bb921fcbf1f4375", + "gas": "0x1c11c6", + "value": "0x0", + "input": "0x60a034608257601f61194f38819003918201601f19168301916001600160401b03831184841017608657808492602094604052833981010312608257516001600160a01b03811681036082576080526040516118b4908161009b82396080518181816104c2015281816106070152818161093a01528181610c2f015261120e0152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80630a5b11e414610054578063481c6a751461004f5780635a6bcfda1461004a576391dd734614610045575f80fd5b6106eb565b6104e6565b610478565b6101807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e35761008836610221565b61009136610323565b90610124359067ffffffffffffffff82116100e3576020926100ba6100db933690600401610413565b61014435916100c883610459565b61016435936100d685610459565b6108df565b604051908152f35b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60a0810190811067ffffffffffffffff82111761013057604052565b6100e7565b6080810190811067ffffffffffffffff82111761013057604052565b60c0810190811067ffffffffffffffff82111761013057604052565b6060810190811067ffffffffffffffff82111761013057604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761013057604052565b604051906101d960c083610189565b565b604051906101d9606083610189565b73ffffffffffffffffffffffffffffffffffffffff8116036100e357565b35906101d9826101ea565b35908160020b82036100e357565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60a09101126100e3576040519061025882610114565b81600435610265816101ea565b8152602435610273816101ea565b602082015260443562ffffff811681036100e35760408201526064358060020b81036100e35760608201526080608435916102ad836101ea565b0152565b91908260a09103126100e3576040516102c981610114565b809280356102d6816101ea565b825260208101356102e6816101ea565b6020830152604081013562ffffff811681036100e3576080918291604085015261031260608201610213565b60608501520135916102ad836101ea565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5c60809101126100e3576040519061035a82610135565b8160a4358060020b81036100e357815260c4358060020b81036100e357602082015260e4356040820152606061010435910152565b91908260809103126100e3576040516103a781610135565b60608082946103b581610213565b84526103c360208201610213565b6020850152604081013560408501520135910152565b67ffffffffffffffff811161013057601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f820112156100e35780359061042a826103d9565b926104386040519485610189565b828452602083830101116100e357815f926020809301838601378301015290565b801515036100e357565b35906101d982610459565b5f9103126100e357565b346100e3575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e357602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6101407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e35761051a36610221565b61052336610323565b90610124359167ffffffffffffffff83116100e3576105ba5f9261058e926105526105ed963690600401610413565b9061055b6101ca565b33815292602084015260408301526060820152831515608082015283151560a08201525b60405192839160208301610778565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610189565b604051809381927f48c89491000000000000000000000000000000000000000000000000000000008352600483016106d7565b03818373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af190811561068f5760209161064d915f9161066d575b508280825183010191016108d0565b478061065d575b50604051908152f35b610667903361107b565b5f610654565b61068991503d805f833e6106818183610189565b810190610862565b5f61063e565b6108c5565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b9060206106e8928181520190610694565b90565b346100e35760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100e35760043567ffffffffffffffff81116100e357366023820112156100e35780600401359067ffffffffffffffff82116100e35736602483830101116100e3576107749160246107689201610c26565b604051918291826106d7565b0390f35b6020815273ffffffffffffffffffffffffffffffffffffffff82511660208201526107f56020830151604083019073ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b61082b604083015160e083019060608091805160020b8452602081015160020b6020850152604081015160408501520151910152565b6101a060a061084a6060850151836101608601526101c0850190610694565b93608081015115156101808501520151151591015290565b6020818303126100e35780519067ffffffffffffffff82116100e3570181601f820112156100e357805190610896826103d9565b926108a46040519485610189565b828452602083830101116100e357815f9260208093018386015e8301015290565b6040513d5f823e3d90fd5b908160209103126100e3575190565b61057f610920956109175f9661058e966105ba966108fb6101ca565b3381529660208801526040870152606086015215156080850152565b151560a0830152565b03818373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af1801561068f5761097d915f91610991575b50602080825183010191016108d0565b9047806109875750565b6101d9903361107b565b6109a591503d805f833e6106818183610189565b5f61096d565b156100e357565b6020818303126100e35780359067ffffffffffffffff82116100e357016101a0818303126100e357604051916109e783610151565b6109f082610208565b83526109ff81602084016102b1565b6020840152610a118160c0840161038f565b60408401526101408201359167ffffffffffffffff83116100e357610a3e61018092610a5b948301610413565b6060850152610a506101608201610463565b608085015201610463565b60a082015290565b91908260409103126100e3576020825192015190565b610b066106e89493610ad8836101409573ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b8051600290810b60a08501526020820151900b60c0840152604081015160e084015260600151610100830152565b816101208201520190610694565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b9190915f8382019384129112908015821691151617610b5c57565b610b14565b15610b6857565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f6c6971756964697479206368616e676520696e636f72726563740000000000006044820152fd5b15610bcd57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b7f80000000000000000000000000000000000000000000000000000000000000008114610b5c575f0390565b610d1a90610c7a7f00000000000000000000000000000000000000000000000000000000000000009173ffffffffffffffffffffffffffffffffffffffff831694610c728633146109ab565b8101906109b2565b906020820190610c8c825160a0902090565b946040610cd8610cc2828701988951610ca6815160020b90565b6060610cb6602084015160020b90565b92015192309089611097565b516fffffffffffffffffffffffffffffffff1690565b9184519088515f60608901519385519a8b95869485937f5a6bcfda00000000000000000000000000000000000000000000000000000000855260048501610a79565b03925af193841561068f5761058e966106e8965f96611049575b506040610d6c610cc2610d49885160a0902090565b8451805160020b6060610d60602084015160020b90565b9201519230908b611097565b91610e36610db9610d93895173ffffffffffffffffffffffffffffffffffffffff90511690565b3090610db3885173ffffffffffffffffffffffffffffffffffffffff1690565b906111ea565b959150506fffffffffffffffffffffffffffffffff610e2b610e17610df760208d510173ffffffffffffffffffffffffffffffffffffffff90511690565b3090610db38b5173ffffffffffffffffffffffffffffffffffffffff1690565b9a9150508287875101519116600f0b610b41565b9116600f0b14610b61565b5101515f81121561100457505f81138015610ffb575b610e5590610bc6565b5f81128015610ff2575b610e699015610bc6565b5f8112610faf575b5f8312610f54575b5f8113610f03575b505f8213610ea2575b50505050604051928391602083019190602083019252565b610ec86020610efa95510173ffffffffffffffffffffffffffffffffffffffff90511690565b92610ef460a0610eec845173ffffffffffffffffffffffffffffffffffffffff1690565b930151151590565b936116b7565b5f808080610e8a565b845151610f4e919073ffffffffffffffffffffffffffffffffffffffff1690610f40845173ffffffffffffffffffffffffffffffffffffffff1690565b86610ef460a0870151151590565b5f610e81565b845160200151610faa9073ffffffffffffffffffffffffffffffffffffffff16835173ffffffffffffffffffffffffffffffffffffffff16610f9586610bfa565b9087610fa46080880151151590565b936112cd565b610e79565b845151610fed9073ffffffffffffffffffffffffffffffffffffffff16835173ffffffffffffffffffffffffffffffffffffffff16610f9584610bfa565b610e71565b505f8312610e5f565b505f8313610e4c565b5f1215610e69575f81128015611040575b61101e90610bc6565b5f81138015611037575b6110329015610bc6565b610e69565b505f8313611028565b505f8312611015565b61106c91965060403d604011611074575b6110648183610189565b810190610a63565b50945f610d34565b503d61105a565b5f80809381935af11561108a57565b63f4b3b1bc5f526004601cfd5b949390939291925f604080516110ac8161016d565b82815282602082015201526026526006526003525f52603a600c20905f6026526040516020810191825260066040820152604081526110ec606082610189565b51902060068101809111610b5c5760408051602081019384529081019190915273ffffffffffffffffffffffffffffffffffffffff925f9261117b92611135816060810161058e565b5190206040519485809481937f35fd631a000000000000000000000000000000000000000000000000000000008352600483016020600391939293604081019481520152565b0392165afa90811561068f575f916111d0575b5060208101519060606040820151910151906111c36111ab6101db565b6fffffffffffffffffffffffffffffffff9094168452565b6020830152604082015290565b6111e491503d805f833e6106818183610189565b5f61118e565b92906111f690846117e4565b9273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169061123982826117e4565b935f52602052602060405f206024604051809481937ff135baaa00000000000000000000000000000000000000000000000000000000835260048301525afa90811561068f575f91611289575090565b90506020813d6020116112b0575b816112a460209383610189565b810103126100e3575190565b3d9150611297565b908160209103126100e357516106e881610459565b93919291156113b35761131061131073ffffffffffffffffffffffffffffffffffffffff61132993169573ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b92803b156100e3576040517ff5298aca00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301939093526044820152905f908290818381606481015b03925af1801561068f5761139f5750565b806113ad5f6101d993610189565b8061046e565b9173ffffffffffffffffffffffffffffffffffffffff841661145957506040517f6a256b2900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff93841660048201529260209284926024928492165af1801561068f5761142e5750565b61144f9060203d602011611452575b6114478183610189565b8101906108d0565b50565b503d61143d565b6040517fa584119400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301529293909216916020816024815f875af1801561068f5761169a575b5073ffffffffffffffffffffffffffffffffffffffff811630146115f3576040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015290821660248201526044810192909252602082806064810103815f73ffffffffffffffffffffffffffffffffffffffff88165af190811561068f575f936020936115b5936115c6575b505b6040519485809481937f6a256b290000000000000000000000000000000000000000000000000000000083526004830191909173ffffffffffffffffffffffffffffffffffffffff6020820193169052565b03925af1801561068f5761142e5750565b6115e590853d87116115ec575b6115dd8183610189565b8101906112b8565b505f611561565b503d6115d3565b506040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024810192909252602082806044810103815f73ffffffffffffffffffffffffffffffffffffffff88165af190811561068f575f936020936115b59361167d575b50611563565b61169390853d87116115ec576115dd8183610189565b505f611677565b6116b29060203d602011611452576114478183610189565b6114b7565b93919291156117635761131061131073ffffffffffffffffffffffffffffffffffffffff6116fa93169573ffffffffffffffffffffffffffffffffffffffff1690565b92803b156100e3576040517f156e29f600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301939093526044820152905f9082908183816064810161138e565b91929173ffffffffffffffffffffffffffffffffffffffff16803b156100e3576040517f0b0d9c0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff938416600482015293909216602484015260448301525f9082908183816064810161138e565b73ffffffffffffffffffffffffffffffffffffffff811661180457503190565b9073ffffffffffffffffffffffffffffffffffffffff60246020928260405195869485937f70a08231000000000000000000000000000000000000000000000000000000008552166004840152165afa90811561068f575f91611865575090565b6106e8915060203d60201161145257611447818361018956fea2646970667358221220f765e66a67f7100c995a43007098f6f6e1f2758bba46beb22c8e7f6dc282d06b64736f6c634300081a0033000000000000000000000000c021a7deb4a939fd7e661a0669fab5ac7ba2d5d6", + "nonce": "0x1f", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xc005d1", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x0e36efb3560fe4f336ed0a49c320c1d094ef0b371a690efd6556c93cc8f86fd9", + "transactionIndex": "0x5c", + "blockHash": "0x2dd72ae243790b5e7bc4c6ae30d65e8cecbb7b1b6ec57cb87937cf647eac76c7", + "blockNumber": "0x5bc1f6", + "gasUsed": "0x159785", + "effectiveGasPrice": "0x33d9b23fd", + "from": "0x7024cc7e60d6560f0b5877da2bb921fcbf1f4375", + "to": null, + "contractAddress": "0x39bf2eff94201cfaa471932655404f63315147a4" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1717170897, + "chain": 11155111, + "commit": "1bb670c8" +} \ No newline at end of file diff --git a/broadcast/03_PoolSwapTest.s.sol/11155111/run-latest.json b/broadcast/03_PoolSwapTest.s.sol/11155111/run-latest.json new file mode 100644 index 00000000..57bafe84 --- /dev/null +++ b/broadcast/03_PoolSwapTest.s.sol/11155111/run-latest.json @@ -0,0 +1,48 @@ +{ + "transactions": [ + { + "hash": "0x74ca96c398e6f9b91fbf04982a07b79ea867746de5e1e4d3fdc3f11a5226e7b1", + "transactionType": "CREATE", + "contractName": "PoolSwapTest", + "contractAddress": "0x841b5a0b3dbc473c8a057e2391014aa4c4751351", + "function": null, + "arguments": [ + "0xc021A7Deb4a939fd7E661a0669faB5ac7Ba2D5d6" + ], + "transaction": { + "from": "0x7024cc7e60d6560f0b5877da2bb921fcbf1f4375", + "gas": "0x1e2b89", + "value": "0x0", + "input": "0x60a034607a57601f611b4738819003918201601f19168301916001600160401b03831184841017607e57808492602094604052833981010312607a57516001600160a01b0381168103607a57608052604051611ab49081610093823960805181818160ab01528181610d29015281816110a601526114ed0152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80632229d0b414610d4d578063481c6a7514610cdf576391dd73461461003a575f80fd5b34610c0c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610c0c5760043567ffffffffffffffff8111610c0c5736602382011215610c0c57806004013567ffffffffffffffff8111610c0c578101906024820191368311610c0c577f00000000000000000000000000000000000000000000000000000000000000009273ffffffffffffffffffffffffffffffffffffffff841692833303610c0c57602081840312610c0c5760248101359067ffffffffffffffff8211610c0c57019061018082840312610c0c576040519161012383611198565b61012f6024820161125a565b835260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08286030112610c0c576040519061016a826111fd565b6101766044820161127b565b82526101846064820161127b565b60208301526020840191825260a060247fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c838803010112610c0c57604051946101cc86611198565b6101d86084830161125a565b86526101e660a4830161125a565b602087015260c482013562ffffff81168103610c0c57604087015260e48201358060020b8103610c0c57606087015261010482013573ffffffffffffffffffffffffffffffffffffffff81168103610c0c577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedc8360609360249360808b015260408901998a5203010112610c0c5760405192610281846111e1565b61028e610124830161127b565b8452610144820135602085015261016482013573ffffffffffffffffffffffffffffffffffffffff81168103610c0c576040850152606085019384526101848201359167ffffffffffffffff8311610c0c576102ed92016024016112c2565b946080840195865261033073ffffffffffffffffffffffffffffffffffffffff8651511673ffffffffffffffffffffffffffffffffffffffff86511630916114c9565b91505061037273ffffffffffffffffffffffffffffffffffffffff60208851015116309073ffffffffffffffffffffffffffffffffffffffff885116906114c9565b92915050610c8157610c2357610447956020916104135f885161045b885195516040519c8d97889687957ff3cd914c000000000000000000000000000000000000000000000000000000008752600487019073ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b8051151560a4860152602081015160c48601526040015173ffffffffffffffffffffffffffffffffffffffff1660e4850152565b610120610104840152610124830190611308565b03925af1948515610c18575f95610be0575b506104aa73ffffffffffffffffffffffffffffffffffffffff85515116309073ffffffffffffffffffffffffffffffffffffffff865116906114c9565b979150506104ed73ffffffffffffffffffffffffffffffffffffffff60208751015116309073ffffffffffffffffffffffffffffffffffffffff875116906114c9565b855180519196935091501561092357505f602082510151125f146107cb575160200151871261072157610527878760801d600f0b1461135a565b5f831261069d57610582965b5f811261065b575b5f8412610606575b5f81136105be575b505f8313610586575b86866040519060208201526020815261056e604082611219565b604051918291602083526020830190611308565b0390f35b73ffffffffffffffffffffffffffffffffffffffff8060206105b497510151169451169151511515936118ee565b5f80808080610554565b6106009073ffffffffffffffffffffffffffffffffffffffff875151169073ffffffffffffffffffffffffffffffffffffffff875116848651511515936118ee565b5f61054b565b61065673ffffffffffffffffffffffffffffffffffffffff6020885101511673ffffffffffffffffffffffffffffffffffffffff87511661064687611470565b90856020885101511515936115af565b610543565b61069873ffffffffffffffffffffffffffffffffffffffff8751511673ffffffffffffffffffffffffffffffffffffffff87511661064684611470565b61053b565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f64656c7461416674657231206973206e6f742067726561746572207468616e2060448201527f6f7220657175616c20746f2030000000000000000000000000000000000000006064820152fd5b60a46040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604760248201527f64656c7461416674657230206973206e6f742067726561746572207468616e2060448201527f6f7220657175616c20746f20646174612e706172616d732e616d6f756e74537060648201527f65636966696564000000000000000000000000000000000000000000000000006084820152fd5b5f881361089f576020906107e38589600f0b146113e5565b51015183136107f55761058296610533565b60a46040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604460248201527f64656c7461416674657231206973206e6f74206c657373207468616e206f722060448201527f657175616c20746f20646174612e706172616d732e616d6f756e74537065636960648201527f66696564000000000000000000000000000000000000000000000000000000006084820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f64656c7461416674657230206973206e6f74206c657373207468616e206f722060448201527f657175616c20746f207a65726f000000000000000000000000000000000000006064820152fd5b602001515f1315610a8557516020015183126109db576109478387600f0b146113e5565b5f87126109575761058296610533565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f64656c7461416674657230206973206e6f742067726561746572207468616e2060448201527f6f7220657175616c20746f2030000000000000000000000000000000000000006064820152fd5b60a46040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604760248201527f64656c7461416674657231206973206e6f742067726561746572207468616e2060448201527f6f7220657175616c20746f20646174612e706172616d732e616d6f756e74537060648201527f65636966696564000000000000000000000000000000000000000000000000006084820152fd5b5f8413610b5c57602090610aa0898960801d600f0b1461135a565b5101518713610ab25761058296610533565b60a46040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604460248201527f64656c7461416674657230206973206e6f74206c657373207468616e206f722060448201527f657175616c20746f20646174612e706172616d732e616d6f756e74537065636960648201527f66696564000000000000000000000000000000000000000000000000000000006084820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f64656c7461416674657231206973206e6f74206c657373207468616e206f722060448201527f657175616c20746f2030000000000000000000000000000000000000000000006064820152fd5b9094506020813d602011610c10575b81610bfc60209383611219565b81010312610c0c5751935f61046d565b5f80fd5b3d9150610bef565b6040513d5f823e3d90fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f64656c74614265666f726531206973206e6f7420657175616c20746f203000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f64656c74614265666f726530206973206e6f7420657175616c20746f203000006044820152fd5b34610c0c575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610c0c57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016101608112610c0c5760a013610c0c57604051610d8c81611198565b60043573ffffffffffffffffffffffffffffffffffffffff81168103610c0c57815260243573ffffffffffffffffffffffffffffffffffffffff81168103610c0c57602082015260443562ffffff81168103610c0c5760408201526064358060020b8103610c0c57606082015260843573ffffffffffffffffffffffffffffffffffffffff81168103610c0c57608082015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5c360112610c0c57604051610e54816111e1565b60a4358015158103610c0c57815260c435602082015260e43573ffffffffffffffffffffffffffffffffffffffff81168103610c0c57604082015260407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefc360112610c0c5760405191610ec6836111fd565b610104358015158103610c0c578352610124358015158103610c0c5760208401526101443567ffffffffffffffff8111610c0c5761108c9361102573ffffffffffffffffffffffffffffffffffffffff936110105f96610fd8610f306110519736906004016112c2565b93602060405197610f4089611198565b3389528189019081526040890192835260608901948552608089019687526040519a8b9983808c0152511660408a0152518051151560608a01520151151560808801525160a087019073ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b518051151561014086015260208101516101608601526040015173ffffffffffffffffffffffffffffffffffffffff16610180850152565b516101806101a08401526101c0830190611308565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282611219565b604051809381927f48c89491000000000000000000000000000000000000000000000000000000008352602060048401526024830190611308565b03818373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af1908115610c18575f9161111e575b5060208151918180820193849201010312610c0c575147806110fe575b602082604051908152f35b5f80808093335af11561111157816110f3565b63f4b3b1bc5f526004601cfd5b90503d805f833e61112f8183611219565b810190602081830312610c0c5780519067ffffffffffffffff8211610c0c570181601f82011215610c0c5780519061116682611288565b926111746040519485611219565b82845260208383010111610c0c57815f9260208093018386015e83010152816110d6565b60a0810190811067ffffffffffffffff8211176111b457604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6060810190811067ffffffffffffffff8211176111b457604052565b6040810190811067ffffffffffffffff8211176111b457604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176111b457604052565b359073ffffffffffffffffffffffffffffffffffffffff82168203610c0c57565b35908115158203610c0c57565b67ffffffffffffffff81116111b457601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f82011215610c0c578035906112d982611288565b926112e76040519485611219565b82845260208383010111610c0c57815f926020809301838601378301015290565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b90816020910312610c0c575190565b1561136157565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f64656c74612e616d6f756e74302829206973206e6f7420657175616c20746f2060448201527f64656c74614166746572300000000000000000000000000000000000000000006064820152fd5b156113ec57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f64656c74612e616d6f756e74312829206973206e6f7420657175616c20746f2060448201527f64656c74614166746572310000000000000000000000000000000000000000006064820152fd5b7f8000000000000000000000000000000000000000000000000000000000000000811461149c575f0390565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b92906114d590846119ff565b9273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169061151882826119ff565b935f52602052602060405f206024604051809481937ff135baaa00000000000000000000000000000000000000000000000000000000835260048301525afa908115610c18575f91611568575090565b90506020813d60201161158f575b8161158360209383611219565b81010312610c0c575190565b3d9150611576565b90816020910312610c0c57518015158103610c0c5790565b9293156116515773ffffffffffffffffffffffffffffffffffffffff16803b15610c0c576040517ff5298aca00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201529290911660248301526044820192909252905f908290818381606481015b03925af18015610c18576116455750565b5f61164f91611219565b565b73ffffffffffffffffffffffffffffffffffffffff9092169290836116f8575090602473ffffffffffffffffffffffffffffffffffffffff9360209360405195869485937f6a256b290000000000000000000000000000000000000000000000000000000085526004850152165af18015610c18576116cd5750565b6116ee9060203d6020116116f1575b6116e68183611219565b81019061134b565b50565b503d6116dc565b909173ffffffffffffffffffffffffffffffffffffffff1690604051907fa58411940000000000000000000000000000000000000000000000000000000082528460048301526020826024815f875af18015610c18576118a9575b73ffffffffffffffffffffffffffffffffffffffff1692905030831461183557604051927f23b872dd000000000000000000000000000000000000000000000000000000008452600484015281602484015260448301526020826064815f875af18015610c18575f93602093602492611808575b505b60405194859384927f6a256b2900000000000000000000000000000000000000000000000000000000845260048401525af18015610c18576116cd5750565b61182790853d871161182e575b61181f8183611219565b810190611597565b505f6117c7565b503d611815565b9150604051917fa9059cbb00000000000000000000000000000000000000000000000000000000835281600484015260248301526020826044815f875af18015610c18575f9360209360249261188c575b506117c9565b6118a290853d871161182e5761181f8183611219565b505f611886565b6020823d6020116118e6575b816118c260209383611219565b81010312610c0c5773ffffffffffffffffffffffffffffffffffffffff9150611753565b3d91506118b5565b9293156119775773ffffffffffffffffffffffffffffffffffffffff16803b15610c0c576040517f156e29f600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201529290911660248301526044820192909252905f90829081838160648101611634565b90929073ffffffffffffffffffffffffffffffffffffffff16803b15610c0c575f928360649273ffffffffffffffffffffffffffffffffffffffff948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af18015610c18576116455750565b73ffffffffffffffffffffffffffffffffffffffff1680611a1f57503190565b9073ffffffffffffffffffffffffffffffffffffffff602460209260405194859384927f70a082310000000000000000000000000000000000000000000000000000000084521660048301525afa908115610c18575f9161156857509056fea2646970667358221220179f25b6830b36c42ba8103208b1ae8a755e3dca8fab12de58749fb99b5108a764736f6c634300081a0033000000000000000000000000c021a7deb4a939fd7e661a0669fab5ac7ba2d5d6", + "nonce": "0x20", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xbfc25a", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x74ca96c398e6f9b91fbf04982a07b79ea867746de5e1e4d3fdc3f11a5226e7b1", + "transactionIndex": "0x45", + "blockHash": "0xaf30ad54fa5f08c8e49d5e2d14ceb881f09593af54065dd9d6a033f0e05a5a62", + "blockNumber": "0x5bc1fc", + "gasUsed": "0x17352f", + "effectiveGasPrice": "0x37c29ef55", + "from": "0x7024cc7e60d6560f0b5877da2bb921fcbf1f4375", + "to": null, + "contractAddress": "0x841b5a0b3dbc473c8a057e2391014aa4c4751351" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1717170991, + "chain": 11155111, + "commit": "1bb670c8" +} \ No newline at end of file diff --git a/broadcast/DeployStateView.s.sol/11155111/run-1721766499.json b/broadcast/DeployStateView.s.sol/11155111/run-latest.json similarity index 100% rename from broadcast/DeployStateView.s.sol/11155111/run-1721766499.json rename to broadcast/DeployStateView.s.sol/11155111/run-latest.json diff --git a/script/01_PoolManager.s.sol b/script/01_PoolManager.s.sol new file mode 100644 index 00000000..c6e53e4e --- /dev/null +++ b/script/01_PoolManager.s.sol @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.20; + +import "forge-std/Script.sol"; +import {PoolManager} from "@uniswap/v4-core/src/PoolManager.sol"; +import {IPoolManager} from "@uniswap/v4-core/src/interfaces/IPoolManager.sol"; + +import "forge-std/console2.sol"; + +contract DeployPoolManager is Script { + function setUp() public {} + + function run(uint256 controllerGasLimit) public returns (IPoolManager manager) { + vm.startBroadcast(); + + manager = new PoolManager(controllerGasLimit); + console2.log("PoolManager", address(manager)); + + vm.stopBroadcast(); + } +} diff --git a/script/02_PoolModifyLiquidityTest.s.sol b/script/02_PoolModifyLiquidityTest.s.sol new file mode 100644 index 00000000..3e0b7551 --- /dev/null +++ b/script/02_PoolModifyLiquidityTest.s.sol @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.22; + +import {Script} from "forge-std/Script.sol"; +import {IPoolManager} from "@uniswap/v4-core/src/interfaces/IPoolManager.sol"; +import {PoolModifyLiquidityTest} from "@uniswap/v4-core/src/test/PoolModifyLiquidityTest.sol"; + +import "forge-std/console2.sol"; + +contract DeployPoolModifyLiquidityTest is Script { + function setUp() public {} + + function run(address poolManager) public returns (PoolModifyLiquidityTest testModifyRouter) { + vm.broadcast(); + testModifyRouter = new PoolModifyLiquidityTest(IPoolManager(poolManager)); + console2.log("PoolModifyLiquidityTest", address(testModifyRouter)); + } +} diff --git a/script/03_PoolSwapTest.s.sol b/script/03_PoolSwapTest.s.sol new file mode 100644 index 00000000..a2da989f --- /dev/null +++ b/script/03_PoolSwapTest.s.sol @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.22; + +import {Script} from "forge-std/Script.sol"; +import {IPoolManager} from "@uniswap/v4-core/src/interfaces/IPoolManager.sol"; +import {PoolSwapTest} from "@uniswap/v4-core/src/test/PoolSwapTest.sol"; + +import "forge-std/console2.sol"; + +contract DeployPoolSwapTest is Script { + function setUp() public {} + + function run(address poolManager) public returns (PoolSwapTest testSwapRouter) { + vm.broadcast(); + testSwapRouter = new PoolSwapTest(IPoolManager(poolManager)); + console2.log("PoolSwapTest", address(testSwapRouter)); + } +} diff --git a/test/script/DeployPoolManager.t.sol b/test/script/DeployPoolManager.t.sol new file mode 100644 index 00000000..39e9e6ab --- /dev/null +++ b/test/script/DeployPoolManager.t.sol @@ -0,0 +1,27 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.20; + +import {DeployPoolManager} from "../../script/01_PoolManager.s.sol"; +import {IPoolManager} from "@uniswap/v4-core/src/interfaces/IPoolManager.sol"; +import {Test} from "forge-std/Test.sol"; + +contract DeployPoolManagerTest is Test { + DeployPoolManager deployer; + + function setUp() public { + deployer = new DeployPoolManager(); + } + + function test_run_poolManager() public { + IPoolManager manager = deployer.run(100); + // Foundry sets a default sender in scripts. + address defaultSender = 0x1804c8AB1F12E6bbf3894d4083f33e07309d1f38; + // Deployer is the owner. + assertEq(_getOwner(manager), defaultSender); + } + + function _getOwner(IPoolManager manager) public view returns (address owner) { + // owner is at slot 0 + owner = address(uint160(uint256(manager.extsload(0)))); + } +} diff --git a/test/script/DeployPoolMofifyLiquidityTest.t.sol b/test/script/DeployPoolMofifyLiquidityTest.t.sol new file mode 100644 index 00000000..8f8c193e --- /dev/null +++ b/test/script/DeployPoolMofifyLiquidityTest.t.sol @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.20; + +import {DeployPoolModifyLiquidityTest} from "../../script/02_PoolModifyLiquidityTest.s.sol"; +import {IPoolManager} from "@uniswap/v4-core/src/interfaces/IPoolManager.sol"; +import {PoolManager} from "@uniswap/v4-core/src/PoolManager.sol"; +import {Test} from "forge-std/Test.sol"; +import {PoolModifyLiquidityTest} from "@uniswap/v4-core/src/test/PoolModifyLiquidityTest.sol"; + +// Test of a Test contract (lol) +contract DeployPoolModifyLiquidityTestTest is Test { + DeployPoolModifyLiquidityTest deployer; + + IPoolManager manager; + + function setUp() public { + manager = new PoolManager(200_000); + deployer = new DeployPoolModifyLiquidityTest(); + } + + function test_run_modifyLiquidityRouter() public { + PoolModifyLiquidityTest testModifyLiquidityRouter = deployer.run(address(manager)); + + assertEq(address(testModifyLiquidityRouter.manager()), address(manager)); + } +} diff --git a/test/script/DeployPoolSwapTest.t.sol b/test/script/DeployPoolSwapTest.t.sol new file mode 100644 index 00000000..4d6a3a5c --- /dev/null +++ b/test/script/DeployPoolSwapTest.t.sol @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.20; + +import {DeployPoolSwapTest} from "../../script/03_PoolSwapTest.s.sol"; +import {IPoolManager} from "@uniswap/v4-core/src/interfaces/IPoolManager.sol"; +import {PoolManager} from "@uniswap/v4-core/src/PoolManager.sol"; +import {Test} from "forge-std/Test.sol"; +import {PoolSwapTest} from "@uniswap/v4-core/src/test/PoolSwapTest.sol"; + +// Test of a Test contract (lol) +contract DeployPoolSwapTestTest is Test { + DeployPoolSwapTest deployer; + + IPoolManager manager; + + function setUp() public { + manager = new PoolManager(200_000); + deployer = new DeployPoolSwapTest(); + } + + function test_run_testSwapRouter() public { + PoolSwapTest testSwapRouter = deployer.run(address(manager)); + + assertEq(address(testSwapRouter.manager()), address(manager)); + } +}