{
  "abi": [
    {
      "inputs": [],
      "name": "refundETH",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amountMinimum",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        }
      ],
      "name": "sweepToken",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amountMinimum",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        }
      ],
      "name": "unwrapWETH9",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    }
  ],
  "bytecode": {
    "object": "0x",
    "sourceMap": "",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x",
    "sourceMap": "",
    "linkReferences": {}
  },
  "methodIdentifiers": {
    "refundETH()": "12210e8a",
    "sweepToken(address,uint256,address)": "df2ab5bb",
    "unwrapWETH9(uint256,address)": "49404b7c"
  },
  "rawMetadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"refundETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountMinimum\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"sweepToken\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountMinimum\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"unwrapWETH9\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"refundETH()\":{\"details\":\"Useful for bundling with mint or increase liquidity that uses ether, or exact output swaps that use ether for the input amount\"},\"sweepToken(address,uint256,address)\":{\"details\":\"The amountMinimum parameter prevents malicious contracts from stealing the token from users\",\"params\":{\"amountMinimum\":\"The minimum amount of token required for a transfer\",\"recipient\":\"The destination address of the token\",\"token\":\"The contract address of the token which will be transferred to `recipient`\"}},\"unwrapWETH9(uint256,address)\":{\"details\":\"The amountMinimum parameter prevents malicious contracts from stealing WETH9 from users.\",\"params\":{\"amountMinimum\":\"The minimum amount of WETH9 to unwrap\",\"recipient\":\"The address receiving ETH\"}}},\"title\":\"Periphery Payments\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"refundETH()\":{\"notice\":\"Refunds any ETH balance held by this contract to the `msg.sender`\"},\"sweepToken(address,uint256,address)\":{\"notice\":\"Transfers the full amount of a token held by this contract to recipient\"},\"unwrapWETH9(uint256,address)\":{\"notice\":\"Unwraps the contract's WETH9 balance and sends it to recipient as ETH.\"}},\"notice\":\"Functions to ease deposits and withdrawals of ETH\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":\"IPeripheryPayments\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":true,\"yulDetails\":{\"optimizerSteps\":\"dhfoD[xarrscLMcCTU]uljmul:fDnTOcmu\",\"stackAllocation\":true}},\"runs\":999999999},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/v3-core/=lib_uniswap/v3-core/\",\":@uniswap/v3-periphery/=lib_uniswap/v3-periphery/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":v3-core/=lib_uniswap/v3-core/\",\":v3-periphery/libraries/=lib_uniswap/v3-periphery/contracts/libraries/\"]},\"sources\":{\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]}},\"version\":1}",
  "metadata": {
    "compiler": {
      "version": "0.8.22+commit.4fc1097e"
    },
    "language": "Solidity",
    "output": {
      "abi": [
        {
          "inputs": [],
          "stateMutability": "payable",
          "type": "function",
          "name": "refundETH"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "token",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "amountMinimum",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "recipient",
              "type": "address"
            }
          ],
          "stateMutability": "payable",
          "type": "function",
          "name": "sweepToken"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "amountMinimum",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "recipient",
              "type": "address"
            }
          ],
          "stateMutability": "payable",
          "type": "function",
          "name": "unwrapWETH9"
        }
      ],
      "devdoc": {
        "kind": "dev",
        "methods": {
          "refundETH()": {
            "details": "Useful for bundling with mint or increase liquidity that uses ether, or exact output swaps that use ether for the input amount"
          },
          "sweepToken(address,uint256,address)": {
            "details": "The amountMinimum parameter prevents malicious contracts from stealing the token from users",
            "params": {
              "amountMinimum": "The minimum amount of token required for a transfer",
              "recipient": "The destination address of the token",
              "token": "The contract address of the token which will be transferred to `recipient`"
            }
          },
          "unwrapWETH9(uint256,address)": {
            "details": "The amountMinimum parameter prevents malicious contracts from stealing WETH9 from users.",
            "params": {
              "amountMinimum": "The minimum amount of WETH9 to unwrap",
              "recipient": "The address receiving ETH"
            }
          }
        },
        "version": 1
      },
      "userdoc": {
        "kind": "user",
        "methods": {
          "refundETH()": {
            "notice": "Refunds any ETH balance held by this contract to the `msg.sender`"
          },
          "sweepToken(address,uint256,address)": {
            "notice": "Transfers the full amount of a token held by this contract to recipient"
          },
          "unwrapWETH9(uint256,address)": {
            "notice": "Unwraps the contract's WETH9 balance and sends it to recipient as ETH."
          }
        },
        "version": 1
      }
    },
    "settings": {
      "remappings": [
        "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
        "@uniswap/v3-core/=lib_uniswap/v3-core/",
        "@uniswap/v3-periphery/=lib_uniswap/v3-periphery/",
        "ds-test/=lib/forge-std/lib/ds-test/src/",
        "forge-std/=lib/forge-std/src/",
        "openzeppelin-contracts/=lib/openzeppelin-contracts/",
        "v3-core/=lib_uniswap/v3-core/",
        "v3-periphery/libraries/=lib_uniswap/v3-periphery/contracts/libraries/"
      ],
      "optimizer": {
        "runs": 999999999,
        "details": {
          "peephole": true,
          "inliner": true,
          "jumpdestRemover": true,
          "orderLiterals": true,
          "deduplicate": true,
          "cse": true,
          "constantOptimizer": true,
          "yul": true,
          "yulDetails": {
            "stackAllocation": true,
            "optimizerSteps": "dhfoD[xarrscLMcCTU]uljmul:fDnTOcmu"
          }
        }
      },
      "metadata": {
        "bytecodeHash": "ipfs"
      },
      "compilationTarget": {
        "lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol": "IPeripheryPayments"
      },
      "libraries": {}
    },
    "sources": {
      "lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol": {
        "keccak256": "0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274",
        "urls": [
          "bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407",
          "dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"
        ],
        "license": "GPL-2.0-or-later"
      }
    },
    "version": 1
  },
  "ast": {
    "absolutePath": "lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol",
    "id": 45336,
    "exportedSymbols": {
      "IPeripheryPayments": [
        45335
      ]
    },
    "nodeType": "SourceUnit",
    "src": "45:1379:42",
    "nodes": [
      {
        "id": 45311,
        "nodeType": "PragmaDirective",
        "src": "45:24:42",
        "nodes": [],
        "literals": [
          "solidity",
          ">=",
          "0.7",
          ".5"
        ]
      },
      {
        "id": 45335,
        "nodeType": "ContractDefinition",
        "src": "163:1260:42",
        "nodes": [
          {
            "id": 45320,
            "nodeType": "FunctionDefinition",
            "src": "505:80:42",
            "nodes": [],
            "documentation": {
              "id": 45313,
              "nodeType": "StructuredDocumentation",
              "src": "198:302:42",
              "text": "@notice Unwraps the contract's WETH9 balance and sends it to recipient as ETH.\n @dev The amountMinimum parameter prevents malicious contracts from stealing WETH9 from users.\n @param amountMinimum The minimum amount of WETH9 to unwrap\n @param recipient The address receiving ETH"
            },
            "functionSelector": "49404b7c",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "unwrapWETH9",
            "nameLocation": "514:11:42",
            "parameters": {
              "id": 45318,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 45315,
                  "mutability": "mutable",
                  "name": "amountMinimum",
                  "nameLocation": "534:13:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 45320,
                  "src": "526:21:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 45314,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "526:7:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 45317,
                  "mutability": "mutable",
                  "name": "recipient",
                  "nameLocation": "557:9:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 45320,
                  "src": "549:17:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 45316,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "549:7:42",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "525:42:42"
            },
            "returnParameters": {
              "id": 45319,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "584:0:42"
            },
            "scope": 45335,
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 45324,
            "nodeType": "FunctionDefinition",
            "src": "821:38:42",
            "nodes": [],
            "documentation": {
              "id": 45321,
              "nodeType": "StructuredDocumentation",
              "src": "591:225:42",
              "text": "@notice Refunds any ETH balance held by this contract to the `msg.sender`\n @dev Useful for bundling with mint or increase liquidity that uses ether, or exact output swaps\n that use ether for the input amount"
            },
            "functionSelector": "12210e8a",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "refundETH",
            "nameLocation": "830:9:42",
            "parameters": {
              "id": 45322,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "839:2:42"
            },
            "returnParameters": {
              "id": 45323,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "858:0:42"
            },
            "scope": 45335,
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 45334,
            "nodeType": "FunctionDefinition",
            "src": "1297:124:42",
            "nodes": [],
            "documentation": {
              "id": 45325,
              "nodeType": "StructuredDocumentation",
              "src": "865:427:42",
              "text": "@notice Transfers the full amount of a token held by this contract to recipient\n @dev The amountMinimum parameter prevents malicious contracts from stealing the token from users\n @param token The contract address of the token which will be transferred to `recipient`\n @param amountMinimum The minimum amount of token required for a transfer\n @param recipient The destination address of the token"
            },
            "functionSelector": "df2ab5bb",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "sweepToken",
            "nameLocation": "1306:10:42",
            "parameters": {
              "id": 45332,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 45327,
                  "mutability": "mutable",
                  "name": "token",
                  "nameLocation": "1334:5:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 45334,
                  "src": "1326:13:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 45326,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1326:7:42",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 45329,
                  "mutability": "mutable",
                  "name": "amountMinimum",
                  "nameLocation": "1357:13:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 45334,
                  "src": "1349:21:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 45328,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1349:7:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 45331,
                  "mutability": "mutable",
                  "name": "recipient",
                  "nameLocation": "1388:9:42",
                  "nodeType": "VariableDeclaration",
                  "scope": 45334,
                  "src": "1380:17:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 45330,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1380:7:42",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1316:87:42"
            },
            "returnParameters": {
              "id": 45333,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1420:0:42"
            },
            "scope": 45335,
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "abstract": false,
        "baseContracts": [],
        "canonicalName": "IPeripheryPayments",
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": {
          "id": 45312,
          "nodeType": "StructuredDocumentation",
          "src": "71:92:42",
          "text": "@title Periphery Payments\n @notice Functions to ease deposits and withdrawals of ETH"
        },
        "fullyImplemented": false,
        "linearizedBaseContracts": [
          45335
        ],
        "name": "IPeripheryPayments",
        "nameLocation": "173:18:42",
        "scope": 45336,
        "usedErrors": [],
        "usedEvents": []
      }
    ],
    "license": "GPL-2.0-or-later"
  },
  "id": 42
}