{ "abi": [ { "inputs": [ { "components": [ { "internalType": "bytes", "name": "path", "type": "bytes" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "internalType": "uint256", "name": "amountOutMinimum", "type": "uint256" } ], "internalType": "struct ISwapRouter.ExactInputParams", "name": "params", "type": "tuple" } ], "name": "exactInput", "outputs": [ { "internalType": "uint256", "name": "amountOut", "type": "uint256" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "tokenIn", "type": "address" }, { "internalType": "address", "name": "tokenOut", "type": "address" }, { "internalType": "uint24", "name": "fee", "type": "uint24" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "internalType": "uint256", "name": "amountOutMinimum", "type": "uint256" }, { "internalType": "uint160", "name": "sqrtPriceLimitX96", "type": "uint160" } ], "internalType": "struct ISwapRouter.ExactInputSingleParams", "name": "params", "type": "tuple" } ], "name": "exactInputSingle", "outputs": [ { "internalType": "uint256", "name": "amountOut", "type": "uint256" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "bytes", "name": "path", "type": "bytes" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint256", "name": "amountOut", "type": "uint256" }, { "internalType": "uint256", "name": "amountInMaximum", "type": "uint256" } ], "internalType": "struct ISwapRouter.ExactOutputParams", "name": "params", "type": "tuple" } ], "name": "exactOutput", "outputs": [ { "internalType": "uint256", "name": "amountIn", "type": "uint256" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "tokenIn", "type": "address" }, { "internalType": "address", "name": "tokenOut", "type": "address" }, { "internalType": "uint24", "name": "fee", "type": "uint24" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint256", "name": "amountOut", "type": "uint256" }, { "internalType": "uint256", "name": "amountInMaximum", "type": "uint256" }, { "internalType": "uint160", "name": "sqrtPriceLimitX96", "type": "uint160" } ], "internalType": "struct ISwapRouter.ExactOutputSingleParams", "name": "params", "type": "tuple" } ], "name": "exactOutputSingle", "outputs": [ { "internalType": "uint256", "name": "amountIn", "type": "uint256" } ], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "int256", "name": "amount0Delta", "type": "int256" }, { "internalType": "int256", "name": "amount1Delta", "type": "int256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "uniswapV3SwapCallback", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": { "object": "0x", "sourceMap": "", "linkReferences": {} }, "deployedBytecode": { "object": "0x", "sourceMap": "", "linkReferences": {} }, "methodIdentifiers": { "exactInput((bytes,address,uint256,uint256,uint256))": "c04b8d59", "exactInputSingle((address,address,uint24,address,uint256,uint256,uint256,uint160))": "414bf389", "exactOutput((bytes,address,uint256,uint256,uint256))": "f28c0498", "exactOutputSingle((address,address,uint24,address,uint256,uint256,uint256,uint160))": "db3e2198", "uniswapV3SwapCallback(int256,int256,bytes)": "fa461e33" }, "rawMetadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"path\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMinimum\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapRouter.ExactInputParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"exactInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMinimum\",\"type\":\"uint256\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"}],\"internalType\":\"struct ISwapRouter.ExactInputSingleParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"exactInputSingle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"path\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMaximum\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapRouter.ExactOutputParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"exactOutput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountInMaximum\",\"type\":\"uint256\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"}],\"internalType\":\"struct ISwapRouter.ExactOutputSingleParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"exactOutputSingle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"amount0Delta\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"amount1Delta\",\"type\":\"int256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"uniswapV3SwapCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"exactInput((bytes,address,uint256,uint256,uint256))\":{\"params\":{\"params\":\"The parameters necessary for the multi-hop swap, encoded as `ExactInputParams` in calldata\"},\"returns\":{\"amountOut\":\"The amount of the received token\"}},\"exactInputSingle((address,address,uint24,address,uint256,uint256,uint256,uint160))\":{\"params\":{\"params\":\"The parameters necessary for the swap, encoded as `ExactInputSingleParams` in calldata\"},\"returns\":{\"amountOut\":\"The amount of the received token\"}},\"exactOutput((bytes,address,uint256,uint256,uint256))\":{\"params\":{\"params\":\"The parameters necessary for the multi-hop swap, encoded as `ExactOutputParams` in calldata\"},\"returns\":{\"amountIn\":\"The amount of the input token\"}},\"exactOutputSingle((address,address,uint24,address,uint256,uint256,uint256,uint160))\":{\"params\":{\"params\":\"The parameters necessary for the swap, encoded as `ExactOutputSingleParams` in calldata\"},\"returns\":{\"amountIn\":\"The amount of the input token\"}},\"uniswapV3SwapCallback(int256,int256,bytes)\":{\"details\":\"In the implementation you must pay the pool tokens owed for the swap. The caller of this method must be checked to be a UniswapV3Pool deployed by the canonical UniswapV3Factory. amount0Delta and amount1Delta can both be 0 if no tokens were swapped.\",\"params\":{\"amount0Delta\":\"The amount of token0 that was sent (negative) or must be received (positive) by the pool by the end of the swap. If positive, the callback must send that amount of token0 to the pool.\",\"amount1Delta\":\"The amount of token1 that was sent (negative) or must be received (positive) by the pool by the end of the swap. If positive, the callback must send that amount of token1 to the pool.\",\"data\":\"Any data passed through by the caller via the IUniswapV3PoolActions#swap call\"}}},\"title\":\"Router token swapping functionality\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"exactInput((bytes,address,uint256,uint256,uint256))\":{\"notice\":\"Swaps `amountIn` of one token for as much as possible of another along the specified path\"},\"exactInputSingle((address,address,uint24,address,uint256,uint256,uint256,uint160))\":{\"notice\":\"Swaps `amountIn` of one token for as much as possible of another token\"},\"exactOutput((bytes,address,uint256,uint256,uint256))\":{\"notice\":\"Swaps as little as possible of one token for `amountOut` of another along the specified path (reversed)\"},\"exactOutputSingle((address,address,uint24,address,uint256,uint256,uint256,uint160))\":{\"notice\":\"Swaps as little as possible of one token for `amountOut` of another token\"},\"uniswapV3SwapCallback(int256,int256,bytes)\":{\"notice\":\"Called to `msg.sender` after executing a swap via IUniswapV3Pool#swap.\"}},\"notice\":\"Functions for swapping tokens via Uniswap V3\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol\":\"ISwapRouter\"},\"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-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53\",\"dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.22+commit.4fc1097e" }, "language": "Solidity", "output": { "abi": [ { "inputs": [ { "internalType": "struct ISwapRouter.ExactInputParams", "name": "params", "type": "tuple", "components": [ { "internalType": "bytes", "name": "path", "type": "bytes" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "internalType": "uint256", "name": "amountOutMinimum", "type": "uint256" } ] } ], "stateMutability": "payable", "type": "function", "name": "exactInput", "outputs": [ { "internalType": "uint256", "name": "amountOut", "type": "uint256" } ] }, { "inputs": [ { "internalType": "struct ISwapRouter.ExactInputSingleParams", "name": "params", "type": "tuple", "components": [ { "internalType": "address", "name": "tokenIn", "type": "address" }, { "internalType": "address", "name": "tokenOut", "type": "address" }, { "internalType": "uint24", "name": "fee", "type": "uint24" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "internalType": "uint256", "name": "amountOutMinimum", "type": "uint256" }, { "internalType": "uint160", "name": "sqrtPriceLimitX96", "type": "uint160" } ] } ], "stateMutability": "payable", "type": "function", "name": "exactInputSingle", "outputs": [ { "internalType": "uint256", "name": "amountOut", "type": "uint256" } ] }, { "inputs": [ { "internalType": "struct ISwapRouter.ExactOutputParams", "name": "params", "type": "tuple", "components": [ { "internalType": "bytes", "name": "path", "type": "bytes" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint256", "name": "amountOut", "type": "uint256" }, { "internalType": "uint256", "name": "amountInMaximum", "type": "uint256" } ] } ], "stateMutability": "payable", "type": "function", "name": "exactOutput", "outputs": [ { "internalType": "uint256", "name": "amountIn", "type": "uint256" } ] }, { "inputs": [ { "internalType": "struct ISwapRouter.ExactOutputSingleParams", "name": "params", "type": "tuple", "components": [ { "internalType": "address", "name": "tokenIn", "type": "address" }, { "internalType": "address", "name": "tokenOut", "type": "address" }, { "internalType": "uint24", "name": "fee", "type": "uint24" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint256", "name": "amountOut", "type": "uint256" }, { "internalType": "uint256", "name": "amountInMaximum", "type": "uint256" }, { "internalType": "uint160", "name": "sqrtPriceLimitX96", "type": "uint160" } ] } ], "stateMutability": "payable", "type": "function", "name": "exactOutputSingle", "outputs": [ { "internalType": "uint256", "name": "amountIn", "type": "uint256" } ] }, { "inputs": [ { "internalType": "int256", "name": "amount0Delta", "type": "int256" }, { "internalType": "int256", "name": "amount1Delta", "type": "int256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "stateMutability": "nonpayable", "type": "function", "name": "uniswapV3SwapCallback" } ], "devdoc": { "kind": "dev", "methods": { "exactInput((bytes,address,uint256,uint256,uint256))": { "params": { "params": "The parameters necessary for the multi-hop swap, encoded as `ExactInputParams` in calldata" }, "returns": { "amountOut": "The amount of the received token" } }, "exactInputSingle((address,address,uint24,address,uint256,uint256,uint256,uint160))": { "params": { "params": "The parameters necessary for the swap, encoded as `ExactInputSingleParams` in calldata" }, "returns": { "amountOut": "The amount of the received token" } }, "exactOutput((bytes,address,uint256,uint256,uint256))": { "params": { "params": "The parameters necessary for the multi-hop swap, encoded as `ExactOutputParams` in calldata" }, "returns": { "amountIn": "The amount of the input token" } }, "exactOutputSingle((address,address,uint24,address,uint256,uint256,uint256,uint160))": { "params": { "params": "The parameters necessary for the swap, encoded as `ExactOutputSingleParams` in calldata" }, "returns": { "amountIn": "The amount of the input token" } }, "uniswapV3SwapCallback(int256,int256,bytes)": { "details": "In the implementation you must pay the pool tokens owed for the swap. The caller of this method must be checked to be a UniswapV3Pool deployed by the canonical UniswapV3Factory. amount0Delta and amount1Delta can both be 0 if no tokens were swapped.", "params": { "amount0Delta": "The amount of token0 that was sent (negative) or must be received (positive) by the pool by the end of the swap. If positive, the callback must send that amount of token0 to the pool.", "amount1Delta": "The amount of token1 that was sent (negative) or must be received (positive) by the pool by the end of the swap. If positive, the callback must send that amount of token1 to the pool.", "data": "Any data passed through by the caller via the IUniswapV3PoolActions#swap call" } } }, "version": 1 }, "userdoc": { "kind": "user", "methods": { "exactInput((bytes,address,uint256,uint256,uint256))": { "notice": "Swaps `amountIn` of one token for as much as possible of another along the specified path" }, "exactInputSingle((address,address,uint24,address,uint256,uint256,uint256,uint160))": { "notice": "Swaps `amountIn` of one token for as much as possible of another token" }, "exactOutput((bytes,address,uint256,uint256,uint256))": { "notice": "Swaps as little as possible of one token for `amountOut` of another along the specified path (reversed)" }, "exactOutputSingle((address,address,uint24,address,uint256,uint256,uint256,uint160))": { "notice": "Swaps as little as possible of one token for `amountOut` of another token" }, "uniswapV3SwapCallback(int256,int256,bytes)": { "notice": "Called to `msg.sender` after executing a swap via IUniswapV3Pool#swap." } }, "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/ISwapRouter.sol": "ISwapRouter" }, "libraries": {} }, "sources": { "lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol": { "keccak256": "0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69", "urls": [ "bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652", "dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS" ], "license": "GPL-2.0-or-later" }, "lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol": { "keccak256": "0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975", "urls": [ "bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53", "dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM" ], "license": "GPL-2.0-or-later" } }, "version": 1 }, "ast": { "absolutePath": "lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol", "id": 45455, "exportedSymbols": { "ISwapRouter": [ 45454 ], "IUniswapV3SwapCallback": [ 43908 ] }, "nodeType": "SourceUnit", "src": "45:2675:44", "nodes": [ { "id": 45356, "nodeType": "PragmaDirective", "src": "45:24:44", "nodes": [], "literals": [ "solidity", ">=", "0.7", ".5" ] }, { "id": 45357, "nodeType": "PragmaDirective", "src": "70:19:44", "nodes": [], "literals": [ "abicoder", "v2" ] }, { "id": 45358, "nodeType": "ImportDirective", "src": "91:83:44", "nodes": [], "absolutePath": "lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol", "file": "@uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol", "nameLocation": "-1:-1:-1", "scope": 45455, "sourceUnit": 43909, "symbolAliases": [], "unitAlias": "" }, { "id": 45454, "nodeType": "ContractDefinition", "src": "280:2439:44", "nodes": [ { "id": 45378, "nodeType": "StructDefinition", "src": "334:256:44", "nodes": [], "canonicalName": "ISwapRouter.ExactInputSingleParams", "members": [ { "constant": false, "id": 45363, "mutability": "mutable", "name": "tokenIn", "nameLocation": "382:7:44", "nodeType": "VariableDeclaration", "scope": 45378, "src": "374:15:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 45362, "name": "address", "nodeType": "ElementaryTypeName", "src": "374:7:44", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 45365, "mutability": "mutable", "name": "tokenOut", "nameLocation": "407:8:44", "nodeType": "VariableDeclaration", "scope": 45378, "src": "399:16:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 45364, "name": "address", "nodeType": "ElementaryTypeName", "src": "399:7:44", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 45367, "mutability": "mutable", "name": "fee", "nameLocation": "432:3:44", "nodeType": "VariableDeclaration", "scope": 45378, "src": "425:10:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint24", "typeString": "uint24" }, "typeName": { "id": 45366, "name": "uint24", "nodeType": "ElementaryTypeName", "src": "425:6:44", "typeDescriptions": { "typeIdentifier": "t_uint24", "typeString": "uint24" } }, "visibility": "internal" }, { "constant": false, "id": 45369, "mutability": "mutable", "name": "recipient", "nameLocation": "453:9:44", "nodeType": "VariableDeclaration", "scope": 45378, "src": "445:17:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 45368, "name": "address", "nodeType": "ElementaryTypeName", "src": "445:7:44", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 45371, "mutability": "mutable", "name": "deadline", "nameLocation": "480:8:44", "nodeType": "VariableDeclaration", "scope": 45378, "src": "472:16:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 45370, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "472:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 45373, "mutability": "mutable", "name": "amountIn", "nameLocation": "506:8:44", "nodeType": "VariableDeclaration", "scope": 45378, "src": "498:16:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 45372, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "498:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 45375, "mutability": "mutable", "name": "amountOutMinimum", "nameLocation": "532:16:44", "nodeType": "VariableDeclaration", "scope": 45378, "src": "524:24:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 45374, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "524:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 45377, "mutability": "mutable", "name": "sqrtPriceLimitX96", "nameLocation": "566:17:44", "nodeType": "VariableDeclaration", "scope": 45378, "src": "558:25:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint160", "typeString": "uint160" }, "typeName": { "id": 45376, "name": "uint160", "nodeType": "ElementaryTypeName", "src": "558:7:44", "typeDescriptions": { "typeIdentifier": "t_uint160", "typeString": "uint160" } }, "visibility": "internal" } ], "name": "ExactInputSingleParams", "nameLocation": "341:22:44", "scope": 45454, "visibility": "public" }, { "id": 45387, "nodeType": "FunctionDefinition", "src": "851:111:44", "nodes": [], "documentation": { "id": 45379, "nodeType": "StructuredDocumentation", "src": "596:250:44", "text": "@notice Swaps `amountIn` of one token for as much as possible of another token\n @param params The parameters necessary for the swap, encoded as `ExactInputSingleParams` in calldata\n @return amountOut The amount of the received token" }, "functionSelector": "414bf389", "implemented": false, "kind": "function", "modifiers": [], "name": "exactInputSingle", "nameLocation": "860:16:44", "parameters": { "id": 45383, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 45382, "mutability": "mutable", "name": "params", "nameLocation": "909:6:44", "nodeType": "VariableDeclaration", "scope": 45387, "src": "877:38:44", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_struct$_ExactInputSingleParams_$45378_calldata_ptr", "typeString": "struct ISwapRouter.ExactInputSingleParams" }, "typeName": { "id": 45381, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 45380, "name": "ExactInputSingleParams", "nameLocations": [ "877:22:44" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45378, "src": "877:22:44" }, "referencedDeclaration": 45378, "src": "877:22:44", "typeDescriptions": { "typeIdentifier": "t_struct$_ExactInputSingleParams_$45378_storage_ptr", "typeString": "struct ISwapRouter.ExactInputSingleParams" } }, "visibility": "internal" } ], "src": "876:40:44" }, "returnParameters": { "id": 45386, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 45385, "mutability": "mutable", "name": "amountOut", "nameLocation": "951:9:44", "nodeType": "VariableDeclaration", "scope": 45387, "src": "943:17:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 45384, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "943:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "942:19:44" }, "scope": 45454, "stateMutability": "payable", "virtual": false, "visibility": "external" }, { "id": 45398, "nodeType": "StructDefinition", "src": "968:164:44", "nodes": [], "canonicalName": "ISwapRouter.ExactInputParams", "members": [ { "constant": false, "id": 45389, "mutability": "mutable", "name": "path", "nameLocation": "1008:4:44", "nodeType": "VariableDeclaration", "scope": 45398, "src": "1002:10:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" }, "typeName": { "id": 45388, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1002:5:44", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }, { "constant": false, "id": 45391, "mutability": "mutable", "name": "recipient", "nameLocation": "1030:9:44", "nodeType": "VariableDeclaration", "scope": 45398, "src": "1022:17:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 45390, "name": "address", "nodeType": "ElementaryTypeName", "src": "1022:7:44", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 45393, "mutability": "mutable", "name": "deadline", "nameLocation": "1057:8:44", "nodeType": "VariableDeclaration", "scope": 45398, "src": "1049:16:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 45392, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1049:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 45395, "mutability": "mutable", "name": "amountIn", "nameLocation": "1083:8:44", "nodeType": "VariableDeclaration", "scope": 45398, "src": "1075:16:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 45394, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1075:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 45397, "mutability": "mutable", "name": "amountOutMinimum", "nameLocation": "1109:16:44", "nodeType": "VariableDeclaration", "scope": 45398, "src": "1101:24:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 45396, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1101:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "name": "ExactInputParams", "nameLocation": "975:16:44", "scope": 45454, "visibility": "public" }, { "id": 45407, "nodeType": "FunctionDefinition", "src": "1416:99:44", "nodes": [], "documentation": { "id": 45399, "nodeType": "StructuredDocumentation", "src": "1138:273:44", "text": "@notice Swaps `amountIn` of one token for as much as possible of another along the specified path\n @param params The parameters necessary for the multi-hop swap, encoded as `ExactInputParams` in calldata\n @return amountOut The amount of the received token" }, "functionSelector": "c04b8d59", "implemented": false, "kind": "function", "modifiers": [], "name": "exactInput", "nameLocation": "1425:10:44", "parameters": { "id": 45403, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 45402, "mutability": "mutable", "name": "params", "nameLocation": "1462:6:44", "nodeType": "VariableDeclaration", "scope": 45407, "src": "1436:32:44", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_struct$_ExactInputParams_$45398_calldata_ptr", "typeString": "struct ISwapRouter.ExactInputParams" }, "typeName": { "id": 45401, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 45400, "name": "ExactInputParams", "nameLocations": [ "1436:16:44" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45398, "src": "1436:16:44" }, "referencedDeclaration": 45398, "src": "1436:16:44", "typeDescriptions": { "typeIdentifier": "t_struct$_ExactInputParams_$45398_storage_ptr", "typeString": "struct ISwapRouter.ExactInputParams" } }, "visibility": "internal" } ], "src": "1435:34:44" }, "returnParameters": { "id": 45406, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 45405, "mutability": "mutable", "name": "amountOut", "nameLocation": "1504:9:44", "nodeType": "VariableDeclaration", "scope": 45407, "src": "1496:17:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 45404, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1496:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "1495:19:44" }, "scope": 45454, "stateMutability": "payable", "virtual": false, "visibility": "external" }, { "id": 45424, "nodeType": "StructDefinition", "src": "1521:257:44", "nodes": [], "canonicalName": "ISwapRouter.ExactOutputSingleParams", "members": [ { "constant": false, "id": 45409, "mutability": "mutable", "name": "tokenIn", "nameLocation": "1570:7:44", "nodeType": "VariableDeclaration", "scope": 45424, "src": "1562:15:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 45408, "name": "address", "nodeType": "ElementaryTypeName", "src": "1562:7:44", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 45411, "mutability": "mutable", "name": "tokenOut", "nameLocation": "1595:8:44", "nodeType": "VariableDeclaration", "scope": 45424, "src": "1587:16:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 45410, "name": "address", "nodeType": "ElementaryTypeName", "src": "1587:7:44", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 45413, "mutability": "mutable", "name": "fee", "nameLocation": "1620:3:44", "nodeType": "VariableDeclaration", "scope": 45424, "src": "1613:10:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint24", "typeString": "uint24" }, "typeName": { "id": 45412, "name": "uint24", "nodeType": "ElementaryTypeName", "src": "1613:6:44", "typeDescriptions": { "typeIdentifier": "t_uint24", "typeString": "uint24" } }, "visibility": "internal" }, { "constant": false, "id": 45415, "mutability": "mutable", "name": "recipient", "nameLocation": "1641:9:44", "nodeType": "VariableDeclaration", "scope": 45424, "src": "1633:17:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 45414, "name": "address", "nodeType": "ElementaryTypeName", "src": "1633:7:44", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 45417, "mutability": "mutable", "name": "deadline", "nameLocation": "1668:8:44", "nodeType": "VariableDeclaration", "scope": 45424, "src": "1660:16:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 45416, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1660:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 45419, "mutability": "mutable", "name": "amountOut", "nameLocation": "1694:9:44", "nodeType": "VariableDeclaration", "scope": 45424, "src": "1686:17:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 45418, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1686:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 45421, "mutability": "mutable", "name": "amountInMaximum", "nameLocation": "1721:15:44", "nodeType": "VariableDeclaration", "scope": 45424, "src": "1713:23:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 45420, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1713:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 45423, "mutability": "mutable", "name": "sqrtPriceLimitX96", "nameLocation": "1754:17:44", "nodeType": "VariableDeclaration", "scope": 45424, "src": "1746:25:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint160", "typeString": "uint160" }, "typeName": { "id": 45422, "name": "uint160", "nodeType": "ElementaryTypeName", "src": "1746:7:44", "typeDescriptions": { "typeIdentifier": "t_uint160", "typeString": "uint160" } }, "visibility": "internal" } ], "name": "ExactOutputSingleParams", "nameLocation": "1528:23:44", "scope": 45454, "visibility": "public" }, { "id": 45433, "nodeType": "FunctionDefinition", "src": "2039:112:44", "nodes": [], "documentation": { "id": 45425, "nodeType": "StructuredDocumentation", "src": "1784:250:44", "text": "@notice Swaps as little as possible of one token for `amountOut` of another token\n @param params The parameters necessary for the swap, encoded as `ExactOutputSingleParams` in calldata\n @return amountIn The amount of the input token" }, "functionSelector": "db3e2198", "implemented": false, "kind": "function", "modifiers": [], "name": "exactOutputSingle", "nameLocation": "2048:17:44", "parameters": { "id": 45429, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 45428, "mutability": "mutable", "name": "params", "nameLocation": "2099:6:44", "nodeType": "VariableDeclaration", "scope": 45433, "src": "2066:39:44", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_struct$_ExactOutputSingleParams_$45424_calldata_ptr", "typeString": "struct ISwapRouter.ExactOutputSingleParams" }, "typeName": { "id": 45427, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 45426, "name": "ExactOutputSingleParams", "nameLocations": [ "2066:23:44" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45424, "src": "2066:23:44" }, "referencedDeclaration": 45424, "src": "2066:23:44", "typeDescriptions": { "typeIdentifier": "t_struct$_ExactOutputSingleParams_$45424_storage_ptr", "typeString": "struct ISwapRouter.ExactOutputSingleParams" } }, "visibility": "internal" } ], "src": "2065:41:44" }, "returnParameters": { "id": 45432, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 45431, "mutability": "mutable", "name": "amountIn", "nameLocation": "2141:8:44", "nodeType": "VariableDeclaration", "scope": 45433, "src": "2133:16:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 45430, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2133:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "2132:18:44" }, "scope": 45454, "stateMutability": "payable", "virtual": false, "visibility": "external" }, { "id": 45444, "nodeType": "StructDefinition", "src": "2157:165:44", "nodes": [], "canonicalName": "ISwapRouter.ExactOutputParams", "members": [ { "constant": false, "id": 45435, "mutability": "mutable", "name": "path", "nameLocation": "2198:4:44", "nodeType": "VariableDeclaration", "scope": 45444, "src": "2192:10:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" }, "typeName": { "id": 45434, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2192:5:44", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }, { "constant": false, "id": 45437, "mutability": "mutable", "name": "recipient", "nameLocation": "2220:9:44", "nodeType": "VariableDeclaration", "scope": 45444, "src": "2212:17:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 45436, "name": "address", "nodeType": "ElementaryTypeName", "src": "2212:7:44", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 45439, "mutability": "mutable", "name": "deadline", "nameLocation": "2247:8:44", "nodeType": "VariableDeclaration", "scope": 45444, "src": "2239:16:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 45438, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2239:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 45441, "mutability": "mutable", "name": "amountOut", "nameLocation": "2273:9:44", "nodeType": "VariableDeclaration", "scope": 45444, "src": "2265:17:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 45440, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2265:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 45443, "mutability": "mutable", "name": "amountInMaximum", "nameLocation": "2300:15:44", "nodeType": "VariableDeclaration", "scope": 45444, "src": "2292:23:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 45442, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2292:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "name": "ExactOutputParams", "nameLocation": "2164:17:44", "scope": 45454, "visibility": "public" }, { "id": 45453, "nodeType": "FunctionDefinition", "src": "2617:100:44", "nodes": [], "documentation": { "id": 45445, "nodeType": "StructuredDocumentation", "src": "2328:284:44", "text": "@notice Swaps as little as possible of one token for `amountOut` of another along the specified path (reversed)\n @param params The parameters necessary for the multi-hop swap, encoded as `ExactOutputParams` in calldata\n @return amountIn The amount of the input token" }, "functionSelector": "f28c0498", "implemented": false, "kind": "function", "modifiers": [], "name": "exactOutput", "nameLocation": "2626:11:44", "parameters": { "id": 45449, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 45448, "mutability": "mutable", "name": "params", "nameLocation": "2665:6:44", "nodeType": "VariableDeclaration", "scope": 45453, "src": "2638:33:44", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_struct$_ExactOutputParams_$45444_calldata_ptr", "typeString": "struct ISwapRouter.ExactOutputParams" }, "typeName": { "id": 45447, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 45446, "name": "ExactOutputParams", "nameLocations": [ "2638:17:44" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45444, "src": "2638:17:44" }, "referencedDeclaration": 45444, "src": "2638:17:44", "typeDescriptions": { "typeIdentifier": "t_struct$_ExactOutputParams_$45444_storage_ptr", "typeString": "struct ISwapRouter.ExactOutputParams" } }, "visibility": "internal" } ], "src": "2637:35:44" }, "returnParameters": { "id": 45452, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 45451, "mutability": "mutable", "name": "amountIn", "nameLocation": "2707:8:44", "nodeType": "VariableDeclaration", "scope": 45453, "src": "2699:16:44", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 45450, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2699:7:44", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "2698:18:44" }, "scope": 45454, "stateMutability": "payable", "virtual": false, "visibility": "external" } ], "abstract": false, "baseContracts": [ { "baseName": { "id": 45360, "name": "IUniswapV3SwapCallback", "nameLocations": [ "305:22:44" ], "nodeType": "IdentifierPath", "referencedDeclaration": 43908, "src": "305:22:44" }, "id": 45361, "nodeType": "InheritanceSpecifier", "src": "305:22:44" } ], "canonicalName": "ISwapRouter", "contractDependencies": [], "contractKind": "interface", "documentation": { "id": 45359, "nodeType": "StructuredDocumentation", "src": "176:104:44", "text": "@title Router token swapping functionality\n @notice Functions for swapping tokens via Uniswap V3" }, "fullyImplemented": false, "linearizedBaseContracts": [ 45454, 43908 ], "name": "ISwapRouter", "nameLocation": "290:11:44", "scope": 45455, "usedErrors": [], "usedEvents": [] } ], "license": "GPL-2.0-or-later" }, "id": 44 }