{ "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 }