UNPKG

@uniswap/v4-core

Version:

🦄 Core smart contracts of Uniswap v4

1 lines • 61.4 kB
{"abi":[{"type":"constructor","inputs":[{"name":"_manager","type":"address","internalType":"contract IPoolManager"}],"stateMutability":"nonpayable"},{"type":"function","name":"manager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPoolManager"}],"stateMutability":"view"},{"type":"function","name":"swap","inputs":[{"name":"key","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"params","type":"tuple","internalType":"struct SwapParams","components":[{"name":"zeroForOne","type":"bool","internalType":"bool"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"}]},{"name":"testSettings","type":"tuple","internalType":"struct PoolSwapTest.TestSettings","components":[{"name":"takeClaims","type":"bool","internalType":"bool"},{"name":"settleUsingBurn","type":"bool","internalType":"bool"}]},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"delta","type":"int256","internalType":"BalanceDelta"}],"stateMutability":"payable"},{"type":"function","name":"unlockCallback","inputs":[{"name":"rawData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"error","name":"NoSwapOccurred","inputs":[]}],"bytecode":{"object":"0x60a034607a57601f611bb938819003918201601f19168301916001600160401b03831184841017607e57808492602094604052833981010312607a57516001600160a01b0381168103607a57608052604051611b269081610093823960805181818160ab01528181610d29015281816110a6015261158c0152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80632229d0b414610d4d578063481c6a7514610cdf576391dd73461461003a575f80fd5b34610c0c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610c0c5760043567ffffffffffffffff8111610c0c5736602382011215610c0c57806004013567ffffffffffffffff8111610c0c578101906024820191368311610c0c577f00000000000000000000000000000000000000000000000000000000000000009273ffffffffffffffffffffffffffffffffffffffff841692833303610c0c57602081840312610c0c5760248101359067ffffffffffffffff8211610c0c57019061018082840312610c0c576040519161012383611236565b61012f602482016112f8565b835260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08286030112610c0c576040519061016a8261129b565b61017660448201611319565b825261018460648201611319565b60208301526020840191825260a060247fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c838803010112610c0c57604051946101cc86611236565b6101d8608483016112f8565b86526101e660a483016112f8565b602087015260c482013562ffffff81168103610c0c57604087015260e48201358060020b8103610c0c57606087015261010482013573ffffffffffffffffffffffffffffffffffffffff81168103610c0c577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedc8360609360249360808b015260408901998a5203010112610c0c57604051926102818461127f565b61028e6101248301611319565b8452610144820135602085015261016482013573ffffffffffffffffffffffffffffffffffffffff81168103610c0c576040850152606085019384526101848201359167ffffffffffffffff8311610c0c576102ed9201602401611360565b946080840195865261033073ffffffffffffffffffffffffffffffffffffffff8651511673ffffffffffffffffffffffffffffffffffffffff8651163091611567565b91505061037273ffffffffffffffffffffffffffffffffffffffff60208851015116309073ffffffffffffffffffffffffffffffffffffffff88511690611567565b92915050610c8157610c2357610447956020916104135f885161045b885195516040519c8d97889687957ff3cd914c000000000000000000000000000000000000000000000000000000008752600487019073ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b8051151560a4860152602081015160c48601526040015173ffffffffffffffffffffffffffffffffffffffff1660e4850152565b6101206101048401526101248301906113a6565b03925af1948515610c18575f95610be0575b506104aa73ffffffffffffffffffffffffffffffffffffffff85515116309073ffffffffffffffffffffffffffffffffffffffff86511690611567565b979150506104ed73ffffffffffffffffffffffffffffffffffffffff60208751015116309073ffffffffffffffffffffffffffffffffffffffff87511690611567565b855180519196935091501561092357505f602082510151125f146107cb575160200151871261072157610527878760801d600f0b146113f8565b5f831261069d57610582965b5f811261065b575b5f8412610606575b5f81136105be575b505f8313610586575b86866040519060208201526020815261056e6040826112b7565b6040519182916020835260208301906113a6565b0390f35b73ffffffffffffffffffffffffffffffffffffffff8060206105b49751015116945116915151151593611989565b5f80808080610554565b6106009073ffffffffffffffffffffffffffffffffffffffff875151169073ffffffffffffffffffffffffffffffffffffffff87511684865151151593611989565b5f61054b565b61065673ffffffffffffffffffffffffffffffffffffffff6020885101511673ffffffffffffffffffffffffffffffffffffffff8751166106468761150e565b9085602088510151151593611651565b610543565b61069873ffffffffffffffffffffffffffffffffffffffff8751511673ffffffffffffffffffffffffffffffffffffffff8751166106468461150e565b61053b565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f64656c7461416674657231206973206e6f742067726561746572207468616e2060448201527f6f7220657175616c20746f2030000000000000000000000000000000000000006064820152fd5b60a46040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604760248201527f64656c7461416674657230206973206e6f742067726561746572207468616e2060448201527f6f7220657175616c20746f20646174612e706172616d732e616d6f756e74537060648201527f65636966696564000000000000000000000000000000000000000000000000006084820152fd5b5f881361089f576020906107e38589600f0b14611483565b51015183136107f55761058296610533565b60a46040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604460248201527f64656c7461416674657231206973206e6f74206c657373207468616e206f722060448201527f657175616c20746f20646174612e706172616d732e616d6f756e74537065636960648201527f66696564000000000000000000000000000000000000000000000000000000006084820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f64656c7461416674657230206973206e6f74206c657373207468616e206f722060448201527f657175616c20746f207a65726f000000000000000000000000000000000000006064820152fd5b602001515f1315610a8557516020015183126109db576109478387600f0b14611483565b5f87126109575761058296610533565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f64656c7461416674657230206973206e6f742067726561746572207468616e2060448201527f6f7220657175616c20746f2030000000000000000000000000000000000000006064820152fd5b60a46040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604760248201527f64656c7461416674657231206973206e6f742067726561746572207468616e2060448201527f6f7220657175616c20746f20646174612e706172616d732e616d6f756e74537060648201527f65636966696564000000000000000000000000000000000000000000000000006084820152fd5b5f8413610b5c57602090610aa0898960801d600f0b146113f8565b5101518713610ab25761058296610533565b60a46040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604460248201527f64656c7461416674657230206973206e6f74206c657373207468616e206f722060448201527f657175616c20746f20646174612e706172616d732e616d6f756e74537065636960648201527f66696564000000000000000000000000000000000000000000000000000000006084820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f64656c7461416674657231206973206e6f74206c657373207468616e206f722060448201527f657175616c20746f2030000000000000000000000000000000000000000000006064820152fd5b9094506020813d602011610c10575b81610bfc602093836112b7565b81010312610c0c5751935f61046d565b5f80fd5b3d9150610bef565b6040513d5f823e3d90fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f64656c74614265666f726531206973206e6f7420657175616c20746f203000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f64656c74614265666f726530206973206e6f7420657175616c20746f203000006044820152fd5b34610c0c575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610c0c57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016101608112610c0c5760a013610c0c57604051610d8c81611236565b60043573ffffffffffffffffffffffffffffffffffffffff81168103610c0c57815260243573ffffffffffffffffffffffffffffffffffffffff81168103610c0c57602082015260443562ffffff81168103610c0c5760408201526064358060020b8103610c0c57606082015260843573ffffffffffffffffffffffffffffffffffffffff81168103610c0c57608082015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5c360112610c0c57604051610e548161127f565b60a4358015158103610c0c57815260c435602082015260e43573ffffffffffffffffffffffffffffffffffffffff81168103610c0c57604082015260407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefc360112610c0c5760405191610ec68361129b565b610104358015158103610c0c578352610124358015158103610c0c5760208401526101443567ffffffffffffffff8111610c0c5761108c9361102573ffffffffffffffffffffffffffffffffffffffff936110105f96610fd8610f30611051973690600401611360565b93602060405197610f4089611236565b3389528189019081526040890192835260608901948552608089019687526040519a8b9983808c0152511660408a0152518051151560608a01520151151560808801525160a087019073ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b518051151561014086015260208101516101608601526040015173ffffffffffffffffffffffffffffffffffffffff16610180850152565b516101806101a08401526101c08301906113a6565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826112b7565b604051809381927f48c894910000000000000000000000000000000000000000000000000000000083526020600484015260248301906113a6565b03818373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af1908115610c18575f916111bc575b5060208151918180820193849201010312610c0c575147806110fe575b602082604051908152f35b5f80808093335af11561111157816110f3565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f3d0116604051907f90bfb8650000000000000000000000000000000000000000000000000000000082523360048301525f6024830152608060448301528060a00160648301523d60848301523d5f60a484013e7ff4b3b1bc0000000000000000000000000000000000000000000000000000000060c4828401600460a4820152015260e40190fd5b90503d805f833e6111cd81836112b7565b810190602081830312610c0c5780519067ffffffffffffffff8211610c0c570181601f82011215610c0c5780519061120482611326565b9261121260405194856112b7565b82845260208383010111610c0c57815f9260208093018386015e83010152816110d6565b60a0810190811067ffffffffffffffff82111761125257604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6060810190811067ffffffffffffffff82111761125257604052565b6040810190811067ffffffffffffffff82111761125257604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761125257604052565b359073ffffffffffffffffffffffffffffffffffffffff82168203610c0c57565b35908115158203610c0c57565b67ffffffffffffffff811161125257601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f82011215610c0c5780359061137782611326565b9261138560405194856112b7565b82845260208383010111610c0c57815f926020809301838601378301015290565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b90816020910312610c0c575190565b156113ff57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f64656c74612e616d6f756e74302829206973206e6f7420657175616c20746f2060448201527f64656c74614166746572300000000000000000000000000000000000000000006064820152fd5b1561148a57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f64656c74612e616d6f756e74312829206973206e6f7420657175616c20746f2060448201527f64656c74614166746572310000000000000000000000000000000000000000006064820152fd5b7f8000000000000000000000000000000000000000000000000000000000000000811461153a575f0390565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b92906115739084611a9a565b9273ffffffffffffffffffffffffffffffffffffffff807f00000000000000000000000000000000000000000000000000000000000000001691816115b88483611a9a565b95165f5216602052602060405f206024604051809481937ff135baaa00000000000000000000000000000000000000000000000000000000835260048301525afa908115610c18575f9161160a575090565b90506020813d602011611631575b81611625602093836112b7565b81010312610c0c575190565b3d9150611618565b90816020910312610c0c57518015158103610c0c5790565b9293156116f35773ffffffffffffffffffffffffffffffffffffffff16803b15610c0c576040517ff5298aca00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201529290911660248301526044820192909252905f908290818381606481015b03925af18015610c18576116e75750565b5f6116f1916112b7565b565b9173ffffffffffffffffffffffffffffffffffffffff168061179157505073ffffffffffffffffffffffffffffffffffffffff600460209260405194859384927f11da60b4000000000000000000000000000000000000000000000000000000008452165af18015610c18576117665750565b6117879060203d60201161178a575b61177f81836112b7565b8101906113e9565b50565b503d611775565b90929173ffffffffffffffffffffffffffffffffffffffff1691823b15610c0c57604051937fa58411940000000000000000000000000000000000000000000000000000000085525f948360048201525f8160248183895af18015610c1857611960575b5073ffffffffffffffffffffffffffffffffffffffff16843082146118ec576020929160649160405195869485937f23b872dd000000000000000000000000000000000000000000000000000000008552600485015288602485015260448401525af180156118e1579160209184936118b4575b505b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af19081156118a857506117665750565b604051903d90823e3d90fd5b6118d390833d85116118da575b6118cb81836112b7565b810190611639565b505f611869565b503d6118c1565b6040513d85823e3d90fd5b929050604460209260405194859384927fa9059cbb00000000000000000000000000000000000000000000000000000000845288600485015260248401525af180156118e157916020918493611943575b5061186b565b61195990833d85116118da576118cb81836112b7565b505f61193d565b61196d9195505f906112b7565b5f9373ffffffffffffffffffffffffffffffffffffffff6117f5565b929315611a125773ffffffffffffffffffffffffffffffffffffffff16803b15610c0c576040517f156e29f600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201529290911660248301526044820192909252905f908290818381606481016116d6565b90929073ffffffffffffffffffffffffffffffffffffffff16803b15610c0c575f928360649273ffffffffffffffffffffffffffffffffffffffff948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af18015610c18576116e75750565b73ffffffffffffffffffffffffffffffffffffffff1680611aba57503190565b9073ffffffffffffffffffffffffffffffffffffffff602460209260405194859384927f70a082310000000000000000000000000000000000000000000000000000000084521660048301525afa908115610c18575f9161160a57509056fea164736f6c634300081a000a","sourceMap":"563:4438:92:-:0;;;;;;;;;;;;;-1:-1:-1;;563:4438:92;;;;-1:-1:-1;;;;;563:4438:92;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;563:4438:92;;;;;;628:18:94;;563:4438:92;;;;;;;;628:18:94;563:4438:92;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;563:4438:92;;;;;;-1:-1:-1;563:4438:92;;;;;-1:-1:-1;563:4438:92","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80632229d0b414610d4d578063481c6a7514610cdf576391dd73461461003a575f80fd5b34610c0c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610c0c5760043567ffffffffffffffff8111610c0c5736602382011215610c0c57806004013567ffffffffffffffff8111610c0c578101906024820191368311610c0c577f00000000000000000000000000000000000000000000000000000000000000009273ffffffffffffffffffffffffffffffffffffffff841692833303610c0c57602081840312610c0c5760248101359067ffffffffffffffff8211610c0c57019061018082840312610c0c576040519161012383611236565b61012f602482016112f8565b835260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08286030112610c0c576040519061016a8261129b565b61017660448201611319565b825261018460648201611319565b60208301526020840191825260a060247fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c838803010112610c0c57604051946101cc86611236565b6101d8608483016112f8565b86526101e660a483016112f8565b602087015260c482013562ffffff81168103610c0c57604087015260e48201358060020b8103610c0c57606087015261010482013573ffffffffffffffffffffffffffffffffffffffff81168103610c0c577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedc8360609360249360808b015260408901998a5203010112610c0c57604051926102818461127f565b61028e6101248301611319565b8452610144820135602085015261016482013573ffffffffffffffffffffffffffffffffffffffff81168103610c0c576040850152606085019384526101848201359167ffffffffffffffff8311610c0c576102ed9201602401611360565b946080840195865261033073ffffffffffffffffffffffffffffffffffffffff8651511673ffffffffffffffffffffffffffffffffffffffff8651163091611567565b91505061037273ffffffffffffffffffffffffffffffffffffffff60208851015116309073ffffffffffffffffffffffffffffffffffffffff88511690611567565b92915050610c8157610c2357610447956020916104135f885161045b885195516040519c8d97889687957ff3cd914c000000000000000000000000000000000000000000000000000000008752600487019073ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b8051151560a4860152602081015160c48601526040015173ffffffffffffffffffffffffffffffffffffffff1660e4850152565b6101206101048401526101248301906113a6565b03925af1948515610c18575f95610be0575b506104aa73ffffffffffffffffffffffffffffffffffffffff85515116309073ffffffffffffffffffffffffffffffffffffffff86511690611567565b979150506104ed73ffffffffffffffffffffffffffffffffffffffff60208751015116309073ffffffffffffffffffffffffffffffffffffffff87511690611567565b855180519196935091501561092357505f602082510151125f146107cb575160200151871261072157610527878760801d600f0b146113f8565b5f831261069d57610582965b5f811261065b575b5f8412610606575b5f81136105be575b505f8313610586575b86866040519060208201526020815261056e6040826112b7565b6040519182916020835260208301906113a6565b0390f35b73ffffffffffffffffffffffffffffffffffffffff8060206105b49751015116945116915151151593611989565b5f80808080610554565b6106009073ffffffffffffffffffffffffffffffffffffffff875151169073ffffffffffffffffffffffffffffffffffffffff87511684865151151593611989565b5f61054b565b61065673ffffffffffffffffffffffffffffffffffffffff6020885101511673ffffffffffffffffffffffffffffffffffffffff8751166106468761150e565b9085602088510151151593611651565b610543565b61069873ffffffffffffffffffffffffffffffffffffffff8751511673ffffffffffffffffffffffffffffffffffffffff8751166106468461150e565b61053b565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f64656c7461416674657231206973206e6f742067726561746572207468616e2060448201527f6f7220657175616c20746f2030000000000000000000000000000000000000006064820152fd5b60a46040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604760248201527f64656c7461416674657230206973206e6f742067726561746572207468616e2060448201527f6f7220657175616c20746f20646174612e706172616d732e616d6f756e74537060648201527f65636966696564000000000000000000000000000000000000000000000000006084820152fd5b5f881361089f576020906107e38589600f0b14611483565b51015183136107f55761058296610533565b60a46040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604460248201527f64656c7461416674657231206973206e6f74206c657373207468616e206f722060448201527f657175616c20746f20646174612e706172616d732e616d6f756e74537065636960648201527f66696564000000000000000000000000000000000000000000000000000000006084820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f64656c7461416674657230206973206e6f74206c657373207468616e206f722060448201527f657175616c20746f207a65726f000000000000000000000000000000000000006064820152fd5b602001515f1315610a8557516020015183126109db576109478387600f0b14611483565b5f87126109575761058296610533565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f64656c7461416674657230206973206e6f742067726561746572207468616e2060448201527f6f7220657175616c20746f2030000000000000000000000000000000000000006064820152fd5b60a46040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604760248201527f64656c7461416674657231206973206e6f742067726561746572207468616e2060448201527f6f7220657175616c20746f20646174612e706172616d732e616d6f756e74537060648201527f65636966696564000000000000000000000000000000000000000000000000006084820152fd5b5f8413610b5c57602090610aa0898960801d600f0b146113f8565b5101518713610ab25761058296610533565b60a46040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604460248201527f64656c7461416674657230206973206e6f74206c657373207468616e206f722060448201527f657175616c20746f20646174612e706172616d732e616d6f756e74537065636960648201527f66696564000000000000000000000000000000000000000000000000000000006084820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f64656c7461416674657231206973206e6f74206c657373207468616e206f722060448201527f657175616c20746f2030000000000000000000000000000000000000000000006064820152fd5b9094506020813d602011610c10575b81610bfc602093836112b7565b81010312610c0c5751935f61046d565b5f80fd5b3d9150610bef565b6040513d5f823e3d90fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f64656c74614265666f726531206973206e6f7420657175616c20746f203000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f64656c74614265666f726530206973206e6f7420657175616c20746f203000006044820152fd5b34610c0c575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610c0c57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36016101608112610c0c5760a013610c0c57604051610d8c81611236565b60043573ffffffffffffffffffffffffffffffffffffffff81168103610c0c57815260243573ffffffffffffffffffffffffffffffffffffffff81168103610c0c57602082015260443562ffffff81168103610c0c5760408201526064358060020b8103610c0c57606082015260843573ffffffffffffffffffffffffffffffffffffffff81168103610c0c57608082015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5c360112610c0c57604051610e548161127f565b60a4358015158103610c0c57815260c435602082015260e43573ffffffffffffffffffffffffffffffffffffffff81168103610c0c57604082015260407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefc360112610c0c5760405191610ec68361129b565b610104358015158103610c0c578352610124358015158103610c0c5760208401526101443567ffffffffffffffff8111610c0c5761108c9361102573ffffffffffffffffffffffffffffffffffffffff936110105f96610fd8610f30611051973690600401611360565b93602060405197610f4089611236565b3389528189019081526040890192835260608901948552608089019687526040519a8b9983808c0152511660408a0152518051151560608a01520151151560808801525160a087019073ffffffffffffffffffffffffffffffffffffffff6080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b518051151561014086015260208101516101608601526040015173ffffffffffffffffffffffffffffffffffffffff16610180850152565b516101806101a08401526101c08301906113a6565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826112b7565b604051809381927f48c894910000000000000000000000000000000000000000000000000000000083526020600484015260248301906113a6565b03818373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af1908115610c18575f916111bc575b5060208151918180820193849201010312610c0c575147806110fe575b602082604051908152f35b5f80808093335af11561111157816110f3565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f3d0116604051907f90bfb8650000000000000000000000000000000000000000000000000000000082523360048301525f6024830152608060448301528060a00160648301523d60848301523d5f60a484013e7ff4b3b1bc0000000000000000000000000000000000000000000000000000000060c4828401600460a4820152015260e40190fd5b90503d805f833e6111cd81836112b7565b810190602081830312610c0c5780519067ffffffffffffffff8211610c0c570181601f82011215610c0c5780519061120482611326565b9261121260405194856112b7565b82845260208383010111610c0c57815f9260208093018386015e83010152816110d6565b60a0810190811067ffffffffffffffff82111761125257604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6060810190811067ffffffffffffffff82111761125257604052565b6040810190811067ffffffffffffffff82111761125257604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761125257604052565b359073ffffffffffffffffffffffffffffffffffffffff82168203610c0c57565b35908115158203610c0c57565b67ffffffffffffffff811161125257601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f82011215610c0c5780359061137782611326565b9261138560405194856112b7565b82845260208383010111610c0c57815f926020809301838601378301015290565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b90816020910312610c0c575190565b156113ff57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f64656c74612e616d6f756e74302829206973206e6f7420657175616c20746f2060448201527f64656c74614166746572300000000000000000000000000000000000000000006064820152fd5b1561148a57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f64656c74612e616d6f756e74312829206973206e6f7420657175616c20746f2060448201527f64656c74614166746572310000000000000000000000000000000000000000006064820152fd5b7f8000000000000000000000000000000000000000000000000000000000000000811461153a575f0390565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b92906115739084611a9a565b9273ffffffffffffffffffffffffffffffffffffffff807f00000000000000000000000000000000000000000000000000000000000000001691816115b88483611a9a565b95165f5216602052602060405f206024604051809481937ff135baaa00000000000000000000000000000000000000000000000000000000835260048301525afa908115610c18575f9161160a575090565b90506020813d602011611631575b81611625602093836112b7565b81010312610c0c575190565b3d9150611618565b90816020910312610c0c57518015158103610c0c5790565b9293156116f35773ffffffffffffffffffffffffffffffffffffffff16803b15610c0c576040517ff5298aca00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201529290911660248301526044820192909252905f908290818381606481015b03925af18015610c18576116e75750565b5f6116f1916112b7565b565b9173ffffffffffffffffffffffffffffffffffffffff168061179157505073ffffffffffffffffffffffffffffffffffffffff600460209260405194859384927f11da60b4000000000000000000000000000000000000000000000000000000008452165af18015610c18576117665750565b6117879060203d60201161178a575b61177f81836112b7565b8101906113e9565b50565b503d611775565b90929173ffffffffffffffffffffffffffffffffffffffff1691823b15610c0c57604051937fa58411940000000000000000000000000000000000000000000000000000000085525f948360048201525f8160248183895af18015610c1857611960575b5073ffffffffffffffffffffffffffffffffffffffff16843082146118ec576020929160649160405195869485937f23b872dd000000000000000000000000000000000000000000000000000000008552600485015288602485015260448401525af180156118e1579160209184936118b4575b505b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af19081156118a857506117665750565b604051903d90823e3d90fd5b6118d390833d85116118da575b6118cb81836112b7565b810190611639565b505f611869565b503d6118c1565b6040513d85823e3d90fd5b929050604460209260405194859384927fa9059cbb00000000000000000000000000000000000000000000000000000000845288600485015260248401525af180156118e157916020918493611943575b5061186b565b61195990833d85116118da576118cb81836112b7565b505f61193d565b61196d9195505f906112b7565b5f9373ffffffffffffffffffffffffffffffffffffffff6117f5565b929315611a125773ffffffffffffffffffffffffffffffffffffffff16803b15610c0c576040517f156e29f600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201529290911660248301526044820192909252905f908290818381606481016116d6565b90929073ffffffffffffffffffffffffffffffffffffffff16803b15610c0c575f928360649273ffffffffffffffffffffffffffffffffffffffff948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af18015610c18576116e75750565b73ffffffffffffffffffffffffffffffffffffffff1680611aba57503190565b9073ffffffffffffffffffffffffffffffffffffffff602460209260405194859384927f70a082310000000000000000000000000000000000000000000000000000000084521660048301525afa908115610c18575f9161160a57509056fea164736f6c634300081a000a","sourceMap":"563:4438:92:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1648:7;563:4438;;;;1626:10;;;:30;563:4438;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;1768:62;563:4438;1783:8;;563:4438;;;;;;1824:4;1768:62;;:::i;:::-;1882:8;;;1867:62;563:4438;;1882:8;;:18;563:4438;;1824:4;563:4438;;;;;1867:62;;:::i;:::-;1948:17;;;;563:4438;;;;;2115:8;563:4438;2115:8;563:4438;;2115:8;;563:4438;2125:11;;2138:13;;563:4438;;2102:50;;;;;;;563:4438;2102:50;;563:4438;2102:50;;563:4438;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2102:50;;;;;;;;;563:4438;2102:50;;;563:4438;2204:8;2189:62;563:4438;2204:8;;563:4438;;1824:4;563:4438;;;;;2189:62;;:::i;:::-;2302:8;;;;2287:62;563:4438;;2302:8;;:18;563:4438;;1824:4;563:4438;;;;;2287:62;;:::i;:::-;2364:11;;563:4438;;2364:11;;;-1:-1:-1;2364:11:92;-1:-1:-1;563:4438:92;2364:22;;2406:11;563:4438;;2406:11;;:27;563:4438;2406:31;2402:947;563:4438;;;2541:11;563:4438;2541:27;563:4438;2526:42;;563:4438;;2699:86;2052:83:105;;563:4438:92;2052:83:105;563:4438:92;;2707:30;2699:86;:::i;:::-;563:4438;2811:16;;563:4438;;;2402:947;;563:4438;4347:15;;4343:151;;2360:1973;563:4438;4507:15;;4503:151;;2360:1973;563:4438;4667:15;;4663:143;;2360:1973;4819:15;563:4438;4819:15;;4815:143;;2360:1973;563:4438;;;;4975:17;563:4438;4975:17;;563:4438;;4975:17;;;563:4438;4975:17;;:::i;:::-;563:4438;;;;;;;;;;;;;:::i;:::-;;;;4815:143;563:4438;4850:8;563:4438;4918:28;4850:8;;:18;563:4438;;;;;4918:17;;563:4438;;;4918:28;;:::i;:::-;4815:143;;;;;;;4663;4766:28;4698:8;563:4438;4698:8;;563:4438;;;;;;;4766:17;;;563:4438;;;4766:28;;:::i;:::-;4663:143;;;4503:151;4609:33;563:4438;;4538:8;;:18;563:4438;;;;;;4594:12;;;:::i;:::-;4609:17;;563:4438;4609:17;;:33;563:4438;;;4609:33;;:::i;:::-;4503:151;;4343;4449:33;563:4438;4378:8;;563:4438;;;;;;4434:12;;;:::i;4449:33::-;4343:151;;563:4438;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2402:947;563:4438;2965:16;;563:4438;;;2241:89:105;3049:86:92;2241:89:105;;;;3057:30:92;3049:86;:::i;:::-;3197:11;:27;563:4438;3182:42;;563:4438;;;2402:947;;;563:4438;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2360:1973;563:4438;3383:27;563:4438;;-1:-1:-1;563:4438:92;;;3518:11;563:4438;3518:27;563:4438;3503:42;;563:4438;;3676:86;2241:89:105;;;;3684:30:92;3676:86;:::i;:::-;563:4438;3788:16;;563:4438;;;3379:944;2360:1973;;563:4438;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3379:944;563:4438;3942:16;;563:4438;;;2052:83:105;4023:86:92;2052:83:105;;563:4438:92;2052:83:105;563:4438:92;;4031:30;4023:86;:::i;:::-;4171:11;:27;563:4438;4156:42;;563:4438;;;3379:944;2360:1973;;563:4438;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2102:50;;;;563:4438;2102:50;;563:4438;2102:50;;;;;;563:4438;2102:50;;;:::i;:::-;;;563:4438;;;;;2102:50;;;;563:4438;;;;2102:50;;;-1:-1:-1;2102:50:92;;;563:4438;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;539:37:94;563:4438:92;;;;;;;;;;;;;;-1:-1:-1;563:4438:92;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1271:73;563:4438;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;1295:10;563:4438;;1282:61;;;563:4438;;;;1282:61;;563:4438;;;;1282:61;;563:4438;;;;1282:61;;563:4438;;;;;1271:73;;;;;;;563:4438;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1271:73;;;;;;;;:::i;:::-;563:4438;;1256:89;;;;563:4438;1256:89;;563:4438;;1256:89;;563:4438;;;;;;:::i;:::-;1256:89;:7;;563:4438;1256:7;563:4438;1256:89;;;;;;;563:4438;1256:89;;;563:4438;;;;;1232:139;;;;;;;;;;563:4438;;;;;1403:21;1438:14;1434:81;;563:4438;;;;;;;;;1434:81;563:4438;1769:24:107;;;;1295:10:92;1809:163:107;;2085:8;2081:127;;1434:81:92;;;2081:127:107;1271:73:92;3741:1424:46;;;;563:4438:92;3741:1424:46;;3710:21;3741:1424;;1295:10:92;563:4438;3741:1424:46;;;563:4438:92;;3741:1424:46;;;563:4438:92;;3741:1424:46;;;;563:4438:92;3741:1424:46;563:4438:92;3741:1424:46;;;;563:4438:92;3741:1424:46;;;;563:4438:92;;3741:1424:46;;;2163:29:107;563:4438:92;3741:1424:46;;;563:4438:92;;3741:1424:46;;;;;563:4438:92;3741:1424:46;;;1256:89:92;;;;;563:4438;1256:89;;;;;;:::i;:::-;;;563:4438;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;1256:89;;;563:4438;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;563:4438:92;;;;;-1:-1:-1;563:4438:92;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;563:4438:92;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;563:4438:92;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;659:362:94;;;868:24;659:362;868:24;;:::i;:::-;943:7;563:4438:92;943:7:94;;563:4438:92;916:36:94;;;;;;:::i;:::-;1853:233:65;;-1:-1:-1;1853:233:65;;;;;;-1:-1:-1;1853:233:65;2117:21;1853:233;563:4438:92;2117:21:65;;;;563:4438:92;2117:21:65;;;;;563:4438:92;2117:21:65;;;;;;;-1:-1:-1;2117:21:65;;;962:52:94;659:362;:::o;2117:21:65:-;;;1853:233;2117:21;;1853:233;2117:21;;;;;;1853:233;2117:21;;;:::i;:::-;;;563:4438:92;;;;;659:362:94;:::o;2117:21:65:-;;;-1:-1:-1;2117:21:65;;563:4438:92;;;;;;;;;;;;;;;;;;:::o;979:810:151:-;;;1255:528;;;563:4438:92;;1279:44:151;;;;;563:4438:92;;;1279:44:151;;563:4438:92;;;;1279:44:151;;;563:4438:92;;;;;;;;;;;;;;;;;-1:-1:-1;;563:4438:92;;;-1:-1:-1;563:4438:92;;;;1279:44:151;;;;;;;;;;;1255:528;979:810::o;1279:44::-;-1:-1:-1;1279:44:151;;;:::i;:::-;979:810::o;1255:528::-;1344:24;563:4438:92;;4998:58:107;1344:24:151;;563:4438:92;;;1384:31:151;;563:4438:92;;;1384:31:151;;;;;563:4438:92;1384:31:151;;563:4438:92;1384:31:151;;;;;;;;1340:443;979:810::o;1384:31::-;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;979:810::o;1384:31::-;;;;;1340:443;563:4438:92;;;;;1446:22:151;;;;;;563:4438:92;;1446:22:151;563:4438:92;1446:22:151;;-1:-1:-1;1446:22:151;;;;;563:4438:92;-1:-1:-1;1446:22:151;;;;;;;;;;;;;1340:443;-1:-1:-1;563:4438:92;;1503:4:151;;1486:22;;1503:4;;563:4438:92;;;1528:86:151;563:4438:92;;;1528:86:151;;;;;563:4438:92;1528:86:151;;1446:22;1528:86;;563:4438:92;;1446:22:151;563:4438:92;;;;;;;1528:86:151;;;;;;;563:4438:92;1528:86:151;;;;;1482:261;;;1446:22;563:4438:92;;1756:16:151;;;;563:4438:92;1756:16:151;;;;;;;;;;;;1340:443;979:810::o;1756:16::-;563:4438:92;;;;;;;;;;1528:86:151;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;563:4438:92;;;;;;;;;1482:261:151;563:4438:92;;;1653:75:151;563:4438:92;;;;1653:75:151;;;;;563:4438:92;1653:75:151;;;1446:22;1653:75;;563:4438:92;1446:22:151;563:4438:92;;;1653:75:151;;;;;;;563:4438:92;1653:75:151;;;;;1482:261;;;;1653:75;;;;;;;;;;;;;:::i;:::-;;;;;1446:22;;;;;-1:-1:-1;1446:22:151;;:::i;:::-;-1:-1:-1;;563:4438:92;1446:22:151;;2173:230;;;2295:101;;;563:4438:92;;2304:48:151;;;;;563:4438:92;;;2304:48:151;;563:4438:92;;;;2304:48:151;;;563:4438:92;;;;;;;;;;;;;;;;;-1:-1:-1;;563:4438:92;;;-1:-1:-1;563:4438:92;;;;2304:48:151;563:4438:92;2295:101:151;563:4438:92;;;;;2355:41:151;;;;;-1:-1:-1;563:4438:92;;2355:41:151;563:4438:92;;;;;;2355:41:151;;;;;563:4438:92;2355:41:151;;563:4438:92;2355:41:151;;;563:4438:92;;;;;;;;;;2355:41:151;;;;;;;;2295:101;2173:230::o;4633:271:107:-;563:4438:92;;4998:58:107;4732:24;;4779:13;;4772:20;:::o;4728:170::-;563:4438:92;;4830:57:107;563:4438:92;;;;4830:57:107;;;;;563:4438:92;4830:57:107;;563:4438:92;4830:57:107;;;563:4438:92;4830:57:107;;;;;;;563:4438:92;4830:57:107;;;4823:64;;:::o","linkReferences":{},"immutableReferences":{"57867":[{"start":171,"length":32},{"start":3369,"length":32},{"start":4262,"length":32},{"start":5516,"length":32}]}},"methodIdentifiers":{"manager()":"481c6a75","swap((address,address,uint24,int24,address),(bool,int256,uint160),(bool,bool),bytes)":"2229d0b4","unlockCallback(bytes)":"91dd7346"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IPoolManager\",\"name\":\"_manager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NoSwapOccurred\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"manager\",\"outputs\":[{\"internalType\":\"contract IPoolManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"zeroForOne\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"amountSpecified\",\"type\":\"int256\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"}],\"internalType\":\"struct SwapParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"takeClaims\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"settleUsingBurn\",\"type\":\"bool\"}],\"internalType\":\"struct PoolSwapTest.TestSettings\",\"name\":\"testSettings\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"BalanceDelta\",\"name\":\"delta\",\"type\":\"int256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"rawData\",\"type\":\"bytes\"}],\"name\":\"unlockCallback\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/PoolSwapTest.sol\":\"PoolSwapTest\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":44444444},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=lib/openzeppelin-contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solmate/=lib/solmate/\"],\"viaIR\":true},\"sources\":{\"src/interfaces/IExtsload.sol\":{\"keccak256\":\"0x80b53ca4907d6f0088c3b931f2b72cad1dc4615a95094d96bd0fb8dff8d5ba43\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://375c69148622aab7a3537d5fd37d373a8e9731022c8d87bdaee46233b0a99fe1\",\"dweb:/ipfs/QmXFjdoYRxsA5B1kyuxEXgNf3FBoL1zPvy26Qy8EtpdFRN\"]},\"src/interfaces/IExttload.sol\":{\"keccak256\":\"0xc6b68283ebd8d1c789df536756726eed51c589134bb20821b236a0d22a135937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://294394f72dfc219689209f4130d85601dfd0d63c8d47578050d312db70f9b6c8\",\"dweb:/ipfs/QmTDMQ3oxCGHgEBU48a3Lp4S1rRjc8vVCxkhE5ZNej1bsY\"]},\"src/interfaces/IHooks.sol\":{\"keccak256\":\"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec\",\"dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G\"]},\"src/interfaces/IPoolManager.sol\":{\"keccak256\":\"0xbdab3544da3d32dfdf7457baa94e17d5a3012952428559e013ffac45d067038e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce95ff864468e37c76adf71df061d4f3d6f3a5ec1f9bc3aea090463bc72798f4\",\"dweb:/ipfs/QmSbWh1pLbz51yQF4HEu5NRhr8XVv9JYGEw1hq1HudAnCi\"]},\"src/interfaces/IProtocolFees.sol\":{\"keccak256\":\"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d\",\"dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J\"]},\"src/interfaces/callback/IUnlockCallback.sol\":{\"keccak256\":\"0x58c82f2bd9d7c097ed09bd0991fedc403b0ec270eb3d0158bfb095c06a03d719\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91168ca26a10980df2cdc3fbfe8ddf372c002b7ef19e3c59a0c9870d64198f1b\",\"dweb:/ipfs/QmUSpaM825vd1SwvF38esgbdLgYiPwefKaFERTWvUi6uSK\"]},\"src/interfaces/external/IERC20Minimal.sol\":{\"keccak256\":\"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de\",\"dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d\"]},\"src/interfaces/external/IERC6909Claims.sol\":{\"keccak256\":\"0xa586f345739e52b0488a0fe40b6e375cce67fdd25758408b0efcb5133ad96a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8c557b7e52abdbbd82e415a1acc27921446a7fd090b7d4877e52be72619547f\",\"dweb:/ipfs/QmXE2KNPbXmGX8BQF3ei6zhzRTnhoTQg39XmqMnkhbr6QK\"]},\"src/libraries/CurrencyReserves.sol\":{\"keccak256\":\"0x1576616129933fcdf3b684cea33cffd9c95e18fafbd2832a8c48ac3d8526d4c3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://33b050efb9b81803b18f562271e7cca2ec5362c4d505860d6419b4a345636725\",\"dweb:/ipfs/QmQtFtTwKZ5pFVGD2ENDUXvp7ECFvzqeCuJ1miJcUHdmiX\"]},\"src/libraries/CustomRevert.sol\":{\"keccak256\":\"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd\",\"dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt\"]},\"src/libraries/FixedPoint128.sol\":{\"keccak256\":\"0xad236e10853f4b4b20a35a9bb52b857c4fc79874846b7e444e06ead7f2630542\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0de1f9a06520b1a689660943faa14fc0b8344ab41fab9e6012ea34bff4b9b3eb\",\"dweb:/ipfs/QmRNMPTyko7W6d6KxuTsnDBa9oZgDK4xiwRRq3H9ASTbwy\"]},\"src/libraries/FullMath.sol\":{\"keccak256\":\"0x4fc73a00817193fd3cac1cc03d8167d21af97d75f1815a070ee31a90c702b4c2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3b2d66d36b1ad56b1ab6e2eb8a816740877b40b461c93f125e88621c8378e52\",\"dweb:/ipfs/QmPGvMZzKQvNiWKd8aRzzdW7oAizwrMgcMtnaworDkVHFC\"]},\"src/libraries/Hooks.sol\":{\"keccak256\":\"0xd679b4b2d429689bc44f136050ebc958fb2d7d0d3a3c7b3e48c08ab4fba09aaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287190cb72840e5eb63cc7a8a1d0b9150af17d8e4ea0323f47c7e7928f2033cb\",\"dweb:/ipfs/QmVfqWBnAQM2jUcuREDdvjcP21gNuLU35CoL3NG5CEhNcx\"]},\"src/libraries/LPFeeLibrary.sol\":{\"keccak256\":\"0xbf6914e01014e7c1044111feb7df7a3d96bb503b3da827ad8464b1955580d13b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33823c20a91882c9aacdcbb02f0558c05209f4d5954aa6dd4fa17c95664db475\",\"dweb:/ipfs/QmR7owkFgpfztpp1QUg3ut3nw9iPVQqLGP4hzgmZtRUQ2J\"]},\"src/libraries/LiquidityMath.sol\":{\"keccak256\":\"0x000ef2eadcc1eb7b2c18a77655f94e76e0e860f605783484657ef65fd6eda353\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a766b620a7a22798b43c6c1f23b5c6cff0ebf588deb89842bad05208d448cd99\",\"dweb:/ipfs/QmVKjaFJdzkqA3ey2Byum8iTCMssWVD8MmVC8rw62Tj5WD\"]},\"src/libraries/Lock.sol\":{\"keccak256\":\"0x9338be4b5695f1da5f3d3f7a3eeaf7a356c1045458289586ac0cbe9cef77c6d5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://485ec42ed6155469d612a9a0c18068ebfbad74448792a338a435503de3ef1b2c\",\"dweb:/ipfs/QmVnnv5u74MYatfRmBgrcfFYQcsMAJMG9jQ6ju8UiydKNF\"]},\"src/libraries/NonzeroDeltaCount.sol\":{\"keccak256\":\"0x0666ebd5d3528d7d52c48538296367a4cff97a578cf13365c51983fae3219b87\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://d27f1be3bd09d85c53d3e6a539dd6529ddd8b2b764ccb47fd7765fc81f9add59\",\"dweb:/ipfs/QmQdZujNXhKEXQBkKtF5jbdvo1yXMqPDUoBBaF9S5u3Kpm\"]},\"src/libraries/ParseBytes.sol\":{\"keccak256\":\"0x7533b13f53ee2c2c55500100b22ffd6e37e7523c27874edc98663d53a8672b15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://82449058634fde28a085f3c59a6a5f412550c02181590593fd84c3e8b329aa17\",\"dweb:/ipfs/Qmev4E9Au6SsE4wsArChCwfg94KhHc5gYsEsZUnjF5sRLa\"]},\"src/libraries/Position.sol\":{\"keccak256\":\"0xddab2a831f1befb6abf5567e77c4582169ca8156cf69eb4f22d8e87f7226a3f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c79fe61b50f3b70cff503abfa6f5643fcbefb9b794855bee1019b1e6d9c083b2\",\"dweb:/ipfs/QmbKmYNQesaMz8bo1b7TMHQcAwaDd3eDPrE5pAdPPZTtk5\"]},\"src/libraries/SafeCast.sol\":{\"keccak256\":\"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59\",\"dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj\"]},\"src/libraries/StateLibrary.sol\":{\"keccak256\":\"0x96db333ee126a841dd959e38e452cc59d73583cb0437a1d48b2052e33a74f952\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8672bba1eb69608299b0904f4ff305238eb18479d371c26518f278c9ee184cd0\",\"dweb:/ipfs/QmTLu3s6ECvsEDHStQv8HTVHYtvkviBbdjPrFJd4SpVRFY\"]},\"src/libraries/TransientStateLibrary.sol\":{\"keccak256\":\"0x7d1e0875747bd89b32c25f1a48da2766e5f4aff1f671ad5f3c0c07ebbbcb946a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d76cfeb1cb60595b41ecc51c8a12fb4bf63a7fc733d0b1a2e3adb55abeb1f9d5\",\"dweb:/ipfs/Qmb8oX7DtsRpw3tTtdWZwGhauj1evq43d3PLwe4nSDAKkV\"]},\"src/test/PoolSwapTest.sol\":{\"keccak256\":\"0x3d769a76b948910a1a2321435e8d19156ff767ad3ddbd5abe4fa60d1e9b11ac0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4bb4ca24457237b3af7a8023f19d667d20a60066cbf911b728968f34b6055753\",\"dweb:/ipfs/QmXVNWTHDcVbQrf6Y82j9whpWyYmgWvBJqYZ3Vp8to3H6j\"]},\"src/test/PoolTestBase.sol\":{\"keccak256\":\"0xc3b1c46487231f8416d053652cfb3c773d728705a6a1a542ea48e8d1cca44962\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c2229b5915fcf17c58253b81cd4bbff62f7fbc6df8c370188c771fc40febf15a\",\"dweb:/ipfs/QmRu2Qb341KpA9k9prYH8buJek6vZiE7bxnyC9UkjVGBxV\"]},\"src/types/BalanceDelta.sol\":{\"keccak256\":\"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9\",\"dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H\"]},\"src/types/BeforeSwapDelta.sol\":{\"keccak256\":\"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782\",\"dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K\"]},\"src/types/Currency.sol\":{\"keccak256\":\"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01\",\"dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5\"]},\"src/types/PoolId.sol\":{\"keccak256\":\"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918\",\"dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y\"]},\"src/types/PoolKey.sol\":{\"keccak256\":\"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639\",\"dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi\"]},\"src/types/PoolOperation.sol\":{\"keccak256\":\"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07\",\"dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c\"]},\"test/utils/