1 line
18 KiB
JSON
1 line
18 KiB
JSON
{"abi":[{"type":"function","name":"exactInput","inputs":[{"name":"params","type":"tuple","internalType":"struct ISwapRouter.ExactInputParams","components":[{"name":"path","type":"bytes","internalType":"bytes"},{"name":"recipient","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOutMinimum","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"exactInputSingle","inputs":[{"name":"params","type":"tuple","internalType":"struct ISwapRouter.ExactInputSingleParams","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"recipient","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOutMinimum","type":"uint256","internalType":"uint256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"}]}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"exactOutput","inputs":[{"name":"params","type":"tuple","internalType":"struct ISwapRouter.ExactOutputParams","components":[{"name":"path","type":"bytes","internalType":"bytes"},{"name":"recipient","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"amountInMaximum","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"exactOutputSingle","inputs":[{"name":"params","type":"tuple","internalType":"struct ISwapRouter.ExactOutputSingleParams","components":[{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"recipient","type":"address","internalType":"address"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"amountInMaximum","type":"uint256","internalType":"uint256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"}]}],"outputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"uniswapV3SwapCallback","inputs":[{"name":"amount0Delta","type":"int256","internalType":"int256"},{"name":"amount1Delta","type":"int256","internalType":"int256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"}],"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.26+commit.8a97fa7a\"},\"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\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"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.26+commit.8a97fa7a"},"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":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol":"ISwapRouter"},"evmVersion":"paris","libraries":{},"viaIR":true},"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},"id":48} |