SwapRouter02
Ethereum Uniswap V30x68b3465833fb72a70ecdf485e0e4c7bd8665fc45
Proxy implementation: 0x68b3465833fb72a70ecdf485e0e4c7bd8665fc45
Solidity v0.7.6+commit.7338295f
Admin & Risk
Who can change the rules?
Detected upgradeable and mintable controls from the verified ABI.
Current controls
- Implementation
- 0x68b3465833fb72a70ecdf485e0e4c7bd8665fc45 ↗ Etherscan → smarts proxy
Overview
Read Functions
Block #25,169,823 · just nowReturns
| Name | Type | Description |
|---|---|---|
| — | address | Returns the address of WETH9 |
Ensures that the current (synthetic) tick over the path is no worse than `maximumTickDivergence` ticks away from the average as of `secondsAgo`
Parameters
| Name | Type | Description |
|---|---|---|
| paths | bytes[] | |
| amounts | uint128[] | |
| maximumTickDivergence | uint24 | The maximum number of ticks that the price can degrade by |
| secondsAgo | uint32 | The number of seconds ago to compute oracle prices against |
Ensures that the current (synthetic) tick over the path is no worse than `maximumTickDivergence` ticks away from the average as of `secondsAgo`
Parameters
| Name | Type | Description |
|---|---|---|
| path | bytes | The path to fetch prices over |
| maximumTickDivergence | uint24 | The maximum number of ticks that the price can degrade by |
| secondsAgo | uint32 | The number of seconds ago to compute oracle prices against |
Returns
| Name | Type | Description |
|---|---|---|
| — | address | Returns the address of the Uniswap V3 factory |
Returns
| Name | Type | Description |
|---|---|---|
| — | address | Returns the address of the Uniswap V2 factory |
Returns
| Name | Type | Description |
|---|---|---|
| — | address | Returns the address of Uniswap V3 NFT position manager |
Write Functions
Approves a token for the maximum possible amount
Parameters
| Name | Type | Description |
|---|---|---|
| token | address | The token to approve |
Approves a token for the maximum possible amount minus one
Parameters
| Name | Type | Description |
|---|---|---|
| token | address | The token to approve |
Approves a token for zero, then the maximum possible amount
Parameters
| Name | Type | Description |
|---|---|---|
| token | address | The token to approve |
Approves a token for zero, then the maximum possible amount minus one
Parameters
| Name | Type | Description |
|---|---|---|
| token | address | The token to approve |
Calls the position manager with arbitrary calldata
Parameters
| Name | Type | Description |
|---|---|---|
| data | bytes | Calldata to pass along to the position manager |
Returns
| Name | Type | Description |
|---|---|---|
| result | bytes | result The result from the call |
Swaps `amountIn` of one token for as much as possible of another along the specified path
Parameters
| Name | Type | Description |
|---|---|---|
| params | tuple | The parameters necessary for the multi-hop swap, encoded as `ExactInputParams` in calldata |
Returns
| Name | Type | Description |
|---|---|---|
| amountOut | uint256 | amountOut The amount of the received token |
Swaps `amountIn` of one token for as much as possible of another token
Parameters
| Name | Type | Description |
|---|---|---|
| params | tuple | The parameters necessary for the swap, encoded as `ExactInputSingleParams` in calldata |
Returns
| Name | Type | Description |
|---|---|---|
| amountOut | uint256 | amountOut The amount of the received token |
Swaps as little as possible of one token for `amountOut` of another along the specified path (reversed) that may remain in the router after the swap.
Parameters
| Name | Type | Description |
|---|---|---|
| params | tuple | The parameters necessary for the multi-hop swap, encoded as `ExactOutputParams` in calldata |
Returns
| Name | Type | Description |
|---|---|---|
| amountIn | uint256 | amountIn The amount of the input token |
Swaps as little as possible of one token for `amountOut` of another token that may remain in the router after the swap.
Parameters
| Name | Type | Description |
|---|---|---|
| params | tuple | The parameters necessary for the swap, encoded as `ExactOutputSingleParams` in calldata |
Returns
| Name | Type | Description |
|---|---|---|
| amountIn | uint256 | amountIn The amount of the input token |
Parameters
| Name | Type | Description |
|---|---|---|
| token | address | The token to approve |
| amount | uint256 | The amount to approve |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint8 | The required approval type |
Calls the position manager's increaseLiquidity function
Parameters
| Name | Type | Description |
|---|---|---|
| params | tuple | Calldata to pass along to the position manager |
Returns
| Name | Type | Description |
|---|---|---|
| result | bytes | result The result from the call |
Calls the position manager's mint function
Parameters
| Name | Type | Description |
|---|---|---|
| params | tuple | Calldata to pass along to the position manager |
Returns
| Name | Type | Description |
|---|---|---|
| result | bytes | result The result from the call |
Call multiple functions in the current contract and return the data from all of them if they all succeed
Parameters
| Name | Type | Description |
|---|---|---|
| previousBlockhash | bytes32 | |
| data | bytes[] | The encoded function data for each of the calls to make to this contract |
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes[] | results The results from each of the calls passed in via data |
Call multiple functions in the current contract and return the data from all of them if they all succeed
Parameters
| Name | Type | Description |
|---|---|---|
| deadline | uint256 | The time by which this function must be called before failing |
| data | bytes[] | The encoded function data for each of the calls to make to this contract |
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes[] | results The results from each of the calls passed in via data |
Call multiple functions in the current contract and return the data from all of them if they all succeed
Parameters
| Name | Type | Description |
|---|---|---|
| data | bytes[] | The encoded function data for each of the calls to make to this contract |
Returns
| Name | Type | Description |
|---|---|---|
| results | bytes[] | results The results from each of the calls passed in via data |
Transfers the specified amount of a token from the msg.sender to address(this)
Parameters
| Name | Type | Description |
|---|---|---|
| token | address | The token to pull |
| value | uint256 | The amount to pay |
Refunds any ETH balance held by this contract to the `msg.sender`
Permits this contract to spend a given token from `msg.sender`
Parameters
| Name | Type | Description |
|---|---|---|
| token | address | The address of the token spent |
| value | uint256 | The amount that can be spent of token |
| deadline | uint256 | A timestamp, the current blocktime must be less than or equal to this timestamp |
| v | uint8 | Must produce valid secp256k1 signature from the holder along with `r` and `s` |
| r | bytes32 | Must produce valid secp256k1 signature from the holder along with `v` and `s` |
| s | bytes32 | Must produce valid secp256k1 signature from the holder along with `r` and `v` |
Permits this contract to spend the sender's tokens for permit signatures that have the `allowed` parameter
Parameters
| Name | Type | Description |
|---|---|---|
| token | address | The address of the token spent |
| nonce | uint256 | The current nonce of the owner |
| expiry | uint256 | The timestamp at which the permit is no longer valid |
| v | uint8 | Must produce valid secp256k1 signature from the holder along with `r` and `s` |
| r | bytes32 | Must produce valid secp256k1 signature from the holder along with `v` and `s` |
| s | bytes32 | Must produce valid secp256k1 signature from the holder along with `r` and `v` |
Permits this contract to spend the sender's tokens for permit signatures that have the `allowed` parameter
Parameters
| Name | Type | Description |
|---|---|---|
| token | address | The address of the token spent |
| nonce | uint256 | The current nonce of the owner |
| expiry | uint256 | The timestamp at which the permit is no longer valid |
| v | uint8 | Must produce valid secp256k1 signature from the holder along with `r` and `s` |
| r | bytes32 | Must produce valid secp256k1 signature from the holder along with `v` and `s` |
| s | bytes32 | Must produce valid secp256k1 signature from the holder along with `r` and `v` |
Permits this contract to spend a given token from `msg.sender`
Parameters
| Name | Type | Description |
|---|---|---|
| token | address | The address of the token spent |
| value | uint256 | The amount that can be spent of token |
| deadline | uint256 | A timestamp, the current blocktime must be less than or equal to this timestamp |
| v | uint8 | Must produce valid secp256k1 signature from the holder along with `r` and `s` |
| r | bytes32 | Must produce valid secp256k1 signature from the holder along with `v` and `s` |
| s | bytes32 | Must produce valid secp256k1 signature from the holder along with `r` and `v` |
Swaps `amountIn` of one token for as much as possible of another token
Parameters
| Name | Type | Description |
|---|---|---|
| amountIn | uint256 | The amount of token to swap |
| amountOutMin | uint256 | The minimum amount of output that must be received |
| path | address[] | The ordered list of tokens to swap through |
| to | address | The recipient address |
Returns
| Name | Type | Description |
|---|---|---|
| amountOut | uint256 | amountOut The amount of the received token |
Swaps as little as possible of one token for an exact amount of another token
Parameters
| Name | Type | Description |
|---|---|---|
| amountOut | uint256 | The amount of token to swap for |
| amountInMax | uint256 | The maximum amount of input that the caller will pay |
| path | address[] | The ordered list of tokens to swap through |
| to | address | The recipient address |
Returns
| Name | Type | Description |
|---|---|---|
| amountIn | uint256 | amountIn The amount of token to pay |
Transfers the full amount of a token held by this contract to recipient
Parameters
| Name | Type | Description |
|---|---|---|
| token | address | The contract address of the token which will be transferred to `recipient` |
| amountMinimum | uint256 | The minimum amount of token required for a transfer |
| recipient | address | The destination address of the token |
Transfers the full amount of a token held by this contract to recipient
Parameters
| Name | Type | Description |
|---|---|---|
| token | address | The contract address of the token which will be transferred to `recipient` |
| amountMinimum | uint256 | The minimum amount of token required for a transfer |
Transfers the full amount of a token held by this contract to msg.sender, with a percentage between 0 (exclusive) and 1 (inclusive) going to feeRecipient
Parameters
| Name | Type | Description |
|---|---|---|
| token | address | |
| amountMinimum | uint256 | |
| feeBips | uint256 | |
| feeRecipient | address |
Transfers the full amount of a token held by this contract to msg.sender, with a percentage between 0 (exclusive) and 1 (inclusive) going to feeRecipient
Parameters
| Name | Type | Description |
|---|---|---|
| token | address | |
| amountMinimum | uint256 | |
| recipient | address | |
| feeBips | uint256 | |
| feeRecipient | address |
Called to `msg.sender` after executing a swap via IUniswapV3Pool#swap.
Parameters
| Name | Type | Description |
|---|---|---|
| amount0Delta | int256 | 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 | int256 | 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 | bytes |
Unwraps the contract's WETH9 balance and sends it to recipient as ETH.
Parameters
| Name | Type | Description |
|---|---|---|
| amountMinimum | uint256 | The minimum amount of WETH9 to unwrap |
| recipient | address | The address receiving ETH |
Unwraps the contract's WETH9 balance and sends it to recipient as ETH.
Parameters
| Name | Type | Description |
|---|---|---|
| amountMinimum | uint256 | The minimum amount of WETH9 to unwrap |
Unwraps the contract's WETH9 balance and sends it to msg.sender as ETH, with a percentage between 0 (exclusive), and 1 (inclusive) going to feeRecipient
Parameters
| Name | Type | Description |
|---|---|---|
| amountMinimum | uint256 | |
| recipient | address | |
| feeBips | uint256 | |
| feeRecipient | address |
Unwraps the contract's WETH9 balance and sends it to msg.sender as ETH, with a percentage between 0 (exclusive), and 1 (inclusive) going to feeRecipient
Parameters
| Name | Type | Description |
|---|---|---|
| amountMinimum | uint256 | |
| feeBips | uint256 | |
| feeRecipient | address |
Wraps the contract's ETH balance into WETH9
Parameters
| Name | Type | Description |
|---|---|---|
| value | uint256 | The amount of ETH to wrap |