UniversalUniswapV3Adapter

0x2a7f3d7486641c77600b9b9256132755c8aebb4f

Verification
Verified
v0.8.17+commit.8df45f5f
Type
Contract
3,055 bytes
ABI entries
21
3 read · 13 write
License
mit

Contract information

Address
0x2a7f3d7486641c77600b9b9256132755c8aebb4f
Chain
Robinhood Chain (4663)
Compiler
v0.8.17+commit.8df45f5f
Optimization
Enabled
Creation tx
0x02c7bbc32d…86060685d6

Token

Not a token

This contract does not expose ERC-20 metadata.

Read contract (3)

MAX_SQRT_RATIO()uint160
MIN_SQRT_RATIO()uint160
WETH()address

ABI

[
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "weth",
        "type": "address"
      },
      {
        "internalType": "uint160",
        "name": "minSqrtRatio",
        "type": "uint160"
      },
      {
        "internalType": "uint160",
        "name": "maxSqrtRatio",
        "type": "uint160"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "inputs": [],
    "name": "InvalidAmount",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "InvalidPay",
    "type": "error"
  },
  {
    "inputs": [],
    "name": "SafeTransferFailed",
    "type": "error"
  },
  {
    "stateMutability": "nonpayable",
    "type": "fallback"
  },
  {
    "inputs": [],
    "name": "MAX_SQRT_RATIO",
    "outputs": [
      {
        "internalType": "uint160",
        "name": "",
        "type": "uint160"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MIN_SQRT_RATIO",
    "outputs": [
      {
        "internalType": "uint160",
        "name": "",
        "type": "uint160"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "WETH",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "int256",
        "name": "amount0Delta",
        "type": "int256"
      },
      {
        "internalType": "int256",
        "name": "amount1Delta",
        "type": "int256"
      },
      {
        "internalType": "bytes",
        "name": "data",
        "type": "bytes"
      }
    ],
    "name": "agniSwapCallback",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "int256",
        "name": "amount0Delta",
        "type": "int256"
      },
      {
        "internalType": "int256",
        "name": "amount1Delta",
        "type": "int256"
      },
      {
        "internalType": "bytes",
        "name": "data",
        "type": "bytes"
      }
    ],
    "name": "algebraSwapCallback",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "int256",
        "name": "amount0Delta",
        "type": "int256"
      },
      {
        "internalType": "int256",
        "name": "amount1Delta",
        "type": "int256"
      },
      {
        "internalType": "bytes",
        "name": "data",
        "type": "bytes"
      }
    ],
    "name": "dragonswapV2SwapCallback",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "int256",
        "name": "amount0Delta",
        "type": "int256"
      },
      {
        "internalType": "int256",
        "name": "amount1Delta",
        "type": "int256"
      },
      {
        "internalType": "bytes",
        "name": "data",
        "type": "bytes"
      }
    ],
    "name": "fireflyV3SwapCallback",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "int256",
        "name": "amount0Delta",
        "type": "int256"
      },
      {
        "internalType": "int256",
        "name": "amount1Delta",
        "type": "int256"
      },
      {
        "internalType": "bytes",
        "name": "data",
        "type": "bytes"
      }
    ],
    "name": "fusionXV3SwapCallback",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "int256",
        "name": "amount0Delta",
        "type": "int256"
      },
      {
        "internalType": "int256",
        "name": "amount1Delta",
        "type": "int256"
      },
      {
        "internalType": "bytes",
        "name": "data",
        "type": "bytes"
      }
    ],
    "name": "hyperswapV3SwapCallback",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "int256",
        "name": "amount0Delta",
        "type": "int256"
      },
      {
        "internalType": "int256",
        "name": "amount1Delta",
        "type": "int256"
      },
      {
        "internalType": "bytes",
        "name": "data",
        "type": "bytes"
      }
    ],
    "name": "pancakeV3SwapCallback",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "int256",
        "name": "amount0Delta",
        "type": "int256"
      },
      {
        "internalType": "int256",
        "name": "amount1Delta",
        "type": "int256"
      },
      {
        "internalType": "bytes",
        "name": "data",
        "type": "bytes"
      }
    ],
    "name": "ramsesV2SwapCallback",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "pool",
        "type": "address"
      },
      {
        "internalType": "bytes",
        "name": "moreInfo",
        "type": "bytes"
      }
    ],
    "name": "sellBase",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "pool",
        "type": "address"
      },
      {
        "internalType": "bytes",
        "name": "moreInfo",
        "type": "bytes"
      }
    ],
    "name": "sellQuote",
    "outputs": [],
    "stateMutability": "nonpayable",
    "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"
  },
  {
    "inputs": [
      {
        "internalType": "int256",
        "name": "amount0Delta",
        "type": "int256"
      },
      {
        "internalType": "int256",
        "name": "amount1Delta",
        "type": "int256"
      },
      {
        "internalType": "bytes",
        "name": "data",
        "type": "bytes"
      }
    ],
    "name": "xeiV3SwapCallback",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "int256",
        "name": "amount0Delta",
        "type": "int256"
      },
      {
        "internalType": "int256",
        "name": "amount1Delta",
        "type": "int256"
      },
      {
        "internalType": "bytes",
        "name": "data",
        "type": "bytes"
      }
    ],
    "name": "zebraV3SwapCallback",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]

