@uniswap/v4-periphery
Version:
🦄 Peripheral smart contracts for interacting with Uniswap v4
1 lines • 62.5 kB
JSON
{"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":"poolManager","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":"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":"DeltaNotNegative","inputs":[{"name":"currency","type":"address","internalType":"Currency"}]},{"type":"error","name":"DeltaNotPositive","inputs":[{"name":"currency","type":"address","internalType":"Currency"}]},{"type":"error","name":"InsufficientBalance","inputs":[]},{"type":"error","name":"NoSwapOccurred","inputs":[]},{"type":"error","name":"NotPoolManager","inputs":[]}],"bytecode":{"object":"0x60c0604052348015600e575f80fd5b50604051611570380380611570833981016040819052602b916040565b6001600160a01b0316608081905260a052606b565b5f60208284031215604f575f80fd5b81516001600160a01b03811681146064575f80fd5b9392505050565b60805160a0516114926100de5f395f818160dc015281816105b101528181610625015281816106c60152818161076e0152818161085401526108cc01525f8181605301528181610139015281816101de015281816102eb0152818161042501528181610ad60152610b8d01526114925ff3fe60806040526004361061003e575f3560e01c8063481c6a751461004257806391dd73461461009f578063dc4c90d3146100cb578063f3cd914c146100fe575b5f80fd5b34801561004d575f80fd5b506100757f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100aa575f80fd5b506100be6100b9366004610d57565b61011f565b6040516100969190610e11565b3480156100d6575f80fd5b506100757f000000000000000000000000000000000000000000000000000000000000000081565b61011161010c3660046110b2565b610422565b604051908152602001610096565b60603373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610162575f80fd5b5f61016f83850185611110565b90505f805f83604001515f01516101915760208085015190810151905161019d565b60208085015180519101515b915091505f84604001516020015112156102e9576101d082855f01518660400151602001516101cb906111b5565b610560565b5f6101da83610752565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f3cd914c8660200151604051806060016040528089604001515f01511515815260200185610241906111b5565b815260200189604001516040015173ffffffffffffffffffffffffffffffffffffffff1681525088606001516040518463ffffffff1660e01b815260040161028b93929190611210565b6020604051808303815f875af11580156102a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102cb91906112da565b93506102e382865f01516102de85610752565b6107f4565b506103fb565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f3cd914c8560200151604051806060016040528088604001515f015115158152602001886040015160200151815260200188604001516040015173ffffffffffffffffffffffffffffffffffffffff1681525087606001516040518463ffffffff1660e01b815260040161039793929190611210565b6020604051808303815f875af11580156103b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103d791906112da565b92506103ea82855f01516101cb856108b0565b6103fb81855f01516102de84610752565b60408051602081018590520160405160208183030381529060405294505050505092915050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166348c8949160405180608001604052803373ffffffffffffffffffffffffffffffffffffffff168152602001878152602001868152602001858152506040516020016104a691906112f1565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016104d19190610e11565b5f604051808303815f875af11580156104ec573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261053191908101906113f5565b80602001905181019061054491906112da565b9050478015610558576105585f3383610957565b509392505050565b805f0361056c57505050565b6040517fa584119400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a5841194906024015f604051808303815f87803b1580156105f2575f80fd5b505af1158015610604573d5f803e3d5ffd5b5050505073ffffffffffffffffffffffffffffffffffffffff83166106b9577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166311da60b4826040518263ffffffff1660e01b815260040160206040518083038185885af115801561068e573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906106b391906112da565b50505050565b6106c4838383610a74565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166311da60b46040518163ffffffff1660e01b81526004016020604051808303815f875af115801561072e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b391906112da565b5f8061079573ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163085610bcb565b90505f8112156107ee576040517f4c085bf100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b92915050565b805f0361080057505050565b6040517f0b0d9c0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301528381166024830152604482018390527f00000000000000000000000000000000000000000000000000000000000000001690630b0d9c09906064015f604051808303815f87803b158015610895575f80fd5b505af11580156108a7573d5f803e3d5ffd5b50505050505050565b5f806108f373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163085610bcb565b90505f811315610947576040517f3351b26000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024016107e5565b610950816111b5565b9392505050565b5f73ffffffffffffffffffffffffffffffffffffffff84166109b2575f805f8085875af19050806109ad576109ad835f7ff4b3b1bc00000000000000000000000000000000000000000000000000000000610c89565b6106b3565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015282602482015260205f6044835f895af13d15601f3d1160015f511416171691505f81525f60208201525f604082015250806106b3576106b3847fa9059cbb000000000000000000000000000000000000000000000000000000007ff27f64e400000000000000000000000000000000000000000000000000000000610c89565b73ffffffffffffffffffffffffffffffffffffffff82163014610b50576040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152604482018390528416906323b872dd906064015b6020604051808303815f875af1158015610b2c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b3919061146a565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811660048301526024820183905284169063a9059cbb90604401610b10565b5f8073ffffffffffffffffffffffffffffffffffffffff84165f5273ffffffffffffffffffffffffffffffffffffffff831660205260405f2090508473ffffffffffffffffffffffffffffffffffffffff1663f135baaa826040518263ffffffff1660e01b8152600401610c4191815260200190565b602060405180830381865afa158015610c5c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c8091906112da565b95945050505050565b6040517f90bfb8650000000000000000000000000000000000000000000000000000000080825273ffffffffffffffffffffffffffffffffffffffff851660048301527fffffffff0000000000000000000000000000000000000000000000000000000084166024830152608060448301526020601f3d018190040260a0810160648401523d608484015290913d5f60a483013e60048260a4018201527fffffffff0000000000000000000000000000000000000000000000000000000084168260c4018201528160e40181fd5b5f8060208385031215610d68575f80fd5b823567ffffffffffffffff811115610d7e575f80fd5b8301601f81018513610d8e575f80fd5b803567ffffffffffffffff811115610da4575f80fd5b856020828401011115610db5575f80fd5b6020919091019590945092505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f6109506020830184610dc5565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff81118282101715610e7357610e73610e23565b60405290565b6040516080810167ffffffffffffffff81118282101715610e7357610e73610e23565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610ee357610ee3610e23565b604052919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610f0c575f80fd5b50565b8035610f1a81610eeb565b919050565b5f60a08284031215610f2f575f80fd5b610f37610e50565b90508135610f4481610eeb565b81526020820135610f5481610eeb565b6020820152604082013562ffffff81168114610f6e575f80fd5b60408201526060820135600281900b8114610f87575f80fd5b6060820152610f9860808301610f0f565b608082015292915050565b8015158114610f0c575f80fd5b5f60608284031215610fc0575f80fd5b6040516060810167ffffffffffffffff81118282101715610fe357610fe3610e23565b6040529050808235610ff481610fa3565b815260208381013590820152604083013561100e81610eeb565b6040919091015292915050565b5f67ffffffffffffffff82111561103457611034610e23565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f82601f83011261106f575f80fd5b813561108261107d8261101b565b610e9c565b818152846020838601011115611096575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f61012084860312156110c5575f80fd5b6110cf8585610f1f565b92506110de8560a08601610fb0565b915061010084013567ffffffffffffffff8111156110fa575f80fd5b61110686828701611060565b9150509250925092565b5f60208284031215611120575f80fd5b813567ffffffffffffffff811115611136575f80fd5b82016101408185031215611148575f80fd5b611150610e79565b813561115b81610eeb565b815261116a8560208401610f1f565b602082015261117c8560c08401610fb0565b604082015261012082013567ffffffffffffffff81111561119b575f80fd5b6111a786828501611060565b606083015250949350505050565b5f7f8000000000000000000000000000000000000000000000000000000000000000820361120a577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b505f0390565b61128f818573ffffffffffffffffffffffffffffffffffffffff815116825273ffffffffffffffffffffffffffffffffffffffff602082015116602083015262ffffff6040820151166040830152606081015160020b606083015273ffffffffffffffffffffffffffffffffffffffff60808201511660808301525050565b8251151560a0820152602083015160c0820152604083015173ffffffffffffffffffffffffffffffffffffffff1660e08201526101206101008201525f610c80610120830184610dc5565b5f602082840312156112ea575f80fd5b5051919050565b6020815273ffffffffffffffffffffffffffffffffffffffff82511660208201525f602083015161139a604084018273ffffffffffffffffffffffffffffffffffffffff815116825273ffffffffffffffffffffffffffffffffffffffff602082015116602083015262ffffff6040820151166040830152606081015160020b606083015273ffffffffffffffffffffffffffffffffffffffff60808201511660808301525050565b506040838101518051151560e08501526020810151610100850152015173ffffffffffffffffffffffffffffffffffffffff166101208301526060830151610140808401526113ed610160840182610dc5565b949350505050565b5f60208284031215611405575f80fd5b815167ffffffffffffffff81111561141b575f80fd5b8201601f8101841361142b575f80fd5b805161143961107d8261101b565b81815285602083850101111561144d575f80fd5b8160208401602083015e5f91810160200191909152949350505050565b5f6020828403121561147a575f80fd5b815161095081610fa356fea164736f6c634300081a000a","sourceMap":"864:2561:260:-:0;;;998:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;628:18:116;;;;;782:26:144;;864:2561:260;;14:312:262;106:6;159:2;147:9;138:7;134:23;130:32;127:52;;;175:1;172;165:12;127:52;201:16;;-1:-1:-1;;;;;246:31:262;;236:42;;226:70;;292:1;289;282:12;226:70;315:5;14:312;-1:-1:-1;;;14:312:262:o;:::-;864:2561:260;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061003e575f3560e01c8063481c6a751461004257806391dd73461461009f578063dc4c90d3146100cb578063f3cd914c146100fe575b5f80fd5b34801561004d575f80fd5b506100757f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100aa575f80fd5b506100be6100b9366004610d57565b61011f565b6040516100969190610e11565b3480156100d6575f80fd5b506100757f000000000000000000000000000000000000000000000000000000000000000081565b61011161010c3660046110b2565b610422565b604051908152602001610096565b60603373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610162575f80fd5b5f61016f83850185611110565b90505f805f83604001515f01516101915760208085015190810151905161019d565b60208085015180519101515b915091505f84604001516020015112156102e9576101d082855f01518660400151602001516101cb906111b5565b610560565b5f6101da83610752565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f3cd914c8660200151604051806060016040528089604001515f01511515815260200185610241906111b5565b815260200189604001516040015173ffffffffffffffffffffffffffffffffffffffff1681525088606001516040518463ffffffff1660e01b815260040161028b93929190611210565b6020604051808303815f875af11580156102a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102cb91906112da565b93506102e382865f01516102de85610752565b6107f4565b506103fb565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f3cd914c8560200151604051806060016040528088604001515f015115158152602001886040015160200151815260200188604001516040015173ffffffffffffffffffffffffffffffffffffffff1681525087606001516040518463ffffffff1660e01b815260040161039793929190611210565b6020604051808303815f875af11580156103b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103d791906112da565b92506103ea82855f01516101cb856108b0565b6103fb81855f01516102de84610752565b60408051602081018590520160405160208183030381529060405294505050505092915050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166348c8949160405180608001604052803373ffffffffffffffffffffffffffffffffffffffff168152602001878152602001868152602001858152506040516020016104a691906112f1565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016104d19190610e11565b5f604051808303815f875af11580156104ec573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261053191908101906113f5565b80602001905181019061054491906112da565b9050478015610558576105585f3383610957565b509392505050565b805f0361056c57505050565b6040517fa584119400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a5841194906024015f604051808303815f87803b1580156105f2575f80fd5b505af1158015610604573d5f803e3d5ffd5b5050505073ffffffffffffffffffffffffffffffffffffffff83166106b9577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166311da60b4826040518263ffffffff1660e01b815260040160206040518083038185885af115801561068e573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906106b391906112da565b50505050565b6106c4838383610a74565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166311da60b46040518163ffffffff1660e01b81526004016020604051808303815f875af115801561072e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b391906112da565b5f8061079573ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163085610bcb565b90505f8112156107ee576040517f4c085bf100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024015b60405180910390fd5b92915050565b805f0361080057505050565b6040517f0b0d9c0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301528381166024830152604482018390527f00000000000000000000000000000000000000000000000000000000000000001690630b0d9c09906064015f604051808303815f87803b158015610895575f80fd5b505af11580156108a7573d5f803e3d5ffd5b50505050505050565b5f806108f373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163085610bcb565b90505f811315610947576040517f3351b26000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024016107e5565b610950816111b5565b9392505050565b5f73ffffffffffffffffffffffffffffffffffffffff84166109b2575f805f8085875af19050806109ad576109ad835f7ff4b3b1bc00000000000000000000000000000000000000000000000000000000610c89565b6106b3565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015282602482015260205f6044835f895af13d15601f3d1160015f511416171691505f81525f60208201525f604082015250806106b3576106b3847fa9059cbb000000000000000000000000000000000000000000000000000000007ff27f64e400000000000000000000000000000000000000000000000000000000610c89565b73ffffffffffffffffffffffffffffffffffffffff82163014610b50576040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152604482018390528416906323b872dd906064015b6020604051808303815f875af1158015610b2c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b3919061146a565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811660048301526024820183905284169063a9059cbb90604401610b10565b5f8073ffffffffffffffffffffffffffffffffffffffff84165f5273ffffffffffffffffffffffffffffffffffffffff831660205260405f2090508473ffffffffffffffffffffffffffffffffffffffff1663f135baaa826040518263ffffffff1660e01b8152600401610c4191815260200190565b602060405180830381865afa158015610c5c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c8091906112da565b95945050505050565b6040517f90bfb8650000000000000000000000000000000000000000000000000000000080825273ffffffffffffffffffffffffffffffffffffffff851660048301527fffffffff0000000000000000000000000000000000000000000000000000000084166024830152608060448301526020601f3d018190040260a0810160648401523d608484015290913d5f60a483013e60048260a4018201527fffffffff0000000000000000000000000000000000000000000000000000000084168260c4018201528160e40181fd5b5f8060208385031215610d68575f80fd5b823567ffffffffffffffff811115610d7e575f80fd5b8301601f81018513610d8e575f80fd5b803567ffffffffffffffff811115610da4575f80fd5b856020828401011115610db5575f80fd5b6020919091019590945092505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f6109506020830184610dc5565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff81118282101715610e7357610e73610e23565b60405290565b6040516080810167ffffffffffffffff81118282101715610e7357610e73610e23565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610ee357610ee3610e23565b604052919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610f0c575f80fd5b50565b8035610f1a81610eeb565b919050565b5f60a08284031215610f2f575f80fd5b610f37610e50565b90508135610f4481610eeb565b81526020820135610f5481610eeb565b6020820152604082013562ffffff81168114610f6e575f80fd5b60408201526060820135600281900b8114610f87575f80fd5b6060820152610f9860808301610f0f565b608082015292915050565b8015158114610f0c575f80fd5b5f60608284031215610fc0575f80fd5b6040516060810167ffffffffffffffff81118282101715610fe357610fe3610e23565b6040529050808235610ff481610fa3565b815260208381013590820152604083013561100e81610eeb565b6040919091015292915050565b5f67ffffffffffffffff82111561103457611034610e23565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f82601f83011261106f575f80fd5b813561108261107d8261101b565b610e9c565b818152846020838601011115611096575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f61012084860312156110c5575f80fd5b6110cf8585610f1f565b92506110de8560a08601610fb0565b915061010084013567ffffffffffffffff8111156110fa575f80fd5b61110686828701611060565b9150509250925092565b5f60208284031215611120575f80fd5b813567ffffffffffffffff811115611136575f80fd5b82016101408185031215611148575f80fd5b611150610e79565b813561115b81610eeb565b815261116a8560208401610f1f565b602082015261117c8560c08401610fb0565b604082015261012082013567ffffffffffffffff81111561119b575f80fd5b6111a786828501611060565b606083015250949350505050565b5f7f8000000000000000000000000000000000000000000000000000000000000000820361120a577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b505f0390565b61128f818573ffffffffffffffffffffffffffffffffffffffff815116825273ffffffffffffffffffffffffffffffffffffffff602082015116602083015262ffffff6040820151166040830152606081015160020b606083015273ffffffffffffffffffffffffffffffffffffffff60808201511660808301525050565b8251151560a0820152602083015160c0820152604083015173ffffffffffffffffffffffffffffffffffffffff1660e08201526101206101008201525f610c80610120830184610dc5565b5f602082840312156112ea575f80fd5b5051919050565b6020815273ffffffffffffffffffffffffffffffffffffffff82511660208201525f602083015161139a604084018273ffffffffffffffffffffffffffffffffffffffff815116825273ffffffffffffffffffffffffffffffffffffffff602082015116602083015262ffffff6040820151166040830152606081015160020b606083015273ffffffffffffffffffffffffffffffffffffffff60808201511660808301525050565b506040838101518051151560e08501526020810151610100850152015173ffffffffffffffffffffffffffffffffffffffff166101208301526060830151610140808401526113ed610160840182610dc5565b949350505050565b5f60208284031215611405575f80fd5b815167ffffffffffffffff81111561141b575f80fd5b8201601f8101841361142b575f80fd5b805161143961107d8261101b565b81815285602083850101111561144d575f80fd5b8160208401602083015e5f91810160200191909152949350505050565b5f6020828403121561147a575f80fd5b815161095081610fa356fea164736f6c634300081a000a","sourceMap":"864:2561:260:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;539:37:116;;;;;;;;;;;;;;;;;;212:42:262;200:55;;;182:74;;170:2;155:18;539:37:116;;;;;;;;1682:1406:260;;;;;;;;;;-1:-1:-1;1682:1406:260;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;411:41:144:-;;;;;;;;;;;;;;;1247:429:260;;;;;;:::i;:::-;;:::i;:::-;;;6060:25:262;;;6048:2;6033:18;1247:429:260;5881:210:262;1682:1406:260;1748:12;1780:10;:30;1802:7;1780:30;;1772:39;;;;;;1822:24;1849:35;;;;1860:7;1849:35;:::i;:::-;1822:62;;1895:18;1924:22;1948:23;1987:4;:11;;;:22;;;:108;;2056:8;;;;;:18;;;;2076;;1987:108;;;2013:8;;;;;:18;;2033;;;1987:108;1923:172;;;;2140:1;2110:4;:11;;;:27;;;:31;2106:941;;;2184:74;2192:13;2207:4;:11;;;2229:4;:11;;;:27;;;2228:28;;;:::i;:::-;2184:7;:74::i;:::-;2272:16;2291:29;2306:13;2291:14;:29::i;:::-;2272:48;;2342:7;:12;;;2372:4;:8;;;2398:84;;;;;;;;2409:4;:11;;;:22;;;2398:84;;;;;;2441:8;2433:17;;;:::i;:::-;2398:84;;;;2452:4;:11;;;:29;;;2398:84;;;;;2500:4;:13;;;2342:185;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2334:193;;2541:66;2547:14;2563:4;:11;;;2576:30;2591:14;2576;:30::i;:::-;2541:5;:66::i;:::-;2143:475;2106:941;;;2674:7;:12;;;2704:4;:8;;;2730:102;;;;;;;;2741:4;:11;;;:22;;;2730:102;;;;;;2772:4;:11;;;:27;;;2730:102;;;;2802:4;:11;;;:29;;;2730:102;;;;;2850:4;:13;;;2674:203;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2666:211;;2892:64;2900:13;2915:4;:11;;;2928:27;2941:13;2928:12;:27::i;2892:64::-;2970:66;2976:14;2992:4;:11;;;3005:30;3020:14;3005;:30::i;2970:66::-;3064:17;;;;;;6060:25:262;;;6033:18;3064:17:260;;;;;;;;;;;;3057:24;;;;;;1682:1406;;;;:::o;1247:429::-;1380:18;1433:7;:14;;;1459:47;;;;;;;;1472:10;1459:47;;;;;;1484:3;1459:47;;;;1489:6;1459:47;;;;1497:8;1459:47;;;1448:59;;;;;;;;:::i;:::-;;;;;;;;;;;;;1433:75;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1422:103;;;;;;;;;;;;:::i;:::-;1414:111;-1:-1:-1;1557:21:260;1592:14;;1588:81;;1608:61;1462:1:120;1646:10:260;1658;1608:37;:61::i;:::-;1404:272;1247:429;;;;;:::o;1766:346:141:-;1856:6;1866:1;1856:11;1852:24;;1766:346;;;:::o;1852:24::-;1886:26;;;;;:16;200:55:262;;;1886:26:141;;;182:74:262;1886:11:141;:16;;;;155:18:262;;1886:26:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1926:22:141;;;1922:184;;1966:11;:18;;;1992:6;1966:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1766:346;;;:::o;1922:184::-;2032:29;2037:8;2047:5;2054:6;2032:4;:29::i;:::-;2075:11;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3365:331::-;3431:14;;3474:50;:25;:11;:25;3508:4;3515:8;3474:25;:50::i;:::-;3457:67;;3618:1;3608:7;:11;3604:50;;;3628:26;;;;;212:42:262;200:55;;3628:26:141;;;182:74:262;155:18;;3628:26:141;;;;;;;;3604:50;3681:7;3365:331;-1:-1:-1;;3365:331:141:o;1270:173::-;1362:6;1372:1;1362:11;1358:24;;1270:173;;;:::o;1358:24::-;1391:45;;;;;:16;11016:55:262;;;1391:45:141;;;10998:74:262;11108:55;;;11088:18;;;11081:83;11180:18;;;11173:34;;;1391:11:141;:16;;;;10971:18:262;;1391:45:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1270:173;;;:::o;2757:401::-;2821:14;;2864:50;:25;:11;:25;2898:4;2905:8;2864:25;:50::i;:::-;2847:67;;3008:1;2998:7;:11;2994:50;;;3018:26;;;;;212:42:262;200:55;;3018:26:141;;;182:74:262;155:18;;3018:26:141;14:248:262;2994:50:141;3142:8;3143:7;3142:8;:::i;:::-;3125:26;2757:401;-1:-1:-1;;;2757:401:141:o;1472:2873:120:-;1743:12;1769:22;;;1765:2574;;1956:1;1953;1950;1947;1939:6;1935:2;1928:5;1923:35;1912:46;;2086:7;2081:127;;2113:80;2148:2;2159:1;2163:29;2113:34;:80::i;:::-;1765:2574;;;2352:4;2346:11;2488:66;2483:3;2476:79;2600:42;2596:2;2592:51;2588:1;2583:3;2579:11;2572:72;2720:6;2715:2;2710:3;2706:12;2699:28;3649:2;3646:1;3642:2;3637:3;3634:1;3624:8;3617:5;3612:40;3141:16;3134:24;3128:2;3110:16;3107:24;3103:1;3099;3093:8;3090:15;3086:46;3083:76;2859:815;2828:846;;3752:1;3747:3;3740:14;3853:1;3846:4;3841:3;3837:14;3830:25;3956:1;3949:4;3944:3;3940:14;3933:25;;4125:7;4120:209;;4152:162;4224:8;4235:31;4268:28;4152:34;:162::i;3094:329:260:-;3190:22;;;3207:4;3190:22;3186:231;;3228:79;;;;;:46;11016:55:262;;;3228:79:260;;;10998:74:262;3290:7:260;11108:55:262;;11088:18;;;11081:83;11180:18;;;11173:34;;;3228:46:260;;;;;10971:18:262;;3228:79:260;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3186:231::-;3338:68;;;;;:42;3389:7;12082:55:262;;3338:68:260;;;12064:74:262;12154:18;;;12147:34;;;3338:42:260;;;;;12037:18:262;;3338:68:260;11890:297:262;1711:436:104;1814:6;1832:11;1914:42;1906:6;1902:55;1899:1;1892:66;1996:42;1986:8;1982:57;1978:2;1971:69;2073:2;2070:1;2060:16;2053:23;;2117:7;:16;;;2134:3;2117:21;;;;;;;;;;;;;6060:25:262;;6048:2;6033:18;;5881:210;2117:21:104;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2109:30;1711:436;-1:-1:-1;;;;;1711:436:104:o;3508:1663:85:-;3953:4;3947:11;3710:21;4094:33;;;4186:42;4163:66;;4156:4;4147:14;;4140:90;4330:66;4299:98;;4276:4;4267:14;;4243:168;4483:4;4476;4467:14;;4460:28;3919:2;3909;3891:16;3887:25;3883:34;;;3879:43;4569:4;4565:26;;4558:4;4549:14;;4542:50;4662:16;4655:4;4646:14;;4639:40;3710:21;;4755:16;-1:-1:-1;4745:4:85;4736:14;;4721:51;4869:4;4850:15;4844:4;4840:26;4835:3;4831:36;4824:50;5022:66;5003:17;4999:90;4964:15;4958:4;4954:26;4949:3;4945:36;4921:182;5138:15;5132:4;5128:26;5123:3;5116:39;267:586:262;337:6;345;398:2;386:9;377:7;373:23;369:32;366:52;;;414:1;411;404:12;366:52;454:9;441:23;487:18;479:6;476:30;473:50;;;519:1;516;509:12;473:50;542:22;;595:4;587:13;;583:27;-1:-1:-1;573:55:262;;624:1;621;614:12;573:55;664:2;651:16;690:18;682:6;679:30;676:50;;;722:1;719;712:12;676:50;767:7;762:2;753:6;749:2;745:15;741:24;738:37;735:57;;;788:1;785;778:12;735:57;819:2;811:11;;;;;841:6;;-1:-1:-1;267:586:262;-1:-1:-1;;;267:586:262:o;858:347::-;899:3;937:5;931:12;964:6;959:3;952:19;1020:6;1013:4;1006:5;1002:16;995:4;990:3;986:14;980:47;1072:1;1065:4;1056:6;1051:3;1047:16;1043:27;1036:38;1194:4;1124:66;1119:2;1111:6;1107:15;1103:88;1098:3;1094:98;1090:109;1083:116;;;858:347;;;;:::o;1210:217::-;1357:2;1346:9;1339:21;1320:4;1377:44;1417:2;1406:9;1402:18;1394:6;1377:44;:::i;1432:184::-;1484:77;1481:1;1474:88;1581:4;1578:1;1571:15;1605:4;1602:1;1595:15;1621:253;1693:2;1687:9;1735:4;1723:17;;1770:18;1755:34;;1791:22;;;1752:62;1749:88;;;1817:18;;:::i;:::-;1853:2;1846:22;1621:253;:::o;1879:::-;1951:2;1945:9;1993:4;1981:17;;2028:18;2013:34;;2049:22;;;2010:62;2007:88;;;2075:18;;:::i;2137:334::-;2208:2;2202:9;2264:2;2254:13;;2269:66;2250:86;2238:99;;2367:18;2352:34;;2388:22;;;2349:62;2346:88;;;2414:18;;:::i;:::-;2450:2;2443:22;2137:334;;-1:-1:-1;2137:334:262:o;2476:176::-;2584:42;2577:5;2573:54;2566:5;2563:65;2553:93;;2642:1;2639;2632:12;2553:93;2476:176;:::o;2657:164::-;2733:20;;2762:53;2733:20;2762:53;:::i;:::-;2657:164;;;:::o;2826:889::-;2880:5;2928:4;2916:9;2911:3;2907:19;2903:30;2900:50;;;2946:1;2943;2936:12;2900:50;2968:22;;:::i;:::-;2959:31;;3027:9;3014:23;3046:55;3093:7;3046:55;:::i;:::-;3110:22;;3184:2;3169:18;;3156:32;3197:55;3156:32;3197:55;:::i;:::-;3279:2;3268:14;;3261:31;3344:2;3329:18;;3316:32;3392:8;3379:22;;3367:35;;3357:63;;3416:1;3413;3406:12;3357:63;3447:2;3436:14;;3429:31;3512:2;3497:18;;3484:32;3558:1;3547:22;;;3535:35;;3525:63;;3584:1;3581;3574:12;3525:63;3615:2;3604:14;;3597:31;3661:47;3703:3;3688:19;;3661:47;:::i;:::-;3655:3;3648:5;3644:15;3637:72;2826:889;;;;:::o;3720:118::-;3806:5;3799:13;3792:21;3785:5;3782:32;3772:60;;3828:1;3825;3818:12;3843:726;3900:5;3948:4;3936:9;3931:3;3927:19;3923:30;3920:50;;;3966:1;3963;3956:12;3920:50;4019:2;4013:9;4061:4;4049:17;;4096:18;4081:34;;4117:22;;;4078:62;4075:88;;;4143:18;;:::i;:::-;4179:2;4172:22;4212:6;-1:-1:-1;4212:6:262;4242:23;;4274:30;4242:23;4274:30;:::i;:::-;4313:23;;4397:2;4382:18;;;4369:32;4352:15;;;4345:57;4454:2;4439:18;;4426:32;4467:55;4426:32;4467:55;:::i;:::-;4550:2;4538:15;;;;4531:32;3843:726;;-1:-1:-1;;3843:726:262:o;4574:245::-;4622:4;4655:18;4647:6;4644:30;4641:56;;;4677:18;;:::i;:::-;-1:-1:-1;4734:2:262;4722:15;4739:66;4718:88;4808:4;4714:99;;4574:245::o;4824:486::-;4866:5;4919:3;4912:4;4904:6;4900:17;4896:27;4886:55;;4937:1;4934;4927:12;4886:55;4977:6;4964:20;5008:52;5024:35;5052:6;5024:35;:::i;:::-;5008:52;:::i;:::-;5085:6;5076:7;5069:23;5139:3;5132:4;5123:6;5115;5111:19;5107:30;5104:39;5101:59;;;5156:1;5153;5146:12;5101:59;5221:6;5214:4;5206:6;5202:17;5195:4;5186:7;5182:18;5169:59;5277:1;5248:20;;;5270:4;5244:31;5237:42;;;;5252:7;4824:486;-1:-1:-1;;;4824:486:262:o;5315:561::-;5456:6;5464;5472;5525:3;5513:9;5504:7;5500:23;5496:33;5493:53;;;5542:1;5539;5532:12;5493:53;5565:45;5602:7;5591:9;5565:45;:::i;:::-;5555:55;;5629:58;5679:7;5673:3;5662:9;5658:19;5629:58;:::i;:::-;5619:68;;5738:3;5727:9;5723:19;5710:33;5766:18;5758:6;5755:30;5752:50;;;5798:1;5795;5788:12;5752:50;5821:49;5862:7;5853:6;5842:9;5838:22;5821:49;:::i;:::-;5811:59;;;5315:561;;;;;:::o;6096:934::-;6187:6;6240:2;6228:9;6219:7;6215:23;6211:32;6208:52;;;6256:1;6253;6246:12;6208:52;6296:9;6283:23;6329:18;6321:6;6318:30;6315:50;;;6361:1;6358;6351:12;6315:50;6384:22;;6440:6;6422:16;;;6418:29;6415:49;;;6460:1;6457;6450:12;6415:49;6486:22;;:::i;:::-;6545:2;6532:16;6557:55;6604:7;6557:55;:::i;:::-;6621:22;;6675:47;6714:7;6709:2;6701:11;;6675:47;:::i;:::-;6670:2;6663:5;6659:14;6652:71;6757:51;6800:7;6794:3;6790:2;6786:12;6757:51;:::i;:::-;6750:4;6743:5;6739:16;6732:77;6855:3;6851:2;6847:12;6834:26;6885:18;6875:8;6872:32;6869:52;;;6917:1;6914;6907:12;6869:52;6955:44;6991:7;6980:8;6976:2;6972:17;6955:44;:::i;:::-;6948:4;6937:16;;6930:70;-1:-1:-1;6941:5:262;6096:934;-1:-1:-1;;;;6096:934:262:o;7035:345::-;7070:3;7101:66;7094:5;7091:77;7088:257;;7201:77;7198:1;7191:88;7302:4;7299:1;7292:15;7330:4;7327:1;7320:15;7088:257;-1:-1:-1;7365:1:262;7361:13;;7035:345::o;8160:514::-;8455:44;8489:9;8481:6;7476:42;7468:5;7462:12;7458:61;7453:3;7446:74;7581:42;7573:4;7566:5;7562:16;7556:23;7552:72;7545:4;7540:3;7536:14;7529:96;7686:8;7678:4;7671:5;7667:16;7661:23;7657:38;7650:4;7645:3;7641:14;7634:62;7759:4;7752:5;7748:16;7742:23;7739:1;7728:38;7721:4;7716:3;7712:14;7705:62;7828:42;7820:4;7813:5;7809:16;7803:23;7799:72;7792:4;7787:3;7783:14;7776:96;;;7385:493;8455:44;7973:12;;7966:20;7959:28;8560:3;8545:19;;7947:41;8037:4;8026:16;;8020:23;8004:14;;;7997:47;8097:4;8086:16;;8080:23;8105:42;8076:72;8060:14;;;8053:96;8602:3;8596;8585:9;8581:19;8574:32;8436:4;8623:45;8663:3;8652:9;8648:19;8640:6;8623:45;:::i;8679:218::-;8783:6;8836:2;8824:9;8815:7;8811:23;8807:32;8804:52;;;8852:1;8849;8842:12;8804:52;-1:-1:-1;8875:16:262;;8679:218;-1:-1:-1;8679:218:262:o;8902:719::-;9095:2;9084:9;9077:21;9153:42;9144:6;9138:13;9134:62;9129:2;9118:9;9114:18;9107:90;9058:4;9244:2;9236:6;9232:15;9226:22;9257:59;9312:2;9301:9;9297:18;9283:12;7476:42;7468:5;7462:12;7458:61;7453:3;7446:74;7581:42;7573:4;7566:5;7562:16;7556:23;7552:72;7545:4;7540:3;7536:14;7529:96;7686:8;7678:4;7671:5;7667:16;7661:23;7657:38;7650:4;7645:3;7641:14;7634:62;7759:4;7752:5;7748:16;7742:23;7739:1;7728:38;7721:4;7716:3;7712:14;7705:62;7828:42;7820:4;7813:5;7809:16;7803:23;7799:72;7792:4;7787:3;7783:14;7776:96;;;7385:493;9257:59;-1:-1:-1;9365:2:262;9353:15;;;9347:22;7973:12;;7966:20;7959:28;9438:3;9423:19;;7947:41;8037:4;8026:16;;8020:23;8004:14;;;7997:47;8086:16;8080:23;8105:42;8076:72;8060:14;;;8053:96;9492:4;9480:17;;9474:24;9538:6;9514:22;;;9507:38;9562:53;9610:3;9595:19;;9474:24;9562:53;:::i;:::-;9554:61;8902:719;-1:-1:-1;;;;8902:719:262:o;9626:685::-;9705:6;9758:2;9746:9;9737:7;9733:23;9729:32;9726:52;;;9774:1;9771;9764:12;9726:52;9807:9;9801:16;9840:18;9832:6;9829:30;9826:50;;;9872:1;9869;9862:12;9826:50;9895:22;;9948:4;9940:13;;9936:27;-1:-1:-1;9926:55:262;;9977:1;9974;9967:12;9926:55;10010:2;10004:9;10035:52;10051:35;10079:6;10051:35;:::i;10035:52::-;10110:6;10103:5;10096:21;10158:7;10153:2;10144:6;10140:2;10136:15;10132:24;10129:37;10126:57;;;10179:1;10176;10169:12;10126:57;10227:6;10222:2;10218;10214:11;10209:2;10202:5;10198:14;10192:42;10279:1;10254:18;;;10274:2;10250:27;10243:38;;;;10258:5;9626:685;-1:-1:-1;;;;9626:685:262:o;11640:245::-;11707:6;11760:2;11748:9;11739:7;11735:23;11731:32;11728:52;;;11776:1;11773;11766:12;11728:52;11808:9;11802:16;11827:28;11849:5;11827:28;:::i","linkReferences":{},"immutableReferences":{"60993":[{"start":83,"length":32},{"start":313,"length":32},{"start":478,"length":32},{"start":747,"length":32},{"start":1061,"length":32},{"start":2774,"length":32},{"start":2957,"length":32}],"66153":[{"start":220,"length":32},{"start":1457,"length":32},{"start":1573,"length":32},{"start":1734,"length":32},{"start":1902,"length":32},{"start":2132,"length":32},{"start":2252,"length":32}]}},"methodIdentifiers":{"manager()":"481c6a75","poolManager()":"dc4c90d3","swap((address,address,uint24,int24,address),(bool,int256,uint160),bytes)":"f3cd914c","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\":[{\"internalType\":\"Currency\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"DeltaNotNegative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"Currency\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"DeltaNotPositive\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoSwapOccurred\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotPoolManager\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"manager\",\"outputs\":[{\"internalType\":\"contract IPoolManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolManager\",\"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\"},{\"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\":{\"errors\":{\"DeltaNotNegative(address)\":[{\"notice\":\"Emitted trying to take a negative delta.\"}],\"DeltaNotPositive(address)\":[{\"notice\":\"Emitted trying to settle a positive delta.\"}],\"InsufficientBalance()\":[{\"notice\":\"Emitted when the contract does not have enough balance to wrap or unwrap.\"}],\"NotPoolManager()\":[{\"notice\":\"Thrown when the caller is not PoolManager\"}]},\"kind\":\"user\",\"methods\":{\"poolManager()\":{\"notice\":\"The Uniswap v4 PoolManager contract\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/shared/TestRouter.sol\":\"TestRouter\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":44444444},\"remappings\":[\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@openzeppelin/=lib/v4-core/lib/openzeppelin-contracts/\",\":@uniswap/v4-core/=lib/v4-core/\",\":ds-test/=lib/v4-core/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/v4-core/lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/v4-core/lib/forge-std/src/\",\":hardhat/=lib/v4-core/node_modules/hardhat/\",\":openzeppelin-contracts/=lib/v4-core/lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solmate/=lib/v4-core/lib/solmate/\",\":v4-core/=lib/v4-core/src/\"]},\"sources\":{\"lib/v4-core/lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/v4-core/src/interfaces/IExtsload.sol\":{\"keccak256\":\"0x80b53ca4907d6f0088c3b931f2b72cad1dc4615a95094d96bd0fb8dff8d5ba43\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://375c69148622aab7a3537d5fd37d373a8e9731022c8d87bdaee46233b0a99fe1\",\"dweb:/ipfs/QmXFjdoYRxsA5B1kyuxEXgNf3FBoL1zPvy26Qy8EtpdFRN\"]},\"lib/v4-core/src/interfaces/IExttload.sol\":{\"keccak256\":\"0xc6b68283ebd8d1c789df536756726eed51c589134bb20821b236a0d22a135937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://294394f72dfc219689209f4130d85601dfd0d63c8d47578050d312db70f9b6c8\",\"dweb:/ipfs/QmTDMQ3oxCGHgEBU48a3Lp4S1rRjc8vVCxkhE5ZNej1bsY\"]},\"lib/v4-core/src/interfaces/IHooks.sol\":{\"keccak256\":\"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec\",\"dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G\"]},\"lib/v4-core/src/interfaces/IPoolManager.sol\":{\"keccak256\":\"0xbdab3544da3d32dfdf7457baa94e17d5a3012952428559e013ffac45d067038e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce95ff864468e37c76adf71df061d4f3d6f3a5ec1f9bc3aea090463bc72798f4\",\"dweb:/ipfs/QmSbWh1pLbz51yQF4HEu5NRhr8XVv9JYGEw1hq1HudAnCi\"]},\"lib/v4-core/src/interfaces/IProtocolFees.sol\":{\"keccak256\":\"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d\",\"dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J\"]},\"lib/v4-core/src/interfaces/callback/IUnlockCallback.sol\":{\"keccak256\":\"0x58c82f2bd9d7c097ed09bd0991fedc403b0ec270eb3d0158bfb095c06a03d719\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91168ca26a10980df2cdc3fbfe8ddf372c002b7ef19e3c59a0c9870d64198f1b\",\"dweb:/ipfs/QmUSpaM825vd1SwvF38esgbdLgYiPwefKaFERTWvUi6uSK\"]},\"lib/v4-core/src/interfaces/external/IERC20Minimal.sol\":{\"keccak256\":\"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de\",\"dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d\"]},\"lib/v4-core/src/interfaces/external/IERC6909Claims.sol\":{\"keccak256\":\"0xa586f345739e52b0488a0fe40b6e375cce67fdd25758408b0efcb5133ad96a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8c557b7e52abdbbd82e415a1acc27921446a7fd090b7d4877e52be72619547f\",\"dweb:/ipfs/QmXE2KNPbXmGX8BQF3ei6zhzRTnhoTQg39XmqMnkhbr6QK\"]},\"lib/v4-core/src/libraries/CurrencyReserves.sol\":{\"keccak256\":\"0x1576616129933fcdf3b684cea33cffd9c95e18fafbd2832a8c48ac3d8526d4c3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://33b050efb9b81803b18f562271e7cca2ec5362c4d505860d6419b4a345636725\",\"dweb:/ipfs/QmQtFtTwKZ5pFVGD2ENDUXvp7ECFvzqeCuJ1miJcUHdmiX\"]},\"lib/v4-core/src/libraries/CustomRevert.sol\":{\"keccak256\":\"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd\",\"dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt\"]},\"lib/v4-core/src/libraries/FixedPoint128.sol\":{\"keccak256\":\"0xad236e10853f4b4b20a35a9bb52b857c4fc79874846b7e444e06ead7f2630542\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0de1f9a06520b1a689660943faa14fc0b8344ab41fab9e6012ea34bff4b9b3eb\",\"dweb:/ipfs/QmRNMPTyko7W6d6KxuTsnDBa9oZgDK4xiwRRq3H9ASTbwy\"]},\"lib/v4-core/src/libraries/FullMath.sol\":{\"keccak256\":\"0x4fc73a00817193fd3cac1cc03d8167d21af97d75f1815a070ee31a90c702b4c2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3b2d66d36b1ad56b1ab6e2eb8a816740877b40b461c93f125e88621c8378e52\",\"dweb:/ipfs/QmPGvMZzKQvNiWKd8aRzzdW7oAizwrMgcMtnaworDkVHFC\"]},\"lib/v4-core/src/libraries/LiquidityMath.sol\":{\"keccak256\":\"0x000ef2eadcc1eb7b2c18a77655f94e76e0e860f605783484657ef65fd6eda353\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a766b620a7a22798b43c6c1f23b5c6cff0ebf588deb89842bad05208d448cd99\",\"dweb:/ipfs/QmVKjaFJdzkqA3ey2Byum8iTCMssWVD8MmVC8rw62Tj5WD\"]},\"lib/v4-core/src/libraries/Lock.sol\":{\"keccak256\":\"0x9338be4b5695f1da5f3d3f7a3eeaf7a356c1045458289586ac0cbe9cef77c6d5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://485ec42ed6155469d612a9a0c18068ebfbad74448792a338a435503de3ef1b2c\",\"dweb:/ipfs/QmVnnv5u74MYatfRmBgrcfFYQcsMAJMG9jQ6ju8UiydKNF\"]},\"lib/v4-core/src/libraries/NonzeroDeltaCount.sol\":{\"keccak256\":\"0x0666ebd5d3528d7d52c48538296367a4cff97a578cf13365c51983fae3219b87\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://d27f1be3bd09d85c53d3e6a539dd6529ddd8b2b764ccb47fd7765fc81f9add59\",\"dweb:/ipfs/QmQdZujNXhKEXQBkKtF5jbdvo1yXMqPDUoBBaF9S5u3Kpm\"]},\"lib/v4-core/src/libraries/Position.sol\":{\"keccak256\":\"0xddab2a831f1befb6abf5567e77c4582169ca8156cf69eb4f22d8e87f7226a3f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c79fe61b50f3b70cff503abfa6f5643fcbefb9b794855bee1019b1e6d9c083b2\",\"dweb:/ipfs/QmbKmYNQesaMz8bo1b7TMHQcAwaDd3eDPrE5pAdPPZTtk5\"]},\"lib/v4-core/src/libraries/SafeCast.sol\":{\"keccak256\":\"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59\",\"dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj\"]},\"lib/v4-core/src/libraries/StateLibrary.sol\":{\"keccak256\":\"0x96db333ee126a841dd959e38e452cc59d73583cb0437a1d48b2052e33a74f952\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8672bba1eb69608299b0904f4ff305238eb18479d371c26518f278c9ee184cd0\",\"dweb:/ipfs/QmTLu3s6ECvsEDHStQv8HTVHYtvkviBbdjPrFJd4SpVRFY\"]},\"lib/v4-core/src/libraries/TransientStateLibrary.sol\":{\"keccak256\":\"0x7d1e0875747bd89b32c25f1a48da2766e5f4aff1f671ad5f3c0c07ebbbcb946a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d76cfeb1cb60595b41ecc51c8a12fb4bf63a7fc733d0b1a2e3adb55abeb1f9d5\",\"dweb:/ipfs/Qmb8oX7DtsRpw3tTtdWZwGhauj1evq43d3PLwe4nSDAKkV\"]},\"lib/v4-core/src/test/PoolTestBase.sol\":{\"keccak256\":\"0xc3b1c46487231f8416d053652cfb3c773d728705a6a1a542ea48e8d1cca44962\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c2229b5915fcf17c58253b81cd4bbff62f7fbc6df8c370188c771fc40febf15a\",\"dweb:/ipfs/QmRu2Qb341KpA9k9prYH8buJek6vZiE7bxnyC9UkjVGBxV\"]},\"lib/v4-core/src/types/BalanceDelta.sol\":{\"keccak256\":\"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9\",\"dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H\"]},\"lib/v4-core/src/types/BeforeSwapDelta.sol\":{\"keccak256\":\"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782\",\"dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K\"]},\"lib/v4-core/src/types/Currency.sol\":{\"keccak256\":\"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01\",\"dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5\"]},\"lib/v4-core/src/types/PoolId.sol\":{\"keccak256\":\"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918\",\"dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y\"]},\"lib/v4-core/src/types/PoolKey.sol\":{\"keccak256\":\"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639\",\"dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi\"]},\"lib/v4-core/src/types/PoolOperation.sol\":{\"keccak256\":\"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07\",\"dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c\"]},\"src/base/DeltaResolver.sol\":{\"keccak256\":\"0x94a2da2be5c924df65a8e1e29f585bbe4c37777fedd43b45989c66d509a4a83c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42bba590f6e817fd56328b74ae99bfdc4df57386d0a69ee22b9108341953ed36\",\"dweb:/ipfs/QmdusastK7FWYouLz9gvV5J3z8MQbNKLJNNHTrc1vi7DWw\"]},\"src/base/ImmutableState.sol\":{\"keccak256\":\"0x1867c9fa2f9b4fa73bab0fcdc9d19ccef4eeac552273d8b84a170cd1cc90350a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af2d699b439e13b599632fddfe82718aebd41055fba7c075f186675c588d1337\",\"dweb:/ipfs/Qmc111gckSKb9aESn3wRFLeLiS4KGujaUcaYJgRnCRfwQU\"]},\"src/interfaces/IImmutableState.sol\":{\"keccak256\":\"0x36ab3100e87457ecf04887f4f540e34fd7f21d8e3b83880cb679239e60b7b06b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f290c7ce8e4832608d637a51b13dff95abecf6549485448e647a11c8ed01341\",\"dweb:/ipfs/QmfD1R6mTp8j4EjQXmQZW3vCh11EYFjnvoaw8rXRP27mMq\"]},\"src/libraries/ActionConstants.sol\":{\"keccak256\":\"0x3d6f0e5b4a7b1e60bad93e73dce5db67fb66bebef11c31ed8355014a79aa03b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6dfa42e24b1b5c7f66e75304ab034fbb6768518eb2410ccfff8b3defdd1658f2\",\"dweb:/ipfs/QmQQ7fud9mmv7PEWPAQiNzeZhNkWf28Z6nCHc2e6WJFfa7\"]},\"test/shared/TestRouter.sol\":{\"keccak256\":\"0x0301bced29e971edbaaaf0453d92d9ddb74259350837e2f3e