Skip to content

Instantly share code, notes, and snippets.

@saucepoint
Created September 22, 2023 16:05
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save saucepoint/a02ac97a0dba5e5905aa515a6cfb46be to your computer and use it in GitHub Desktop.
V4 Testnet ABIs
{
"abi": [
{
"inputs": [
{
"internalType": "contract IPoolManager",
"name": "_manager",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "ERC20TransferFailed",
"type": "error"
},
{
"inputs": [],
"name": "NativeTransferFailed",
"type": "error"
},
{
"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"
},
{
"internalType": "uint256",
"name": "amount0",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount1",
"type": "uint256"
}
],
"name": "donate",
"outputs": [
{
"internalType": "BalanceDelta",
"name": "delta",
"type": "int256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "rawData",
"type": "bytes"
}
],
"name": "lockAcquired",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "manager",
"outputs": [
{
"internalType": "contract IPoolManager",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": {
"object": "0x60a060405234801561001057600080fd5b50604051610dc7380380610dc783398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051610cff6100c860003960008181604b0152818160dc015281816101f2015281816102300152818161033f01528181610420015281816104f9015281816105b20152818161065901526107310152610cff6000f3fe6080604052600436106100345760003560e01c8063481c6a7514610039578063a67dd8f31461008a578063ab6291fe146100ab575b600080fd5b34801561004557600080fd5b5061006d7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b61009d61009836600461094d565b6100d8565b604051908152602001610081565b3480156100b757600080fd5b506100cb6100c6366004610981565b6101e5565b6040516100819190610a43565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663815483196040518060800160405280336001600160a01b03168152602001878152602001868152602001858152506040516020016101439190610a5d565b6040516020818303038152906040526040518263ffffffff1660e01b815260040161016e9190610a43565b6000604051808303816000875af115801561018d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101b59190810190610ade565b8060200190518101906101c89190610b8b565b90504780156101dd576101dd600033836107c7565b509392505050565b6060336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461021c57600080fd5b600061022a83850185610ba4565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663234266d7836020015184604001518560600151600067ffffffffffffffff81111561028657610286610867565b6040519080825280601f01601f1916602001820160405280156102b0576020820181803683370190505b506040518563ffffffff1660e01b81526004016102d09493929190610c17565b6020604051808303816000875af11580156102ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103139190610b8b565b905060006103218260801c90565b600f0b131561056a576020820151516001600160a01b0316610402577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636a256b296103768360801c90565b6020850151516040516001600160e01b031960e085901b1681526001600160a01b0390911660048201526fffffffffffffffffffffffffffffffff919091169060240160206040518083038185885af11580156103d7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906103fc9190610b8b565b5061056a565b8160200151600001516001600160a01b03166323b872dd83600001517f00000000000000000000000000000000000000000000000000000000000000006104498560801c90565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526fffffffffffffffffffffffffffffffff1660448201526064016020604051808303816000875af11580156104af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d39190610c86565b50602082015151604051636a256b2960e01b81526001600160a01b0391821660048201527f000000000000000000000000000000000000000000000000000000000000000090911690636a256b29906024016020604051808303816000875af1158015610544573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105689190610b8b565b505b600081600f0b13156107a25760208083015101516001600160a01b031661063b576020808301510151604051636a256b2960e01b81526001600160a01b0391821660048201527f000000000000000000000000000000000000000000000000000000000000000090911690636a256b29906fffffffffffffffffffffffffffffffff84169060240160206040518083038185885af1158015610610573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106359190610b8b565b506107a2565b8160200151602001516001600160a01b03166323b872dd83600001517f000000000000000000000000000000000000000000000000000000000000000061067f8590565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526fffffffffffffffffffffffffffffffff1660448201526064016020604051808303816000875af11580156106e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107099190610c86565b506020828101510151604051636a256b2960e01b81526001600160a01b0391821660048201527f000000000000000000000000000000000000000000000000000000000000000090911690636a256b29906024016020604051808303816000875af115801561077c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a09190610b8b565b505b6040805160208101839052016040516020818303038152906040529250505092915050565b60006001600160a01b0384166108065760008060008085875af190508061080157604051633d2cec6f60e21b815260040160405180910390fd5b610861565b60405163a9059cbb60e01b6000528360045282602452602060006044600080895af13d15601f3d116001600051141617169150600060605280604052508061086157604051633c9fd93960e21b815260040160405180910390fd5b50505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461089257600080fd5b50565b80356108a08161087d565b919050565b600060a082840312156108b757600080fd5b60405160a0810181811067ffffffffffffffff821117156108da576108da610867565b60405290508082356108eb8161087d565b815260208301356108fb8161087d565b6020820152604083013562ffffff8116811461091657600080fd5b60408201526060830135600281900b811461093057600080fd5b606082015261094160808401610895565b60808201525092915050565b600080600060e0848603121561096257600080fd5b61096c85856108a5565b9560a0850135955060c0909401359392505050565b6000806020838503121561099457600080fd5b823567ffffffffffffffff808211156109ac57600080fd5b818501915085601f8301126109c057600080fd5b8135818111156109cf57600080fd5b8660208285010111156109e157600080fd5b60209290920196919550909350505050565b60005b83811015610a0e5781810151838201526020016109f6565b50506000910152565b60008151808452610a2f8160208601602086016109f3565b601f01601f19169290920160200192915050565b602081526000610a566020830184610a17565b9392505050565b81516001600160a01b03168152602080830151610100830191610ac4908401826001600160a01b0380825116835280602083015116602084015262ffffff6040830151166040840152606082015160020b6060840152806080830151166080840152505050565b50604083015160c083015260609092015160e09091015290565b600060208284031215610af057600080fd5b815167ffffffffffffffff80821115610b0857600080fd5b818401915084601f830112610b1c57600080fd5b815181811115610b2e57610b2e610867565b604051601f8201601f19908116603f01168101908382118183101715610b5657610b56610867565b81604052828152876020848701011115610b6f57600080fd5b610b808360208301602088016109f3565b979650505050505050565b600060208284031215610b9d57600080fd5b5051919050565b60006101008284031215610bb757600080fd5b6040516080810181811067ffffffffffffffff82111715610bda57610bda610867565b6040528235610be88161087d565b8152610bf784602085016108a5565b602082015260c0830135604082015260e090920135606083015250919050565b6000610100610c6883886001600160a01b0380825116835280602083015116602084015262ffffff6040830151166040840152606082015160020b6060840152806080830151166080840152505050565b8560a08401528460c08401528060e0840152610b8081840185610a17565b600060208284031215610c9857600080fd5b81518015158114610a5657600080fdfea2646970667358221220031ac5e6581970bb23dc7ece97deadbd6c03b16a55ddaca19d4f207b8e0f20cb64736f6c637823302e382e32322d63692e323032332e382e31332b636f6d6d69742e64376165346439340054",
"sourceMap": "487:2001:33:-:0;;;619:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;664:18:33;;;487:2001;;14:311:107;105:6;158:2;146:9;137:7;133:23;129:32;126:52;;;174:1;171;164:12;126:52;200:16;;-1:-1:-1;;;;;245:31:107;;235:42;;225:70;;291:1;288;281:12;225:70;314:5;14:311;-1:-1:-1;;;14:311:107:o;:::-;487:2001:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x6080604052600436106100345760003560e01c8063481c6a7514610039578063a67dd8f31461008a578063ab6291fe146100ab575b600080fd5b34801561004557600080fd5b5061006d7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b61009d61009836600461094d565b6100d8565b604051908152602001610081565b3480156100b757600080fd5b506100cb6100c6366004610981565b6101e5565b6040516100819190610a43565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663815483196040518060800160405280336001600160a01b03168152602001878152602001868152602001858152506040516020016101439190610a5d565b6040516020818303038152906040526040518263ffffffff1660e01b815260040161016e9190610a43565b6000604051808303816000875af115801561018d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101b59190810190610ade565b8060200190518101906101c89190610b8b565b90504780156101dd576101dd600033836107c7565b509392505050565b6060336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461021c57600080fd5b600061022a83850185610ba4565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663234266d7836020015184604001518560600151600067ffffffffffffffff81111561028657610286610867565b6040519080825280601f01601f1916602001820160405280156102b0576020820181803683370190505b506040518563ffffffff1660e01b81526004016102d09493929190610c17565b6020604051808303816000875af11580156102ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103139190610b8b565b905060006103218260801c90565b600f0b131561056a576020820151516001600160a01b0316610402577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636a256b296103768360801c90565b6020850151516040516001600160e01b031960e085901b1681526001600160a01b0390911660048201526fffffffffffffffffffffffffffffffff919091169060240160206040518083038185885af11580156103d7573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906103fc9190610b8b565b5061056a565b8160200151600001516001600160a01b03166323b872dd83600001517f00000000000000000000000000000000000000000000000000000000000000006104498560801c90565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526fffffffffffffffffffffffffffffffff1660448201526064016020604051808303816000875af11580156104af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d39190610c86565b50602082015151604051636a256b2960e01b81526001600160a01b0391821660048201527f000000000000000000000000000000000000000000000000000000000000000090911690636a256b29906024016020604051808303816000875af1158015610544573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105689190610b8b565b505b600081600f0b13156107a25760208083015101516001600160a01b031661063b576020808301510151604051636a256b2960e01b81526001600160a01b0391821660048201527f000000000000000000000000000000000000000000000000000000000000000090911690636a256b29906fffffffffffffffffffffffffffffffff84169060240160206040518083038185885af1158015610610573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106359190610b8b565b506107a2565b8160200151602001516001600160a01b03166323b872dd83600001517f000000000000000000000000000000000000000000000000000000000000000061067f8590565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526fffffffffffffffffffffffffffffffff1660448201526064016020604051808303816000875af11580156106e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107099190610c86565b506020828101510151604051636a256b2960e01b81526001600160a01b0391821660048201527f000000000000000000000000000000000000000000000000000000000000000090911690636a256b29906024016020604051808303816000875af115801561077c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a09190610b8b565b505b6040805160208101839052016040516020818303038152906040529250505092915050565b60006001600160a01b0384166108065760008060008085875af190508061080157604051633d2cec6f60e21b815260040160405180910390fd5b610861565b60405163a9059cbb60e01b6000528360045282602452602060006044600080895af13d15601f3d116001600051141617169150600060605280604052508061086157604051633c9fd93960e21b815260040160405180910390fd5b50505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461089257600080fd5b50565b80356108a08161087d565b919050565b600060a082840312156108b757600080fd5b60405160a0810181811067ffffffffffffffff821117156108da576108da610867565b60405290508082356108eb8161087d565b815260208301356108fb8161087d565b6020820152604083013562ffffff8116811461091657600080fd5b60408201526060830135600281900b811461093057600080fd5b606082015261094160808401610895565b60808201525092915050565b600080600060e0848603121561096257600080fd5b61096c85856108a5565b9560a0850135955060c0909401359392505050565b6000806020838503121561099457600080fd5b823567ffffffffffffffff808211156109ac57600080fd5b818501915085601f8301126109c057600080fd5b8135818111156109cf57600080fd5b8660208285010111156109e157600080fd5b60209290920196919550909350505050565b60005b83811015610a0e5781810151838201526020016109f6565b50506000910152565b60008151808452610a2f8160208601602086016109f3565b601f01601f19169290920160200192915050565b602081526000610a566020830184610a17565b9392505050565b81516001600160a01b03168152602080830151610100830191610ac4908401826001600160a01b0380825116835280602083015116602084015262ffffff6040830151166040840152606082015160020b6060840152806080830151166080840152505050565b50604083015160c083015260609092015160e09091015290565b600060208284031215610af057600080fd5b815167ffffffffffffffff80821115610b0857600080fd5b818401915084601f830112610b1c57600080fd5b815181811115610b2e57610b2e610867565b604051601f8201601f19908116603f01168101908382118183101715610b5657610b56610867565b81604052828152876020848701011115610b6f57600080fd5b610b808360208301602088016109f3565b979650505050505050565b600060208284031215610b9d57600080fd5b5051919050565b60006101008284031215610bb757600080fd5b6040516080810181811067ffffffffffffffff82111715610bda57610bda610867565b6040528235610be88161087d565b8152610bf784602085016108a5565b602082015260c0830135604082015260e090920135606083015250919050565b6000610100610c6883886001600160a01b0380825116835280602083015116602084015262ffffff6040830151166040840152606082015160020b6060840152806080830151166080840152505050565b8560a08401528460c08401528060e0840152610b8081840185610a17565b600060208284031215610c9857600080fd5b81518015158114610a5657600080fdfea2646970667358221220031ac5e6581970bb23dc7ece97deadbd6c03b16a55ddaca19d4f207b8e0f20cb64736f6c637823302e382e32322d63692e323032332e382e31332b636f6d6d69742e64376165346439340054",
"sourceMap": "487:2001:33:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;575:37;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;199:55:107;;;181:74;;169:2;154:18;575:37:33;;;;;;;;823:432;;;;;;:::i;:::-;;:::i;:::-;;;2386:25:107;;;2374:2;2359:18;823:432:33;2207:210:107;1261:1225:33;;;;;;;;;;-1:-1:-1;1261:1225:33;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;823:432::-;943:18;996:7;-1:-1:-1;;;;;996:12:33;;1020:47;;;;;;;;1033:10;-1:-1:-1;;;;;1020:47:33;;;;;1045:3;1020:47;;;;1050:7;1020:47;;;;1059:7;1020:47;;;1009:59;;;;;;;;:::i;:::-;;;;;;;;;;;;;996:73;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;996:73:33;;;;;;;;;;;;:::i;:::-;985:101;;;;;;;;;;;;:::i;:::-;977:109;-1:-1:-1;1118:21:33;1153:14;;1149:100;;1183:55;1088:1:50;1215:10:33;1227;1183:31;:55::i;:::-;967:288;823:432;;;;;:::o;1261:1225::-;1325:12;1357:10;-1:-1:-1;;;;;1379:7:33;1357:30;;1349:39;;;;;;1399:24;1426:35;;;;1437:7;1426:35;:::i;:::-;1399:62;;1472:18;1493:7;-1:-1:-1;;;;;1493:14:33;;1508:4;:8;;;1518:4;:12;;;1532:4;:12;;;1556:1;1546:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1546:12:33;;1493:66;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1472:87;;1592:1;1574:15;:5;1039:3:49;1035:22;;863:210;1574:15:33;:19;;;1570:433;;;1613:8;;;;:18;-1:-1:-1;;;;;1613:27:33;1609:384;;1662:7;-1:-1:-1;;;;;1662:14:33;;1692:15;:5;1039:3:49;1035:22;;863:210;1692:15:33;1710:8;;;;:18;1662:67;;-1:-1:-1;;;;;;1662:67:33;;;;;;;-1:-1:-1;;;;;199:55:107;;;1662:67:33;;;181:74:107;1662:67:33;;;;;;154:18:107;;1662:67:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1609:384;;;1798:4;:8;;;:18;;;-1:-1:-1;;;;;1768:63:33;;1853:4;:11;;;1874:7;1892:15;:5;1039:3:49;1035:22;;863:210;1892:15:33;1768:158;;-1:-1:-1;;;;;;1768:158:33;;;;;;;-1:-1:-1;;;;;7907:15:107;;;1768:158:33;;;7889:34:107;7959:15;;;;7939:18;;;7932:43;8023:34;8011:47;7991:18;;;7984:75;7801:18;;1768:158:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1959:8:33;;;;:18;1944:34;;-1:-1:-1;;;1944:34:33;;-1:-1:-1;;;;;199:55:107;;;1944:34:33;;;181:74:107;1944:7:33;:14;;;;;;154:18:107;;1944:34:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1609:384;2034:1;2016:5;:19;;;2012:433;;;2055:8;;;;;:18;;-1:-1:-1;;;;;2055:27:33;2051:384;;2152:8;;;;;:18;;2104:67;;-1:-1:-1;;;2104:67:33;;-1:-1:-1;;;;;199:55:107;;;2104:67:33;;;181:74:107;2104:7:33;:14;;;;;;:67;;;;154:18:107;;2104:67:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2051:384;;;2240:4;:8;;;:18;;;-1:-1:-1;;;;;2210:63:33;;2295:4;:11;;;2316:7;2334:15;:5;1251:12:49;1079:200;2334:15:33;2210:158;;-1:-1:-1;;;;;;2210:158:33;;;;;;;-1:-1:-1;;;;;7907:15:107;;;2210:158:33;;;7889:34:107;7959:15;;;;7939:18;;;7932:43;8023:34;8011:47;7991:18;;;7984:75;7801:18;;2210:158:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2401:8:33;;;;;:18;;2386:34;;-1:-1:-1;;;2386:34:33;;-1:-1:-1;;;;;199:55:107;;;2386:34:33;;;181:74:107;2386:7:33;:14;;;;;;154:18:107;;2386:34:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2051:384;2462:17;;;;;;2386:25:107;;;2359:18;2462:17:33;;;;;;;;;;;;2455:24;;;;1261:1225;;;;:::o;1098:1975:50:-;1344:12;-1:-1:-1;;;;;1370:17:50;;1366:1701;;1546:1;1543;1540;1537;1529:6;1525:2;1518:5;1513:35;1502:46;;1581:7;1576:43;;1597:22;;-1:-1:-1;;;1597:22:50;;;;;;;;;;;1576:43;1366:1701;;;1787:4;1781:11;-1:-1:-1;;;1918:1:50;1911:77;2015:2;2012:1;2005:13;2075:6;2071:2;2064:18;2826:2;2823:1;2819:2;2816:1;2813;2803:8;2796:5;2791:38;2446:16;2439:24;2433:2;2415:16;2412:24;2408:1;2404;2398:8;2395:15;2391:46;2388:76;2164:687;2133:718;;2882:1;2876:4;2869:15;2948:10;2942:4;2935:24;;3019:7;3014:42;;3035:21;;-1:-1:-1;;;3035:21:50;;;;;;;;;;;3014:42;1172:1901;1098:1975;;;:::o;266:127:107:-;327:10;322:3;318:20;315:1;308:31;358:4;355:1;348:15;382:4;379:1;372:15;398:176;-1:-1:-1;;;;;499:5:107;495:54;488:5;485:65;475:93;;564:1;561;554:12;475:93;398:176;:::o;579:164::-;655:20;;684:53;655:20;684:53;:::i;:::-;579:164;;;:::o;748:1082::-;802:5;850:4;838:9;833:3;829:19;825:30;822:50;;;868:1;865;858:12;822:50;901:2;895:9;943:4;935:6;931:17;1014:6;1002:10;999:22;978:18;966:10;963:34;960:62;957:88;;;1025:18;;:::i;:::-;1061:2;1054:22;1094:6;-1:-1:-1;1094:6:107;1124:23;;1156:55;1124:23;1156:55;:::i;:::-;1220:23;;1295:2;1280:18;;1267:32;1308:55;1267:32;1308:55;:::i;:::-;1391:2;1379:15;;1372:32;1456:2;1441:18;;1428:32;1504:8;1491:22;;1479:35;;1469:63;;1528:1;1525;1518:12;1469:63;1560:2;1548:15;;1541:32;1625:2;1610:18;;1597:32;1671:1;1660:22;;;1648:35;;1638:63;;1697:1;1694;1687:12;1638:63;1729:2;1717:15;;1710:32;1776:47;1818:3;1803:19;;1776:47;:::i;:::-;1770:3;1762:6;1758:16;1751:73;;748:1082;;;;:::o;1835:367::-;1938:6;1946;1954;2007:3;1995:9;1986:7;1982:23;1978:33;1975:53;;;2024:1;2021;2014:12;1975:53;2047:45;2084:7;2073:9;2047:45;:::i;:::-;2037:55;2139:3;2124:19;;2111:33;;-1:-1:-1;2191:3:107;2176:19;;;2163:33;;1835:367;-1:-1:-1;;;1835:367:107:o;2422:591::-;2492:6;2500;2553:2;2541:9;2532:7;2528:23;2524:32;2521:52;;;2569:1;2566;2559:12;2521:52;2609:9;2596:23;2638:18;2679:2;2671:6;2668:14;2665:34;;;2695:1;2692;2685:12;2665:34;2733:6;2722:9;2718:22;2708:32;;2778:7;2771:4;2767:2;2763:13;2759:27;2749:55;;2800:1;2797;2790:12;2749:55;2840:2;2827:16;2866:2;2858:6;2855:14;2852:34;;;2882:1;2879;2872:12;2852:34;2927:7;2922:2;2913:6;2909:2;2905:15;2901:24;2898:37;2895:57;;;2948:1;2945;2938:12;2895:57;2979:2;2971:11;;;;;3001:6;;-1:-1:-1;2422:591:107;;-1:-1:-1;;;;2422:591:107:o;3018:250::-;3103:1;3113:113;3127:6;3124:1;3121:13;3113:113;;;3203:11;;;3197:18;3184:11;;;3177:39;3149:2;3142:10;3113:113;;;-1:-1:-1;;3260:1:107;3242:16;;3235:27;3018:250::o;3273:270::-;3314:3;3352:5;3346:12;3379:6;3374:3;3367:19;3395:76;3464:6;3457:4;3452:3;3448:14;3441:4;3434:5;3430:16;3395:76;:::i;:::-;3525:2;3504:15;-1:-1:-1;;3500:29:107;3491:39;;;;3532:4;3487:50;;3273:270;-1:-1:-1;;3273:270:107:o;3548:217::-;3695:2;3684:9;3677:21;3658:4;3715:44;3755:2;3744:9;3740:18;3732:6;3715:44;:::i;:::-;3707:52;3548:217;-1:-1:-1;;;3548:217:107:o;4209:543::-;4438:13;;-1:-1:-1;;;;;4434:62:107;4416:81;;4544:4;4532:17;;;4526:24;4403:3;4388:19;;;4559:61;;4599:20;;4526:24;-1:-1:-1;;;;;3922:2:107;3914:5;3908:12;3904:21;3899:3;3892:34;3987:2;3979:4;3972:5;3968:16;3962:23;3958:32;3951:4;3946:3;3942:14;3935:56;4052:8;4044:4;4037:5;4033:16;4027:23;4023:38;4016:4;4011:3;4007:14;4000:62;4125:4;4118:5;4114:16;4108:23;4105:1;4094:38;4087:4;4082:3;4078:14;4071:62;4194:2;4186:4;4179:5;4175:16;4169:23;4165:32;4158:4;4153:3;4149:14;4142:56;;3770:434;;;4559:61;-1:-1:-1;4676:4:107;4664:17;;4658:24;4651:4;4636:20;;4629:54;4739:4;4727:17;;;4721:24;4714:4;4699:20;;;4692:54;4209:543;:::o;4757:896::-;4836:6;4889:2;4877:9;4868:7;4864:23;4860:32;4857:52;;;4905:1;4902;4895:12;4857:52;4938:9;4932:16;4967:18;5008:2;5000:6;4997:14;4994:34;;;5024:1;5021;5014:12;4994:34;5062:6;5051:9;5047:22;5037:32;;5107:7;5100:4;5096:2;5092:13;5088:27;5078:55;;5129:1;5126;5119:12;5078:55;5158:2;5152:9;5180:2;5176;5173:10;5170:36;;;5186:18;;:::i;:::-;5261:2;5255:9;5229:2;5315:13;;-1:-1:-1;;5311:22:107;;;5335:2;5307:31;5303:40;5291:53;;;5359:18;;;5379:22;;;5356:46;5353:72;;;5405:18;;:::i;:::-;5445:10;5441:2;5434:22;5480:2;5472:6;5465:18;5520:7;5515:2;5510;5506;5502:11;5498:20;5495:33;5492:53;;;5541:1;5538;5531:12;5492:53;5554:68;5619:2;5614;5606:6;5602:15;5597:2;5593;5589:11;5554:68;:::i;:::-;5641:6;4757:896;-1:-1:-1;;;;;;;4757:896:107:o;5658:218::-;5762:6;5815:2;5803:9;5794:7;5790:23;5786:32;5783:52;;;5831:1;5828;5821:12;5783:52;-1:-1:-1;5854:16:107;;5658:218;-1:-1:-1;5658:218:107:o;5881:759::-;5970:6;6023:3;6011:9;6002:7;5998:23;5994:33;5991:53;;;6040:1;6037;6030:12;5991:53;6073:2;6067:9;6115:4;6107:6;6103:17;6186:6;6174:10;6171:22;6150:18;6138:10;6135:34;6132:62;6129:88;;;6197:18;;:::i;:::-;6233:2;6226:22;6270:23;;6302:53;6270:23;6302:53;:::i;:::-;6364:21;;6418:54;6464:7;6459:2;6444:18;;6418:54;:::i;:::-;6413:2;6401:15;;6394:79;6534:3;6519:19;;6506:33;6501:2;6489:15;;6482:58;6603:3;6588:19;;;6575:33;6568:4;6556:17;;6549:60;-1:-1:-1;6405:6:107;5881:759;-1:-1:-1;5881:759:107:o;6645:526::-;6891:4;6920:3;6932:44;6966:9;6958:6;-1:-1:-1;;;;;3922:2:107;3914:5;3908:12;3904:21;3899:3;3892:34;3987:2;3979:4;3972:5;3968:16;3962:23;3958:32;3951:4;3946:3;3942:14;3935:56;4052:8;4044:4;4037:5;4033:16;4027:23;4023:38;4016:4;4011:3;4007:14;4000:62;4125:4;4118:5;4114:16;4108:23;4105:1;4094:38;4087:4;4082:3;4078:14;4071:62;4194:2;4186:4;4179:5;4175:16;4169:23;4165:32;4158:4;4153:3;4149:14;4142:56;;3770:434;;;6932:44;7013:6;7007:3;6996:9;6992:19;6985:35;7057:6;7051:3;7040:9;7036:19;7029:35;7101:2;7095:3;7084:9;7080:19;7073:31;7121:44;7161:2;7150:9;7146:18;7138:6;7121:44;:::i;8070:277::-;8137:6;8190:2;8178:9;8169:7;8165:23;8161:32;8158:52;;;8206:1;8203;8196:12;8158:52;8238:9;8232:16;8291:5;8284:13;8277:21;8270:5;8267:32;8257:60;;8313:1;8310;8303:12",
"linkReferences": {},
"immutableReferences": {
"8942": [
{
"start": 75,
"length": 32
},
{
"start": 220,
"length": 32
},
{
"start": 498,
"length": 32
},
{
"start": 560,
"length": 32
},
{
"start": 831,
"length": 32
},
{
"start": 1056,
"length": 32
},
{
"start": 1273,
"length": 32
},
{
"start": 1458,
"length": 32
},
{
"start": 1625,
"length": 32
},
{
"start": 1841,
"length": 32
}
]
}
},
"methodIdentifiers": {
"donate((address,address,uint24,int24,address),uint256,uint256)": "a67dd8f3",
"lockAcquired(bytes)": "ab6291fe",
"manager()": "481c6a75"
},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.22-ci.2023.8.13+commit.d7ae4d94\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IPoolManager\",\"name\":\"_manager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ERC20TransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NativeTransferFailed\",\"type\":\"error\"},{\"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\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"donate\",\"outputs\":[{\"internalType\":\"BalanceDelta\",\"name\":\"delta\",\"type\":\"int256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"rawData\",\"type\":\"bytes\"}],\"name\":\"lockAcquired\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"manager\",\"outputs\":[{\"internalType\":\"contract IPoolManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"errors\":{\"ERC20TransferFailed()\":[{\"notice\":\"Thrown when an ERC20 transfer fails\"}],\"NativeTransferFailed()\":[{\"notice\":\"Thrown when a native transfer fails\"}]},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/PoolDonateTest.sol\":\"PoolDonateTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":800},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=lib/openzeppelin-contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-gas-snapshot/=lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"contracts/interfaces/IFees.sol\":{\"keccak256\":\"0x2fb66160acff9b1a6031e3ada15e4271b25399d6b921dc17679cde1e50f566e2\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://7bb4c14e2f3bc0c92729b3fc24f57aaaaf9bd1930411aa937afd49e2c3811bfb\",\"dweb:/ipfs/QmP8kj9hvpDhWBrjuZUmxX7UAsbbkU6bceRKHdwg66MpPK\"]},\"contracts/interfaces/IHooks.sol\":{\"keccak256\":\"0x7263c9c8fef8b2346bebfd67956b287666a8c9e1f74131789650af4945ba4523\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ef70e4a9ec5d8721fa844216d752d4135d88ad4562a00d125ae158ce40748569\",\"dweb:/ipfs/QmSSRNcCmcvTSmm87hgAMsK3zqfcPkgemqm4JzaQf92PgM\"]},\"contracts/interfaces/IPoolManager.sol\":{\"keccak256\":\"0xb110f845d51b3b22400a71f8877c411267409d0e0acb4399cf1a4baa1c4d8492\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8e79a6541dff47947d24aab246254ec774fff2e0cbf8dd860b7869f9f4958711\",\"dweb:/ipfs/Qmd9b4tiFzeTyeUWeKdxiiUnsnNv6Cb8s1ruzVLgK7Z2WJ\"]},\"contracts/interfaces/callback/ILockCallback.sol\":{\"keccak256\":\"0xbbe48da53b400e2ebe65e8b2d7fff212f4da3657bafec984c9144387c98f1816\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://364c1990569b9e2f1c2d24ddec70c0a88bd18c9b7262e835f10d6c82cca48a23\",\"dweb:/ipfs/QmNkooBi1MwGtwdZWTtVj3Yje1q1NSbAKvuhirtovid9fu\"]},\"contracts/interfaces/external/IERC20Minimal.sol\":{\"keccak256\":\"0x8dc5ee72426906aeb12f4ae6a2426df059491739bd5cbdb8ea4a3e26970436c6\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7e30dbbc972cb78d169c8845d6210d27490c8534e68a20d4f296b11ec727b92\",\"dweb:/ipfs/QmXBvaWaAnPW25YGVm2sMbf5mwrzLapUcqPnrNiiGGXxmA\"]},\"contracts/libraries/BitMath.sol\":{\"keccak256\":\"0x652cd36970d953b3067c766b3b0c0063d4c403eba7352df09ec10dcc868910d9\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e357b092171edb755c8514b4b4ae758a8b43458c7a23409ebf5afd325fefa2be\",\"dweb:/ipfs/QmWKRWT2z15cVbVVDkjqdVnpf8Ck1jytcXbA7zCUevp7b6\"]},\"contracts/libraries/FixedPoint128.sol\":{\"keccak256\":\"0x1f015a7a107f4c471985a958f1bfbc1710948f9bcd3786a02310bc0ad5080c69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a1cacac08675284f319d151f6bc5d1c66cf1d54c5dad1c620a2e1e1336cbb93a\",\"dweb:/ipfs/QmPf8vQ3mBqniKHwvS1DDEFrV5dJfZSL6mMi9JVy6omQaz\"]},\"contracts/libraries/FixedPoint96.sol\":{\"keccak256\":\"0x7731aeeba692b0ca5dac8f27803ec9e5ce98795a554c09ae05c220861bd0314e\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://963a8155e442d31c4541c387d333db0c02941ae3517e9173ad30ebcb4f6a14e9\",\"dweb:/ipfs/QmevAr8oG4WSoi5gBqQ53VzBuFbDKoZHfJwjuTmVhzm8Tc\"]},\"contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x6d8760794ed38264579c5da7b2afe8ff5543de999180850bc08687b77dce36ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e72da6f868ba5f5c829f78f649286c6b5922a8cda0317dfbb156b8a4d27fb24\",\"dweb:/ipfs/QmUQDZciNFhy4AFGXfYvoy22ihPc7ehvypeRVQwvVcD3vJ\"]},\"contracts/libraries/LockDataLibrary.sol\":{\"keccak256\":\"0x56d00c580d8e3c48dbad28c59aa1245ef98d953dc380a7a4eadc1f7d883a29bc\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://73d04edef13331c408d526da2a1b41fc905bbc10c0ef4625df233be289608f4c\",\"dweb:/ipfs/QmcX7H3mQ5hMcKfRKBY2UwNkiBuMqKfgbusNzWw2DyrXje\"]},\"contracts/libraries/Pool.sol\":{\"keccak256\":\"0xe68c53367349bf7d5ec53f10abbe32effabe41c288eea6b42de67941104e4bc7\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e69c6333c17577871f4995af3d3cdb278ad72b721a5c42d66a0b412e8b3559ed\",\"dweb:/ipfs/QmUtxoY88otDhFprbvST7LbcxacWrQrn4mZ8QfemBQDAxY\"]},\"contracts/libraries/Position.sol\":{\"keccak256\":\"0x1319e4c172e31427c3b3521dd3c9c9c3949da22e25c9919ae57c47a8c9328e43\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1e0885e8e035681836fe02213e165d1ab48cf2488cf6ba8f01964b4b026d2b46\",\"dweb:/ipfs/QmR4W3DZYYvctASLFnm7Sf4wk2L77gwNRrTS2mBqtiUaud\"]},\"contracts/libraries/SafeCast.sol\":{\"keccak256\":\"0xb459cbf9f2cda4c38c11916e888cc2afbe4297c5ae6f50a0976eb83ed0dc9b25\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://5608698d33b18d3f49e3fa1fbdf6e7c6383378f7d53c914dcf14a0411cf7a79b\",\"dweb:/ipfs/QmbF4VWDcTPzH17aczU6eCUcqTp9Be7xiuBGB5TMWmtJAi\"]},\"contracts/libraries/SqrtPriceMath.sol\":{\"keccak256\":\"0x62cb03c7ce6ce037c82fa74e5aabb2431d6b4ddbca1458efdabf5d6af9ca6f90\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://206e025889f55aa8e5d9db2f846460394b54d6dc6d80a5e4ca1d4b70edd98188\",\"dweb:/ipfs/QmNSzKqtUDXHzgXXDjdNv3ZnHZE3LU4KhwNmkrcWtTRGqk\"]},\"contracts/libraries/SwapMath.sol\":{\"keccak256\":\"0xac5b75b36ff928e88cbec828bdc9db03e681cc3b337d5d7f6be9fd617b3fef7f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://6aaea2ecabdb3fec93c7c6be19ea3a034cf396a59ab96f61c57b5214c04b5a6e\",\"dweb:/ipfs/QmYyd4ExT6xbvEHZTQBv9nZuvU6xjB6EN4uY8TmK8Tceqv\"]},\"contracts/libraries/TickBitmap.sol\":{\"keccak256\":\"0x7cccb8dff4c76da872a827f1549dc44cdff384d123e77a5361a02a31902bf15c\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://88f850cd5bd2bbada4d9514f2516804392c7b23dc2cb541b74e9c88d0a351dcd\",\"dweb:/ipfs/QmZh9LvKUG23oFUZXAAa5gn77MguAbZ41VGjkES5U8N9Em\"]},\"contracts/libraries/TickMath.sol\":{\"keccak256\":\"0xadffea78a3eed37613b57766d87c0bdb9454d2df39de90d7a450e4a8b3207e56\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c5043430807061e5ccc82986c59b2e074457ff608111a8bd51b413ceaf661c78\",\"dweb:/ipfs/QmXjqKzCrngzidTRmuLUFvwNPqMKtd8xVFLVCycRfEQcWo\"]},\"contracts/libraries/UnsafeMath.sol\":{\"keccak256\":\"0x2a8cb75af05f8557b698b089a0ab19e24279fffb7e87cddf5794404c7eaf1c69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://85f68e6d614205f3f0f55f6ac41805e3a7d523d95bda1c443f2e75444443ffe3\",\"dweb:/ipfs/QmdCheMqxWNx4CbxG5MH9BUQeSMeeXF6DHkf7Aax4duRUe\"]},\"contracts/test/PoolDonateTest.sol\":{\"keccak256\":\"0xfa59e4ab2c0e6886c969f371f9de4f2f66e8c751a2ec9a51c40300d92af54437\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8cb786f2855afa7b99ff949520a34c33616b891b280a7b95e4e09cab54a2542a\",\"dweb:/ipfs/QmT6EnRLgtAV14Kyqrh7Y2mo944DqMtkFEBUDA8jPGdcyP\"]},\"contracts/types/BalanceDelta.sol\":{\"keccak256\":\"0xb88fc16f2ae715bd796e5cdb77c2297117f18ce2183288ae4680d7f20cce5f85\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://829baa2d4becbf8f0298fcaafb2305cf57bab5bcccdf8ac10d171bbb68c37e6f\",\"dweb:/ipfs/QmPs18e2YgwJECriyft46Rp7p9iECPEpkNXV1gom5NosfF\"]},\"contracts/types/Currency.sol\":{\"keccak256\":\"0x008a7aeff6cdb7709a8e5893c9e9895a8a7ad594a0605586174e576b9888ff80\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c773b120bacb261695d4e00973ff25359dbf3aee071d19268833cc76e71f1aa2\",\"dweb:/ipfs/QmawinVYJJSWcQH4Lo5Hh7ond58RHAjeCL13FE47a5Egcw\"]},\"contracts/types/LockSentinel.sol\":{\"keccak256\":\"0xb10a648d7d56f778be5e2aa497cb55b375de851fb5c6ea6a68c9a898b831d60c\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://39c1f6e17e0d727bef600c6552b3db259219b4fa2c3854e6f27c884232304db6\",\"dweb:/ipfs/QmXyE5zYUs4JZy4RAJRKq6sAd3GwxB8YZ39g8FgANDTdFt\"]},\"contracts/types/PoolId.sol\":{\"keccak256\":\"0xd28e4ac2a0874b5372ab3873a263701ce625a840fc563c63d5ad8f7b3272f325\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://0575161cdbe0c3ef8fa023a5f606563ec793bad863446822bdf310bce8dbcccd\",\"dweb:/ipfs/QmUM26Umcr3LEfM2sZ6eGtgBa2KmQde6Ea6898n8tt38mv\"]},\"contracts/types/PoolKey.sol\":{\"keccak256\":\"0x4928c59e15db5af3bff68f4d9243ebe11a1dc4a4cbfa57c564db376086a902ce\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://235245bf768c3b708be7837f6aa3bb6bcab7b25036df99e2cc257363350f6ea7\",\"dweb:/ipfs/QmWPurWV2vYoaVNxZyj4DkCqS8Aode5U9JE8WHmbyVR8jH\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x8e93de94c9062ebc94fb7e2e3929b0781ac6a2b7772e2f7a59045861c93e5be9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f920a631bf986c610fe573d3c70a2bb6f224f86f4a8550016470c7ee476c9ab5\",\"dweb:/ipfs/QmYzsyVMfnaREKHcHv5RPS8Xg5r1Q38E2SDsGBTnXeFWzb\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.22-ci.2023.8.13+commit.d7ae4d94"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "contract IPoolManager",
"name": "_manager",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"type": "error",
"name": "ERC20TransferFailed"
},
{
"inputs": [],
"type": "error",
"name": "NativeTransferFailed"
},
{
"inputs": [
{
"internalType": "struct PoolKey",
"name": "key",
"type": "tuple",
"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": "uint256",
"name": "amount0",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount1",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function",
"name": "donate",
"outputs": [
{
"internalType": "BalanceDelta",
"name": "delta",
"type": "int256"
}
]
},
{
"inputs": [
{
"internalType": "bytes",
"name": "rawData",
"type": "bytes"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "lockAcquired",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "manager",
"outputs": [
{
"internalType": "contract IPoolManager",
"name": "",
"type": "address"
}
]
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"remappings": [
"@ensdomains/=node_modules/@ensdomains/",
"@openzeppelin/=lib/openzeppelin-contracts/",
"ds-test/=lib/forge-std/lib/ds-test/src/",
"forge-gas-snapshot/=lib/forge-gas-snapshot/src/",
"forge-std/=lib/forge-std/src/",
"hardhat/=node_modules/hardhat/",
"openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/",
"solmate/=lib/solmate/src/"
],
"optimizer": {
"enabled": true,
"runs": 800
},
"metadata": {
"bytecodeHash": "ipfs"
},
"compilationTarget": {
"contracts/test/PoolDonateTest.sol": "PoolDonateTest"
},
"libraries": {}
},
"sources": {
"contracts/interfaces/IFees.sol": {
"keccak256": "0x2fb66160acff9b1a6031e3ada15e4271b25399d6b921dc17679cde1e50f566e2",
"urls": [
"bzz-raw://7bb4c14e2f3bc0c92729b3fc24f57aaaaf9bd1930411aa937afd49e2c3811bfb",
"dweb:/ipfs/QmP8kj9hvpDhWBrjuZUmxX7UAsbbkU6bceRKHdwg66MpPK"
],
"license": "GPL-2.0-or-later"
},
"contracts/interfaces/IHooks.sol": {
"keccak256": "0x7263c9c8fef8b2346bebfd67956b287666a8c9e1f74131789650af4945ba4523",
"urls": [
"bzz-raw://ef70e4a9ec5d8721fa844216d752d4135d88ad4562a00d125ae158ce40748569",
"dweb:/ipfs/QmSSRNcCmcvTSmm87hgAMsK3zqfcPkgemqm4JzaQf92PgM"
],
"license": "GPL-2.0-or-later"
},
"contracts/interfaces/IPoolManager.sol": {
"keccak256": "0xb110f845d51b3b22400a71f8877c411267409d0e0acb4399cf1a4baa1c4d8492",
"urls": [
"bzz-raw://8e79a6541dff47947d24aab246254ec774fff2e0cbf8dd860b7869f9f4958711",
"dweb:/ipfs/Qmd9b4tiFzeTyeUWeKdxiiUnsnNv6Cb8s1ruzVLgK7Z2WJ"
],
"license": "GPL-2.0-or-later"
},
"contracts/interfaces/callback/ILockCallback.sol": {
"keccak256": "0xbbe48da53b400e2ebe65e8b2d7fff212f4da3657bafec984c9144387c98f1816",
"urls": [
"bzz-raw://364c1990569b9e2f1c2d24ddec70c0a88bd18c9b7262e835f10d6c82cca48a23",
"dweb:/ipfs/QmNkooBi1MwGtwdZWTtVj3Yje1q1NSbAKvuhirtovid9fu"
],
"license": "GPL-2.0-or-later"
},
"contracts/interfaces/external/IERC20Minimal.sol": {
"keccak256": "0x8dc5ee72426906aeb12f4ae6a2426df059491739bd5cbdb8ea4a3e26970436c6",
"urls": [
"bzz-raw://f7e30dbbc972cb78d169c8845d6210d27490c8534e68a20d4f296b11ec727b92",
"dweb:/ipfs/QmXBvaWaAnPW25YGVm2sMbf5mwrzLapUcqPnrNiiGGXxmA"
],
"license": "GPL-2.0-or-later"
},
"contracts/libraries/BitMath.sol": {
"keccak256": "0x652cd36970d953b3067c766b3b0c0063d4c403eba7352df09ec10dcc868910d9",
"urls": [
"bzz-raw://e357b092171edb755c8514b4b4ae758a8b43458c7a23409ebf5afd325fefa2be",
"dweb:/ipfs/QmWKRWT2z15cVbVVDkjqdVnpf8Ck1jytcXbA7zCUevp7b6"
],
"license": "GPL-2.0-or-later"
},
"contracts/libraries/FixedPoint128.sol": {
"keccak256": "0x1f015a7a107f4c471985a958f1bfbc1710948f9bcd3786a02310bc0ad5080c69",
"urls": [
"bzz-raw://a1cacac08675284f319d151f6bc5d1c66cf1d54c5dad1c620a2e1e1336cbb93a",
"dweb:/ipfs/QmPf8vQ3mBqniKHwvS1DDEFrV5dJfZSL6mMi9JVy6omQaz"
],
"license": "GPL-2.0-or-later"
},
"contracts/libraries/FixedPoint96.sol": {
"keccak256": "0x7731aeeba692b0ca5dac8f27803ec9e5ce98795a554c09ae05c220861bd0314e",
"urls": [
"bzz-raw://963a8155e442d31c4541c387d333db0c02941ae3517e9173ad30ebcb4f6a14e9",
"dweb:/ipfs/QmevAr8oG4WSoi5gBqQ53VzBuFbDKoZHfJwjuTmVhzm8Tc"
],
"license": "GPL-2.0-or-later"
},
"contracts/libraries/FullMath.sol": {
"keccak256": "0x6d8760794ed38264579c5da7b2afe8ff5543de999180850bc08687b77dce36ea",
"urls": [
"bzz-raw://0e72da6f868ba5f5c829f78f649286c6b5922a8cda0317dfbb156b8a4d27fb24",
"dweb:/ipfs/QmUQDZciNFhy4AFGXfYvoy22ihPc7ehvypeRVQwvVcD3vJ"
],
"license": "MIT"
},
"contracts/libraries/LockDataLibrary.sol": {
"keccak256": "0x56d00c580d8e3c48dbad28c59aa1245ef98d953dc380a7a4eadc1f7d883a29bc",
"urls": [
"bzz-raw://73d04edef13331c408d526da2a1b41fc905bbc10c0ef4625df233be289608f4c",
"dweb:/ipfs/QmcX7H3mQ5hMcKfRKBY2UwNkiBuMqKfgbusNzWw2DyrXje"
],
"license": "BUSL-1.1"
},
"contracts/libraries/Pool.sol": {
"keccak256": "0xe68c53367349bf7d5ec53f10abbe32effabe41c288eea6b42de67941104e4bc7",
"urls": [
"bzz-raw://e69c6333c17577871f4995af3d3cdb278ad72b721a5c42d66a0b412e8b3559ed",
"dweb:/ipfs/QmUtxoY88otDhFprbvST7LbcxacWrQrn4mZ8QfemBQDAxY"
],
"license": "BUSL-1.1"
},
"contracts/libraries/Position.sol": {
"keccak256": "0x1319e4c172e31427c3b3521dd3c9c9c3949da22e25c9919ae57c47a8c9328e43",
"urls": [
"bzz-raw://1e0885e8e035681836fe02213e165d1ab48cf2488cf6ba8f01964b4b026d2b46",
"dweb:/ipfs/QmR4W3DZYYvctASLFnm7Sf4wk2L77gwNRrTS2mBqtiUaud"
],
"license": "BUSL-1.1"
},
"contracts/libraries/SafeCast.sol": {
"keccak256": "0xb459cbf9f2cda4c38c11916e888cc2afbe4297c5ae6f50a0976eb83ed0dc9b25",
"urls": [
"bzz-raw://5608698d33b18d3f49e3fa1fbdf6e7c6383378f7d53c914dcf14a0411cf7a79b",
"dweb:/ipfs/QmbF4VWDcTPzH17aczU6eCUcqTp9Be7xiuBGB5TMWmtJAi"
],
"license": "GPL-2.0-or-later"
},
"contracts/libraries/SqrtPriceMath.sol": {
"keccak256": "0x62cb03c7ce6ce037c82fa74e5aabb2431d6b4ddbca1458efdabf5d6af9ca6f90",
"urls": [
"bzz-raw://206e025889f55aa8e5d9db2f846460394b54d6dc6d80a5e4ca1d4b70edd98188",
"dweb:/ipfs/QmNSzKqtUDXHzgXXDjdNv3ZnHZE3LU4KhwNmkrcWtTRGqk"
],
"license": "GPL-2.0-or-later"
},
"contracts/libraries/SwapMath.sol": {
"keccak256": "0xac5b75b36ff928e88cbec828bdc9db03e681cc3b337d5d7f6be9fd617b3fef7f",
"urls": [
"bzz-raw://6aaea2ecabdb3fec93c7c6be19ea3a034cf396a59ab96f61c57b5214c04b5a6e",
"dweb:/ipfs/QmYyd4ExT6xbvEHZTQBv9nZuvU6xjB6EN4uY8TmK8Tceqv"
],
"license": "GPL-2.0-or-later"
},
"contracts/libraries/TickBitmap.sol": {
"keccak256": "0x7cccb8dff4c76da872a827f1549dc44cdff384d123e77a5361a02a31902bf15c",
"urls": [
"bzz-raw://88f850cd5bd2bbada4d9514f2516804392c7b23dc2cb541b74e9c88d0a351dcd",
"dweb:/ipfs/QmZh9LvKUG23oFUZXAAa5gn77MguAbZ41VGjkES5U8N9Em"
],
"license": "GPL-2.0-or-later"
},
"contracts/libraries/TickMath.sol": {
"keccak256": "0xadffea78a3eed37613b57766d87c0bdb9454d2df39de90d7a450e4a8b3207e56",
"urls": [
"bzz-raw://c5043430807061e5ccc82986c59b2e074457ff608111a8bd51b413ceaf661c78",
"dweb:/ipfs/QmXjqKzCrngzidTRmuLUFvwNPqMKtd8xVFLVCycRfEQcWo"
],
"license": "GPL-2.0-or-later"
},
"contracts/libraries/UnsafeMath.sol": {
"keccak256": "0x2a8cb75af05f8557b698b089a0ab19e24279fffb7e87cddf5794404c7eaf1c69",
"urls": [
"bzz-raw://85f68e6d614205f3f0f55f6ac41805e3a7d523d95bda1c443f2e75444443ffe3",
"dweb:/ipfs/QmdCheMqxWNx4CbxG5MH9BUQeSMeeXF6DHkf7Aax4duRUe"
],
"license": "GPL-2.0-or-later"
},
"contracts/test/PoolDonateTest.sol": {
"keccak256": "0xfa59e4ab2c0e6886c969f371f9de4f2f66e8c751a2ec9a51c40300d92af54437",
"urls": [
"bzz-raw://8cb786f2855afa7b99ff949520a34c33616b891b280a7b95e4e09cab54a2542a",
"dweb:/ipfs/QmT6EnRLgtAV14Kyqrh7Y2mo944DqMtkFEBUDA8jPGdcyP"
],
"license": "UNLICENSED"
},
"contracts/types/BalanceDelta.sol": {
"keccak256": "0xb88fc16f2ae715bd796e5cdb77c2297117f18ce2183288ae4680d7f20cce5f85",
"urls": [
"bzz-raw://829baa2d4becbf8f0298fcaafb2305cf57bab5bcccdf8ac10d171bbb68c37e6f",
"dweb:/ipfs/QmPs18e2YgwJECriyft46Rp7p9iECPEpkNXV1gom5NosfF"
],
"license": "GPL-2.0-or-later"
},
"contracts/types/Currency.sol": {
"keccak256": "0x008a7aeff6cdb7709a8e5893c9e9895a8a7ad594a0605586174e576b9888ff80",
"urls": [
"bzz-raw://c773b120bacb261695d4e00973ff25359dbf3aee071d19268833cc76e71f1aa2",
"dweb:/ipfs/QmawinVYJJSWcQH4Lo5Hh7ond58RHAjeCL13FE47a5Egcw"
],
"license": "GPL-2.0-or-later"
},
"contracts/types/LockSentinel.sol": {
"keccak256": "0xb10a648d7d56f778be5e2aa497cb55b375de851fb5c6ea6a68c9a898b831d60c",
"urls": [
"bzz-raw://39c1f6e17e0d727bef600c6552b3db259219b4fa2c3854e6f27c884232304db6",
"dweb:/ipfs/QmXyE5zYUs4JZy4RAJRKq6sAd3GwxB8YZ39g8FgANDTdFt"
],
"license": "GPL-2.0-or-later"
},
"contracts/types/PoolId.sol": {
"keccak256": "0xd28e4ac2a0874b5372ab3873a263701ce625a840fc563c63d5ad8f7b3272f325",
"urls": [
"bzz-raw://0575161cdbe0c3ef8fa023a5f606563ec793bad863446822bdf310bce8dbcccd",
"dweb:/ipfs/QmUM26Umcr3LEfM2sZ6eGtgBa2KmQde6Ea6898n8tt38mv"
],
"license": "GPL-2.0-or-later"
},
"contracts/types/PoolKey.sol": {
"keccak256": "0x4928c59e15db5af3bff68f4d9243ebe11a1dc4a4cbfa57c564db376086a902ce",
"urls": [
"bzz-raw://235245bf768c3b708be7837f6aa3bb6bcab7b25036df99e2cc257363350f6ea7",
"dweb:/ipfs/QmWPurWV2vYoaVNxZyj4DkCqS8Aode5U9JE8WHmbyVR8jH"
],
"license": "GPL-2.0-or-later"
},
"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol": {
"keccak256": "0x8e93de94c9062ebc94fb7e2e3929b0781ac6a2b7772e2f7a59045861c93e5be9",
"urls": [
"bzz-raw://f920a631bf986c610fe573d3c70a2bb6f224f86f4a8550016470c7ee476c9ab5",
"dweb:/ipfs/QmYzsyVMfnaREKHcHv5RPS8Xg5r1Q38E2SDsGBTnXeFWzb"
],
"license": "MIT"
},
"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol": {
"keccak256": "0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1",
"urls": [
"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f",
"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"
],
"license": "MIT"
}
},
"version": 1
},
"ast": {
"absolutePath": "contracts/test/PoolDonateTest.sol",
"id": 9195,
"exportedSymbols": {
"BalanceDelta": [
12833
],
"Currency": [
12941
],
"CurrencyLibrary": [
13189
],
"IERC20Minimal": [
2683
],
"ILockCallback": [
2611
],
"IPoolManager": [
2586
],
"PoolDonateTest": [
9194
],
"PoolKey": [
13253
]
},
"nodeType": "SourceUnit",
"src": "39:2450:33",
"nodes": [
{
"id": 8918,
"nodeType": "PragmaDirective",
"src": "39:24:33",
"nodes": [],
"literals": [
"solidity",
"^",
"0.8",
".20"
]
},
{
"id": 8921,
"nodeType": "ImportDirective",
"src": "65:64:33",
"nodes": [],
"absolutePath": "contracts/types/Currency.sol",
"file": "../types/Currency.sol",
"nameLocation": "-1:-1:-1",
"scope": 9195,
"sourceUnit": 13190,
"symbolAliases": [
{
"foreign": {
"id": 8919,
"name": "Currency",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 12941,
"src": "73:8:33",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
},
{
"foreign": {
"id": 8920,
"name": "CurrencyLibrary",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 13189,
"src": "83:15:33",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 8923,
"nodeType": "ImportDirective",
"src": "130:71:33",
"nodes": [],
"absolutePath": "contracts/interfaces/external/IERC20Minimal.sol",
"file": "../interfaces/external/IERC20Minimal.sol",
"nameLocation": "-1:-1:-1",
"scope": 9195,
"sourceUnit": 2684,
"symbolAliases": [
{
"foreign": {
"id": 8922,
"name": "IERC20Minimal",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2683,
"src": "138:13:33",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 8925,
"nodeType": "ImportDirective",
"src": "203:47:33",
"nodes": [],
"absolutePath": "contracts/types/Currency.sol",
"file": "../types/Currency.sol",
"nameLocation": "-1:-1:-1",
"scope": 9195,
"sourceUnit": 13190,
"symbolAliases": [
{
"foreign": {
"id": 8924,
"name": "Currency",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 12941,
"src": "211:8:33",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 8927,
"nodeType": "ImportDirective",
"src": "251:71:33",
"nodes": [],
"absolutePath": "contracts/interfaces/callback/ILockCallback.sol",
"file": "../interfaces/callback/ILockCallback.sol",
"nameLocation": "-1:-1:-1",
"scope": 9195,
"sourceUnit": 2612,
"symbolAliases": [
{
"foreign": {
"id": 8926,
"name": "ILockCallback",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2611,
"src": "259:13:33",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 8929,
"nodeType": "ImportDirective",
"src": "323:60:33",
"nodes": [],
"absolutePath": "contracts/interfaces/IPoolManager.sol",
"file": "../interfaces/IPoolManager.sol",
"nameLocation": "-1:-1:-1",
"scope": 9195,
"sourceUnit": 2587,
"symbolAliases": [
{
"foreign": {
"id": 8928,
"name": "IPoolManager",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2586,
"src": "331:12:33",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 8931,
"nodeType": "ImportDirective",
"src": "384:45:33",
"nodes": [],
"absolutePath": "contracts/types/PoolKey.sol",
"file": "../types/PoolKey.sol",
"nameLocation": "-1:-1:-1",
"scope": 9195,
"sourceUnit": 13254,
"symbolAliases": [
{
"foreign": {
"id": 8930,
"name": "PoolKey",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 13253,
"src": "392:7:33",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 8933,
"nodeType": "ImportDirective",
"src": "430:55:33",
"nodes": [],
"absolutePath": "contracts/types/BalanceDelta.sol",
"file": "../types/BalanceDelta.sol",
"nameLocation": "-1:-1:-1",
"scope": 9195,
"sourceUnit": 12936,
"symbolAliases": [
{
"foreign": {
"id": 8932,
"name": "BalanceDelta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 12833,
"src": "438:12:33",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 9194,
"nodeType": "ContractDefinition",
"src": "487:2001:33",
"nodes": [
{
"id": 8939,
"nodeType": "UsingForDirective",
"src": "534:35:33",
"nodes": [],
"global": false,
"libraryName": {
"id": 8936,
"name": "CurrencyLibrary",
"nameLocations": [
"540:15:33"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 13189,
"src": "540:15:33"
},
"typeName": {
"id": 8938,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 8937,
"name": "Currency",
"nameLocations": [
"560:8:33"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 12941,
"src": "560:8:33"
},
"referencedDeclaration": 12941,
"src": "560:8:33",
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_Currency_$12941",
"typeString": "Currency"
}
}
},
{
"id": 8942,
"nodeType": "VariableDeclaration",
"src": "575:37:33",
"nodes": [],
"constant": false,
"functionSelector": "481c6a75",
"mutability": "immutable",
"name": "manager",
"nameLocation": "605:7:33",
"scope": 9194,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IPoolManager_$2586",
"typeString": "contract IPoolManager"
},
"typeName": {
"id": 8941,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 8940,
"name": "IPoolManager",
"nameLocations": [
"575:12:33"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 2586,
"src": "575:12:33"
},
"referencedDeclaration": 2586,
"src": "575:12:33",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IPoolManager_$2586",
"typeString": "contract IPoolManager"
}
},
"visibility": "public"
},
{
"id": 8953,
"nodeType": "FunctionDefinition",
"src": "619:70:33",
"nodes": [],
"body": {
"id": 8952,
"nodeType": "Block",
"src": "654:35:33",
"nodes": [],
"statements": [
{
"expression": {
"id": 8950,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 8948,
"name": "manager",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8942,
"src": "664:7:33",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IPoolManager_$2586",
"typeString": "contract IPoolManager"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 8949,
"name": "_manager",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8945,
"src": "674:8:33",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IPoolManager_$2586",
"typeString": "contract IPoolManager"
}
},
"src": "664:18:33",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IPoolManager_$2586",
"typeString": "contract IPoolManager"
}
},
"id": 8951,
"nodeType": "ExpressionStatement",
"src": "664:18:33"
}
]
},
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nameLocation": "-1:-1:-1",
"parameters": {
"id": 8946,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8945,
"mutability": "mutable",
"name": "_manager",
"nameLocation": "644:8:33",
"nodeType": "VariableDeclaration",
"scope": 8953,
"src": "631:21:33",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IPoolManager_$2586",
"typeString": "contract IPoolManager"
},
"typeName": {
"id": 8944,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 8943,
"name": "IPoolManager",
"nameLocations": [
"631:12:33"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 2586,
"src": "631:12:33"
},
"referencedDeclaration": 2586,
"src": "631:12:33",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IPoolManager_$2586",
"typeString": "contract IPoolManager"
}
},
"visibility": "internal"
}
],
"src": "630:23:33"
},
"returnParameters": {
"id": 8947,
"nodeType": "ParameterList",
"parameters": [],
"src": "654:0:33"
},
"scope": 9194,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"id": 8963,
"nodeType": "StructDefinition",
"src": "695:122:33",
"nodes": [],
"canonicalName": "PoolDonateTest.CallbackData",
"members": [
{
"constant": false,
"id": 8955,
"mutability": "mutable",
"name": "sender",
"nameLocation": "733:6:33",
"nodeType": "VariableDeclaration",
"scope": 8963,
"src": "725:14:33",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8954,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "725:7:33",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 8958,
"mutability": "mutable",
"name": "key",
"nameLocation": "757:3:33",
"nodeType": "VariableDeclaration",
"scope": 8963,
"src": "749:11:33",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_PoolKey_$13253_storage_ptr",
"typeString": "struct PoolKey"
},
"typeName": {
"id": 8957,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 8956,
"name": "PoolKey",
"nameLocations": [
"749:7:33"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 13253,
"src": "749:7:33"
},
"referencedDeclaration": 13253,
"src": "749:7:33",
"typeDescriptions": {
"typeIdentifier": "t_struct$_PoolKey_$13253_storage_ptr",
"typeString": "struct PoolKey"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 8960,
"mutability": "mutable",
"name": "amount0",
"nameLocation": "778:7:33",
"nodeType": "VariableDeclaration",
"scope": 8963,
"src": "770:15:33",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8959,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "770:7:33",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 8962,
"mutability": "mutable",
"name": "amount1",
"nameLocation": "803:7:33",
"nodeType": "VariableDeclaration",
"scope": 8963,
"src": "795:15:33",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8961,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "795:7:33",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"name": "CallbackData",
"nameLocation": "702:12:33",
"scope": 9194,
"visibility": "public"
},
{
"id": 9021,
"nodeType": "FunctionDefinition",
"src": "823:432:33",
"nodes": [],
"body": {
"id": 9020,
"nodeType": "Block",
"src": "967:288:33",
"nodes": [],
"statements": [
{
"expression": {
"id": 8995,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 8976,
"name": "delta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8974,
"src": "977:5:33",
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_BalanceDelta_$12833",
"typeString": "BalanceDelta"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"expression": {
"id": 8984,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "1033:3:33",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 8985,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1037:6:33",
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "1033:10:33",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 8986,
"name": "key",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8966,
"src": "1045:3:33",
"typeDescriptions": {
"typeIdentifier": "t_struct$_PoolKey_$13253_memory_ptr",
"typeString": "struct PoolKey memory"
}
},
{
"id": 8987,
"name": "amount0",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8968,
"src": "1050:7:33",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 8988,
"name": "amount1",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8970,
"src": "1059:7:33",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_struct$_PoolKey_$13253_memory_ptr",
"typeString": "struct PoolKey memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 8983,
"name": "CallbackData",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8963,
"src": "1020:12:33",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_CallbackData_$8963_storage_ptr_$",
"typeString": "type(struct PoolDonateTest.CallbackData storage pointer)"
}
},
"id": 8989,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1020:47:33",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_CallbackData_$8963_memory_ptr",
"typeString": "struct PoolDonateTest.CallbackData memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_CallbackData_$8963_memory_ptr",
"typeString": "struct PoolDonateTest.CallbackData memory"
}
],
"expression": {
"id": 8981,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "1009:3:33",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 8982,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "1013:6:33",
"memberName": "encode",
"nodeType": "MemberAccess",
"src": "1009:10:33",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 8990,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1009:59:33",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"expression": {
"id": 8979,
"name": "manager",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8942,
"src": "996:7:33",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IPoolManager_$2586",
"typeString": "contract IPoolManager"
}
},
"id": 8980,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1004:4:33",
"memberName": "lock",
"nodeType": "MemberAccess",
"referencedDeclaration": 2462,
"src": "996:12:33",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (bytes memory) external returns (bytes memory)"
}
},
"id": 8991,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "996:73:33",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"components": [
{
"id": 8992,
"name": "BalanceDelta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 12833,
"src": "1072:12:33",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_userDefinedValueType$_BalanceDelta_$12833_$",
"typeString": "type(BalanceDelta)"
}
}
],
"id": 8993,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "1071:14:33",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_userDefinedValueType$_BalanceDelta_$12833_$",
"typeString": "type(BalanceDelta)"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
},
{
"typeIdentifier": "t_type$_t_userDefinedValueType$_BalanceDelta_$12833_$",
"typeString": "type(BalanceDelta)"
}
],
"expression": {
"id": 8977,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "985:3:33",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 8978,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "989:6:33",
"memberName": "decode",
"nodeType": "MemberAccess",
"src": "985:10:33",
"typeDescriptions": {
"typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 8994,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "985:101:33",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_BalanceDelta_$12833",
"typeString": "BalanceDelta"
}
},
"src": "977:109:33",
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_BalanceDelta_$12833",
"typeString": "BalanceDelta"
}
},
"id": 8996,
"nodeType": "ExpressionStatement",
"src": "977:109:33"
},
{
"assignments": [
8998
],
"declarations": [
{
"constant": false,
"id": 8998,
"mutability": "mutable",
"name": "ethBalance",
"nameLocation": "1105:10:33",
"nodeType": "VariableDeclaration",
"scope": 9020,
"src": "1097:18:33",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8997,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1097:7:33",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 9004,
"initialValue": {
"expression": {
"arguments": [
{
"id": 9001,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -28,
"src": "1126:4:33",
"typeDescriptions": {
"typeIdentifier": "t_contract$_PoolDonateTest_$9194",
"typeString": "contract PoolDonateTest"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_PoolDonateTest_$9194",
"typeString": "contract PoolDonateTest"
}
],
"id": 9000,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "1118:7:33",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 8999,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1118:7:33",
"typeDescriptions": {}
}
},
"id": 9002,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1118:13:33",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 9003,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1132:7:33",
"memberName": "balance",
"nodeType": "MemberAccess",
"src": "1118:21:33",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1097:42:33"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 9007,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 9005,
"name": "ethBalance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8998,
"src": "1153:10:33",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"hexValue": "30",
"id": 9006,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1166:1:33",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "1153:14:33",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 9019,
"nodeType": "IfStatement",
"src": "1149:100:33",
"trueBody": {
"id": 9018,
"nodeType": "Block",
"src": "1169:80:33",
"statements": [
{
"expression": {
"arguments": [
{
"expression": {
"id": 9013,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "1215:3:33",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 9014,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1219:6:33",
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "1215:10:33",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 9015,
"name": "ethBalance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8998,
"src": "1227:10:33",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"expression": {
"id": 9008,
"name": "CurrencyLibrary",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 13189,
"src": "1183:15:33",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_CurrencyLibrary_$13189_$",
"typeString": "type(library CurrencyLibrary)"
}
},
"id": 9011,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "1199:6:33",
"memberName": "NATIVE",
"nodeType": "MemberAccess",
"referencedDeclaration": 13034,
"src": "1183:22:33",
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_Currency_$12941",
"typeString": "Currency"
}
},
"id": 9012,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1206:8:33",
"memberName": "transfer",
"nodeType": "MemberAccess",
"referencedDeclaration": 13068,
"src": "1183:31:33",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_userDefinedValueType$_Currency_$12941_$_t_address_$_t_uint256_$returns$__$attached_to$_t_userDefinedValueType$_Currency_$12941_$",
"typeString": "function (Currency,address,uint256)"
}
},
"id": 9016,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1183:55:33",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 9017,
"nodeType": "ExpressionStatement",
"src": "1183:55:33"
}
]
}
}
]
},
"functionSelector": "a67dd8f3",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "donate",
"nameLocation": "832:6:33",
"parameters": {
"id": 8971,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8966,
"mutability": "mutable",
"name": "key",
"nameLocation": "854:3:33",
"nodeType": "VariableDeclaration",
"scope": 9021,
"src": "839:18:33",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_PoolKey_$13253_memory_ptr",
"typeString": "struct PoolKey"
},
"typeName": {
"id": 8965,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 8964,
"name": "PoolKey",
"nameLocations": [
"839:7:33"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 13253,
"src": "839:7:33"
},
"referencedDeclaration": 13253,
"src": "839:7:33",
"typeDescriptions": {
"typeIdentifier": "t_struct$_PoolKey_$13253_storage_ptr",
"typeString": "struct PoolKey"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 8968,
"mutability": "mutable",
"name": "amount0",
"nameLocation": "867:7:33",
"nodeType": "VariableDeclaration",
"scope": 9021,
"src": "859:15:33",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8967,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "859:7:33",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 8970,
"mutability": "mutable",
"name": "amount1",
"nameLocation": "884:7:33",
"nodeType": "VariableDeclaration",
"scope": 9021,
"src": "876:15:33",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8969,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "876:7:33",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "838:54:33"
},
"returnParameters": {
"id": 8975,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8974,
"mutability": "mutable",
"name": "delta",
"nameLocation": "956:5:33",
"nodeType": "VariableDeclaration",
"scope": 9021,
"src": "943:18:33",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_BalanceDelta_$12833",
"typeString": "BalanceDelta"
},
"typeName": {
"id": 8973,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 8972,
"name": "BalanceDelta",
"nameLocations": [
"943:12:33"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 12833,
"src": "943:12:33"
},
"referencedDeclaration": 12833,
"src": "943:12:33",
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_BalanceDelta_$12833",
"typeString": "BalanceDelta"
}
},
"visibility": "internal"
}
],
"src": "942:20:33"
},
"scope": 9194,
"stateMutability": "payable",
"virtual": false,
"visibility": "external"
},
{
"id": 9193,
"nodeType": "FunctionDefinition",
"src": "1261:1225:33",
"nodes": [],
"body": {
"id": 9192,
"nodeType": "Block",
"src": "1339:1147:33",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 9035,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 9029,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "1357:3:33",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 9030,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1361:6:33",
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "1357:10:33",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"arguments": [
{
"id": 9033,
"name": "manager",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8942,
"src": "1379:7:33",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IPoolManager_$2586",
"typeString": "contract IPoolManager"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_IPoolManager_$2586",
"typeString": "contract IPoolManager"
}
],
"id": 9032,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "1371:7:33",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 9031,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1371:7:33",
"typeDescriptions": {}
}
},
"id": 9034,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1371:16:33",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "1357:30:33",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 9028,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "1349:7:33",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 9036,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1349:39:33",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 9037,
"nodeType": "ExpressionStatement",
"src": "1349:39:33"
},
{
"assignments": [
9040
],
"declarations": [
{
"constant": false,
"id": 9040,
"mutability": "mutable",
"name": "data",
"nameLocation": "1419:4:33",
"nodeType": "VariableDeclaration",
"scope": 9192,
"src": "1399:24:33",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_CallbackData_$8963_memory_ptr",
"typeString": "struct PoolDonateTest.CallbackData"
},
"typeName": {
"id": 9039,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9038,
"name": "CallbackData",
"nameLocations": [
"1399:12:33"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8963,
"src": "1399:12:33"
},
"referencedDeclaration": 8963,
"src": "1399:12:33",
"typeDescriptions": {
"typeIdentifier": "t_struct$_CallbackData_$8963_storage_ptr",
"typeString": "struct PoolDonateTest.CallbackData"
}
},
"visibility": "internal"
}
],
"id": 9047,
"initialValue": {
"arguments": [
{
"id": 9043,
"name": "rawData",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9023,
"src": "1437:7:33",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
{
"components": [
{
"id": 9044,
"name": "CallbackData",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8963,
"src": "1447:12:33",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_CallbackData_$8963_storage_ptr_$",
"typeString": "type(struct PoolDonateTest.CallbackData storage pointer)"
}
}
],
"id": 9045,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "1446:14:33",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_CallbackData_$8963_storage_ptr_$",
"typeString": "type(struct PoolDonateTest.CallbackData storage pointer)"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
},
{
"typeIdentifier": "t_type$_t_struct$_CallbackData_$8963_storage_ptr_$",
"typeString": "type(struct PoolDonateTest.CallbackData storage pointer)"
}
],
"expression": {
"id": 9041,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "1426:3:33",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 9042,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "1430:6:33",
"memberName": "decode",
"nodeType": "MemberAccess",
"src": "1426:10:33",
"typeDescriptions": {
"typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 9046,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1426:35:33",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_CallbackData_$8963_memory_ptr",
"typeString": "struct PoolDonateTest.CallbackData memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1399:62:33"
},
{
"assignments": [
9050
],
"declarations": [
{
"constant": false,
"id": 9050,
"mutability": "mutable",
"name": "delta",
"nameLocation": "1485:5:33",
"nodeType": "VariableDeclaration",
"scope": 9192,
"src": "1472:18:33",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_BalanceDelta_$12833",
"typeString": "BalanceDelta"
},
"typeName": {
"id": 9049,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 9048,
"name": "BalanceDelta",
"nameLocations": [
"1472:12:33"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 12833,
"src": "1472:12:33"
},
"referencedDeclaration": 12833,
"src": "1472:12:33",
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_BalanceDelta_$12833",
"typeString": "BalanceDelta"
}
},
"visibility": "internal"
}
],
"id": 9064,
"initialValue": {
"arguments": [
{
"expression": {
"id": 9053,
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9040,
"src": "1508:4:33",
"typeDescriptions": {
"typeIdentifier": "t_struct$_CallbackData_$8963_memory_ptr",
"typeString": "struct PoolDonateTest.CallbackData memory"
}
},
"id": 9054,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1513:3:33",
"memberName": "key",
"nodeType": "MemberAccess",
"referencedDeclaration": 8958,
"src": "1508:8:33",
"typeDescriptions": {
"typeIdentifier": "t_struct$_PoolKey_$13253_memory_ptr",
"typeString": "struct PoolKey memory"
}
},
{
"expression": {
"id": 9055,
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9040,
"src": "1518:4:33",
"typeDescriptions": {
"typeIdentifier": "t_struct$_CallbackData_$8963_memory_ptr",
"typeString": "struct PoolDonateTest.CallbackData memory"
}
},
"id": 9056,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1523:7:33",
"memberName": "amount0",
"nodeType": "MemberAccess",
"referencedDeclaration": 8960,
"src": "1518:12:33",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"expression": {
"id": 9057,
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9040,
"src": "1532:4:33",
"typeDescriptions": {
"typeIdentifier": "t_struct$_CallbackData_$8963_memory_ptr",
"typeString": "struct PoolDonateTest.CallbackData memory"
}
},
"id": 9058,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1537:7:33",
"memberName": "amount1",
"nodeType": "MemberAccess",
"referencedDeclaration": 8962,
"src": "1532:12:33",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"arguments": [
{
"hexValue": "30",
"id": 9061,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1556:1:33",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
"id": 9060,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "NewExpression",
"src": "1546:9:33",
"typeDescriptions": {
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (uint256) pure returns (bytes memory)"
},
"typeName": {
"id": 9059,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1550:5:33",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
}
},
"id": 9062,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1546:12:33",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_struct$_PoolKey_$13253_memory_ptr",
"typeString": "struct PoolKey memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"expression": {
"id": 9051,
"name": "manager",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8942,
"src": "1493:7:33",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IPoolManager_$2586",
"typeString": "contract IPoolManager"
}
},
"id": 9052,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1501:6:33",
"memberName": "donate",
"nodeType": "MemberAccess",
"referencedDeclaration": 2522,
"src": "1493:14:33",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_struct$_PoolKey_$13253_memory_ptr_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_userDefinedValueType$_BalanceDelta_$12833_$",
"typeString": "function (struct PoolKey memory,uint256,uint256,bytes memory) external returns (BalanceDelta)"
}
},
"id": 9063,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1493:66:33",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_BalanceDelta_$12833",
"typeString": "BalanceDelta"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1472:87:33"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_int128",
"typeString": "int128"
},
"id": 9069,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"id": 9065,
"name": "delta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9050,
"src": "1574:5:33",
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_BalanceDelta_$12833",
"typeString": "BalanceDelta"
}
},
"id": 9066,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1580:7:33",
"memberName": "amount0",
"nodeType": "MemberAccess",
"referencedDeclaration": 12924,
"src": "1574:13:33",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_BalanceDelta_$12833_$returns$_t_int128_$attached_to$_t_userDefinedValueType$_BalanceDelta_$12833_$",
"typeString": "function (BalanceDelta) pure returns (int128)"
}
},
"id": 9067,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1574:15:33",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_int128",
"typeString": "int128"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"hexValue": "30",
"id": 9068,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1592:1:33",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "1574:19:33",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 9125,
"nodeType": "IfStatement",
"src": "1570:433:33",
"trueBody": {
"id": 9124,
"nodeType": "Block",
"src": "1595:408:33",
"statements": [
{
"condition": {
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"expression": {
"expression": {
"id": 9070,
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9040,
"src": "1613:4:33",
"typeDescriptions": {
"typeIdentifier": "t_struct$_CallbackData_$8963_memory_ptr",
"typeString": "struct PoolDonateTest.CallbackData memory"
}
},
"id": 9071,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1618:3:33",
"memberName": "key",
"nodeType": "MemberAccess",
"referencedDeclaration": 8958,
"src": "1613:8:33",
"typeDescriptions": {
"typeIdentifier": "t_struct$_PoolKey_$13253_memory_ptr",
"typeString": "struct PoolKey memory"
}
},
"id": 9072,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1622:9:33",
"memberName": "currency0",
"nodeType": "MemberAccess",
"referencedDeclaration": 13238,
"src": "1613:18:33",
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_Currency_$12941",
"typeString": "Currency"
}
},
"id": 9073,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1632:8:33",
"memberName": "isNative",
"nodeType": "MemberAccess",
"referencedDeclaration": 13151,
"src": "1613:27:33",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_Currency_$12941_$returns$_t_bool_$attached_to$_t_userDefinedValueType$_Currency_$12941_$",
"typeString": "function (Currency) pure returns (bool)"
}
},
"id": 9074,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1613:29:33",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"id": 9122,
"nodeType": "Block",
"src": "1750:243:33",
"statements": [
{
"expression": {
"arguments": [
{
"expression": {
"id": 9100,
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9040,
"src": "1853:4:33",
"typeDescriptions": {
"typeIdentifier": "t_struct$_CallbackData_$8963_memory_ptr",
"typeString": "struct PoolDonateTest.CallbackData memory"
}
},
"id": 9101,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1858:6:33",
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": 8955,
"src": "1853:11:33",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"arguments": [
{
"id": 9104,
"name": "manager",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8942,
"src": "1874:7:33",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IPoolManager_$2586",
"typeString": "contract IPoolManager"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_IPoolManager_$2586",
"typeString": "contract IPoolManager"
}
],
"id": 9103,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "1866:7:33",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 9102,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1866:7:33",
"typeDescriptions": {}
}
},
"id": 9105,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1866:16:33",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"arguments": [
{
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"id": 9108,
"name": "delta",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9050,
"src": "1892:5:33",
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_BalanceDelta_$12833",
"typeString": "BalanceDelta"
}
},
"id": 9109,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1898:7:33",
"memberName": "amount0",
"nodeType": "MemberAccess",
"referencedDeclaration": 12924,
"src": "1892:13:33",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_BalanceDelta_$12833_$returns$_t_int128_$attached_to$_t_userDefinedValueType$_BalanceDelta_$12833_$",
"typeString": "function (BalanceDelta) pure returns (int128)"
}
},
"id": 9110,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1892:15:33",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_int128",
"typeString": "int128"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_int128",
"typeString": "int128"
}
],
"id": 9107,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "1884:7:33",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint128_$",
"typeString": "type(uint128)"
},
"typeName": {
"id": 9106,
"name": "uint128",
"nodeType": "ElementaryTypeName",
"src": "1884:7:33",
"typeDescriptions": {}
}
},
"id": 9111,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1884:24:33",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint128",
"typeString": "uint128"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint128",
"typeString": "uint128"
}
],
"expression": {
"arguments": [
{
"arguments": [
{
"expression": {
"expression": {
"id": 9094,
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9040,
"src": "1798:4:33",
"typeDescriptions": {
"typeIdentifier": "t_struct$_CallbackData_$8963_memory_ptr",
"typeString": "struct PoolDonateTest.CallbackData memory"
}
},
"id": 9095,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1803:3:33",
"memberName": "key",
"nodeType": "MemberAccess",
"referencedDeclaration": 8958,
"src": "1798:8:33",
"typeDescriptions": {
"typeIdentifier": "t_struct$_PoolKey_$13253_memory_ptr",
"typeString": "struct PoolKey memory"
}
},
"id": 9096,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1807:9:33",
"memberName": "currency0",
"nodeType": "MemberAccess",
"referencedDeclaration": 13238,
"src": "1798:18:33",
"typeDescriptions": {