Source code

// SPDX-License-Identifier: MIT
// solhint-disable
pragma solidity ^0.8.0;

import {BaseV3Adapter} from "@adapters/base/BaseV3Adapter.sol";

/// @title UniversalUniswapV3Adapter
/// @notice Single adapter covering multiple V3-like DEX protocols via named callbacks.
/// @dev Supported protocols:
///   - Uniswap V3, Sheepdex, Etherex (uniswapV3SwapCallback)
///   - Agni (agniSwapCallback)
///   - CamelotV3, KimV4, ThenaV2, Quickswapv3, HerculesV3, ZyberV3 (algebraSwapCallback)
///   - FusionX (fusionXV3SwapCallback)
///   - RamsesV2, NileCL (ramsesV2SwapCallback)
///   - Xei (xeiV3SwapCallback)
///   - PancakeV3 (pancakeV3SwapCallback)
///   - FireflyV3 (fireflyV3SwapCallback)
///   - ZebraV3 (zebraV3SwapCallback)
///   - DragonSwapV2 (dragonswapV2SwapCallback)
///   - HyperSwapV3 (hyperswapV3SwapCallback)
///   - Any other V3-like protocol is handled by the fallback() in BaseV3Adapter.
contract UniversalUniswapV3Adapter is BaseV3Adapter {
    constructor(address weth, uint160 minSqrtRatio, uint160 maxSqrtRatio)
        BaseV3Adapter(weth, minSqrtRatio, maxSqrtRatio)
    {}

    function uniswapV3SwapCallback(int256 amount0Delta, int256 amount1Delta, bytes calldata data) external {
        _universalSwapCallback(amount0Delta, amount1Delta, data);
    }

    function agniSwapCallback(int256 amount0Delta, int256 amount1Delta, bytes calldata data) external {
        _universalSwapCallback(amount0Delta, amount1Delta, data);
    }

    function algebraSwapCallback(int256 amount0Delta, int256 amount1Delta, bytes calldata data) external {
        _universalSwapCallback(amount0Delta, amount1Delta, data);
    }

    function fusionXV3SwapCallback(int256 amount0Delta, int256 amount1Delta, bytes calldata data) external {
        _universalSwapCallback(amount0Delta, amount1Delta, data);
    }

    function ramsesV2SwapCallback(int256 amount0Delta, int256 amount1Delta, bytes calldata data) external {
        _universalSwapCallback(amount0Delta, amount1Delta, data);
    }

    function xeiV3SwapCallback(int256 amount0Delta, int256 amount1Delta, bytes calldata data) external {
        _universalSwapCallback(amount0Delta, amount1Delta, data);
    }

    function pancakeV3SwapCallback(int256 amount0Delta, int256 amount1Delta, bytes calldata data) external {
        _universalSwapCallback(amount0Delta, amount1Delta, data);
    }

    function fireflyV3SwapCallback(int256 amount0Delta, int256 amount1Delta, bytes calldata data) external {
        _universalSwapCallback(amount0Delta, amount1Delta, data);
    }

    function zebraV3SwapCallback(int256 amount0Delta, int256 amount1Delta, bytes calldata data) external {
        _universalSwapCallback(amount0Delta, amount1Delta, data);
    }

    function dragonswapV2SwapCallback(int256 amount0Delta, int256 amount1Delta, bytes calldata data) external {
        _universalSwapCallback(amount0Delta, amount1Delta, data);
    }

    function hyperswapV3SwapCallback(int256 amount0Delta, int256 amount1Delta, bytes calldata data) external {
        _universalSwapCallback(amount0Delta, amount1Delta, data);
    }
}
Chain explorer6196msChain node77ms